OSDN Git Service

2009-04-08 Tristan Gingold <gingold@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2009-04-08  Tristan Gingold  <gingold@adacore.com>
2
3         * gcc-interface/utils.c, gcc-interface/decl.c, gcc-interface/gigi.h:
4         Add support for pragma Thread_Local_Storage
5         
6 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
7
8         * inline.adb (Back_End_Cannot_Inline): Do not mark a body as inlineable
9         by the back-end if it contains a call to a subprogram without a
10         previous spec that is declared in the same unit.
11
12         * errout.ads: Update comments on uses of dirs
13
14 2009-04-08  Robert Dewar  <dewar@adacore.com>
15
16         * exp_ch4.adb (Expand_Concatenate): Make sure nodes are properly typed
17
18 2009-04-08  Tristan Gingold  <gingold@adacore.com>
19
20         * sem_prag.adb: Restrict pragma Thread_Local_Storage to library level
21         variables.
22         Set Has_Gigi_Rep_Item flag to TLS variables (to ease gigi work).
23
24 2009-04-08  Vincent Celier  <celier@adacore.com>
25
26         * prj-nmsc.adb:
27         (Add_Source): Add the mapping of the unit name to source file name in
28         the Unit_Sources_HT hash table, if the unit name is not null.
29
30         * prj.adb (Reset): Reset hash table Tree.Unit_Sources_HT
31
32         * prj.ads (Unit_Sources_Htable): New hash table instantiation
33         (Project_Tree_Data): New component Unit_Sources_HT
34
35 2009-04-08  Thomas Quinot  <quinot@adacore.com>
36
37         * sem_ch8.adb: Minor reformatting.
38         Minor code reorganization.
39
40 2009-04-08  Robert Dewar  <dewar@adacore.com>
41
42         * snames.h, einfo.adb, einfo.ads, sem_prag.adb, snames.adb,
43         snames.ads, freeze.adb, par-prag.adb: Add implementation of
44         pragma Thread_Local_Storage, setting new flag
45         Has_Pragma_Thread_Local_Storage in corresponding entities.
46
47 2009-04-08  Emmanuel Briot  <briot@adacore.com>
48
49         * prj.ads: Update comment on switches file
50
51         * prj-nmsc.adb: Code clean up. Use renaming clauses.
52
53 2009-04-08  Robert Dewar  <dewar@adacore.com>
54
55         * exp_ch4.adb (Expand_Concatenate): Further fixes to bounds handling
56
57 2009-04-08  Thomas Quinot  <quinot@adacore.com>
58
59         * ali-util.adb: Minor comment fix
60
61 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
62
63         * sem_ch8.adb (Analyze_Use_Type): Improve error message when clause
64         appears in a context clause, and the enclosing package is mentioned in
65         a limited_with_clause.
66         (Use_One_Type): Reject clause if type is still incomplete.
67
68 2009-04-08  Emmanuel Briot  <briot@adacore.com>
69
70         * prj-nmsc.adb (Check_File, Process_Sources_In_Multi_Language_Mode):
71         avoid copies of Source_Data variables when possible, since these
72         involve calls to memcpy() which are done too many times.
73
74 2009-04-08  Robert Dewar  <dewar@adacore.com>
75
76         * exp_ch4.adb (Expand_Concatenate): Clean up code
77
78 2009-04-07  Thomas Quinot  <quinot@adacore.com>
79
80         * exp_ch4.adb (Expand_Concatenate): Add missing conversion to index
81         type for the case of concatenating a constrained array indexed by an
82         enumeration type.
83
84 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
85
86         * sem_ch6.adb (Check_Conformance): when checking conformance of an
87         operation that overrides an abstract operation inherited from an
88         interface, return False if only one of the controlling formals is an
89         access parameter.
90
91 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
92
93         * sem_ch8.adb (Analyze_Object_Renaming): additional error messages
94         mandated by AI05-105.
95
96 2009-04-07  Vincent Celier  <celier@adacore.com>
97
98         * prj-nmsc.adb (Get_Mains): Warn if a main is an empty string
99
100 2009-04-07  Thomas Quinot  <quinot@adacore.com>
101
102         * usage.adb: Minor fix in usage message.
103
104         * sem_ch10.adb (Remove_Homonyms): Fix subtype of formal in body to
105         match declaration; the correct subtype is Node_Id, not Entity_Id,
106         because the expected node kind is an identifier, not a defining
107         identifier.
108
109         * switch-c.adb: Minor reformatting.
110
111         * uintp.adb: Minor reformatting.
112
113 2009-04-07  Robert Dewar  <dewar@adacore.com>
114
115         * exp_ch13.adb: Minor reformatting
116
117 2009-04-07  Robert Dewar  <dewar@adacore.com>
118
119         * sem_warn.adb (Check_Infinite_Loop_Warning.Test_Ref): Add defence
120         against missing parent.
121
122 2009-04-07  Thomas Quinot  <quinot@adacore.com>
123
124         * xoscons.adb: Minor reformatting
125
126 2009-04-07  Robert Dewar  <dewar@adacore.com>
127
128         * rtsfind.ads: Remove obsolete string concatenation entries
129
130 2009-04-07  Robert Dewar  <dewar@adacore.com>
131
132         * exp_ch4.adb (Expand_Concatenate): Redo handling of bounds
133
134 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
135
136         * sem_ch10.adb (Check_Body_Required): Handle properly imported
137         subprograms.
138
139 2009-04-07  Gary Dismukes  <dismukes@adacore.com>
140
141         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
142         Attribute_Address): When Init_Or_Norm_Scalars is True and the object
143         is of a scalar or string type then suppress the setting of the
144         expression to Empty.
145
146         * freeze.adb (Warn_Overlay): Also emit the warnings about default
147         initialization for the cases of scalar and string objects when
148         Init_Or_Norm_Scalars is True.
149
150 2009-04-07  Bob Duff  <duff@adacore.com>
151
152         * s-secsta.ads, g-pehage.ads, s-fileio.ads: Minor comment fixes
153
154 2009-04-07  Bob Duff  <duff@adacore.com>
155
156         * gnat_rm.texi, s-fileio.adb (System.File_IO.Open): New feature: A
157         Form parameter of Text_Translation=No allows binary mode for Text_IO
158         files.
159
160         * gnat_rm.texi: Document Form parameter Text_Translation=xxx.
161
162 2009-04-07  Javier Miranda  <miranda@adacore.com>
163
164         * exp_ch5.adb (Expand_Assign_Array): Add implicit conversion when
165         processing the bounds for bit packed arrays or VM target machines.
166
167 2009-04-07  Thomas Quinot  <quinot@adacore.com>
168
169         * g-sothco.ads (Int_Access): Remove extraneous access type (use
170         anonymous access instead).
171         (Get_Socket_From_Set): Fix incorrectly reverted formals
172         Last and Socket to match the underlying C routine.
173
174         * g-socket.adb, g-socket.ads
175         (Get): Use named parameter associations instead of positional ones in
176         call go Get_Socket_From_Set, since this routine has two formals of the
177         same type.
178         (Image): New procedure.
179
180         * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
181         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi.adb, g-socthi.ads:
182         (C_Ioctl, Syscall_Ioctl): use "access C.int" instead of "Int_Access"
183         for type of Arg formal.
184
185         * sem_warn.adb: Minor reformatting
186
187 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
188
189         * sem_util.adb (Has_Tagged_Component): Fix typo in loop that iterates
190         over record components.
191
192 2009-04-07  Nicolas Roche  <roche@adacore.com>
193
194         * gsocket.h:
195         Don't include resolvLib.h on VxWorks 6 (kernel and rtp). This library
196         has disappeared between VxWorks 6.4 and VxWorks 6.5
197         In RTP mode use time.h instead of times.h
198
199 2009-04-07  Robert Dewar  <dewar@adacore.com>
200
201         * exp_ch4.adb (Expand_N_Op_Concat): Improve lower bound handling
202
203 2009-04-07  Kevin Pouget  <pouget@adacore.com>
204
205         * exp_dist.adb: Modify Build_From_Any_Fonction procedure to correct
206         expanded code for constrained types.
207
208 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
209
210         * sem_ch4.adb (Analyze_Overloaded_Selected_Component): implement
211         AI05-105: in an object renaming declaration, anonymousness is a name
212         resolution rule.
213
214         * sem_ch8.adb (Analyze_Object_Renaming): Ditto.
215
216 2009-04-07  Arnaud Charlet  <charlet@adacore.com>
217
218         * g-comlin.adb (Expansion): Fix old regression: also return directory
219         names when matching.
220
221 2009-04-07  Robert Dewar  <dewar@adacore.com>
222
223         * exp_ch4.adb:
224         (Expand_N_Op_Concat): Call Expand_Concatenate for all cases
225         (Expand_Concatenate): New name for Expand_Concatenate_String which has
226         been rewritten to handle all types.
227         (Expand_Concatenate_Other): Remove
228
229 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
230
231         * lib-xref.adb (Generate_Reference): A default subprogram in an
232         instance appears within the tree for the instance, but generates an
233         implicit reference in the ALI.
234
235 2009-04-07  Javier Miranda  <miranda@adacore.com>
236
237         * sem_ch3.adb (Build_Derived_Record_Type): When processing a tagged
238         derived type that has discriminants, propagate the list of interfaces
239         to the corresponding new base type. In addition, propagate also
240         attribute Limited_Present (found working in this patch).
241
242 2009-04-07  Robert Dewar  <dewar@adacore.com>
243
244         * exp_ch4.adb: Rewrite concatenation expansion.
245
246 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
247
248         * sem_ch8.adb (Restore_Scope_Stack): First_Private_Entity is only
249         relevant to packages.
250
251 2009-04-07  Robert Dewar  <dewar@adacore.com>
252
253         * sem_attr.adb: Minor reformatting
254
255         * sem_ch6.adb: Minor reformatting
256
257 2009-04-07  Tristan Gingold  <gingold@adacore.com>
258
259         * socket.c: Add more protections against S_resolvLib_ macros.
260
261 2009-04-07  Thomas Quinot  <quinot@adacore.com>
262
263         * sem_attr.adb: Minor reformatting
264
265 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
266
267         * sem_ch6.adb (New_Overloaded_Entity): New predicate
268         Is_Overriding_Alias to handle properly types that inherit two homonym
269         operations that have distinct dispatch table entries.
270
271 2009-04-07  Emmanuel Briot  <briot@adacore.com>
272
273         * s-regexp.adb (Create_Mapping): Ignore excaped open parenthesis when
274         looking for the end of a parenthesis group
275
276 2009-04-07  Tristan Gingold  <gingold@adacore.com>
277
278         * gsocket.h Don't #include resolvLib.h if __RTP__ is defined.
279
280         * socket.c Don't use resolvLib_ macros if not defined.
281
282 2009-04-07  Robert Dewar  <dewar@adacore.com>
283
284         * g-socket.adb: Minor reformatting.
285
286         * g-socthi-mingw.adb: Minor reformatting
287
288         * g-sothco.ads: Minor reformatting
289
290         * exp_ch4.adb:
291         (Expand_Concatenate_String): Complete rewrite to generate efficient code
292         inline instead of relying on external library routines.
293
294         * s-strops.ads, s-sopco5.ads, s-sopco5.adb, s-sopco4.ads, s-sopco4.adb,
295         s-sopco3.ads, s-sopco3.adb, s-strops.adb: Note that this unit is now
296         obsolescent
297
298 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
299
300         * sem_attr.adb:
301         (Eval_Attribute): for attributes of array objects that are not strings,
302         attributes are not static if nominal subtype of object is unconstrained.
303
304 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
305
306         * sem_ch6.adb (New_Overloaded_Entity): If two implicit homonym
307         operations for a type T in an instance do not override each other,
308         when T is derived from a formal private type, the corresponding
309         operations inherited by a type derived from T outside
310         of the instance do not override each other either.
311
312 2009-04-07  Robert Dewar  <dewar@adacore.com>
313
314         (Osint.Fail): Change calling sequence to have one string arg
315         (Make.Make_Failed): Same change
316         All callers are adjusted to use concatenation
317
318 2009-04-07  Robert Dewar  <dewar@adacore.com>
319
320         * exp_ch4.adb: Fix documentation typo
321
322 2009-04-07  Robert Dewar  <dewar@adacore.com>
323
324         * tbuild.ads: Minor reformatting
325
326 2009-04-07  Javier Miranda  <miranda@adacore.com>
327
328         * exp_disp.adb (Make_DT): Avoid the generation of the OSD_Table
329         when compiling under ZFP runtime.
330
331 2009-04-07  Robert Dewar  <dewar@adacore.com>
332
333         * g-comlin.adb: Minor reformatting
334
335 2009-04-07  Thomas Quinot  <quinot@adacore.com>
336
337         * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
338         g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads,
339         g-socthi.adb, g-socthi.ads, g-socket.adb, g-socket.ads, g-sothco.ads:
340         Remove dynamic allocation of Fd_Set in Socket_Set_Type objects.
341
342 2009-04-07  Robert Dewar  <dewar@adacore.com>
343
344         * gnat_ugn.texi: Document -gnatDnn/-gnatGnn
345
346         * opt.ads (Sprint_Line_Limit): New parameter
347         
348         * sprint.adb: Usa Sprint_Line_Limit instead of Line_Limit throughout
349         
350         * switch-c.adb: Recognize -gnatDnnn and -gnatGnnn switches
351         
352         * usage.adb: Output information for -gnatGnn -gnatDnn
353
354 2009-04-07  Robert Dewar  <dewar@adacore.com>
355
356         * make.adb: Minor reformatting
357
358 2009-04-07  Robert Dewar  <dewar@adacore.com>
359
360         * mlib-tgt-specific-vms-alpha.adb: Minor reformatting
361
362 2009-04-07  Robert Dewar  <dewar@adacore.com>
363
364         * mlib-tgt-specific-vms-ia64.adb: Minor reformatting
365
366 2009-04-07  Robert Dewar  <dewar@adacore.com>
367
368         * checks.adb:
369         Remove Assume_Valid parameter from In_Subrange_Of calls
370         
371         * sem_eval.adb:
372         (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
373         (Is_In_Range): Remove incorrect use of Assume_Valid
374         (Is_Out_Of_Range): Remove incorrect use of Assume_Valid
375         
376         * sem_eval.ads:
377         (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
378         (Is_In_Range): Documentation cleanup
379         (Is_Out_Of_Range): Documentation cleanup
380
381         * gnat_rm.texi:
382         Add documentation for Assume_No_Invalid_Values pragma
383
384         * sem_ch12.adb: Minor reformatting
385
386         * sem_ch6.adb: (Check_Conformance): Avoid cascaded errors
387
388         * sem_prag.adb: Improve error message.
389
390         * gnatchop.adb, osint.ads, sinput.adb, sinput.ads, styleg.adb:
391         LF/CR no longer recognized as line terminator
392
393         * switch.ads: Minor documentation improvement
394
395         * vms_data.ads: Minor reformatting
396
397 2009-04-07  Robert Dewar  <dewar@adacore.com>
398
399         * checks.adb (Determine_Range): Add Assume_Valid parameter
400         
401         * checks.ads (Determine_Range): Add Assume_Valid parameter
402         
403         * errout.adb (Error_Msg_NEL): Use Suppress_Loop_Warnings rather than
404          Is_Null_Loop to suppress warnings in a loop body.
405         
406         * exp_ch4.adb:
407         (Rewrite_Comparison): Major rewrite to accomodate invalid values
408         
409         * exp_ch5.adb:
410         (Expand_N_Loop_Statement): Delete loop known not to execute
411         
412         * opt.ads:
413         (Assume_No_Invalid_Values): Now set to False, and as documented, this
414          fully enables the proper handling of invalid values.
415         
416         * sem_attr.adb:
417         New calling sequence for Is_In_Range
418         
419         * sem_ch5.adb:
420         (Analyze_Iteration_Scheme): Accomodate possible invalid values
421          in determining if a loop range is null.
422         
423         * sem_eval.adb:
424         (Is_In_Range): Add Assume_Valid parameter
425         (Is_Out_Of_Range): Add Assume_Valid_Parameter
426         (Compile_Time_Compare): Major rewrite to accomodate invalid values and
427          also to do more accurate and complete range analysis, catching more
428          cases.
429         
430         * sem_eval.ads:
431         (Is_In_Range): Add Assume_Valid parameter
432         (Is_Out_Of_Range): Add Assume_Valid_Parameter
433         
434         * sem_util.adb:
435         New calling sequence for Is_In_Range
436         
437         * sinfo.adb:
438         (Suppress_Loop_Warnings): New flag
439         
440         * sinfo.ads:
441         (Is_Null_Loop): Update documentation
442         (Suppress_Loop_Warnings): New flag
443         
444         * gnat_ugn.texi: Document -gnatB switch
445
446 2009-04-07  Arnaud Charlet  <charlet@adacore.com>
447
448         * gnatvsn.ads: Bump version number.
449
450 2009-04-07  Thomas Quinot  <quinot@adacore.com>
451
452         * exp_ch3.adb: Minor rewording (comments)
453
454 2009-04-07  Robert Dewar  <dewar@adacore.com>
455
456         * exp_disp.adb: Minor reformatting
457
458 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
459
460         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Test the
461         underlying type.
462         * gcc-interface/trans.c (lvalue_required_p): Likewise.
463
464 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
465
466         * gcc-interface/trans.c (Attribute_to_gnu) <Max_Size_In_Storage_Elmts>:
467         Do not convert the result.  Remove obsolete comment.
468
469 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
470
471         * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear
472         DECL_CONTEXT.
473         (Subprogram_Body_to_gnu): Fix pasto.
474
475 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
476
477         * gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl.
478         (void_type_decl_node): Remove.
479         (init_gigi_decls): Likewise.
480         (gnat_install_builtins): Declare.
481         (record_builtin_type): Likewise.
482         (create_type_stub_decl): Likewise.
483         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type.
484         (gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types
485         artificial.
486         <E_Array_Subtype>: Use the index types, not only their name, in the
487         record giving the names of the bounds, if any.
488         For a packed array type, make it artificial only if the base type
489         was artificial as well.  Remove redundant statement.
490         (gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for
491         dummy types.
492         Use create_type_stub_decl to build the TYPE_STUB_DECL of types.
493         (rest_of_type_decl_compilation_no_defer): Likewise.
494         * gcc-interface/misc.c (gnat_printable_name): Add missing guard.
495         * gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL
496         and use create_type_stub_decl to build it.
497         (gnat_pushdecl): Rewrite condition.
498         (gnat_install_builtins): Remove bogus declaration.
499         (record_builtin_type): New function.
500         (finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL
501         of types.
502         (create_type_stub_decl): New function.
503         (create_type_decl): Assert that the type is not dummy.  If the type
504         hasn't been named yet, equate the TYPE_STUB_DECL to the created node.
505         (build_vms_descriptor32): Do not create TYPE_DECL for the descriptor.
506         (build_vms_descriptor): Likewise.
507         (init_gigi_decls): Delete and move bulk of code to...
508         * gcc-interface/trans.c (gigi): ...here.  Use record_builtin_type.
509         (emit_range_check): Add gnat_node parameter.
510         (emit_index_check): Likewise.
511         (emit_check): Likewise.
512         (build_unary_op_trapv): Likewise.
513         (build_binary_op_trapv): Likewise.
514         (convert_with_check): Likewise.
515         (Attribute_to_gnu): Adjust calls for above changes.
516         (call_to_gnu): Likewise.
517         (gnat_to_gnu): Likewise.
518         (assoc_to_constructor): Likewise.
519         (pos_to_constructor): Likewise.
520         (Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes.
521         (process_type): Do not create TYPE_DECL for dummy types.
522
523 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
524
525         * gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables.
526         * gcc-interface/trans.c: Fix formatting throughout.  Fix comments.
527         * gcc-interface/utils.c: Fix comments.
528
529 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
530
531         * gcc-interface/decl.c (compile_time_known_address_p): Rewrite and
532         move around.
533         (gnat_to_gnu_type): Move around.
534         (get_unpadded_type): Likewise.
535         * gcc-interface/utils.c (update_pointer_to): Use synthetic macro.
536         Tidy comments.
537
538 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
539
540         * gcc-interface/trans.c (check_for_eliminated_entity): New function.
541         (Attribute_to_gnu): Invoke it for Access- and Address-like attributes.
542         (call_to_gnu): Invoke it instead of manually checking.
543
544 2009-04-04  Eric Botcazou  <ebotcazou@adacore.com>
545
546         * gcc-interface/utils.c (finish_record_type): Force structural equality
547         checks if the record type is discriminated.
548
549 2009-03-31  Eric Botcazou  <ebotcazou@adacore.com>
550
551         * system-linux-alpha.ads (Functions_Return_By_DSP): Remove.
552         * system-linux-mips.ads (Functions_Return_By_DSP): Likewise.
553         * system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise.
554         * system-linux-s390.ads (Functions_Return_By_DSP): Likewise.
555         * system-linux-s390x.ads (Functions_Return_By_DSP): Likewise.
556         * system-linux-sparc.ads (Functions_Return_By_DSP): Likewise.
557         * system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise.
558
559 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
560
561         * gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead
562         of TREE_CONSTANT_OVERFLOW.
563
564 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
565
566         PR rtl-optimization/323
567         * gcc-interface/misc.c (gnat_post_options): Set
568         flag_excess_precision_cmdline.  Give an error for
569         -fexcess-precision=standard for processors where the option is
570         significant.
571
572 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
573
574         PR c/39323
575         * gcc-interface/utils.c (create_field_decl): Use "unsigned int"
576         on bit_align.
577
578 2009-03-11  Olivier Hainque  <hainque@adacore.com>
579
580         * gcc-interface/trans.c (gnat_to_gnu) <case N_Slice>: In range
581         checks processing, remove unintended TREE_TYPE walk on index type.
582
583 2009-03-01  Eric Botcazou  <ebotcazou@adacore.com>
584
585         PR ada/39264
586         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do no
587         call make_packable_type on fat pointer types.
588         <E_Array_Subtype>: Likewise.
589         <E_Record_Subtype>: Call make_packable_type on all record types
590         except for fat pointer types.
591         (make_packable_type): Likewise.
592         (gnat_to_gnu_field): Likewise.
593
594 2009-02-28  Eric Botcazou  <ebotcazou@adacore.com>
595
596         * gcc-interface/Makefile.in (cygwin/mingw): Revert accidental
597         EH_MECHANISM change made on 2007-12-06.
598
599 2009-02-26  Andreas Schwab  <schwab@suse.de>
600
601         PR ada/39172
602         * Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
603         * gcc-interface/Makefile.in: Change all uses of $(srcdir),
604         $(fsrcdir) and $(fsrcpfx) to add ada subdir.
605         (AWK): Substitute.
606         (target_cpu_default): Substitute.
607
608 2009-02-25  Laurent GUERBY  <laurent@guerby.net>
609
610         PR ada/39221
611         * a-teioed.adb (Expand): Fix Result overflow.
612
613 2009-02-25  Laurent GUERBY <laurent@guerby.net>
614
615         * gcc-interface/Makefile.in: Fix multilib handling for
616         sparc64-linux.
617
618 2009-02-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
619
620         * s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6.
621
622 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
623
624         * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi.
625
626 2009-02-16  Eric Botcazou  <ebotcazou@adacore.com>
627
628         * gcc-interface/deftarg.c: Remove.
629
630 2009-02-10  Olivier Hainque  <hainque@adacore.com>
631             Eric Botcazou  <ebotcazou@adacore.com>
632
633         * gcc-interface/decl.c (enum alias_set_op): New enumeration.
634         (copy_alias_set): Rename into...
635         (relate_alias_sets): ...this.  Add third parameter OP.  Retrieve the
636         underlying array of unconstrained arrays for the new type as well.
637         If the old and new alias sets don't conflict, make one a subset of
638         the other as per the OP parameter.
639         (gnat_to_gnu_entity): Adjust calls to copy_alias_set.
640         <E_Record_Type>: Do not copy the alias set for derived types.
641         For all types, make the alias set of derived types a superset of
642         that of their parent type.
643         (make_aligning_type): Adjust calls to copy_alias_set.
644         (make_packable_type): Likewise.
645         * gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>:
646         Check for alias set conflict instead of strict equality to issue the
647         warning.
648
649 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
650
651         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
652         Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate.
653         (copy_alias_set): Assert that arrays have the same aliasing settings.
654         (substitute_in_type) <ARRAY_TYPE>: Copy TYPE_NONALIASED_COMPONENT.
655
656 2009-02-08  Eric Botcazou  <ebotcazou@adacore.com>
657
658         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
659         Set TYPE_NONALIASED_COMPONENT on the array type.
660
661 2009-01-31  Laurent GUERBY  <laurent@guerby.net>
662
663         * gcc-interface/Makefile.in: Fix mipsel linux handling.
664
665 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
666
667         * gcc-interface/Makefile.in: Fix multilib handling for
668         powerpc64-linux.
669
670 2009-01-12  Eric Botcazou  <ebotcazou@adacore.com>
671
672         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
673         only useless conversions around renamed objects.
674
675 2009-01-11  Eric Botcazou  <ebotcazou@adacore.com>
676
677         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
678         the _Tag field before any discriminants in the field list.
679         (components_to_record): Remove obsolete comment.
680
681 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
682
683         PR ada/38450
684         * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
685         * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
686         Likewise.
687
688 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
689
690         PR bootstrap/38262
691         * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
692
693 2008-11-29  Eric Botcazou  <ebotcazou@adacore.com>
694
695         PR ada/30827
696         * g-comver.adb (Ver_Len_Max): Fix inconsistency.
697
698 2008-11-27  Eric Botcazou  <ebotcazou@adacore.com>
699
700         * gcc-interface/decl.c: Fix various nits.
701
702 2008-11-20  Eric Botcazou  <ebotcazou@adacore.com>
703
704         * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
705
706 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
707
708         PR ada/38127
709         * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
710         special-case boolean types.  Propagate  the name.
711         * gcc-interface/targtyps.c: Tweak comment.
712
713 2008-11-15  Geert Bosch  <bosch@adacore.com>
714
715         * gcc-interface/trans.c (emit_check): Put back a final save_expr
716         to prevent exponential expansion during gimplification.
717
718 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
719
720         * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
721
722 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
723
724         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
725         initialized to a static constant to be statically allocated even if
726         they are of a padding type, provided the original type also has
727         constant size.
728
729 2008-11-15  Laurent Guerby  <laurent@guerby.net>
730
731         PR ada/37993
732         * gcc-interface/Makefile.in: Add multilib handling for x86_64
733         on darwin.
734         * system-darwin-x86_64.ads: New file.
735
736 2008-11-13  Olivier Hainque  <hainque@adacore.com>
737
738         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
739         Turn Ada Pure on subprograms back into GCC CONST when eh constructs
740         are explicit to the middle-end.  Tidy.
741
742 2008-11-09  Eric Botcazou  <ebotcazou@adacore.com>
743
744         * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
745         (MINUS_NOMOD_EXPR): Likewise.
746         * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
747         unreachable.
748         <PLUS_NOMOD_EXPR>: New case.
749         <MINUS_NOMOD_EXPR>: Likewise.
750         * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
751         assignment statement instead of using an increment operator.
752
753 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
754
755         * system-irix-n64.ads: New file.
756         * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
757         multilibs.
758
759 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
760
761         PR ada/37681
762         * system-solaris-x86_64.ads: New file.
763         * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
764
765 2008-11-07  Bechir Zalila  <bechir.zalila@gmail.com>
766             Eric Botcazou  <ebotcazou@adacore.com>
767
768         PR ada/34289
769         * lib.ads: (Enable_Switch_Storing): Declare.
770         * lib.adb: (Enable_Switch_Storing): New procedure.
771         * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
772         * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
773         (Display): Never display -gnatea
774         * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
775
776 2008-11-07  Thomas Quinot  <quinot@adacore.com>
777
778         * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
779         for empty range in original base type, not converted result type.
780
781 2008-11-07  Geert Bosch  <bosch@adacore.com>
782
783         * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
784         and result for call to __gnat_mulv64.
785
786 2008-11-07  Eric Botcazou  <ebotcazou@adacore.com>
787
788         * gcc-interface/trans.c: Fix formatting nits.
789
790 2008-11-07  Geert Bosch  <bosch@adacore.com>
791
792         * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
793         overflow check for constant result.
794
795 2008-11-07  Geert Bosch  <bosch@adacore.com>
796
797         * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
798         overflow check for addition/subtraction if neither operand is constant.
799
800 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
801
802         * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
803         files for the target-dependent part of the runtime.
804         (SPARC/Linux): Likewise.
805
806 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
807
808         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
809         optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
810         purposes.
811
812 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
813
814         * gcc-interface/misc.c (gnat_printable_name): Always return a copy
815         in GC memory.
816
817 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
818
819         PR ada/19419
820         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
821         Generate a call to memmove for an assignment between overlapping
822         array slices.
823
824 2008-11-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
825
826         PR target/37977
827         * gcc-interface/Makefile.in: Add multilib handling for
828         s390-linux and s390x-linux.
829
830 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
831
832         * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
833         check-acats-subtargets and check-gnat-subtargets.
834         (check_acats_targets): New variable.
835         (check-acats-subtargets, check-acats%): New targets.
836         (check-acats): If -j is used and CHAPTERS is empty, run the testing
837         in multiple make goals, possibly parallel, and afterwards run
838         dg-extract-results.sh to merge the sum and log files.
839
840 2008-10-17  Geert Bosch  <bosch@adacore.com>
841
842         * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
843         to use only a single check instead of three, and avoid unnecessary
844         COMPOUND_EXPR.
845         (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
846         creating more opportunities for optimizations.
847
848 2008-10-13  Jakub Jelinek  <jakub@redhat.com>
849
850         PR middle-end/37601
851         * gcc-interface/utils.c (gnat_types_compatible_p): Handle
852         NULL TYPE_DOMAIN.
853
854 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
855
856         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
857         dealing with volatileness to after code dealing with renaming.
858
859 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
860
861         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
862         * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
863
864 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
865
866         * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
867         (unchecked_convert): Use it to disable problematic folding with
868         VIEW_CONVERT_EXPR in the general case.  Always disable it for the
869         special VIEW_CONVERT_EXPR built for integral types and cope with
870         its addressability issues by preserving the first conversion.
871
872 2008-10-01  Andreas Schwab  <schwab@suse.de>
873
874         * system-linux-ppc64.ads: New file.
875         * gcc-interface/Makefile.in: Add multilib handling for
876         powerpc-linux.
877
878 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
879
880         * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
881         to that of ptr_mode instead of word_mode.
882
883 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
884
885         PR ada/5911
886         * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
887
888 2008-09-25  Samuel Tardieu  <sam@rfc1149.net>
889
890         PR ada/37641
891         * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
892         instead of deprecated FILE_WRITE_PROPERTIES.
893
894 2008-09-22  Olivier Hainque  <hainque@adacore.com>
895
896         * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
897         are never assigned, volatile entities are not constant for code
898         generation purposes.
899
900 2008-09-21  Laurent Guerby  <laurent@guerby.net>
901
902         PR ada/5911
903         * gcc-interface/Makefile.in: Add multilib handling for x86_64
904         and sparc.
905         * system-linux-sparcv9.ads: New file.
906
907 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
908
909         * exp_dbug.ads: Document new convention for the XVZ variable.
910         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
911         debug info if necessary for the type padding the component type.
912         <E_Array_Subtype>: Likewise.
913         (maybe_pad_type): Emit the XVZ variable in units.
914         * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
915         (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
916         on statements generated to initialize the parameter attributes cache.
917         Set the source line of the end label of the body on the special return
918         statement built for a procedure with copy-in copy-out parameters.
919
920 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
921
922         PR ada/37585
923         * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
924         inlined external functions if they contain a nested function not
925         declared inline.
926
927 2008-09-18  Jan Hubicka  <jh@suse.cz>
928
929         * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
930         (end_subprog_body): Do not set DECL_INLINE.
931
932 2008-09-17  Pascal Rigaux  <pixel@mandriva.com>
933
934         PR ada/21327
935         * gnat_ugn.texi: Use proper format in direntry.
936
937 2008-09-15  Eric Botcazou  <ebotcazou@adacore.com>
938
939         * gcc-interface/trans.c (gigi): Declare the name of the compilation
940         unit as the first global name.
941
942 2008-09-14  Jan Hubicka  <jh@suse.cz>
943
944         * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
945
946 2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
947
948         * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
949         bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
950         exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
951         exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
952         exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
953         g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
954         gcc-interface/gigi.h, gcc-interface/trans.c,
955         lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
956         opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
957         s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
958         s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
959         sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
960         sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
961         sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
962         sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
963         comments.
964         * gnathtml.pl: Fix typos.
965
966 2008-09-10  Joel Sherrill <joel.sherrill@oarcorp.com>
967
968         * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
969         * s-osinte-rtems.ads: Add shared hardware interrupt adapter
970         layer. RTEMS binds to OS provided adapter routines so there are
971         no modifications to s-osinte-rtems.adb.
972
973 2008-09-09  Arnaud Charlet  <charlet@adacore.com>
974             Joel Sherrill  <joel.sherrill@oarcorp.com>
975
976        * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
977
978        * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
979
980        * s-interr-hwint.adb: New file.
981
982         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
983         needed by s-interr-hwint.adb.
984
985         * s-osinte-vxworks-kernel.adb: New file.
986
987 2008-09-05  Joel Sherrill <joel.sherrill@oarcorp.com>
988
989         * s-stchop-rtems.adb: Add file missed in early commit.  Already
990         referenced in gcc-interface/Makefile.in.
991
992 2008-08-30  Thomas Quinot  <quinot@adacore.com>
993
994         * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
995         be built even without a separate libada directory.
996
997 2008-08-22  Arnaud Charlet  <charlet@adacore.com>
998
999         * lib-xref.ads: Fix typo in subprogram reference definition.
1000
1001 2008-08-22  Robert Dewar  <dewar@adacore.com>
1002
1003         * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
1004         to avoid warning.
1005
1006         * g-trasym.adb: Ditto
1007
1008         * s-utf_32.adb (Get_Category): Fix obvious typo
1009
1010         * s-wwdcha.adb: Minor code reorganization
1011         Remove dead code
1012
1013 2008-08-22  Robert Dewar  <dewar@adacore.com>
1014
1015         * checks.adb (Determine_Range): Deal with values that might be invalid
1016
1017         * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
1018         configuration switches.
1019
1020         * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
1021
1022         * sem_prag.adb: Implement pragma Assume_No_Default_Values
1023
1024         * snames.adb, snames.ads, snames.h:
1025         Add entries for pragma Assume_No_Invalid_Values
1026
1027         * switch-c.adb: Add processing for -gnatB switch
1028
1029         * usage.adb: Add entry for flag -gnatB (no bad invalid values)
1030
1031 2008-08-22  Javier Miranda  <miranda@adacore.com>
1032
1033         * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
1034         init procedure all the expanded code associated with the spec of
1035         task types and protected types.
1036
1037 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
1038
1039         * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
1040         component expression copies rather than directly setting Etype and
1041         Is_Static_Expression.
1042
1043 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
1044
1045         * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
1046         private types to allow for types derived from a private type with
1047         preelaborable initialization, but return False for a private extension
1048         (unless it has the pragma).
1049
1050 2008-08-22  Robert Dewar  <dewar@adacore.com>
1051
1052         * opt.ads: Minor code reorganization (put entries in alpha order)
1053
1054 2008-08-22  Pascal Obry  <obry@adacore.com>
1055
1056         * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
1057         spawn.
1058
1059 2008-08-22  Geert Bosch  <bosch@adacore.com>
1060
1061         * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
1062         (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
1063
1064 2008-08-22  Doug Rupp  <rupp@adacore.com>
1065
1066         * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
1067         __gnat_set_features.
1068
1069         * init.c
1070         (__gnat_set_features): New function.
1071         (__gnat_features_set): New tracking variable.
1072         (__gl_no_malloc_64): New feature global variable
1073
1074 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
1075
1076         * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
1077         use_type_clause in an instance.
1078
1079 2008-08-22  Bob Duff  <duff@adacore.com>
1080
1081         * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
1082
1083 2008-08-22  Robert Dewar  <dewar@adacore.com>
1084
1085         * exp_ch6.adb: Minor reformatting
1086
1087         * exp_ch7.adb: Minor reformatting
1088
1089         * exp_ch7.ads: Put routines in proper alpha order
1090
1091         * exp_dist.adb: Minor reformatting
1092
1093 2008-08-22  Vincent Celier  <celier@adacore.com>
1094
1095         * prj.ads: Minor comment update
1096
1097 2008-08-22  Robert Dewar  <dewar@adacore.com>
1098
1099         * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
1100
1101 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
1102
1103         * exp_tss.adb:
1104         (Base_Init_Proc): For a protected subtype, use the base type of the
1105         corresponding record to locate the propoer initialization procedure.
1106
1107 2008-08-22  Robert Dewar  <dewar@adacore.com>
1108
1109         * checks.adb:
1110         (In_Subrange_Of): New calling sequence
1111         (Determine_Range): Prepare for new processing using base type
1112
1113         * exp_ch4.adb:
1114         (Compile_Time_Compare): Use new calling sequence
1115
1116         * exp_ch5.adb:
1117         (Compile_Time_Compare): Use new calling sequence
1118
1119         * sem_eval.adb:
1120         (Compile_Time_Compare): New calling sequence allows dealing with
1121         invalid values.
1122         (In_Subrange_Of): Ditto
1123
1124         * sem_eval.ads:
1125         (Compile_Time_Compare): New calling sequence allows dealing with
1126         invalid values.
1127         (In_Subrange_Of): Ditto
1128
1129 2008-08-22  Pascal Obry  <obry@adacore.com>
1130
1131         * adaint.c: Fix possible race condition on win32_wait().
1132
1133 2008-08-22  Bob Duff  <duff@adacore.com>
1134
1135         * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
1136         exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
1137         exp_intr.adb, exp_ch3.adb: Rename:
1138         Exp_Ch7.Controlled_Type => Needs_Finalization
1139         Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
1140         Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
1141          Has_Controlled_Parts
1142         (Has_Some_Controlled_Component): Fix bug in array case.
1143
1144 2008-08-22  Robert Dewar  <dewar@adacore.com>
1145
1146         * sem_ch8.adb: Minor reformatting
1147
1148 2008-08-22  Kevin Pouget  <pouget@adacore.com>
1149
1150         * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
1151         Shared_Var_Close procedure specifications from package spec to package body.
1152
1153         * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
1154         RE_Shared_Var_WOpen entries.
1155
1156         * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
1157         Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
1158
1159 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
1160
1161         * init.c: adjust EH support code on Alpha/Tru64 as well.
1162
1163         * raise-gcc.c: Add back a couple of comments.
1164
1165 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
1166
1167         * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
1168         involved and the return type is class-wide, use the type of the expression
1169         for the generated access type. Suppress useless discriminant checks on the
1170         allocator.
1171
1172 2008-08-22  Bob Duff  <duff@adacore.com>
1173
1174         * exp_ch7.adb: Minor comment fix
1175
1176         * exp_ch6.ads: Minor comment fix
1177
1178 2008-08-22  Thomas Quinot  <quinot@adacore.com>
1179
1180         * sem_ch8.adb: Minor reformatting
1181         Minor code reorganization (introduce subprogram to factor duplicated
1182         code).
1183
1184 2008-08-22  Sergey Rybin  <rybin@adacore.com>
1185
1186         * gnat_ugn.texi: Change the description of gnatcheck default rule
1187         settings.
1188
1189 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
1190
1191         * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
1192         Solaris, FreeBSD, VxWorks and PowerPC/Linux.  For x86{-64}/Linux,
1193         do not adjust the PC anymore.
1194         (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
1195         on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
1196
1197         * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
1198         instead of _Unwind_GetIP.
1199
1200 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
1201
1202         * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
1203         with a range is transformed into a positional aggregate, any copied
1204         component literals should be marked Is_Static_Expression.
1205
1206         * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
1207         not being known at at compile time when Configurable_Run_Time_Mode is
1208         true.
1209
1210 2008-08-22  Robert Dewar  <dewar@adacore.com>
1211
1212         * exp_attr.adb:
1213         (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
1214         Read or Input attribute.
1215
1216 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
1217
1218         * sem_ch8.adb (Use_One_Type): when checking which of two use_type
1219         clauses in related units is redundant, if one of the units is a package
1220         instantiation, use its instance_spec to determine which unit is the
1221         ancestor of the other.
1222
1223 2008-08-22  Javier Miranda  <miranda@adacore.com>
1224
1225         * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
1226         attributes add missing support to handle designated types that come
1227         from the limited view.
1228
1229         * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
1230
1231 2008-08-22  Sergey Rybin  <rybin@adacore.com>
1232
1233         * vms_data.ads: Add entry for new gnatcheck -mNNN option
1234
1235         * gnat_ugn.texi: Add description for gnatcheck option '-m'
1236
1237 2008-08-22  Sergey Rybin  <rybin@adacore.com>
1238
1239         * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
1240         acoording to the latest changes in the metric rule interface
1241
1242 2008-08-22  Vincent Celier  <celier@adacore.com>
1243
1244         * make.adb (Check.File_Not_A_Source_Of): New Boolean function
1245         (Check): Check if the file names registered in the ALI file for the
1246         spec, the body and each of the subunits are the ones expected.
1247
1248 2008-08-22  Robert Dewar  <dewar@adacore.com>
1249
1250         * g-catiio.adb: Code cleanup.
1251
1252 2008-08-20  Vincent Celier  <celier@adacore.com>
1253
1254         * make.adb (Gnatmake): Remove extra space in version line
1255
1256         * ali.adb:
1257         (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
1258         as the name may already have been entered in the table by the Project
1259         Manager.
1260
1261 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
1262
1263         * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
1264         weak symbols so we use the version provided by MaRTE when available.
1265
1266 2008-08-20  Emmanuel Briot  <briot@adacore.com>
1267
1268         * g-catiio.ads, g-catiio.adb:
1269         (Value): Avoid an unnecessary system call to Clock in most cases.
1270         This call is only needed when only the time is provided in the string,
1271         and ignored in all other cases. This is more efficient.
1272
1273 2008-08-20  Eric Botcazou  <ebotcazou@adacore.com>
1274
1275         * raise-gcc.c: Fix formatting nits.
1276
1277 2008-08-20  Robert Dewar  <dewar@adacore.com>
1278
1279         * sem_ch13.adb:
1280         (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
1281         non-existing component clause.
1282
1283         * exp_ch5.adb: Minor reformatting
1284
1285         * g-comlin.adb: Minor reformatting
1286
1287         * make.adb: Minor reformatting
1288
1289         * prj-proc.adb: Minor reformatting
1290
1291         * stylesw.ads: Minor reformatting
1292
1293 2008-08-20  Vincent Celier  <celier@adacore.com>
1294
1295         * make.adb (Gnatmake_Switch_Found): New Boolean global variable
1296         (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
1297         (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
1298          defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
1299         and a switch is not recognized by gnatmake.
1300         (Gnatmake): Implement new scheme for gnatmake switches and global
1301         compilation switches.
1302         (Switches_Of): Try successively Switches (<file name>),
1303         Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
1304
1305 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1306
1307         * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
1308         implement style check that overriding operations are explicitly marked
1309         at such.
1310
1311         * style.ads (Missing_Overriding): new procedure that provides interface
1312         to previous one.
1313
1314         * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
1315         that the declaration or body of overriding operations carries an
1316         explicit overriding indicator.
1317
1318         * sem_ch8.adb
1319         (Analyze_Subprogram_Renaming): if operation is overriding, check whether
1320         explicit indicator should be present.
1321
1322         * sem_ch6.adb (Verify_Overriding_Indicator,
1323         Check_Overriding_Indicator): If operation is overriding, check whether
1324         declaration and/or body of subprogram should be present
1325
1326 2008-08-20  Vincent Celier  <celier@adacore.com>
1327
1328         * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
1329         gprbuild when casing is MixedCase, whatever the casing of the letters
1330         in the file name.
1331
1332 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
1333
1334         * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
1335         creating dummy init proc.
1336         (Requires_Init_Proc): Return False in the case No_Default_Initialization
1337         is in force and the type does not have associated default
1338         initialization. Move test of Is_Public (with tests of restrictions
1339         No_Initialize_Scalars and No_Default_Initialization) to end, past tests
1340         for default initialization.
1341
1342 2008-08-20  Jerome Lambourg  <lambourg@adacore.com>
1343
1344         * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
1345         of any alias or prefix but having attached parameters (as \"-O2\").
1346
1347 2008-08-20  Robert Dewar  <dewar@adacore.com>
1348
1349         * s-fileio.adb: Minor reformatting
1350
1351 2008-08-20  Thomas Quinot  <quinot@adacore.com>
1352
1353         * exp_strm.adb (Build_Elementary_Input_Call,
1354         Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
1355         selects the stream attribute routines for long float types.
1356
1357 2008-08-20  Vincent Celier  <celier@adacore.com>
1358
1359         * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
1360
1361         * prj.ads (Array_Data): Add a component Location
1362
1363 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1364
1365         * sem_prag.adb:
1366         (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
1367         argument for ASIS and navigation use.
1368
1369 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1370
1371         * einfo.ads: Add comment.
1372
1373 2008-08-20  Bob Duff  <duff@adacore.com>
1374
1375         * sem_eval.ads: Minor comment fix.
1376
1377 2008-08-20  Bob Duff  <duff@adacore.com>
1378
1379         * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
1380         folding. We were folding things like "False and then ...", but not
1381         "X and then ..." where X is a constant whose value is known at compile
1382         time.
1383
1384 2008-08-20  Hristian Kirtchev  <kirtchev@adacore.com>
1385
1386         * exp_ch5.adb (Controlled_Type): New routine.
1387         (Expand_N_Extended_Return_Statement): When generating a move of the
1388         final list in extended return statements, check the type of the
1389         function and in the case of double expanded return statements, the type
1390         of the returned object.
1391         (Expand_Simple_Function_Return): Perform an interface conversion when
1392         the type of the returned object is an interface and the context is an
1393         extended return statement.
1394
1395 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1396
1397         * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
1398         and the full view is visible, set flag on full view as well.
1399
1400 2008-08-20  Thomas Quinot  <quinot@adacore.com>
1401
1402         * g-comlin.adb: Minor reformatting
1403         Minor code reorganization.
1404
1405         * freeze.adb: Minor reformatting
1406
1407 2008-08-20  Vincent Celier  <celier@adacore.com>
1408
1409         * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
1410         source of another project.
1411
1412 2008-08-20  Pascal Obry  <obry@adacore.com>
1413
1414         * s-os_lib.ads: Minor reformatting.
1415
1416 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
1417
1418         * gnatvsn.ads: Minor reformatting.
1419
1420 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
1421
1422         * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
1423         system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
1424         g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
1425         mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
1426         exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
1427         g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
1428         s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
1429         sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
1430         s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
1431         g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
1432         g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
1433         g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
1434         live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
1435         g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
1436         s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
1437         g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
1438         s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
1439         g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
1440         osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
1441         system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
1442         i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
1443         s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
1444         a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
1445         s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
1446         a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
1447         g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
1448         a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
1449         a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
1450         lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
1451         s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
1452         par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
1453         a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
1454         system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
1455         s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
1456         a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
1457         mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
1458         s-poosiz.adb, link.c: Fix copyright notice.
1459
1460 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
1461
1462         * g-comlin.ads: Update comments.
1463
1464 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1465
1466         * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
1467
1468 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
1469
1470         * exp_ch11.adb:
1471         (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
1472         Make_Implicit_Exception_Handler when rewriting an exception handler with
1473         a choice parameter, and pass the handler's Sloc instead of that of the
1474         handled sequence of statements. Make_Implicit_Exception_Handler sets the
1475         Sloc to No_Location (unless debugging generated code), which we don't
1476         want for the case of a user handler.
1477
1478 2008-08-20  Robert Dewar  <dewar@adacore.com>
1479
1480         * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
1481
1482         * sem_ch13.adb:
1483         (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
1484         now labeled as info msgs, not warnings.
1485
1486         * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
1487
1488         * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
1489
1490         * a-textio.adb: Remove redundant test.
1491
1492         * a-witeio.adb: Minor code reorganization
1493         Remove redundant test found working on another issue
1494
1495         * a-ztexio.adb: Minor code reorganization
1496         Remove redundant test found working on another issue
1497
1498 2008-08-20  Thomas Quinot  <quinot@adacore.com>
1499
1500         * s-fileio.adb (Open) Use C helper function to determine whether a
1501         given errno value corresponds to a "file not found" error.
1502
1503         * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
1504
1505 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
1506
1507         * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
1508         to get access to the per-task errno variable.
1509         (__set_errno for MaRTE): Do not redefine this function here since it is
1510         already defined in MaRTE.
1511
1512 2008-08-20  Tristan Gingold  <gingold@adacore.com>
1513
1514         * gnat_ugn.texi: Gcov is not supported on static library on AIX.
1515
1516 2008-08-20  Robert Dewar  <dewar@adacore.com>
1517
1518         * freeze.adb: Minor reformatting
1519
1520         * g-comlin.adb: Minor reformatting
1521
1522         * g-socket.adb: Minor reformatting
1523
1524         * g-socthi-mingw.adb: Minor reformatting
1525
1526         * g-stheme.adb: Minor reformatting
1527
1528 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1529
1530         * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
1531         exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
1532         confusion between partial and full views of an ancestor of the context
1533         type when the parent is a private extension declared in a parent unit,
1534         and full views are available for the context type.
1535
1536 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
1537             Robert Dewar  <dewar@adacore.com>
1538
1539         PR ada/30827
1540         * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
1541         version string.
1542         Move comment in the right place.
1543         * g-comver.adb (Version): Look for a zero-termination in
1544         addition to a closing parenthesis.
1545
1546 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
1547
1548         * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
1549         * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
1550         * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
1551         Is_Package_Or_Generic_Package instead of hand-crafted tests.
1552
1553 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
1554
1555         PR ada/15808
1556         * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
1557         as well.
1558
1559 2008-08-17  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1560
1561         * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
1562
1563 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1564
1565         * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
1566         for back-copy statements in lieu of that of the actual.
1567
1568 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1569
1570         PR ada/20548
1571         * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
1572         setjmp test consistently.  Adjust for new behavior of flag_stack_check.
1573         * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
1574         test of flag_stack_check.  Adjust for new behavior of flag_stack_check.
1575
1576 2008-08-13  Samuel Tardieu  <sam@rfc1149.net>
1577
1578         PR ada/36777
1579         * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
1580         * sem_attr.adb (Check_Type): The current instance of a protected
1581         object is not a type name.
1582         (Analyze_Access_Attribute): Accept instances of protected objects.
1583         (Analyze_Attribute, Attribute_Address clause): Ditto.
1584         * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
1585         the prefix as being the current instance if needed.
1586
1587 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
1588
1589         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
1590         Remove duplicate s-win32.o. Add s-winext.o.
1591
1592 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
1593
1594         * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
1595         with SOSC.SOCK__STREAM.
1596         * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
1597         SOSC.MSG_OOB.
1598
1599 2008-08-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
1600
1601         * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
1602         * gsocket.h, socket.c: Update to support RTEMS.
1603         * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
1604
1605 2008-08-10  Samuel Tardieu  <sam@rfc1149.net>
1606             Robert Dewar <dewar@adacore.com>
1607
1608         * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
1609         left argument even when right argument is 0.
1610         (Expand_N_Op_Mod): Ditto when right argument is 1.
1611         (Expand_N_Op_Multiply): Ditto when any argument is 0.
1612         (Expand_N_Op_Rem): Ditto when right argument is 1.
1613
1614 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1615
1616         * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
1617         by warn_unused.
1618
1619 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
1620
1621         * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
1622         from Freeze_Entity. Used to generate cross-reference information for
1623         types declared in generic packages.
1624
1625 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1626
1627         * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
1628         compatibility shim.
1629
1630 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1631
1632         * gsocket.h:
1633         On Windows, include <errno.h> and redefine only selected errno values
1634         from their <winsock2.h> definitions.
1635
1636         * s-osinte-freebsd.ads: Minor reformatting
1637
1638         * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
1639
1640         * g-soccon.ads: New file.
1641
1642         * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
1643         g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
1644         g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
1645         g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
1646         unit, to allow building software that depends on this internal unit
1647         with both older and newer compilers.
1648
1649 2008-08-08  Robert Dewar  <dewar@adacore.com>
1650
1651         * s-strxdr.adb: Minor reformatting
1652
1653 2008-08-08  Bob Duff  <duff@adacore.com>
1654
1655         * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
1656         checking for integer operations (including division by zero)", which
1657         is wrong -- divide by zero is not part of overflow checking.
1658         Also added misc clarification about what check-suppression means.
1659
1660         * gnat_rm.texi: Clarify the meaning of pragma Suppress.
1661
1662 2008-08-08  Jerome Lambourg  <lambourg@adacore.com>
1663
1664         * g-comlin.adb (Add_Switch): Handle addition of switches at the
1665         begining of the command line.
1666         (Append, Add): Renaming of Append to Add as this now allows addition
1667         at the begining of the list.
1668
1669         * g-comlin.ads (Add_Switch): Handle addition of switches at the
1670         begining of the command line.
1671
1672 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1673
1674         * g-sercom.ads:
1675         (Name): Document application scope (only legacy PC serial ports on
1676         Linux and Windows).
1677
1678 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1679
1680         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1681         previous change, not needed after all.
1682
1683 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
1684
1685         * exp_ch4.adb (Expand_Allocator_Expression): add check if null
1686         exclusion indicator is present
1687
1688 2008-08-08  Robert Dewar  <dewar@adacore.com>
1689
1690         * g-comlin.adb: Minor code reorganization
1691         Minor reformatting
1692
1693         * g-comlin.ads: Minor reformatting
1694
1695         * s-fileio.adb: Minor reformatting
1696
1697         * sem_attr.adb: Minor code reorganization (use Nkind_In)
1698         Minor reformatting
1699
1700 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
1701
1702         * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
1703         with s-oscons-tmplt.i.
1704
1705 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
1706
1707         * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
1708
1709 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1710
1711         * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
1712         of incomplete type.
1713
1714         * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
1715         of a formal parameter of an incomplete type. Improve error message for
1716         other improper uses of incomplete types.
1717
1718 2008-08-06  Robert Dewar  <dewar@adacore.com>
1719
1720         * gnat_ugn.texi: Clarify -gnato documentation
1721
1722 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1723
1724         * gcc-interface/Makefile.in,
1725         g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
1726         g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
1727         g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
1728         g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
1729         g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
1730         g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
1731         g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
1732         g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
1733         g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
1734         Remove GNAT.Sockets.Constants. This internal package is replaced by
1735         System.OS_Constants.
1736
1737 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1738
1739         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
1740         Remove obsolete targets referencing gen-soccon
1741         When generating s-oscons.ads, use a file name that includes the
1742         THREAD_KIND, to ensure that the (potentially different) version from a
1743         previous build with a different threads flavour does not get reused.
1744
1745 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1746
1747         * sem_res.adb: Minor reformatting
1748
1749         * s-fileio.adb (Open): When file open operation fails, raise Name_Error
1750         only when the operating system reports a non-existing file or directory
1751         (ENOENT), otherwise raise Name_Error.
1752
1753         * exp_ch11.adb: Minor reformatting
1754
1755 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1756
1757         * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
1758         incomplete, add the access_to_subprogram type to the list of private
1759         dependents only if the incomplete type will be completed in the current
1760         scope.
1761         (Build_Discriminant_Constraints): If the type of the discriminant is
1762         access_to_variable, reject a constraint that is access_to_constant.
1763
1764 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1765
1766         * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
1767         g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
1768         g-sttsne-dummy.ads: New files.
1769
1770         * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
1771         with pragma Unimplemented_Unit for sockets packages on Nucleus.
1772
1773 2008-08-06  Pascal Obry  <obry@adacore.com>
1774
1775         * adaint.c: Another fix for ACL support on Windows.
1776
1777 2008-08-06  Javier Miranda  <miranda@adacore.com>
1778
1779         * exp_disp (Expand_Interface_Actuals): Adds missing support for
1780         expansion of calls to subprograms using selected components.
1781
1782 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1783
1784         * sem_res.adb (Resolve_Call): Use base type to determine whether a
1785         dereference is needed because a subtype of an access_to_subprogram is
1786         simply an access-subtype
1787
1788 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
1789
1790         * g-comlin.adb (Set_Command_Line): Now that aliases can contain
1791         parameters, always specify the expected separator.
1792
1793 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1794
1795         * xnmake.adb: Use new XUtil package for platform independent text
1796         output.
1797
1798 2008-08-06  Vincent Celier  <celier@adacore.com>
1799
1800         * gnat_ugn.texi: Document compiler switch -gnateG
1801
1802 2008-08-06  Quentin Ochem  <ochem@adacore.com>
1803
1804         * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
1805         in the case of an empty pattern size.
1806         (Compute_Result): Do not do any computation in the case of an empty
1807         pattern size.
1808         (Report_Result): Fixed computation of the overflow guard.
1809
1810 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1811
1812         * g-awk.adb (Finalize): Do not use directly objects of the type in the
1813         finalization routine to prevent elaboration order anomalies in new
1814         finalization scheme.
1815
1816 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1817
1818         * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
1819         declaration for the same type.
1820
1821 2008-08-06  Thomas Quinot  <quinot@adacore.com>
1822
1823         * sem.adb: Minor rewording (comment)
1824
1825 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
1826
1827         * g-comlin.adb (Define_Switch, Get_Switches): New.
1828         (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
1829         ungrouping switches.
1830         (For_Each_Simple_Switch): Allow more control over parameters handling.
1831         This generic method now allows ungrouping of switches with parameters
1832         and switches with more than one letter after the prefix.
1833         (Set_Command_Line): Take care of switches that are prefixed with a
1834         switch handling parameters without delimiter (-gnatya and -gnaty3 for
1835         example).
1836         (Add_Switch, Remove_Switch): Handle parameters possibly present inside
1837         a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
1838         the operation.
1839         (Start, Alias_Switches, Group_Switches): Take care of parameters
1840         possibly present inside a group.
1841
1842         * g-comlin.ads (Define_Switch): New method used to define a list of
1843         expected switches, that are necessary for correctly ungrouping switches
1844         with more that one character after the prefix.
1845         (Get_Switches): Method that builds a getopt string from the list of
1846         switches as set previously by Define_Switch.
1847         (Add_Switch, Remove_Switch): New versions of the methods, reporting the
1848         status of the operation. Also allow the removal of switches with
1849         parameters only.
1850         (Command_Line_Configuration_Record): Maintain a list of expected
1851         switches.
1852
1853 2008-08-06  Doug Rupp  <rupp@adacore.com>
1854
1855         * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
1856         TARGET_MALLOC64 clear.
1857
1858         * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
1859         if TARGET_MALLOC64 clear.
1860
1861         * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
1862         (TARGET_MALLC64): New macro. Default to clear.
1863
1864 2008-08-06  Doug Rupp  <rupp@adacore.com>
1865
1866         * gcc-interface/utils2.c (snames.h) Include
1867         (TARGET_ABI_OPEN_VMS): Initialize.
1868         (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
1869         for Convention C.
1870
1871 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
1872
1873         * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
1874         null exclusion in a discriminant declaration
1875
1876         * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
1877         indicators when type is not an access type.
1878
1879         * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
1880         indicators when type is not an access type.
1881
1882 2008-08-06  Javier Miranda  <miranda@adacore.com>
1883
1884         * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
1885         with the target interface before expanding the code of the interface
1886         conversion.
1887
1888 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1889
1890         * freeze.adb:
1891         (Freeze_Entity): A deferred constant does not violate the restriction
1892         No_Default_Initialization,
1893
1894         * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
1895         can carry a null exclusion indicator, and on which an error may be
1896         posted if the indicator is redundant.
1897
1898         * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
1899         does not apply to a subtype mark that already excludes null.
1900
1901         * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
1902         exclusion does not apply to a subtype mark that already excludes null.
1903
1904 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1905
1906         * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
1907
1908 2008-08-05  Doug Rupp  <rupp@adacore.com>
1909
1910         * vms_data.ads: Translation for /POINTER_SIZE qualifier.
1911
1912 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1913
1914         * gsocket.h: Make this file includable in a Nucleus environment, which
1915         does not support sockets.
1916
1917         * socket.c: Remove Nucleus-specific hack.
1918
1919 2008-08-05  Pascal Obry  <obry@adacore.com>
1920
1921         * adaint.c: Remove support for readable attribute on vxworks and nucleus
1922
1923 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
1924
1925         * sem_attr.adb:
1926         (Analyze_Attribute, case 'Result): handle properly the case where some
1927         operand of the expression in a post-condition generates a transient
1928         block.
1929
1930         * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
1931         right-hand side when it is an anonymous access_to_subprogram, to force
1932         static accessibility check when needed.
1933
1934 2008-08-05  Sergey Rybin  <rybin@adacore.com>
1935
1936         * gnat_ugn.texi: Changing the description of the gnatcheck metrics
1937         rule according to the change in the rule option.
1938         Add documentation for -gnatw.b/-gnatw.B
1939
1940 2008-08-05  Robert Dewar  <dewar@adacore.com>
1941
1942         * ug_words: Add entries for -gnatw.b/-gnatw.B
1943
1944         * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
1945
1946 2008-08-05  Vincent Celier  <celier@adacore.com>
1947
1948         * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
1949         (File).
1950
1951         * a-ztdeio.adb: Ditto.
1952
1953 2008-08-05  Pascal Obry  <obry@adacore.com>
1954
1955         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
1956         readable attribute.
1957
1958 2008-08-05  Vincent Celier  <celier@adacore.com>
1959
1960         * s-wchwts.adb:
1961         (Wide_String_To_String): Returns a String with the same 'First as its
1962         parameter S.
1963         (Wide_Wide_String_To_String): Ditto
1964
1965         * s-wchwts.ads:
1966         (Wide_String_To_String): Document that the lowest index of the returned
1967         String is equal to S'First.
1968
1969 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1970
1971         * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
1972
1973         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
1974         s-oscons.ads
1975
1976 2008-08-05  Robert Dewar  <dewar@adacore.com>
1977
1978         * opt.ads (Warn_On_Biased_Representation): New flag
1979
1980         * sem_ch13.adb:
1981         (Analyze_Attribute_Definition_Clause): Issue warning when biased
1982         representation is required.
1983         (Minimum_Size): Don't allow biasing if enum rep clause case
1984
1985         * sem_warn.adb:
1986         (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
1987         (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
1988
1989         * usage.adb: Add lines for -gnatw.b/B switches
1990
1991 2008-08-05  Pascal Obry  <obry@adacore.com>
1992
1993         * a-coinve.adb: Reorder the code to avoid uninitialized warning.
1994
1995         * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
1996
1997 2008-08-05  Thomas Quinot  <quinot@adacore.com>
1998
1999         * socket.c: Minor reformatting.
2000
2001 2008-08-05  Robert Dewar  <dewar@adacore.com>
2002
2003         * sem_ch3.adb: Minor reformatting
2004
2005         * prj-nmsc.adb: Minor reformatting
2006
2007 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
2008
2009         * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
2010         visibility check on the component type if the simple test fails.
2011
2012 2008-08-05  Jose Ruiz  <ruiz@adacore.com>
2013
2014         * init.c (__gnat_install_handler for linux): If we are building the
2015         Xenomai run time then we need to do two additional things: avoid
2016         memory swapping and transform the Linux environment task into a native
2017         Xenomai task.
2018
2019         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
2020         time): Use interface to Xenomai native skin and avoid linux-specific
2021         way of setting CPU affinity.
2022         (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
2023
2024 2008-08-05  Bob Duff  <duff@adacore.com>
2025
2026         * checks.ads: Minor comment fix
2027
2028 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2029
2030         * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
2031         g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
2032         CS8.
2033
2034 2008-08-05  Robert Dewar  <dewar@adacore.com>
2035
2036         * mlib.adb: Minor code reorganization
2037         Minor reformatting
2038
2039         * make.adb: Minor reformatting
2040
2041         * prj-attr.ads: Minor reformatting
2042
2043         * s-os_lib.adb: Minor reformatting
2044
2045         * s-fileio.adb: Minor code reorganization
2046         Minor reformatting
2047
2048         * prj.ads: Minor reformatting
2049
2050 2008-08-05  Bob Duff  <duff@adacore.com>
2051
2052         * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
2053         unresolved initial value of "null", because it causes implicitly
2054         generated "=" operators to be ambiguous, and because this type should
2055         not be passed to gigi.
2056
2057 2008-08-05  Vincent Celier  <celier@adacore.com>
2058
2059         * mlib.adb: Update comments.
2060
2061         * make.adb (Switches_Of): Check for Switches (others), before checking
2062         for Default_Switches ("Ada").
2063         (Gnatmake): Use Builder'Switches (others) in preference to
2064         Builder'Default_Switches ("Ada") if there are several mains.
2065
2066         * prj-attr-pm.adb:
2067         (Add_Attribute): Add component Others_Allowed in Attribute_Record
2068         aggregate.
2069
2070         * prj-attr.adb:
2071         Add markers to indicates that attributes Switches allow others as index
2072         (Others_Allowed_For): New Boolean function, returning True for
2073         attributes with the mark.
2074         (Initialize): Recognize optional letter 'O' as the marker for
2075         associative array attributes where others is allowed as the index.
2076
2077         * prj-attr.ads:
2078         (Others_Allowed_For): New Boolean function
2079         (Attribute_Record): New Boolean component Others_Allowed
2080
2081         * prj-dect.adb:
2082         (Parse_Attribute_Declaration): For associative array attribute where
2083         others is allowed as the index, allow others as an index.
2084
2085         * prj-nmsc.adb:
2086         (Process_Binder): Skip associative array attributes with index others
2087         (Process_Compiler): Ditto
2088
2089         * prj-util.adb:
2090         (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
2091         index is All_Other_Names.
2092
2093         * prj.ads:
2094         (All_Other_Names): New constant
2095
2096         * prj-proc.adb:
2097         (Process_Declarative_Items): Skip associative array attribute when index
2098         is reserved word "others".
2099
2100 2008-08-05  Vasiliy Fofanov  <fofanov@adacore.com>
2101
2102         * gen-oscons.c: Adapt for VMS where termios.h is not available.
2103
2104 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2105
2106         * a-rttiev.adb: Minor reformatting (comments)
2107
2108         * gen-soccon.c: Rename to gen-oscons.c
2109
2110         * gen-oscons.c: New file. Now generate System.OS_Constants instead of
2111         GNAT.Sockets.Constants.
2112         Add new constants for GNAT.Serial_Communications and System.File_IO.
2113
2114 2008-08-05  Javier Miranda  <miranda@adacore.com>
2115
2116         * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
2117         * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
2118         implementation of this routine has been simplified.
2119
2120 2008-08-05  Pascal Obry  <obry@adacore.com>
2121
2122         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
2123         Set_Read_Only Win32 implementation.
2124
2125 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2126
2127         * exp_strm.adb: Minor reformatting (comments)
2128
2129         * sem_ch12.adb: Minor reformatting.
2130
2131 2008-08-05  Robert Dewar  <dewar@adacore.com>
2132
2133         * sem_ch3.adb: Minor reformatting
2134
2135         * checks.adb: Minor reformatting
2136
2137 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2138
2139         * tbuild.ads (New_External_Name): Update spec to reflect relaxed
2140         restriction on Prefix.
2141
2142 2008-08-05  Jerome Lambourg  <lambourg@adacore.com>
2143
2144         * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
2145         methods needed to handle switch sections when building a command line.
2146         (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
2147         Current_Section): New public methods or methods modified to handle
2148         building command lines with sections.
2149         (Set_Command_Line): Take into account sections when analysing a switch
2150         string.
2151         (Start): Sort the switches by sections before iterating the command line
2152         elements.
2153
2154         * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
2155         Is_New_Section, Current_Section): New methods or methods modified to
2156         handle building command lines with sections.
2157
2158 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
2159
2160         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
2161         discriminants, indicate that the corresponding object declaration has
2162         no initialization, to prevent spurious warnings when the access type is
2163         null-excluding.
2164
2165 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
2166
2167         * sem_res.adb (Resolve_Call): If this is a call to the predefined
2168         Abort_Task, warn if the call appears within a protected operation.
2169
2170 2008-08-04  Robert Dewar  <dewar@adacore.com>
2171
2172         * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
2173
2174 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2175
2176         * sem_ch3.adb:
2177         (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
2178         anonymous access to protected subprogram that is the return type of the
2179         specification of a subprogram body.
2180
2181         * sem_ch6.adb:
2182         (Analyze_Subprogram_Body): if the return type is an anonymous access to
2183         subprogram, freeze it now to prevent access anomalies in the back-end.
2184
2185         * exp_ch9.adb: Minor code cleanup.
2186         Make sure that new declarations are inserted into the tree before
2187         analysis (from code reading).
2188
2189 2008-08-04  Robert Dewar  <dewar@adacore.com>
2190
2191         * exp_ch5.adb:
2192         (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
2193         at point of return.
2194
2195 2008-08-04  Thomas Quinot  <quinot@adacore.com>
2196
2197         * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
2198
2199 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
2200
2201         * g-soccon-mingw.ads: Fix value for MSG_WAITALL
2202
2203 2008-08-04  Javier Miranda  <miranda@adacore.com>
2204
2205         * sem_prag.adb (Process_Convention): Add missing support for
2206          N_Private_Extension_Declaration nodes.
2207
2208 2008-08-04  Robert Dewar  <dewar@adacore.com>
2209
2210         * exp_ch4.adb: Minor reformatting
2211
2212 2008-08-04  Pascal Obry  <obry@adacore.com>
2213
2214         * adaint.h: Add missing prototype.
2215
2216         * adaint.c: Refine support for Windows file attributes.
2217
2218 2008-08-04  Robert Dewar  <dewar@adacore.com>
2219
2220         * sem_res.adb:
2221         (Valid_Conversion): Catch case of designated types having different
2222         sizes, even though they statically match.
2223
2224 2008-08-04  Javier Miranda  <miranda@adacore.com>
2225
2226         * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
2227         added in previous patch to handle access to subprograms.
2228
2229 2008-08-04  Robert Dewar  <dewar@adacore.com>
2230
2231         * freeze.adb:
2232         (Freeze_Entity): Only check No_Default_Initialization restriction for
2233         constructs that come from source
2234
2235 2008-08-04  Thomas Quinot  <quinot@adacore.com>
2236
2237         * exp_ch6.adb: Minor comment fix.
2238
2239         * sem_ch4.adb: Minor reformatting.
2240
2241 2008-08-04  Robert Dewar  <dewar@adacore.com>
2242
2243         * sem_res.adb: (Large_Storage_Type): Improve previous change.
2244
2245 2008-08-04  Pascal Obry  <obry@adacore.com>
2246
2247         * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
2248         file attributes.
2249
2250 2008-08-04  Javier Miranda  <miranda@adacore.com>
2251
2252         * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
2253         for N_Formal_Object_Declaration nodes. Adding kludge required by
2254         First_Formal to provide its functionality with access to functions.
2255         (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
2256         for anonymous access types returned by functions.
2257
2258         * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
2259         conversion of null-excluding access types (required only once to force
2260         the generation of the required runtime check).
2261
2262         * sem_type.adb (Covers): minor reformating
2263
2264         * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
2265         with internally generated nodes. Avoid generating the error inside init
2266         procs.
2267
2268         * sem_res.adb (Resolve_Membership_Test): Minor reformating.
2269         (Resolve_Null): Generate the null-excluding check in case of assignment
2270         to a null-excluding object.
2271         (Valid_Conversion): Add missing support for anonymous access to
2272         subprograms.
2273
2274         * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
2275         anonymous access types whose designated type is an itype. This case
2276         occurs with anonymous access to protected subprograms types.
2277         (Analyze_Return_Type):  Add missing support for anonymous access to
2278         protected subprogram.
2279
2280         * sem_eval.adb (Subtypes_Statically_Match): In case of access to
2281         subprograms addition of missing check on matching convention. Required
2282         to properly handle access to protected subprogram types.
2283
2284         * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
2285         null excluding access types.
2286
2287 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2288
2289         * sem_ch12.adb: Add comments
2290
2291         * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
2292         access type and the allocator is not initialized, warn rather than
2293         reporting an error.
2294
2295 2008-08-04  Robert Dewar  <dewar@adacore.com>
2296
2297         * exp_ch4.adb: Minor reformatting
2298
2299         * exp_dist.adb: Minor reformatting
2300
2301         * g-comlin.adb: Minor reformatting
2302
2303 2008-08-04  Gary Dismukes  <dismukes@adacore.com>
2304
2305         * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
2306         target to the type of the aggregate in the case where the target object
2307         is class-wide.
2308
2309         * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
2310         result type is class-wide and inherently limited, and the expression
2311         has a specific type, create a return object of the specific type, for
2312         more efficient handling of returns of build-in-place aggregates (avoids
2313         conversions of the class-wide return object to the specific type on
2314         component assignments).
2315
2316         * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
2317         about a type mismatch for a class-wide function with a return object
2318         having a specific type when the object declaration doesn't come from
2319         source. Such an object can result from the expansion of a simple return.
2320
2321 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
2322
2323         * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
2324
2325         * gcc-interface/Makefile.in: Use 64bit-specific system files when
2326         compiling for 64bit windows.
2327
2328 2008-08-04  Jerome Lambourg  <lambourg@adacore.com>
2329
2330         * g-comlin.adb (Group_Switches): Preserve the switch order when
2331         grouping and allow switch grouping of switches with more than one
2332         character extension (e.g. gnatw.x).
2333         (Args_From_Expanded): Remove this now obsolete method.
2334
2335 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2336
2337         * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
2338         chain at once, to ensure that type is properly decorated for back-end,
2339         when allocator appears within a loop.
2340
2341 2008-08-04  Kevin Pouget  <pouget@adacore.com>
2342
2343         * snames.h, snames.adb, snames.ads:
2344         Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
2345
2346         * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
2347         Build_To_Any_Call and Build_TypeCode_Call procedures.
2348
2349         * exp_attr.adb, sem_attr.adb: Add corresponding cases.
2350
2351         * rtsfind.ads: Add corresponding names.
2352
2353         * tbuild.adb: Update prefix restrictions to allow '_' character.
2354
2355 2008-08-04  Doug Rupp  <rupp@adacore.com>
2356
2357         * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
2358         * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
2359         * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
2360         use it.  Calculate pointer range overflow using 64bit types.
2361
2362 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2363
2364         * sem_ch3.adb (Access_Definition): A formal object declaration is a
2365         legal context for an anonymous access to subprogram.
2366
2367         * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
2368         indirect call, report success to the caller to include possible
2369         interpretation.
2370
2371         * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
2372         check when the type
2373         of the extended return is an anonymous access_to_subprogram type.
2374
2375         * sem_res.adb:
2376         (Resolve_Call): Insert a dereference if the type of the subprogram is an
2377         access_to_subprogram and the context requires its return type, and a
2378         dereference has not been introduced previously.
2379
2380 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
2381
2382         * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
2383         gnatcheck support in GPS.
2384
2385 2008-08-04  Vincent Celier  <celier@adacore.com>
2386
2387         * mlib.adb (Create_Sym_Links): Create relative symbolic links when
2388         requested
2389
2390 2008-08-04  Vincent Celier  <celier@adacore.com>
2391
2392         * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
2393         variable, but don't check the resulting value as it has no impact on
2394         the processing.
2395
2396         * opt.ads:
2397         (Generate_Processed_File): New Boolean flag, set to True in the compiler
2398         when switch -gnateG is used.
2399
2400         * prep.adb:
2401         (Preprocess): new Boolean out parameter Source_Modified. Set it to True
2402         when the source is modified by the preprocessor and there is no
2403         preprocessing errors.
2404
2405         * prep.ads (Preprocess): new Boolean out parameter Source_Modified
2406
2407         * sinput-l.adb:
2408         (Load_File): Output the result of preprocessing if the source text was
2409         modified.
2410
2411         * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
2412
2413         * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
2414
2415         * ug_words: Add VMS equivalent for -gnateG
2416
2417         * vms_data.ads:
2418         Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
2419
2420 2008-08-04  Doug Rupp  <rupp@adacore.com>
2421
2422         * gcc-interface/utils2.c:
2423         (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
2424         in 32bit descriptor.
2425
2426 2008-08-04  Robert Dewar  <dewar@adacore.com>
2427
2428         * par-ch10.adb: Minor reformatting
2429
2430         * i-cobol.adb: Minor reformatting.
2431
2432 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2433
2434         * sem_ch3.adb (Access_Definition): Create an itype reference for an
2435         anonymous access return type of a regular function that is not a
2436         compilation unit.
2437
2438 2008-08-04  Vincent Celier  <celier@adacore.com>
2439
2440         * prj-attr.adb: New Builder attribute Global_Compilation_Switches
2441
2442         * snames.adb: New standard name Global_Compilation_Switches
2443
2444         * snames.ads: New standard name Global_Compilation_Switches
2445
2446         * make.adb: Correct spelling error in comment
2447
2448 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
2449
2450         * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
2451         target.
2452
2453 2008-08-04  Thomas Quinot  <quinot@adacore.com>
2454
2455         * sem_ch10.adb: Minor comment fix.
2456
2457 2008-08-04  Robert Dewar  <dewar@adacore.com>
2458
2459         * restrict.adb: Improved messages for restriction warnings
2460
2461         * restrict.ads: Improved messages for restriction messages
2462
2463         * s-rident.ads (Profile_Name): Add No_Profile
2464
2465 2008-08-04  Robert Dewar  <dewar@adacore.com>
2466
2467         * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
2468
2469 2008-08-04  Robert Dewar  <dewar@adacore.com>
2470
2471         * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
2472
2473 2008-08-04  Vincent Celier  <celier@adacore.com>
2474
2475         * prj-proc.adb:
2476         (Copy_Package_Declarations): When inheriting package Naming from a
2477         project being extended, do not inherit source exception names.
2478
2479 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2480
2481         * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
2482         list of declaration to find previous subprogram, do not go to the
2483         original node of a generic unit.
2484
2485 2008-08-02  Eric Botcazou  <ebotcazou@adacore.com>
2486
2487         * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
2488         New case.  Convert BOOLEAN_TYPE operation to the default integer type.
2489
2490 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
2491
2492         * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
2493         * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
2494         and adjust for above renaming.
2495         * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
2496         gnu_expr_alt_type parameter.  Convert the expression to it instead
2497         of changing its type in place.
2498         (build_function_stub): Adjust call to above function.
2499
2500 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
2501
2502         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
2503         code.  Do not get full definition of deferred constants with address
2504         clause for a use.  Do not ignore deferred constant definitions with
2505         address clause.  Ignore constant definitions already marked with the
2506         error node.
2507         <object>: Remove obsolete comment.  For a deferred constant with
2508         address clause, get the initializer from the full view.
2509         * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
2510         Rework and remove obsolete comment.
2511         <N_Object_Declaration>: For a deferred constant with address clause,
2512         mark the full view with the error node.
2513         * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
2514         formatting nits.
2515
2516 2008-08-01  Hristian Kirtchev  <kirtchev@adacore.com>
2517
2518         * rtsfind.ads: Add block IO versions of stream routines for Strings.
2519
2520         * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
2521         sem_prag.adb, snames.adb, snames.ads, snames.h,
2522         par-prag.adb: Undo previous stream related changes.
2523
2524         * s-rident.ads: Add new restriction No_Stream_Optimizations.
2525
2526         * s-ststop.ads, s-ststop.adb: Comment reformatting.
2527         Define enumeration type to designate different IO mechanisms.
2528         Enchance generic package Stream_Ops_Internal to include an
2529         implementation of Input and Output.
2530
2531         * exp_attr.adb (Find_Stream_Subprogram): If restriction
2532         No_Stream_Optimization is active, choose the default byte IO
2533         implementations of stream attributes for Strings.
2534         Otherwise use the corresponding block IO version.
2535
2536 2008-08-01  Olivier Hainque  <hainque@adacore.com>
2537
2538         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
2539         turn Ada Pure into GCC const, now implicitely implying nothrow as well.
2540
2541 2008-08-01  Robert Dewar  <dewar@adacore.com>
2542
2543         * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
2544         convert plain identifier into defining identifier.
2545
2546 2008-08-01  Robert Dewar  <dewar@adacore.com>
2547
2548         * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
2549         warnings
2550
2551         * lib-xref.adb: Add error defense.
2552
2553 2008-08-01  Bob Duff  <duff@adacore.com>
2554
2555         * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
2556
2557 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
2558
2559         * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
2560         correct accessibility levels. In the "when others" case, retrieve the
2561         access level of the Etype of Prev rather than Prev_Orig, because the
2562         original exression has not always been analyzed.
2563
2564 2008-08-01  Robert Dewar  <dewar@adacore.com>
2565
2566         * prj-nmsc.adb: Minor reformatting
2567
2568         * sem_ch4.adb: Minor reformatting
2569         Minor code reorganization
2570
2571         * prj.ads: Minor reformatting
2572
2573         * s-os_lib.adb: Minor reformatting
2574
2575         * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
2576         half encodings
2577
2578         * scans.ads: Minor reformatting.
2579
2580         * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
2581         (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
2582
2583         * sem_res.adb:
2584         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2585
2586         * sem_ch12.adb: Minor comment reformatting
2587
2588         * par-ch3.adb (P_Type_Declaration): Properly handle missing type
2589         keyword
2590
2591 2008-08-01  Robert Dewar  <dewar@adacore.com>
2592
2593         * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
2594         generating code
2595
2596 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2597
2598         * checks.adb (Apply_Float_Conversion_Check): If the expression to be
2599         converted is a real literal and the target type has static bounds,
2600         perform the conversion exactly to prevent floating-point anomalies on
2601         some targets.
2602
2603 2008-08-01  Vincent Celier  <celier@adacore.com>
2604
2605         * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
2606
2607         * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
2608
2609         * prj.adb (Object_Exist_For): Use Object_Generated, not
2610         Objects_Generated that is removed and was never modified anyway.
2611
2612         * prj.ads:
2613         (Path_Syntax_Kind): New enumeration type
2614         (Language_Config): New component Path_Syntax, defaulted to Host.
2615         Components PIC_Option and Objects_Generated removed, as they are not
2616         used.
2617
2618         * snames.adb: New standard name Path_Syntax
2619
2620         * snames.ads: New standard name Path_Syntax
2621
2622 2008-08-01  Vincent Celier  <celier@adacore.com>
2623
2624         * mlib-utl.adb:
2625         (Adalib_Path): New variable to store the path of the adalib directory
2626         when procedure Specify_Adalib_Dir is called.
2627         (Lib_Directory): If Adalib_Path is not null, return its value
2628         (Specify_Adalib_Dir): New procedure
2629
2630         * mlib-utl.ads (Specify_Adalib_Dir): New procedure
2631
2632 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2633
2634         * sem_prag.adb:
2635         (Check_Precondition_Postcondition): If not generating code, analyze the
2636         expression in a postcondition that appears in a subprogram body, so that
2637         it is properly decorated for ASIS use.
2638
2639 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
2640
2641         * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
2642         Orig_Prev to Prev in the case where the actual is N_Function_Call or
2643         N_Identifier. This was interfering with other cases that are rewritten
2644         as N_Identifier, such as allocators, resulting in passing of the wrong
2645         accessibility level, and based on testing this code is apparently no
2646         longer needed at all.
2647
2648 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2649
2650         * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
2651         procedure call whose prefix
2652         is a parameterless function call that returns an access_to_procedure.
2653
2654 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2655
2656         * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
2657         for RTX. Adding a suffix that is incremented at each iteration.
2658
2659 2008-08-01  Robert Dewar  <dewar@adacore.com>
2660
2661         * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
2662         Raise_Exception
2663
2664 2008-08-01  Jerome Lambourg  <lambourg@adacore.com>
2665
2666         * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
2667         paths, which are authorized by Windows but can lead to errors when used
2668         elsewhere.
2669
2670 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2671
2672         * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
2673         a pending instantiation for the body of a subprogram that is to be
2674         inlined.
2675
2676         * sem_ch12.adb:
2677         (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
2678
2679         * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2680         create a pending instance for its body, so that calls to the subprogram
2681         can be inlined by the back-end.
2682
2683 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2684
2685         * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
2686         rts-rtx-w32).
2687
2688 2008-08-01  Robert Dewar  <dewar@adacore.com>
2689
2690         * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
2691
2692 2008-08-01  Doug Rupp  <rupp@adacore.com>
2693
2694         * gnat_rm.texi: Document new mechanism Short_Descriptor.
2695
2696         * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
2697         mechanism values.
2698
2699         * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2700         mechanism and Short_Descriptor mechanism values.
2701
2702         * snames.adb (preset_names): Add short_descriptor entry.
2703
2704         * snames.ads: Add Name_Short_Descriptor.
2705
2706         * types.h: Add new By_Short_Descriptor mechanism values.
2707
2708         * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
2709         mechanism and Short_Descriptor mechanism values.
2710
2711         * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
2712         values.
2713         (Descriptor_Codes): Modify range for new mechanism values.
2714
2715         * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
2716         mechanism values.
2717
2718         * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
2719         (gnat_to_gnu_param): Handle By_Short_Descriptor.
2720
2721         * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
2722         (build_vms_descriptor32): New prototype.
2723         (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
2724
2725         * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
2726         argument in call fill_vms_descriptor.
2727
2728         * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
2729         build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
2730         (build_vms_descriptor): Renamed from build_vms_descriptor64.
2731         (convert_vms_descriptor32): New function.
2732         (convert_vms_descriptor64): New function.
2733         (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
2734         descriptors.
2735
2736         * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
2737         no longer needed.
2738
2739 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2740
2741         * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
2742         nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
2743         name.
2744
2745 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2746
2747         * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
2748         current directory so only fully qualified names are allowed.
2749
2750 2008-08-01  Robert Dewar  <dewar@adacore.com>
2751
2752         * gnat_ugn.texi:
2753         Minor editing, remove uncomfortable use of semicolon
2754
2755         * s-ststop.adb: Add some ??? comments
2756
2757         * sem_ch10.adb: Minor reformatting
2758
2759         * snames.ads:
2760         Minor comment fixes, some pragmas were not properly
2761         categorized in the comments, documentation change only
2762
2763         * xref_lib.adb: Minor reformatting
2764
2765         * sinput.adb: Minor reformatting
2766
2767         * gnatchop.adb: Minor reformatting
2768
2769         * sem_util.ads: Minor reformatting.
2770
2771         * opt.ads: Minor documentation fix
2772
2773         * scng.adb: Minor reformatting
2774
2775         * prj-part.adb: Update comments
2776
2777 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2778
2779         * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
2780         tagged synchronized type, use corresponding record type.
2781
2782 2008-08-01  Doug Rupp  <rupp@adacore.com>
2783
2784         * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
2785         dummy transfer address for debugging.
2786
2787         * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
2788
2789         * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
2790
2791 2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>
2792
2793         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
2794         * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
2795
2796 2008-07-31  Pascal Obry  <obry@adacore.com>
2797
2798         * prj-nmsc.adb: Keep Object and Exec directory casing.
2799
2800 2008-07-31  Jose Ruiz  <ruiz@adacore.com>
2801
2802         * system-rtx-rtss.ads
2803         Change the default stack size. It is important to set the commit part.
2804
2805         * s-taprop-rtx.adb
2806         (Initialize): Get the clock resolution.
2807         (RT_Resolution): Return the clock resolution that is indicated by the
2808         system.
2809
2810         * s-parame-vxworks.adb
2811         Document that this body is used for RTX in RTSS (kernel) mode.
2812
2813         * gcc-interface/Makefile.in
2814         (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
2815         s-parame-vxworks.adb body in order to have reasonable stack sizes in
2816         RTX RTSS kernel mode. Virtual memory is not used in that case, so we
2817         cannot ask for too big values.
2818
2819 2008-07-31  Robert Dewar  <dewar@adacore.com>
2820
2821         * exp_aggr.adb: Minor reformatting
2822
2823         * makeutl.adb: Minor reformatting
2824
2825         * prj-env.adb: Minor reformatting
2826
2827 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2828
2829         * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
2830         tagged type is completed by a concurrent type.
2831
2832 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
2833
2834         * sem_aggr.adb:
2835         (Resolve_Record_Aggregate): Bypass error that a type without
2836         components must have a "null record" aggregate when compiling for Ada
2837         2005, since it's legal to give an aggregate of form (others => <>)
2838         for such a type.
2839
2840 2008-07-31  Javier Miranda  <miranda@adacore.com>
2841
2842         * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
2843         handle synchronized types. Required to handle well the object.operation
2844         notation applied to synchronized types.
2845
2846 2008-07-31  Quentin Ochem  <ochem@adacore.com>
2847
2848         * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
2849         anymore - just used internally.
2850         Added handling of very small tasks - when the theoretical size is
2851         already full at the point of the call.
2852         (Report_Result): Fixed result computation, Stack_Used_When_Filling does
2853         not need to be added to the result.
2854
2855 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2856
2857         * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
2858         corresponding spec is a primitive wrapper. Update comment.
2859
2860 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
2861
2862         * bindgen.adb Comment reformatting. Update the list of run-time globals.
2863         (Gen_Adainit_Ada): Add the declaration, import and value set for
2864         configuration flag Canonical_Streams.
2865         (Gen_Adainit_C): Add the declaration and initial value of external
2866         symbol __gl_canonical_streams.
2867
2868         * init.c: Update the list of global values computed by the binder.
2869
2870         * opt.ads: Add flag Canonical_Streams.
2871
2872         * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
2873         semantically handled pragmas.
2874
2875         * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
2876         (Analyze_Pragma): Add case for pragma Canonical_Streams.
2877
2878         * snames.adb: Add character value for name Canonical_Streams.
2879
2880         * snames.ads:
2881         Add Name_Canonical_Streams to the list of configuration pragmas.
2882         Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
2883
2884         * snames.h: Add a definition for Pragma_Canonical_Streams.
2885
2886         * s-ststop.adb:
2887         Add a flag and import to seize the value of external symbol
2888         __gl_canonical_streams. Update comment and initial value of constant
2889         Use_Block_IO.
2890
2891         * gnat_rm.texi: Add section of pragma Canonical_Streams.
2892
2893         * gnat_ugn.texi:
2894         Add pragma Canonical_Streams to the list of configuration pragmas.
2895
2896 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2897
2898         * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
2899         has the form A.B.C and B is a unit renaming, analyze its compilation
2900         unit and add a with_clause on A.b to the context.
2901
2902 2008-07-31  Vincent Celier  <celier@adacore.com>
2903
2904         * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
2905         return the empty string, instead of raising Constraint_Error.
2906
2907 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
2908
2909         * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
2910
2911         * checks.adb (Apply_Accessibility_Check): Insert the check on
2912         Insert_Node.
2913
2914         * exp_attr.adb:
2915         (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
2916         to new parameter Insert_Node on call to Apply_Accessibility_Check.
2917         Necessary to distinguish the insertion node because the dereferenced
2918         formal may come from a rename, but the check must be inserted in
2919         front of the attribute.
2920
2921         * exp_ch4.adb:
2922         (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
2923         call to Apply_Accessibility_Check.
2924         (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
2925         on call to Apply_Accessibility_Check.
2926         Minor reformatting
2927
2928 2008-07-31  Javier Miranda  <miranda@adacore.com>
2929
2930         * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
2931         types when the candidate type is a synchronized type.
2932
2933         * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
2934         types, and complete management of synchronized types adding missing
2935         code to handle formal that is a synchronized type.
2936
2937         * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
2938         are not available and cause the compiler to blowup. Found compiling
2939         test with switch -gnatc
2940
2941         * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
2942         Has_Correct_Formal_Mode plus code cleanup.
2943
2944 2008-07-31  Bob Duff  <duff@adacore.com>
2945
2946         * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
2947         recognized as two end-of-lines, but it should be just one.
2948
2949 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2950
2951         * exp_ch9.adb: Minor reformatting
2952
2953         * tbuild.ads: Fix several occurrences of incorrectly referring to
2954         Name_Find as Find_Name.
2955
2956 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
2957
2958         * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
2959         and the context is an object declaration with non-static bounds, treat
2960         the aggregate as non-static.
2961
2962 2008-07-31  Vincent Celier  <celier@adacore.com>
2963
2964         * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
2965         Move back spec of Parse_Single_Project to body, as it is not called
2966         outside of package Prj.Part.
2967         (Project_Data): Remove components Linker_Name, Linker_Path and
2968         Minimum_Linker_Options as they are no longer set.
2969         Remove function There_Are_Ada_Sources from package Prj and move code
2970         in the only place it was used, in Prj.Env.Set_Ada_Paths.
2971
2972 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2973
2974         * mlib-utl.ads: Fix typo.
2975
2976 2008-07-31  Robert Dewar  <dewar@adacore.com>
2977
2978         * sem_ch12.adb: Minor reformatting
2979
2980 2008-07-31  Sergey Rybin  <rybin@adacore.com>
2981
2982         * gnat_ugn.texi: Change the description of the
2983         Overly_Nested_Control_Structures: now the rule always requires a
2984         positive parameter for '+R' option
2985
2986 2008-07-31  Thomas Quinot  <quinot@adacore.com>
2987
2988         * g-pehage.adb: Minor reformatting
2989
2990 2008-07-31  Pascal Obry  <obry@adacore.com>
2991
2992         * s-finimp.ads: Minor reformatting.
2993
2994 2008-07-31  Vincent Celier  <celier@adacore.com>
2995
2996         * s-regexp.ads: Minor comment fix
2997
2998 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
2999
3000         * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
3001         so that we can compile this file successfully with -gnatc.
3002
3003 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
3004
3005         * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
3006         of the type when looking for stream subprograms for type String,
3007         Wide_String and Wide_Wide_String.
3008
3009         * s-ststop.adb: Change the initialization expression of constant
3010         Use_Block_IO.
3011
3012 2008-07-31  Geert Bosch  <bosch@adacore.com>
3013
3014         * arit64.c:
3015         New file implementing __gnat_mulv64 signed integer multiplication with
3016         overflow checking
3017
3018         * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
3019
3020         * gcc-interface/gigi.h:
3021         (standard_types): Add ADT_mulv64_decl
3022         (mulv64_decl): Define subprogram declaration for __gnat_mulv64
3023
3024         * gcc-interface/utils.c:
3025         (init_gigi_decls): Add initialization of mulv64_decl
3026
3027         * gcc-interface/trans.c:
3028         (build_unary_op_trapv): New function
3029         (build_binary_op_trapv): New function
3030         (gnat_to_gnu): Use the above functions instead of
3031         build_{unary,binary}_op
3032
3033         * gcc-interface/Makefile.in
3034         (LIBGNAT_SRCS): Add arit64.c
3035         (LIBGNAT_OBJS): Add arit64.o
3036
3037 2008-07-31  Vincent Celier  <celier@adacore.com>
3038
3039         * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
3040         Linker'Default_Switches are declared. Warn if they are declared.
3041
3042 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
3043
3044         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
3045         Insert_Actions to place the pointer declaration in the code, rather
3046         than Insert_Before_And_Analyze, so that insertions of temporaries are
3047         kept in the proper order when transient scopes are present.
3048
3049
3050 2008-07-31  Robert Dewar  <dewar@adacore.com>
3051
3052         * einfo.adb (Spec_PPC): Now defined for generic subprograms
3053
3054         * einfo.ads (Spec_PPC): Now defined for generic subprograms
3055
3056         * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
3057         subprogram case
3058
3059 2008-07-31  Vincent Celier  <celier@adacore.com>
3060
3061         * s-os_lib.adb: Minor comment fix
3062
3063 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
3064
3065         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
3066         transfer pre/postconditions from generic copy to original tree, so that
3067         they will appear in each instance.
3068         (Process_PPCs): Do not transform postconditions into a procedure in a
3069         generic context, to prevent double expansion of check pragmas.
3070
3071         * sem_attr.adb: In an instance, the prefix of the 'result attribute
3072         can be the renaming of the
3073         current instance, so check validity of the name accordingly.
3074
3075 2008-07-31  Robert Dewar  <dewar@adacore.com>
3076
3077         * mlib-utl.ads: Minor reformatting
3078
3079 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
3080
3081         sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
3082         from context. This attribute must be usable in Ada95 mode.
3083         The attribute can appear in the body of a function marked
3084         Inline_Always, but in this case the postocondition is not enforced.
3085
3086         sem_prag.adb (Check_Precondition_Postcondition): within the expansion
3087         of an inlined call pre- and postconditions are legal
3088
3089 2008-07-31  Vincent Celier  <celier@adacore.com>
3090
3091         * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
3092         were for gprmake only
3093
3094 2008-07-31  Robert Dewar  <dewar@adacore.com>
3095
3096         * gnat_ugn.texi: Update -gnatN documentation.
3097
3098         * gnat_rm.texi: Add note about pre/postcondition
3099         pragmas not checked in conjunction with front-end inlining.
3100
3101 2008-07-31  Robert Dewar  <dewar@adacore.com>
3102
3103         * g-pehage.adb, g-pehage.ads: Minor reformatting
3104
3105 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
3106
3107         * mlib-utl.ads, prj-makr.ads: Add comments.
3108
3109 2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3110
3111         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
3112         [WINDOWS]: Add s-winext.o.
3113
3114 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
3115
3116         PR ada/36554
3117         * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
3118         * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
3119         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
3120         Set precision to 1 for subtype of BOOLEAN_TYPE.
3121         (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
3122         (make_type_from_size): Deal with BOOLEAN_TYPE.
3123         * gcc-interface/misc.c (gnat_print_type): Likewise.
3124         * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
3125         Set boolean_type_node as its translation in the table, as well
3126         as boolean_false_node for False and boolean_true_node for True.
3127         * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
3128         8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
3129         (create_param_decl): Deal with BOOLEAN_TYPE.
3130         (build_vms_descriptor): Likewise.
3131         (build_vms_descriptor64): Likewise.
3132         (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
3133
3134 2008-07-30  Robert Dewar  <dewar@adacore.com>
3135
3136         * exp_ch9.adb: Minor reformatting
3137
3138         * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
3139         if no primitive operation is found.
3140
3141         * exp_util.adb: (Find_Prim_Op): Add comments for previous change
3142
3143         * sem_ch8.adb: Minor reformatting
3144
3145 2008-07-30  Laurent Pautet  <pautet@adacore.com>
3146
3147         * g-pehage.adb:
3148         Remove a limitation on the length of the words handled by the minimal
3149         perfect hash function generator.
3150
3151         * g-pehage.ads:
3152         Detail the use of subprograms Insert, Initialize, Compute and Finalize.
3153         Fix some typos.
3154
3155 2008-07-30  Robert Dewar  <dewar@adacore.com>
3156
3157         * gnatlink.adb: Minor reformatting
3158
3159 2008-07-30  Thomas Quinot  <quinot@adacore.com>
3160
3161         * rtsfind.adb (Check_RPC): Check version consistency even when not
3162         generating RCI stubs. Provide more detailed error message in case of
3163         mismatch.
3164
3165 2008-07-30  Ed Schonberg  <schonberg@adacore.com>
3166
3167         * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
3168         as a actual in an instance, check for a missing attribute to prevent
3169         program_error on an illegal program.
3170
3171         * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
3172         error if primitive is not found, so that exception can be handled
3173         elsewhere on illegal programs.
3174
3175 2008-07-30  Robert Dewar  <dewar@adacore.com>
3176
3177         * uintp.adb (UI_GCD): Fix potential overflow
3178
3179 2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
3180
3181         * einfo.adb: Flag245 is now used.
3182         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
3183         check to include functions.
3184         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
3185         (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
3186         include functions.
3187         (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
3188         to the list of displayed flags.
3189
3190         * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
3191         Wrapped_Entity. These two flags are now present in functions.
3192         New flag Is_Private_Primitive.
3193         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
3194
3195         * exp_ch9.adb:
3196         (Build_Wrapper_Bodies): New subprogram.
3197         (Build_Wrapper_Body): The spec and body have been moved to in
3198         Build_Wrapper_ Bodies. Code cleanup.
3199         (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
3200         Wrappers are now generated for primitives declared between the private
3201         and full view of a concurrent type that implements an interface.
3202         (Build_Wrapper_Specs): New subprogram.
3203         (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
3204         creation mechanism with a call to Build_Wrapper_Bodies.
3205         (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
3206         wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
3207         (Expand_N_Task_Body): Replace the wrapper body creation
3208         mechanism with a call to Build_Wrapper_Bodies.
3209         (Expand_N_Task_Type_Declaration): Replace the wrapper spec
3210         creation mechanism with a call to Build_Wrapper_Specs.
3211         (Is_Private_Primitive_Subprogram): New subprogram.
3212         (Overriding_Possible): Code cleanup.
3213         (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
3214
3215         * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
3216
3217         * sem_ch3.adb: Add with and use clause for Exp_Ch9.
3218         (Process_Full_View): Build wrapper specs for all primitives
3219         that belong to a private view completed by a concurrent type
3220         implementing an interface.
3221
3222         * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
3223         is a primitive of a
3224         concurrent type with a private view that implements an interface, try to
3225         find the proper spec.
3226         (Analyze_Subprogram_Declaration): Mark a subprogram as a private
3227         primitive if the type of its first parameter is a non-generic tagged
3228         private type.
3229         (Analyze_Subprogram_Specification): Code reformatting.
3230         (Disambiguate_Spec): New routine.
3231         (Find_Corresponding_Spec): Add a flag to controll the output of errors.
3232         (Is_Private_Concurrent_Primitive): New routine.
3233
3234         * sem_ch6.ads:
3235         (Find_Corresponding_Spec): Add a formal to control the output of errors.
3236
3237 2008-07-30  Doug Rupp  <rupp@adacore.com>
3238
3239         * gigi.h (build_vms_descriptor64): New function prototype.
3240         (fill_vms_descriptor): Modified function prototype.
3241
3242         * utils.c (build_vms_descriptor64): New function.
3243
3244         * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
3245
3246         * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
3247         argument.
3248
3249         * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
3250         64bit and 32bit descriptor and save the 64bit version as an alternate
3251         TREE_TYPE in the parameter.
3252         (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
3253         thin pointer.
3254
3255         * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
3256
3257 2008-07-30  Robert Dewar  <dewar@adacore.com>
3258
3259         * make.adb: Minor reformatting
3260
3261         * mlib-utl.adb: Minor reformatting
3262
3263         * osint.ads: Minor reformatting
3264
3265 2008-07-30  Jose Ruiz  <ruiz@adacore.com>
3266
3267         * adaint.c
3268         (__gnat_file_exists): Do not use __gnat_stat for RTX.
3269         (__main for RTX in RTSS mode): Create this dummy procedure symbol to
3270         avoid the use of this symbol from libgcc.a in RTX kernel mode.
3271
3272         * cio.c
3273         (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
3274         the function RtPrintf for console output.
3275
3276         * argv.c Do not use the environ variable for RTX.
3277
3278         * gnatlink.adb (gnatlink): The part that handles the --RTS option has
3279         been moved before the call to Osint.Add_Default_Search_Dirs in order
3280         to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
3281         from the appropriate run time.
3282
3283         * targparm.ads
3284         (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
3285         target is a RTSS module for RTX.
3286
3287         * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
3288         RTX_RTSS_Kernel_Module
3289         (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
3290
3291         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
3292         exception handling mechanism for Windows and RTX in Win32 mode, but
3293         not for RTX in kernel mode (RTSS).
3294         (LIBGNAT_SRCS): Remove ada.h
3295
3296 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
3297
3298         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
3299         T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
3300         (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
3301         * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
3302         X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
3303         ALL_ADA_CFLAGS): Remove.
3304         (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
3305         replace ALL_ADA_CFLAGS with ADA_CFLAGS.
3306         (GCC_CFLAGS): Remove X_CFLAGS.
3307         (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
3308         (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
3309         (ADA_CFLAGS): Substitute.
3310
3311 2008-07-30  Laurent Guerby  <laurent@guerby.net>
3312
3313         PR ada/5911
3314         * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
3315         Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
3316         Replace stamp-gnatlib* by stamp-gnatlib*-rts.
3317         * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
3318         by stamp-gnatlib2-rts.
3319
3320 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3321
3322         PR documentation/15479
3323         * gnat-style.texi: Remove AdaCore copyright statement and GPL
3324         statement for GNAT.  Add @copying stanza, use it.  Update to
3325         GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
3326         title as Front-Cover Text.
3327         * gnat_rm.texi: Likewise.
3328         * gnat_ugn.texi: Likewise.
3329
3330 2008-07-29  Jan Hubicka  <jh@suse.cz>
3331
3332         * trans.c (process_inlined_subprograms): Remove tree_really_inline
3333         check.
3334
3335 2008-07-29  Arnaud Charlet  <charlet@adacore.com>
3336
3337         * gcc-interface: New directory.
3338
3339         * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
3340         utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
3341         config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
3342         to gcc-interface subdirectory.
3343
3344 2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3345
3346         * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
3347
3348 2008-07-28  Jan Hubicka  <jh@suse.cz>
3349
3350         * misc.c (gnat_post_options): Do not set flag_no_inline.
3351
3352 2008-07-28  Richard Guenther  <rguenther@suse.de>
3353
3354         Merge from gimple-tuples-branch.
3355
3356         2008-07-22  Olivier Hainque  <hainque@adacore.com>
3357
3358         * gigi.h (end_subprog_body): New ELAB_P argument, saying if
3359         this is called for an elab proc to be discarded if empty.
3360         * utils.c (end_subprog_body): Honor ELAB_P.
3361         (build_function_stub): Adjust call to end_subprog_body.
3362         * trans.c (Subprogram_Body_to_gnu): Likewise.
3363         (gigi): Reorganize processing of elab procs to prevent
3364         gimplifying twice, using the new end_subprog_body argument.
3365
3366         2008-07-19  Richard Guenther  <rguenther@suse.de>
3367
3368         * Make-lang.in (trans.o): Add tree-iterator.h dependency.
3369         (utils.o): Likewise.
3370         * trans.c: Include tree-iterator.h.
3371         (gnat_gimplify_expr): Adjust prototype.  Fix typo.
3372         (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
3373         (set_expr_location_from_node): Likewise.
3374         (gigi): Tuplify.
3375         * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
3376         of GENERIC_NEXT.
3377         * utils.c: Include tree-iterator.h.
3378         * gigi.h (gnat_gimplify_expr): Adjust prototype.
3379
3380         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
3381
3382         * trans.c: Include gimple.h instead of tree-gimple.h.
3383         * utils.c: Same.
3384
3385         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
3386
3387         * trans.c (gnat_gimplify_expr): Use gimplify_assign.
3388
3389 2008-07-25  Jan Hubicka  <jh@suse.cz>
3390
3391         * utils.c (end_subprog_body): Remove inline trees check.
3392         * misc.c (gnat_post_options): Do not set flag_inline_trees.
3393
3394 2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3395
3396         * raise-gcc.c: Move tsystem.h before tm.h.
3397
3398 2008-07-20  Arnaud Charlet  <charlet@adacore.com>
3399
3400         * gnathtml.pl: New file.
3401
3402 2008-07-19  Olivier Hainque  <hainque@adacore.com>
3403
3404         * targtyps.c (get_target_default_allocator_alignment): Use
3405         MALLOC_ABI_ALIGNMENT.
3406
3407 2008-07-17  Olivier Hainque  <hainque@adacore.com>
3408
3409         * adaint.c (__MINGW32__ section): Include ctype.h and define
3410         a fallback ISALPHA if IN_RTS.
3411         (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
3412
3413 2008-07-17  Olivier Hainque  <hainque@adacore.com>
3414
3415         * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
3416         argument, to apply to references in addition to definitions.  Prevent
3417         setting TREE_STATIC on externals.
3418         (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
3419
3420 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3421
3422         PR documentation/15479
3423         * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
3424         Replace backets around optional parameters with @ovar
3425         where possible, use @r{[}, @r{]} otherwise.
3426         Replace some @r, @i, and @emph with @var where appropriate.
3427
3428 2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>
3429
3430         * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
3431
3432 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3433
3434         * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
3435         -Wc++-compat warnings.
3436         * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
3437         __gnat_locate_exec_on_path): Likewise.
3438         * decl.c (annotate_value): Likewise.
3439         * misc.c (gnat_handle_option): Likewise.
3440         * trans.c (gnat_to_gnu, extract_encoding, decode_name,
3441         post_error_ne_tree): Likewise.
3442
3443 2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3444
3445         * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
3446         version of its type, attempt to first convert its elements.
3447
3448 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
3449
3450         * Makefile.in: Fix *86 kfreebsd target specific pairs.
3451
3452 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
3453
3454         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
3455
3456 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
3457
3458         * utils2.c (known_alignment): Derive the alignment from pointed-to
3459         types only if it is otherwise unknown.
3460         <INTEGER_CST>: Tidy.
3461         <MULT_EXPR>: Likewise.
3462         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
3463         that of the base.
3464
3465 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3466
3467         PR ada/36573
3468         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
3469
3470 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3471
3472         * gnat_rm.texi (Implementation Defined Characteristics)
3473         (Standard Library Routines): Use @smallexample for indented
3474         text.  Drop Indentation outside examples.
3475         * gnat_ugn.texi: Likewise.
3476
3477 2008-06-13  Olivier Hainque  <hainque@adacore.com>
3478
3479         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
3480         if undefined.
3481         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
3482         realignment with force_align_arg_pointer attribute on foreign
3483         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
3484
3485 2008-06-13  Olivier Hainque  <hainque@adacore.com>
3486
3487         * utils.c (rest_of_record_type_compilation): When computing
3488         encodings for the components of a variable size type, early
3489         strip conversions on the current position expression to make
3490         sure it's shape is visible.  Use remove_conversions for this
3491         purpose.
3492
3493 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
3494
3495         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
3496         constrained subtype of a discriminated type, discard the fields that
3497         are beyond its limits according to its size.
3498
3499 2008-06-10  Olivier Hainque  <hainque@adacore.com>
3500
3501         * utils.c (create_subprog_decl): If this is for the 'main' entry
3502         point according to the asm name, redirect main_identifier_node.
3503
3504 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
3505
3506         * decl.c (components_to_record): Adjust the packedness for the
3507         qualified union as well.
3508
3509 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
3510
3511         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
3512         checks non fatal.
3513
3514 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
3515
3516         * sem_res.adb (Large_Storage_Type): A type is large if it
3517         requires as many bits as Positive to store its values and its
3518         bounds are known at compile time.
3519         * sem_ch13.adb (Minimum_Size): Note that this function returns
3520         0 if the size is not known at compile time.
3521
3522 2008-06-06  Nicolas Setton  <setton@adacore.com>
3523             Olivier Hainque  <hainque@adacore.com>
3524
3525         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
3526         attribute, parallel descriptive type attached to another
3527         type for debug info generation purposes.
3528         * utils.c (add_parallel_type): New function, register
3529         parallel type to be attached to a type.
3530         (get_parallel_type): New function, fetch a registered
3531         parallel type, if any.
3532         (rest_of_record_type_compilation): Register the parallel
3533         type we make for variable size records.
3534         * gigi.h (add_parallel_type, get_parallel_type): Declare.
3535         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
3536         parallel debug types we make.
3537         * trans.c (extract_encoding, decode_name): New functions.
3538         (gigi): If the DWARF attribute extensions are available, setup
3539         to use them.
3540         * lang.opt: Register language specific processing request
3541         for -gdwarf+.
3542         * misc.c (gnat_dwarf_extensions): New global variable. How much
3543         do we want of our DWARF extensions. 0 by default.
3544         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
3545         (gnat_post_options): Map gnat_dwarf_extensions to the
3546         commonuse_gnu_debug_info_extensions for later processing.
3547
3548 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
3549
3550         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
3551
3552 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3553
3554         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
3555         * gnat_ugn.texi (Style Checking)
3556         (Adding the Results of Compiler Checks to gnatcheck Output)
3557         (Example of Binder Output File): Fix typos.
3558         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
3559         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
3560         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
3561         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
3562         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
3563         sinfo.ads, utils.c: Fix typos in comments.
3564         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
3565
3566 2008-05-29  Thomas Quinot  <quinot@adacore.com>
3567
3568         * sem_eval.adb: Minor reformatting
3569
3570 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
3571
3572         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
3573         is abstract, do not apply abstractness check on subprogram if this is
3574         a renaming declaration.
3575
3576 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
3577
3578         PR ada/864
3579         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
3580         allow recognition of program suffix in addition to prefix.
3581
3582         * gnatchop.adb (Locate_Executable): Add support for prefix.
3583
3584         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
3585         mlib-utl.adb: Adjust calls to Program_Name.
3586
3587 2008-05-29  Robert Dewar  <dewar@adacore.com>
3588
3589         * sem_ch3.adb: Minor reformatting
3590         * sem_prag.adb: Minor reformatting
3591         * sem_res.adb: Minor reformatting
3592         * sinput-p.ads: Minor reformatting
3593
3594 2008-05-29  Javier Miranda  <miranda@adacore.com>
3595
3596         * sem_util.adb:
3597         (Abstract_Interface_List): Add missing support for full type-declaration
3598         associated with synchronized types.
3599
3600 2008-05-29  Robert Dewar  <dewar@adacore.com>
3601
3602         * sem_eval.adb (Is_Same_Value): Take care of several more cases
3603
3604 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
3605
3606         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
3607         access type, wrap the expression in a conversion to force an
3608         accessibility check.
3609
3610         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
3611         accessibility checks even when expansion is disabled in order to
3612         generate messages in the presence of previous errors or in
3613         semantics-only mode.
3614
3615 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
3616
3617         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
3618         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
3619
3620 2008-05-28  Vincent Celier  <celier@adacore.com>
3621
3622         PR ada/34446
3623         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
3624         preprocessing expressions
3625
3626 2008-05-28  Vincent Celier  <celier@adacore.com>
3627
3628         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
3629         for preprocessing
3630
3631         * sinput-p.ads: Minor comment update and reformatting
3632
3633 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
3634
3635         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
3636         type has a deeper level than any master only when it is the type of an
3637         access parameter.
3638
3639 2008-05-28  Javier Miranda  <miranda@adacore.com>
3640
3641         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
3642
3643 2008-05-28  Javier Miranda  <miranda@adacore.com>
3644
3645         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
3646         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
3647         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
3648         Add code that was previously located in
3649         Find_Overridden_Synchronized_Primitive because it is only used here.
3650
3651 2008-05-28  Sergey Rybin  <rybin@adacore.com>
3652
3653         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
3654         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
3655
3656 2008-05-28  Robert Dewar  <dewar@adacore.com>
3657
3658         * restrict.ads:
3659         Add missing restrictions, and properly label all GNAT defined ones
3660
3661         * rtsfind.ads:
3662         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
3663         Add entry for Ada.Task_Termination.Set_Specific_Handler
3664         Add entry for Ada.Task_Termination.Specific_Handler
3665
3666         * s-rident.ads:
3667         Add missing restrictions and properly mark all gnat defined ones
3668
3669         * sem_ch3.adb:
3670         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
3671
3672         * sem_res.adb:
3673         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
3674
3675         * gnat_rm.texi: Add missing restrictions, and properly label all
3676         GNAT defined ones
3677
3678 2008-05-28  Robert Dewar  <dewar@adacore.com>
3679
3680         * restrict.adb:
3681         (Check_Restriction): violation of restriction No_Finalization is
3682         treated as a serious error to stop expansion
3683
3684 2008-05-28  Robert Dewar  <dewar@adacore.com>
3685
3686         * exp_util.adb: Minor reformatting
3687         * exp_util.ads: Minor reformatting.
3688
3689 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
3690
3691         * Make-lang.in: Remove gprmake.
3692
3693         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
3694
3695 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
3696
3697         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
3698         improper progenitor names, and avoid cascaded errors.
3699
3700 2008-05-28  Robert Dewar  <dewar@adacore.com>
3701
3702         * gnat_rm.texi: Add note on Old giving warning when applied to constant
3703
3704         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
3705         a constant
3706
3707 2008-05-28  Robert Dewar  <dewar@adacore.com>
3708
3709         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
3710         size
3711
3712 2008-05-28  Robert Dewar  <dewar@adacore.com>
3713
3714         * exp_ch5.adb:
3715         (Expand_Simple_Function_Return): Copy unaligned result into temporary
3716
3717 2008-05-28  Javier Miranda  <miranda@adacore.com>
3718
3719         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
3720         for user-defined predefined primitives.
3721
3722         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
3723         (Find_Overridden_Synchronized_Primitive): Ditto.
3724
3725         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
3726
3727 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3728
3729         * a-ststio.adb, s-direio.adb:
3730         Further code clean up of previous change.
3731         Update comments.
3732
3733 2008-05-27  Vincent Celier  <celier@adacore.com>
3734
3735         * prj-nmsc.adb: Minor reformatting
3736
3737 2008-05-27  Bob Duff  <duff@adacore.com>
3738
3739         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
3740         untagged private type with a tagged full type, where the full type has
3741         a self reference, create the corresponding class-wide type early, in
3742         case the self reference is "access T'Class".
3743
3744 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3745
3746         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
3747         tasks and context is an object declaration. create master entity before
3748         expansion.
3749
3750 2008-05-27  Robert Dewar  <dewar@adacore.com>
3751
3752         * mlib-prj.adb: Minor reformatting
3753
3754         * prj-part.adb: Minor reformatting
3755
3756         * prj.ads: Minor reformatting
3757
3758         * exp_ch3.adb: Minor reformatting.
3759
3760         * sem_ch3.ads: Minor reformatting
3761
3762         * sem_eval.adb: Minor reformatting
3763
3764 2008-05-27  Vincent Celier  <celier@adacore.com>
3765
3766         * gnatcmd.adb:
3767         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
3768
3769 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3770
3771         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
3772         tasks, create an activation chain now, before the expansion into
3773         assignments and build-in-place calls that require the presence of an
3774         activation chain.
3775         (Backend_Processing_Possible): If the component type is inherently
3776         limited, the aggregate must be expanded into individual built-in-place
3777         assignments.
3778
3779         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
3780         determine whether an allocation extra parameter must be built, to
3781         handle case of a private type whose full type is a discriminated type
3782         with defaults.
3783
3784 2008-05-27  Bob Duff  <duff@adacore.com>
3785
3786         * gnat_rm.texi:
3787         Document the new behavior regarding trampolines.
3788
3789 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3790
3791         * a-direio.adb, a-sequio.adb: Replace address clause by
3792         unrestricted_access, simpler and compatible with .NET.
3793
3794 2008-05-27  Vincent Celier  <celier@adacore.com>
3795
3796         * prj-part.adb:
3797         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
3798         a project file, so that symbolic links are not resolved.
3799
3800 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3801
3802         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
3803         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
3804         portable across GNAT targets, since this kind of address clause is not
3805         supported by VM back-ends (.NET/JGNAT).
3806
3807 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
3808
3809         * bindgen.adb: Update comments.
3810
3811         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
3812
3813 2008-05-27  Vincent Celier  <celier@adacore.com>
3814
3815         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
3816         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
3817         mlib-tgt.adb, prj-env.adb, prj-env.ads:
3818         (Path_Information): New record type
3819         Use component of type Path_Information when there are two paths, one in
3820         canonical format and one in display format.
3821         Update the project manager to these new components.
3822
3823 2008-05-27  Robert Dewar  <dewar@adacore.com>
3824
3825         * makeutl.adb: Minor reformatting
3826         * prj-nmsc.adb: Minor reformatting
3827         * s-stausa.adb: Minor reformatting
3828         * s-stausa.ads: Minor reformatting
3829         * sem_ch6.adb: Minor reformatting
3830
3831 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3832
3833         * sem_res.adb: Minor comment fixes
3834
3835 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3836
3837         * makeutl.adb: Minor code reorganization
3838
3839         * exp_aggr.adb: Add ??? comment
3840         Fix typo
3841
3842         * exp_ch6.adb: Minor reformatting
3843
3844 2008-05-27  Quentin Ochem  <ochem@adacore.com>
3845
3846         * s-stausa.adb (Initialize): Updated result initialization, and
3847         initialization of environment stack.
3848         (Fill_Stack): Improved computation of the pattern zone, taking into
3849         account already filled at the calling point.
3850         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
3851         Measure and Overflow_Guard.
3852         (Report_Result): Fixed computation of the result using new fields of
3853         Stack_Analyzer.
3854
3855         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
3856         params by more explicit Stack_Size / Max_Pattern_Size params.
3857         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
3858         Added Stack_Used_When_Filling field.
3859         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
3860         Min_Measure and Max_Measure fields.
3861
3862         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
3863
3864 2008-05-27  Vincent Celier  <celier@adacore.com>
3865
3866         * prj-nmsc.adb:
3867         (Check_File): Make sure that a unit that replaces the same unit in a
3868          project being extended is properly processed.
3869
3870 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3871
3872         * sem_ch3.adb:
3873         (Get_Discr_Value): Remove obsolete code that failed to find the value
3874         of a discriminant for an inherited task component appearing in a type
3875         extension.
3876
3877 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3878
3879         (System.File_IO.{Close, Delete, Reset}):
3880         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
3881
3882         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
3883         Pass File parameter by reference.
3884
3885 2008-05-27  Vincent Celier  <celier@adacore.com>
3886
3887         * prj-nmsc.adb:
3888         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
3889         sources of the same project that have the same object file name.
3890         (Find_Explicit_Sources): Always remove a source exception that was not
3891         found.
3892
3893 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3894
3895         * sem_ch3.adb: Minor reformatting
3896
3897 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3898
3899         * sem_ch6.adb:
3900         (Is_Interface_Conformant): Handle properly a primitive operation that
3901         overrides an interface function with a controlling access result.
3902         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
3903         inherited and overriding operations, omit as well the conformance check
3904         on result types, to prevent spurious errors.
3905
3906 2008-05-27  Vincent Celier  <celier@adacore.com>
3907
3908         * makeutl.ads, makeutl.adb:
3909         (Set_Location): New procedure
3910         (Get_Location): New function
3911         (Update_Main): New procedure
3912
3913 2008-05-27  Vincent Celier  <celier@adacore.com>
3914
3915         * prj-nmsc.adb:
3916         (Check_Library): Allow standard project to be extended as a static
3917         library project.
3918         (Get_Mains): Do not inherit attribute Main in an extending library
3919         project.
3920
3921 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3922
3923         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
3924         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
3925         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
3926         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
3927         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
3928         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
3929         * system-mingw.ads (Always_Compatible_Rep): Likewise.
3930         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
3931         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
3932         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
3933
3934 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3935
3936         * sem_attr.adb: add guard to previous patch.
3937
3938 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
3939
3940         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
3941         a synchronized tagged type, do not attempt to build dispatch table for
3942         full view. The table is built for the corresponding record type, which
3943         has its own declaration.
3944
3945 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
3946
3947         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
3948         to the known type entity E, rather than setting it to Any_Type. Fixes
3949         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
3950         for objects whose type had an illegal constraint.
3951
3952 2008-05-27  Vincent Celier  <celier@adacore.com>
3953
3954         * gnat_ugn.texi:
3955         Add succinct documentation for attribute Excluded_Source_List_File
3956
3957 2008-05-27  Vincent Celier  <celier@adacore.com>
3958
3959         * prj-attr.adb: Add new project level attribute Map_File_Option
3960
3961         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
3962
3963         * prj.ads: Minor reformatting and comment update
3964         (Project_Configuration): New component Map_File_Option
3965
3966         * snames.adb: New standard name Map_File_Option
3967
3968         * snames.ads: New standard name Map_File_Option
3969
3970 2008-05-27  Vincent Celier  <celier@adacore.com>
3971
3972         * xsnames.adb: Remove unused variable Oname
3973
3974 2008-05-27  Doug Rupp  <rupp@adacore.com>
3975
3976         * exp_ch6.adb:
3977         (Expand_N_Function_Call): Fix comments. Minor reformatting.
3978
3979         * exp_vfpt.ads:
3980         (Expand_Vax_Foreign_Return): Fix comments.
3981
3982 2008-05-27  Thomas Quinot  <quinot@adacore.com>
3983
3984         * exp_dist.adb: Minor reformating
3985
3986 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
3987
3988         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
3989         No_Default_Initialization, which is now delayed until the freeze point
3990         of the object. Add a comment about deferral of the check.
3991
3992         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
3993         on objects is moved here.
3994
3995 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
3996
3997         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
3998         (Compare_Array_S16): Adjust for above change.
3999         * s-casi32.adb (Uword): Likewise.
4000         (Compare_Array_S32): Likewise.
4001         * s-casi64.adb (Uword): Likewise.
4002         (Compare_Array_S64): Likewise.
4003         * s-caun16.adb (Uhalf): Likewise.
4004         (Compare_Array_U16): Likewise.
4005         * s-caun32.adb (Uword): Likewise.
4006         (Compare_Array_U32): Likewise.
4007         * s-caun64.adb (Uword): Likewise.
4008         (Compare_Array_U64): Likewise.
4009
4010 2008-05-26  Robert Dewar  <dewar@adacore.com>
4011
4012         * exp_ch6.adb: Add ??? comment for previous change
4013
4014         * exp_vfpt.adb: Minor reformatting
4015
4016         * exp_vfpt.ads: Add ??? comment for last change
4017
4018         * sem_attr.adb: Add some ??? comments for previous change
4019
4020         * s-vaflop.ads: Add comments for previous change
4021
4022 2008-05-26  Doug Rupp  <rupp@adacore.com>
4023
4024         * s-vaflop-vms-alpha.adb:
4025         Remove System.IO use clause, to prevent spurious ambiguities when
4026         package is access through rtsfind.
4027
4028 2008-05-26  Sergey Rybin  <rybin@adacore.com>
4029
4030         * tree_io.ads (ASIS_Version_Number): Update because of the changes
4031         made in front-end
4032
4033 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
4034
4035         * sem_attr.adb:
4036         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
4037         converted to S (A)'address only if A .. B is known to be a non-null
4038         range.
4039
4040 2008-05-26  Doug Rupp  <rupp@adacore.com>
4041
4042         * s-vaflop.adb:
4043         (Return_D, Return_F, Return_G): New functions.
4044
4045         * s-vaflop.ads:
4046         (Return_D, Return_F, Return_G): New functions.
4047
4048         * exp_vfpt.adb:
4049         (Expand_Vax_Foreign_Return): New procedure
4050
4051         * exp_vfpt.ads:
4052         (Expand_Vax_Foreign_Return): New procedure
4053
4054         * rtsfind.ads:
4055         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
4056         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
4057
4058         * exp_ch6.adb:
4059         Import Exp_Vfpt
4060         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
4061
4062         * s-vaflop-vms-alpha.adb:
4063         (Return_D, Return_F, Return_G): New functions.
4064
4065 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
4066
4067         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
4068         init proc entity when there is actual default initialization associated
4069         with the component type, to avoid spurious errors on objects of scalar
4070         array types that are marked Is_Public when No_Default_Initialization
4071         applies.
4072
4073 2008-05-26  Thomas Quinot  <quinot@adacore.com>
4074
4075         * rtsfind.ads, rtsfind.adb:
4076         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
4077         (Check_RPC): Support per-PCS-kind API versioning.
4078
4079         exp_dist.ads, exp_dist.adb:
4080         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
4081         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
4082          library function Get_RACW.
4083         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
4084         library function Get_Reference.
4085         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
4086         through an intermediate Any.
4087         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
4088         going through an intermediate Any.
4089
4090         * sem_dist.adb: Minor reformatting.
4091
4092 2008-05-26  Javier Miranda  <miranda@adacore.com>
4093
4094         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
4095         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
4096         (Is_Internal): Adding documentation on internal entities that have
4097         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
4098
4099         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
4100         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
4101         Added assertion to force entities with this attribute to have
4102         attribute Is_Internal set to True.
4103         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
4104
4105         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
4106         renamed as Derive_Progenitor_Subprograms. In addition, its code is
4107         a new implementation.
4108         (Add_Interface_Tag_Components): Remove special management of
4109         synchronized interfaces.
4110         (Analyze_Interface_Declaration): Minor reformating
4111         (Build_Derived_Record_Type): Minor reformating
4112         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
4113         predefined primitive inherited from interface type because the body of
4114         internally generated predefined primitives of tagged types are generated
4115         later by Freeze_Type
4116         (Derive_Subprogram): Avoid generating an internal name if the parent
4117         subprogram overrides an interface primitive.
4118         (Derive_Subprograms): New implementation that keeps separate the
4119         management of tagged types not implementing interfaces, from tagged
4120         types that implement interfaces.
4121         (Is_Progenitor): New implementation.
4122         (Process_Full_View): Add documentation
4123         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
4124         by call to Derive_Progenitor_Subprograms.
4125
4126         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
4127         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
4128         Skip_Controlling_Formals.
4129
4130         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
4131         (Check_Conventions): New implementation. Remove local subprogram
4132         Skip_Check. Remove formal Search_From of routine Check_Convention.
4133         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
4134         Skip_Controlling_Formals.
4135         (New_Overloaded_Entity): Enable addition of predefined dispatching
4136         operations.
4137
4138         * sem_disp.ads
4139         (Find_Primitive_Covering_Interface): New subprogram.
4140
4141         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
4142         the task body procedure as a primitive of the corresponding tagged
4143         type.
4144         (Check_Operation_From_Private_Type): Avoid adding twice an entity
4145         to the list of primitives.
4146         (Find_Primitive_Covering_Interface): New subprogram.
4147         (Override_Dispatching_Operation): Add documentation.
4148
4149         * sem_type.adb (Covers): Minor reformatings
4150
4151         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
4152         Collect_Interfaces.
4153         Rename formal.
4154         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
4155         (Implements_Interface): New subprogram.
4156         (Is_Parent): Removed.
4157         (Primitive_Names_Match): New subprogram.
4158         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
4159         (Ultimate_Alias): New subprogram.
4160
4161         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
4162         Collect_Interfaces.
4163         Remove special management for synchronized types. Rename formal. Remove
4164         internal subprograms Interface_Present_In_Parent and Add_Interface.
4165         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
4166         on non-record types by code to return false in such case.
4167         (Implements_Interface): New subprogram.
4168         (Is_Parent): Removed. No special management is now required for
4169         synchronized types covering interfaces.
4170         (Primitive_Names_Match): New subprogram.
4171         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
4172         (Ultimate_Alias): New subprogram.
4173
4174         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
4175         Add internal entities associated with secondary dispatch tables to
4176         the list of tagged type primitives that are not interfaces.
4177         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
4178         (Make_Predefined_Primitive_Specs): Code reorganization to improve
4179         the management of predefined equality operator. In addition, if
4180         the type has an equality function corresponding with a primitive
4181         defined in an interface type, the inherited equality is abstract
4182         as well, and no body can be created for it.
4183
4184         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
4185         exp_util to exp_disp.
4186         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
4187         an entity corresponds with one of the predefined primitives required
4188         to implement interfaces.
4189         Update copyright notice.
4190
4191         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
4192         final check on abstract subprograms all the primitives associated with
4193         interface primitives because they must be visible in the public and
4194         private part.
4195         (Write_DT): Use Find_Dispatching_Type to locate the name of the
4196         interface type. This allows the use of this routine, for debugging
4197         purposes, when the tagged type is not fully decorated.
4198         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
4199         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
4200         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
4201         entity corresponds with one of the predefined primitives required to
4202         implement interfaces.
4203
4204         * exp_util.adb (Find_Interface_ADT): New implementation
4205         (Find_Interface): Removed.
4206
4207         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
4208         list of interfaces associated with nodes
4209         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
4210
4211 2008-05-26  Thomas Quinot  <quinot@adacore.com>
4212
4213         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
4214         condition for assignment to temporary.
4215
4216 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
4217
4218         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
4219         checks on the upper bound if the index type is a modular type, to
4220         prevent wrap-around computations when size is close to upper bound of
4221         type.
4222
4223 2008-05-26  Robert Dewar  <dewar@adacore.com>
4224
4225         * sem_ch3.adb: Minor reformatting
4226
4227 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
4228
4229         * sem_ch12.adb (Remove_Parent): Use specification of instance
4230         to retrieve generic parent,
4231         to handle properly the case where the instance is a child unit.
4232         Add guard to handle properly wrapper packages.
4233         Minor reformatting
4234
4235 2008-05-26  Thomas Quinot  <quinot@adacore.com>
4236
4237         * sinfo.ads: Minor reformatting
4238
4239 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
4240
4241         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
4242         Generate a tag check when the result subtype of a function, defined by
4243         an access definition, designates a specific tagged type.
4244         (Make_Tag_Check): New routine.
4245
4246 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
4247
4248         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
4249
4250 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
4251
4252         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
4253         (builtin_decl_for): Likewise.
4254         * trans.c (gigi): Likewise.
4255         * utils.c (def_builtin_1): Fix formatting.
4256
4257 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
4258
4259         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
4260         Create the statements which map a string name to protected or task
4261         entry indix.
4262
4263         * exp_ch9.adb: Add with and use clause for Stringt.
4264         Minor code reformatting.
4265         (Build_Entry_Names): New routine.
4266         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
4267         for flag Build_Entry_Names which controls the allocation of the data
4268         structure for the string names of entries.
4269
4270         * exp_ch9.ads (Build_Entry_Names): New subprogram.
4271
4272         * exp_util.adb (Entry_Names_OK): New function.
4273
4274         * exp_util.ads (Entry_Names_OK): New function.
4275
4276         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
4277         enumerations RE_Id and RE_Unit_Table.
4278
4279         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
4280         (Free_Entry_Names_Array): New routine.
4281
4282         * s-taskin.ads: Comment reformatting.
4283         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
4284         Add component Entry_Names to record Ada_Task_Control_Block.
4285         (Free_Entry_Names_Array): New routine.
4286
4287         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
4288         dynamically allocate an array
4289         of string pointers. This structure holds string entry names.
4290         (Free_Entry_Names): New routine.
4291         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
4292         (Set_Entry_Names): New routine.
4293
4294         * s-tassta.ads:
4295         (Create_Task): Add formal Build_Entry_Names. The flag is used to
4296         control the allocation of the data structure which stores entry names.
4297         (Set_Entry_Name): New routine.
4298
4299         * s-tpoben.adb:
4300         Add with and use clause for Ada.Unchecked_Conversion.
4301         (Finalize): Deallocate the entry names array.
4302         (Free_Entry_Names): New routine.
4303         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
4304         create an array of string pointers to hold the entry names.
4305         (Set_Entry_Name): New routine.
4306
4307         * s-tpoben.ads:
4308         Add field Entry_Names to record Protection_Entries.
4309         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
4310         (Set_Entry_Name): New routine.
4311
4312 2008-05-26  Vincent Celier  <celier@adacore.com>
4313
4314         * prj-nmsc.adb:
4315         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
4316
4317         * prj.ads:
4318         (Project_Configuration): New component Shared_Lib_Driver
4319
4320 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
4321
4322         * inline.adb:
4323         (Cleanup_Scopes): For a protected operation, transfer finalization list
4324         to protected body subprogram, to force cleanup actions when needed.
4325
4326 2008-05-26  Robert Dewar  <dewar@adacore.com>
4327
4328         * sem_cat.adb: Minor reformatting
4329
4330         * gnatname.adb: Minor reformatting
4331
4332         * osint.ads: Minor reformatting
4333
4334         * s-carun8.ads: Minor reformatting
4335
4336         * g-heasor.ads: Minor comment fix (unit is now pure)
4337
4338 2008-05-26  Robert Dewar  <dewar@adacore.com>
4339
4340         * exp_ch2.adb:
4341         (Expand_Current_Value): Properly type generated integer literal
4342
4343 2008-05-26  Sergey Rybin  <rybin@adacore.com>
4344
4345         * gnat_ugn.texi: Add description for the new gnatcheck rule -
4346         Separate_Numeric_Error_Handlers.
4347
4348 2008-05-26  Pascal Obry  <obry@adacore.com>
4349
4350         * sem_aggr.adb: Minor reformatting.
4351
4352 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
4353
4354         * s-osinte-aix.adb:
4355         (To_Target_Priority): Setting the time slice value to 0 or greater sets
4356         the scheduling policy to FIFO within priorities or round-robin
4357         respectively.
4358         Hence, the priority must be set in this case to the one selected by the
4359         user.
4360
4361 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
4362
4363         * sem_ch12.adb:
4364         (Remove_Parent): If the enclosing scope is an instance whose generic
4365         parent is declared within some parent scope of the just completed
4366         instance, make full views of the entities in that parent visible, when
4367         applicable.
4368
4369 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
4370
4371         * mingw32.h (STD_MINGW): Set to true for target w64.
4372
4373 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4374
4375         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
4376         instead of TREE_STATIC on the ADDR_EXPR.
4377
4378 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
4379
4380         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
4381         (Sloc_to_locus): Do not overwrite known GCC locations when translating
4382         GNAT standard locations.
4383
4384 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
4385
4386         * gigi.h (mark_visited): Declare.
4387         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
4388         only the topmost node of expressions.
4389         (elaborate_expression_1): Look deeper for read-only variables.
4390         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
4391         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
4392         (mark_visited_r): New function.
4393
4394 2008-05-23  Vincent Celier  <celier@adacore.com>
4395
4396         * snames.adb: New standard name Excluded_Source_List_File.
4397
4398         * snames.ads: New standard name Excluded_Source_List_File.
4399
4400         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
4401
4402         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
4403         Get excluded sources from
4404         file indicated by attribute Excluded_Source_List_File, when present and
4405         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
4406
4407 2008-05-23  Robert Dewar  <dewar@adacore.com>
4408
4409         * exp_dist.adb: Minor reformatting
4410
4411 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
4412
4413         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
4414         slice, convert it to an indexed component, which is equivalent, more
4415         efficient, and usable even if the slice itself is not addressable.
4416
4417 2008-05-23  Olivier Hainque  <hainque@adacore.com>
4418
4419         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
4420         convention also allows access to named compiler built-in subprograms
4421         such as the GCC __builtin family.
4422
4423 2008-05-23  Vincent Celier  <celier@adacore.com>
4424
4425         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
4426         sep. If there are several possibilities, choose the one with the
4427         longer prefix.
4428
4429 2008-05-23  Vincent Celier  <celier@adacore.com>
4430
4431         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
4432         back end switches when executable specified with --GCC= is same as
4433         default, even if there are additional options.
4434
4435         * gnat_ugn.texi:
4436         Document when the back end switches from the ALI file are taken into
4437         account when gnatlink is invoked with --GCC=
4438
4439 2008-05-23  Thomas Quinot  <quinot@adacore.com>
4440
4441         * s-os_lib.adb:
4442         (copy_File): Do not open destination file if source file is unreadable.
4443
4444 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
4445
4446         * utils.c (handle_type_generic_attribute): Adjust to accept
4447         fixed arguments before an elipsis.
4448
4449 2008-05-21  Thomas Quinot  <quinot@adacore.com>
4450
4451         * g-sothco.ads, g-sothco.adb: New files.
4452
4453 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4454
4455         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
4456
4457         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
4458         Add missing "with" of Ada.Unchecked_Conversion
4459
4460         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
4461         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
4462         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4463         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
4464         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
4465         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
4466         Move common code out of GNAT.Sockets.Thin implementations and into
4467         Thin_Common.
4468         New constant SIZEOF_fd_set
4469         New flag Has_Sockaddr_Len
4470         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4471
4472         * g-stsifd-sockets.adb
4473         (Create): Remove call to Set_Length; use Set_Family to set the family
4474         and (on appropriate platforms) length fields in struct sockaddr.
4475
4476         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
4477         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
4478         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
4479         Move common code out of GNAT.Sockets.Thin implementations and into
4480         Thin_Common.
4481
4482         * g-socket.ads, g-socket.adb:
4483         Move common code out of GNAT.Sockets.Thin implementations and into
4484         Thin_Common.
4485         (Connect_Socket, Accept_Socket): Provide new versions of these two
4486         routines that operate with a user specified timeout.
4487         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
4488         this is now handled automatically by Set_Family on platforms that
4489         require it.
4490
4491         * gen-soccon.c:
4492         Move common code out of GNAT.Sockets.Thin implementations and into
4493         Thin_Common.
4494         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
4495         this constant to 0 (not -1) because we use it to initialize an
4496         unsigned_char value.
4497         Align values for numeric constants only.
4498         Handle the case of systems that do not support AF_INET6.
4499         New constant SIZEOF_fd_set
4500         New flag Has_Sockaddr_Len
4501         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4502
4503         * gsocket.h: New flag Has_Sockaddr_Len
4504         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4505
4506 2008-05-20  Santiago Uruena  <uruena@adacore.com>
4507
4508         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
4509
4510 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4511
4512         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
4513         the underlying issue with malloc/free has been fixed. Remove associated
4514         comments.
4515         Minor reformatting.
4516         Related to PR ada/24533
4517
4518 2008-05-20  Robert Dewar  <dewar@adacore.com>
4519
4520         * ali.adb: Correct casing of ASCII.NUL
4521
4522         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
4523         properly.
4524
4525 2008-05-20  Robert Dewar  <dewar@adacore.com>
4526             Gary Dismukes  <dismukes@adacore.com>
4527
4528         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
4529         overflow if result converted to wider integer type.
4530         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
4531         discriminated types when discriminant checks are suppressed.
4532
4533 2008-05-20  Vincent Celier  <celier@adacore.com>
4534
4535         * cstand.adb (Print_Standard): Issue the correct Size clause for type
4536         Wide_Wide_Character.
4537
4538 2008-05-20  Tristan Gingold  <gingold@adacore.com>
4539
4540         * decl.c: Do not emit a variable for a object that has an address
4541         representation clause whose value is known at compile time.
4542         When a variable has an address clause whose value is known at compile
4543         time, refer to this variable by using directly the address instead of
4544         dereferencing a pointer.
4545
4546 2008-05-20  Robert Dewar  <dewar@adacore.com>
4547
4548         PR ada/30740
4549         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
4550         subtypes, always False for non-modular types.
4551         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
4552         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
4553         for Shared_Storage package.
4554         (Is_RACW_Stub_Type): New entity flag.
4555
4556         * exp_ch4.adb
4557         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
4558         case where we have a modular type with a non-binary modules.
4559         Comments reformattings.
4560
4561         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
4562         all types.
4563
4564 2008-05-20  Javier Miranda  <miranda@adacore.com>
4565
4566         * exp_aggr.adb
4567         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
4568         tests did not covered the case in which the type of the aggregate has
4569         no progenitors but some its parents has progenitors.
4570
4571 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
4572             Hristian Kirtchev  <kirtchev@adacore.com>
4573
4574         * exp_ch3.adb
4575         (Expand_N_Object_Declaration): Correct the condition which triggers the
4576         generation of a call to Displace when initializing a class-wide object.
4577         (Build_Dcheck_Functions): Build discriminant-checking for null variants
4578         when Frontend_Layout_On_Target is true to ensure that they're available
4579         for calling when a record variant size function is built in Layout.
4580
4581 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4582
4583         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4584         procedure for a derived type retrieve the discriminant values from the
4585         parent using the corresponding discriminant.
4586         (Expand_N_Assignment_Statement): Skip generation of implicit
4587         if-statement associated with controlled types if we are
4588         compiling with restriction No_Finalization.
4589
4590 2008-05-20  Vincent Celier  <celier@adacore.com>
4591
4592         * prj.adb (Hash (Project_Id)): New function
4593         (Project_Empty): Add new component Interfaces_Defined
4594
4595         * prj.ads (Source_Data): New component Object_Linked
4596         (Language_Config): New components Object_Generated and Objects_Linked
4597         (Hash (Project_Id)): New function
4598         (Source_Data): New Boolean components In_Interfaces and
4599         Declared_In_Interfaces.
4600         (Project_Data): New Boolean component Interfaces_Defined
4601
4602         * prj-attr.adb:
4603         New project level attribute Object_Generated and Objects_Linked
4604         Add new project level attribute Interfaces
4605
4606         * prj-dect.adb: Use functions Present and No throughout
4607         (Parse_Variable_Declaration): If a string type is specified as a simple
4608         name and is not found in the current project, look for it also in the
4609         ancestors of the project.
4610
4611         * prj-makr.adb:
4612         Replace procedure Make with procedures Initialize, Process and Finalize
4613         to implement H414-023: process different directories with different
4614         patterns.
4615         Use functions Present and No throughout
4616
4617         * prj-makr.ads:
4618         Replace procedure Make with procedures Initialize, Process and Finalize
4619
4620         * prj-nmsc.adb
4621         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
4622         the language configuration.
4623         (Process_Project_Level_Array_Attributes): Process new attributes
4624         Object_Generated and Object_Linked.
4625         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
4626         False, to indicate that the erreor/warning is a continuation.
4627         (Check): Call Report_No_Sources with Contnuation = True after the first
4628         call.
4629         (Error_Msg): Process successively contnuation character and warning
4630         character.
4631         (Find_Explicit_Sources): Check that all declared sources have been found
4632         (Check_File): Indicate in hash table Source_Names when a declared source
4633         is found.
4634         (Check_File): Set Other_Part when found
4635         (Find_Explicit_Sources): In multi language mode, check if all exceptions
4636         to the naming scheme have been found. For Ada, report an error if an
4637         exception has not been found. Otherwise, disregard the exception.
4638         (Check_Interfaces): New procedure
4639         (Add_Source): When Other_Part is defined, set mutual pointers in spec
4640         and body.
4641         (Check): In multi-language mode, call Check_Interfaces
4642         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
4643         for an excluded source.
4644         (Remove_Source): A source replacing a source in the interfaces is also
4645         in the interfaces.
4646
4647         * prj-pars.adb: Use function Present
4648
4649         * prj-part.adb: Use functions Present and No throughout
4650         (Parse_Single_Project): Set the parent project for child projects
4651         (Create_Virtual_Extending_Project): Register project with no qualifier
4652         (Parse_Single_Project): Allow an abstract project to be extend several
4653         times. Do not allow an abstract project to extend a non abstract
4654         project.
4655
4656         * prj-pp.adb: Use functions Present and No throughout
4657         (Print): Take into account the full associative array attribute
4658         declarations.
4659
4660         * prj-proc.adb: Use functions Present and No throughout
4661         (Expression): Call itself with the same From_Project_Node for the
4662         default value of an external reference.
4663
4664         * prj-strt.adb: Use functions Present and No throughout
4665         (Parse_Variable_Reference): If a variable is specified as a simple name
4666         and is not found in the current project, look for it also in the
4667         ancestors of the project.
4668
4669         * prj-tree.ads, prj-tree.adb (Present): New function
4670         (No): New function
4671         Use functions Present and No throughout
4672         (Parent_Project_Of): New function
4673         (Set_Parent_Project_Of): New procedure
4674
4675         * snames.ads, snames.adb:
4676         Add new standard names Object_Generated and Objects_Linked
4677
4678 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4679
4680         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4681         and the derived type are of the same kind.
4682         (Expand_Call): Generate type conversions for actuals of
4683         record or array types when the parent and the derived types differ in
4684         size and/or packed status.
4685
4686 2008-05-20  Javier Miranda  <miranda@adacore.com>
4687             Ed Schonberg  <schonberg@adacore.com>
4688
4689         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
4690         generating dispatch tables of locally defined tagged types statically.
4691         Remove implicit if-statement that is no longer required.
4692         (Expand_Dispatching_Call): If this is a call to an instance of the
4693         generic dispatching constructor, the type of the first argument may be
4694         a subtype of Tag, so always use the base type to recognize this case.
4695
4696 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4697
4698         * exp_dist.adb
4699         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
4700         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
4701         assigning NULL into the result, to avoid a spurious warning.
4702         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
4703         is not frozen.
4704         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
4705         type.
4706         (Build_From_Any_Function, Build_To_Any_Function,
4707         Build_TypeCode_Function): For a type that has user-specified stream
4708         attributes, use an opaque sequence of octets as the representation.
4709
4710 2008-05-20  Kevin Pouget  <pouget@adacore.com>
4711
4712         * exp_smem.ads, exp_smem.adb: Construction of access and assign
4713         routines has been replaced by an instantiation of
4714         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
4715         shared variable declaration.
4716         Calls to access and assign routines have been replaced by calls to
4717         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
4718         instantiated package.
4719
4720         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
4721         It identifies the new generic package added in s-shasto.
4722
4723         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
4724         is instantiated for each shared passive variable. It provides
4725         supporting procedures called upon each read or write access by the
4726         expanded code.
4727
4728         * sem_attr.adb:
4729         For this runtime unit (always compiled in GNAT mode), we allow
4730         stream attributes references for limited types for the case where
4731         shared passive objects are implemented using stream attributes,
4732         which is the default in GNAT's persistent storage implementation.
4733
4734 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4735
4736         * freeze.adb
4737         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
4738         convention from its base type, do not set the type to that of integer,
4739         because it may inherit a size clause.
4740         Warn on a size clause with a size different
4741         from that of Integer, if the type has convention C.
4742
4743 2008-05-20  Vincent Celier  <celier@adacore.com>
4744
4745         * gnatname.adb
4746         (Scan_Args): Rewrite to take into account new switch --and to separate
4747         arguments into sections.
4748         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
4749         section, then Finalize.
4750
4751 2008-05-20  Tristan Gingold  <gingold@adacore.com>
4752
4753         * init.c: Enable stack probing on ppc-linux.
4754
4755         * tracebak.c: Add symbolic traceback for ppc-linux.
4756
4757         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
4758
4759 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4760
4761         * Makefile.in
4762         (common-tools): New rule, to avoid parallel build failure on gnat tools.
4763         Reenable parallel builds on this Makefile.
4764
4765         * Make-lang.in: Update dependencies.
4766
4767 2008-05-20  Robert Dewar  <dewar@adacore.com>
4768
4769         * opt.ads (Treat_Restrictions_As_Warnings): New switch
4770
4771         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
4772         Treat_Restrictions_As_Warnings.
4773
4774         * switch-c.adb: Recognize new switch -gnatr
4775
4776         * usage.adb: Add line for -gnatr
4777
4778 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4779
4780         * par-ch3.adb
4781         (P_Access_Definition): Change the error message when parsing "access
4782         all" in Ada 95 mode. The message no longer forces the user to recompile
4783         in 05 mode only to discover that anonymous access types are not allowed
4784         to have "all".
4785
4786 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4787
4788         * par-ch9.adb
4789         (P_Protected): Update the error message on missing "-gnat05" switch when
4790         using interfaces in conjunction with protected types. Remove the
4791         incorrect error message associated with the presence of "private" after
4792         a "with".
4793
4794 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4795
4796         * sem_aggr.adb: Update comments.
4797         Improve previous change for PR ada/17985
4798
4799 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4800
4801         * sem_cat.adb
4802         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
4803         the visible part of the spec of a remote types unit.
4804         (Validate_Remote_Access_Object_Type_Declaration):
4805         New local subprogram Is_Valid_Remote_Object_Type, replaces
4806         Is_Recursively_Limited_Private.
4807         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
4808         non-controlling formals (and the return type, even though this is not
4809         explicit in the standard) must support external streaming.
4810         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
4811         as above for of RAS types and RCI subprograms. (The return type is not
4812         checked yet).
4813         Update comments related to RACWs designating limited interfaces per
4814         ARG ruling on AI05-060.
4815
4816         * sem_util.ads, sem_util.adb
4817         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
4818         Is_Remote_Call_Interface to identify RACW types in a stable and
4819         consistent way. We used to rely in this predicate on the privateness of
4820         the designated type and its ancestors, but depending on the currently
4821         visible private parts, this caused false negatives. We now uniformly
4822         rely on checks made at the point where the RACW type is declared.
4823         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
4824
4825 2008-05-20  Javier Miranda  <miranda@adacore.com>
4826             Ed Schonberg  <schonberg@adacore.com>
4827             Hristian Kirtchev  <kirtchev@adacore.com>
4828
4829         * sem_ch3.adb
4830         (Analyze_Object_Declaration): Fix over-conservative condition
4831         restricting use of predefined assignment with tagged types that have
4832         convention CPP.
4833         (Analyze_Object_Declaration): Relax the check regarding deferred
4834         constants declared in scopes other than packages since they can be
4835         completed with pragma Import.
4836         Add missing escaping of all-caps word 'CPP' in error messages.
4837         (Build_Discriminated_Subtype): Do not inherit representation clauses
4838         from parent type if subtype already carries them, because they are
4839         inherited earlier during derivation and already include those that may
4840         come from a partial view.
4841
4842         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
4843         Check the declarations of a subprogram body for proper deferred
4844         constant completion.
4845
4846         * sem_ch7.ads, sem_ch7.adb
4847         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
4848
4849 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4850             Thomas Quinot  <quinot@adacore.com>
4851
4852         * sem_ch4.adb
4853         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
4854         F is a parameterless function that returns an array, and S is a subtype
4855         mark.
4856         (Analyze_Call): Insert dereference when the prefix is a parameterless
4857         function that returns an access to subprogram and the call has
4858         parameters.
4859         Reject a non-overloaded call whose name resolves to denote
4860         a primitive operation of the stub type generated to support a remote
4861         access-to-class-wide type.
4862
4863 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4864
4865         * sem_ch8.adb
4866         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
4867         when there is a use clause for the same entity in the context.
4868         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
4869         created for a stream attribute of an abstract type or interface type.
4870
4871 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4872
4873         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
4874         subprogram.
4875
4876         * sem_type.adb
4877         (Add_One_Interp): Ignore any interpretation that is a primitive
4878         operation of an RACW stub type (these primitives are only executed
4879         through dispatching, never through static calls).
4880         (Collect_Interps): When only one interpretation has been found, set N's
4881         Entity and Etype to that interpretation, otherwise Entity and Etype may
4882         still refer to an interpretation that was ignored by Add_One_Interp,
4883         in which case would end up with being marked as not overloaded but with
4884         an Entity attribute not pointing to its (unique) correct interpretation.
4885
4886 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4887
4888         * sem_eval.adb
4889         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
4890         denotes the whole array of its prefix.
4891
4892 2008-05-20  Robert Dewar  <dewar@adacore.com>
4893
4894         * sem_res.adb (Resolve_Op_Not): Warn on double negation
4895
4896 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4897
4898         * sprint.adb
4899         (Print_Itype): Do not modify the sloc of the component type of a
4900         (packed) array itype, because it is an unrelated type whose source
4901         location is independent of the point of creation of the itype itself.
4902
4903 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4904
4905         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
4906         Append.
4907
4908 2008-05-20  Robert Dewar  <dewar@adacore.com>
4909             Vincent Celier  <celier@adacore.com>
4910
4911         * vms_data.ads: Add entry for -gnatr
4912         Put GNAT SYNC section in proper alpha order
4913         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
4914
4915         * gnat_ugn.texi: Add documentation for new gnatname switch --and
4916         Update the style checks section
4917         Add documentation of -gnatr
4918         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
4919         subsection the explanation how compiler checks should be disabled for
4920         gnatcheck.
4921         Update the list of Ada 95 reserved words used by in the project language
4922         Add documentation for project qualifiers.
4923         Document that abstract projects may be extended by different projects in
4924         the same project tree.
4925         Add documentation for gnatmake switch -d
4926
4927         * ug_words: Add -gnatyy VMS equivalence string.
4928         Add entry for -gnatr
4929
4930 2008-05-20  Bob Duff  <duff@adacore.com>
4931
4932         * a-rttiev.adb
4933         (Set_Handler): Remove code from both of these that implements
4934         RM-D.15(15/2), because it causes a race condition and potential
4935         deadlock.
4936         (Process_Queued_Events): Add comment explaining "exception when others
4937         => null". Add clarifying ".all", even though implicit .all is legal
4938         here.
4939
4940 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4941
4942         * s-winext.ads: Replace representation clause by pragma Pack. Gives
4943         equivalent representation, but has the advantage of allowing
4944         compilation of this file under 64 bits platforms.
4945
4946         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
4947
4948         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
4949
4950         * adaint.c:
4951         Don't define dummy implementation of convert_addresses on ppc-linux.
4952
4953 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4954
4955         * exp_ch7.adb
4956         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
4957         if expression is aggregate component.
4958
4959 2008-05-20  Robert Dewar  <dewar@adacore.com>
4960
4961         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
4962         sem_ch12.adb: Update comments. Minor reformatting.
4963
4964         * exp_ch2.adb: Typo
4965
4966         * s-unstyp.ads: Fixed some typos in comments.
4967
4968 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4969
4970         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
4971         type/constant.
4972
4973         * g-socthi-vxworks.ads: Update to latest socket changes.
4974
4975         * a-caldel-vms.adb: Resync with a-caldel spec.
4976
4977         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
4978         Update comments.
4979
4980 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
4981
4982         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
4983         for dummy types pointed to by the converted pointer types.
4984
4985 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
4986
4987         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
4988         of records and unions.
4989         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
4990
4991 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
4992             Robert Dewar <dewar@adacore.com>
4993
4994         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
4995         restrictions to the prefix of 'Old.
4996         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
4997         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
4998         variables.
4999
5000 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
5001
5002         PR ada/24880
5003         PR ada/26635
5004         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
5005         expression to an integral type with lower precision, use NOP_EXPR
5006         directly in a couple of special cases.
5007
5008 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
5009             Ed Schonberg <schonberg@adacore.com>
5010
5011         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
5012         constraint expressions.
5013
5014 2008-05-12  Tomas Bily  <tbily@suse.cz>
5015
5016         * utils2.c (known_alignment, contains_save_expr_p)
5017         (gnat_mark_addressable): Use CASE_CONVERT.
5018         * decl.c (annotate_value): Likewise.
5019         * trans.c (maybe_stabilize_reference): Likewise.
5020         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
5021         * utils.c (rest_of_record_type_compilation): Likewise.
5022         * trans.c (protect_multiple_eval, Attribute_to_gnu)
5023         (protect_multiple_eval): Likewise.
5024
5025 2008-05-08  Andreas Schwab  <schwab@suse.de>
5026
5027         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
5028         DECL_IS_PURE to DECL_PURE_P.
5029
5030 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
5031
5032         * decl.c (maybe_pad_type): Add ??? comment.
5033
5034 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
5035
5036         * decl.c (components_to_record): Zero the alignment of the qualified
5037         union built for the variant part upon creating it.
5038
5039 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
5040
5041         * decl.c (maybe_pad_type): Try to get a form of the type with integral
5042         mode even if the alignment is not a factor of the original size.  But
5043         make sure to create the inner field with the original size.  Reorder.
5044         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
5045         record as always addressable.
5046         * utils.c (convert): Deal specially with conversions between original
5047         and packable versions of a record type.
5048         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
5049         recognizing an assignment between padded objects.
5050
5051 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
5052
5053         * decl.c (make_packable_type): Resize the last component to its RM size
5054         only if it is of an aggregate type.
5055         * trans.c (call_to_gnu): Fix nit in comment.
5056         (gnat_to_gnu): Likewise.
5057
5058 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
5059
5060         * Makefile.in: Adapt sh4-linux target.
5061
5062 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
5063
5064         PR ada/35792
5065         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
5066         tagged type by an untagged protected or task type.
5067
5068 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
5069             Tristan Gingold  <gingold@adacore.com>
5070
5071         PR ada/36007
5072         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
5073         of aliased objects with an unconstrained nominal subtype.
5074         Cap the promotion to the effective alignment of the word mode.
5075
5076 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5077
5078         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
5079         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
5080         Use '&&' instead of ';'.
5081
5082 2008-04-24  Olivier Hainque  <hainque@adacore.com>
5083
5084         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
5085         doesn't require signed arithmetic anymore.
5086
5087 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
5088
5089         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
5090         (call_to_gnu): Don't set TREE_INVARIANT.
5091         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
5092
5093 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
5094
5095         * s-osinte-rtems.adb: Add sigalstack function.
5096         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
5097         function. Add Alternate_Stack and Alternate_Stack_Size.
5098         Add missing process_shared field to pthread_condattr_t
5099         and change ss_low_priority to int from timespec.
5100
5101 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
5102
5103         * i-forbla.adb: Link against -llapack and -lblas by default
5104         instead of the private -lgnalasup.
5105
5106 2008-04-21  Olivier Hainque  <hainque@adacore.com>
5107
5108         Access to most C builtins from Ada
5109         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
5110         (handle_pure_attribute, handle_novops_attribute,
5111         handle_nonnull_attribute, handle_sentinel_attribute,
5112         handle_noreturn_attribute, handle_malloc_attribute,
5113         handle_type_generic_attribute): New attribute handlers, from C fe.
5114         (gnat_internal_attribute_table): Map the new handlers.
5115         (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
5116         (init_gigi_decls): ... here.
5117         (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
5118         Move to a section dedicated to builtins processing.
5119         (build_void_list_node, builtin_type_for_size): New functions.
5120         (def_fn_type, get_nonnull_operand): Likewise.
5121         (install_builtin_elementary_type, install_builtin_function_types,
5122         install_builtin_attributes): Likewise.
5123         (fake_attribute_handler): Fake handler for attributes we don't
5124         support in Ada.
5125         (def_builtin_1): New function, worker for DEF_BUILTIN.
5126         (install_builtin_functions): New function.
5127         (gnat_install_builtins): Move to the builtins processing section.
5128         Now calling the newly introduced installers.
5129
5130 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5131
5132         * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
5133         constant objects, but not exceptions.
5134         * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
5135         compatibility test.
5136         * utils.c (create_var_decl_1): Likewise.
5137         * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
5138         the type when copying to padded object and the source is a constructor.
5139
5140 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5141
5142         * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
5143         alignment, reset it to zero if it would end up not being greater
5144         than that of the type.
5145
5146 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5147
5148         * decl.c (maybe_pad_type): Only generate the XVS parallel type if
5149         the padded type has a variable size.
5150
5151 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5152
5153         * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
5154         target pointer mechanism as soon as the size is not constant.
5155
5156 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5157
5158         * gigi.h (create_var_decl_1): Declare.
5159         (create_var_decl): Turn into a macro invoking create_var_decl_1.
5160         (create_true_var_decl): Likewise.
5161         * utils.c (create_var_decl_1): Make global and reorder parameters.
5162         (create_var_decl): Delete.
5163         (create_true_var_decl): Likewise.
5164
5165 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
5166
5167         * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
5168         objects by default.
5169         * fe.h (Debug_Flag_Dot_A): Delete.
5170         * debug.adb (-gnatd.a): Update documentation.
5171
5172 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
5173
5174         * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
5175         "not null" parameter.
5176
5177 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
5178
5179         * g-socket.adb: Add a message "IPv6 not supported" to the
5180         Socket_Error exception.
5181
5182 2008-04-16  Samuel Tardieu  <sam@rfc1149.net>
5183
5184         PR ada/29015
5185         * sem_ch12.adb (Instantiate_Type): Check whether the full view of
5186         the type is known instead of the underlying type.
5187
5188 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
5189
5190         PR ada/22387
5191         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
5192         procedure for a derived type retrieve the discriminant values from
5193         the parent using the corresponding discriminant.
5194
5195 2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
5196             Gary Dismukes  <dismukes@adacore.com>
5197
5198         PR ada/28733
5199         * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
5200         which is not an entity (and hence not a package).
5201         (End_Use_Package): Ditto.
5202
5203 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
5204
5205         PR ada/16086
5206         * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
5207         protected operation that matches the signature, not only an entry, a
5208         regular subprogram or a literal.
5209
5210 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5211
5212         * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
5213         * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
5214         if a size or alignment is specified.  Do not take into account
5215         alignment promotions for the computation of the object's size.
5216         <type>: Call maybe_pad_type only if a size or alignment is specified.
5217         (maybe_pad_type): Really reuse the RM_Size of the original type if
5218         requested.
5219         * trans.c (Attribute_to_gnu): Fix a couple of nits.
5220         * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
5221         statements.  Use the padded view of the type when copying between
5222         padded objects of the same underlying type.
5223
5224 2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5225
5226         * vms_data.ads: Fix typo in constant.
5227         * gen-soccon.c: Fix typo in error string.
5228         * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
5229         Fix typos.
5230         * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
5231         bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
5232         erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
5233         exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
5234         exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
5235         g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
5236         mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
5237         s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
5238         s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
5239         sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
5240         sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
5241         sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
5242         sinfo.ads: Fix typos in comments.
5243
5244 2008-04-14  Robert Dewar  <dewar@adacore.com>
5245
5246         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
5247         to every non-object and change error message.
5248
5249 2008-04-14  Robert Dewar  <dewar@adacore.com>
5250
5251         * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
5252         * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
5253         directly.
5254
5255 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
5256
5257         PR ada/18680
5258         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
5259         apply pragma Linker_Section on type.
5260
5261 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
5262
5263         PR ada/16098
5264         * sem_prag.adb (Error_Pragma_Ref): New.
5265         (Process_Convention): Specialized message for non-local
5266         subprogram renaming. Detect the problem in homonyms as well.
5267
5268 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
5269
5270         PR ada/15915
5271         * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
5272         * sem_ch12.adb (Instantiate_Object): Use it.
5273         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
5274         storage pool denotes a variable as per RM 13.11(15).
5275
5276 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
5277
5278         * sem_util.ads, sem_util.adb (In_Subprogram): New function.
5279         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
5280
5281 2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>
5282
5283         PR ada/20822
5284         * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
5285         line endings even on non-Unix platforms.
5286
5287 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
5288
5289         PR ada/35050
5290         * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
5291         renaming information.
5292
5293 2008-04-13  Samuel Tardieu  <sam@rfc1149.net>
5294
5295         PR ada/17985
5296         * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
5297         itself.
5298
5299 2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5300
5301         * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
5302         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
5303         snames.ads, sprint.adb, stand.ads, stringt.ads,
5304         styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
5305         switch.ads, sysdep.c, table.adb, table.ads,
5306         targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
5307         trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
5308         uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
5309         vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
5310         widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
5311         xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
5312         Fix comment typos.
5313
5314         * sem_ch10.adb, sem_ch10.ads,
5315         sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
5316         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
5317         sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
5318         sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
5319         sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
5320         sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
5321         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
5322         sem_warn.ads: Fix comment typos.
5323
5324         * s-secsta.adb, s-sequio.ads, s-shasto.ads,
5325         s-soflin.ads, s-stalib.ads, s-stausa.adb,
5326         s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
5327         s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
5328         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
5329         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
5330         s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
5331         s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
5332         s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
5333         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
5334         s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
5335         s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
5336         s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
5337         s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
5338         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
5339         scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
5340         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
5341         sem_cat.adb, sem_cat.ads: Fix comment typos.
5342
5343 2008-04-12  Joel Sherrill  <joel@oarcorp.com>
5344
5345         PR ada/35825
5346         * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
5347
5348 2008-04-12  Arnaud Charlet  <charlet@adacore.com>
5349
5350         * s-linux-hppa.ads: Fix syntax errors.
5351
5352 2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5353
5354         * gnat_ugn.texi: Fix typos.
5355         * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
5356         restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
5357         s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
5358         s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
5359         s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
5360         s-finimp.adb, s-finroo.ads, s-fishfl.ads,
5361         s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
5362         s-hibaen.ads, s-htable.ads, s-imgcha.adb,
5363         s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
5364         s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
5365         s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
5366         s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
5367         s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
5368         s-osinte-darwin.ads, s-osinte-freebsd.ads,
5369         s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
5370         s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
5371         s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
5372         s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
5373         s-parame-hpux.ads, s-parame-vms-alpha.ads,
5374         s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
5375         s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
5376         s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
5377         s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
5378         s-rident.ads: Fix comment typos.
5379
5380 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
5381
5382         PR ada/28305
5383         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
5384         environment if generic instance is a top-level one.
5385
5386 2008-04-09  Doug Rupp  <rupp@adacore.com>
5387
5388         * decl.c (validate_size): Set minimum size for fat pointers same as
5389         access types. Code clean ups.
5390
5391         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
5392         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
5393
5394         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
5395
5396         * s-crtl.ads (malloc32) New function, alias for malloc
5397         (realloc32) New function, alias for realloc
5398
5399         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
5400
5401         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
5402         allocator size is 32 and default pointer size is 64.
5403         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
5404         lhs type if smaller, whatever the modes.
5405
5406         * gigi.h (malloc32_decl): New macro definition
5407
5408         * utils.c (init_gigi_decls): New malloc32_decl
5409         Various code clean ups.
5410
5411         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5412         Task_Address vice System.Address.
5413
5414         * s-taspri-vms.ads: Import System.Aux_DEC
5415         (Task_Address): New subtype of System.Aux_DEC.Short_Address
5416         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
5417
5418         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5419         Task_Address vice System.Address.
5420
5421         * s-inmaop-vms.adb: Import System.Task_Primitives
5422         (To_Address): Unchecked convert to Task_Address vice System.Address
5423
5424         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
5425         expires now.
5426         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
5427         (To_Address) Unchecked convert to Task_Address vice System.Address
5428
5429         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
5430
5431         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
5432
5433 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5434
5435         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
5436         (fdesc_type_node): Define.
5437         (null_fdesc_node): Likewise.
5438         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
5439         uses descriptors for vtables and the type comes from a dispatch table,
5440         return the descriptor type.
5441         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
5442         uses descriptors for vtables and the type comes from a dispatch table,
5443         build a descriptor in the static case and copy the existing one in the
5444         non-static case.
5445         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
5446         the type is a pointer-to-subprogram coming from a dispatch table,
5447         return the null descriptor.
5448         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
5449         vtables, the source type is the descriptor type and the target type
5450         is a pointer type, first build the pointer.
5451         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
5452         build the descriptor type and the null descriptor.
5453
5454 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5455
5456         * decl.c (prepend_attributes): Fix typo.
5457         * trans.c (Pragma_to_gnu): Likewise.
5458         * utils.c (gnat_genericize): Likewise.
5459
5460 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5461             Richard Kenner  <kenner@adacore.com>
5462
5463         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
5464         * decl.c (gnat_to_gnu_entity): Adjust for above change.
5465         <E_Record_Type>: Try to get a better form of the component for
5466         packing, even if it has an integral mode.
5467         <E_Record_Subtype>: Likewise.
5468         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
5469         exception suppressing the final conversion between record types.
5470
5471 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5472
5473         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
5474         alignment for space, promote the alignment of non-scalar variables with
5475         no size and alignment.
5476         * gigi.h (gnat_types_compatible_p): Declare.
5477         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
5478         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
5479         * utils.c (gnat_types_compatible_p) : New predicate.
5480         (convert): Use it throughout to test for cases where a mere view
5481         conversion is sufficient.
5482         * utils2.c (build_binary_op): Minor tweaks.
5483         (build_unary_op): Likewise.
5484
5485 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5486
5487         * decl.c (adjust_packed): Expand comment.
5488
5489 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5490
5491         * s-tasuti.ads: Use Task_Address instead of System.Address.
5492
5493         * makeutl.adb (Path_Or_File_Name): New function
5494
5495         * nlists.ads, itypes.ads: Update comments.
5496
5497         * s-crtl.ads (malloc32, realloc32): New functions.
5498
5499         * s-auxdec.ads (Short_Address_Size): New constant.
5500
5501         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
5502
5503         * s-ststop.ads, s-ststop.adb: New file.
5504
5505         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
5506         Minor reformatting.
5507
5508 2008-04-08  Pascal Obry  <obry@adacore.com>
5509
5510         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
5511         (Stop_Bits_Number): New type.
5512         (Parity_Check): Likewise.
5513         (Set): Add parameter to set the number of stop bits and
5514         the parity. Parameter timeout is now a duration instead
5515         of a plain integer.
5516
5517         * g-sercom-linux.adb:
5518         Implement the stop bits and parity support for GNU/Linux.
5519         Fix handling of timeout, it must be given in tenth of seconds.
5520
5521         * g-sercom-mingw.adb:
5522         Implement the stop bits and parity support for Windows.
5523         Use new s-win32.ads unit instead of declaring Win32 services
5524         directly into this body.
5525         Update handling of timeout as now a duration.
5526
5527         * s-win32.ads, s-winext.ads: New files.
5528
5529 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5530             Arnaud Charlet  <charlet@adacore.com>
5531
5532         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
5533
5534         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
5535         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
5536
5537         * s-osinte-lynxos-3.ads,
5538         (Alternate_Stack): Remove when not needed. Simplify declaration
5539         otherwise.
5540         (Alternate_Stack_Size): New constant.
5541
5542         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
5543         'Unrestricted_Access.
5544
5545         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
5546         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
5547         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
5548         s-osinte-solaris.ads, s-osinte-vms.ads
5549         (SA_ONSTACK): New constant.
5550         (stack_t): New record type.
5551         (sigaltstack): New imported function.
5552         (Alternate_Stack): New imported variable.
5553         (Alternate_Stack_Size): New constant.
5554
5555         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
5556
5557         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
5558         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
5559         s-taspri-vms.ads (Task_Address): New subtype of System.Address
5560         (Task_Address_Size): New constant size of System.Address
5561         (Alternate_Stack_Size): New constant.
5562
5563         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
5564         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
5565         Establish the alternate stack if the platform makes use of n alternate
5566         signal stack for stack overflows.
5567         (Create_Task): Take into account the alternate stack in the stack size.
5568         (Initialize): Save the address of the alternate stack into the ATCB for
5569         the environment task.
5570         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
5571
5572         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
5573
5574         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
5575
5576         * s-intman-posix.adb:
5577         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
5578         alternate signal stack for stack overflows.
5579
5580         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
5581         x86-64, adjust the saved value of the stack pointer if the signal was
5582         raised by a stack checking probe.
5583         (HP-UX section): Use global __gnat_alternate_stack as signal handler
5584         stack and only for SIGSEGV.
5585         (Linux section): Likewise on x86 and x86-64.
5586         [VxWorks section]
5587         (__gnat_map_signal): Now static.
5588         (__gnat_error_handler): Not static any more.
5589         (__gnat_adjust_context_for_raise): New function. Signal context
5590         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
5591         propagation circuitry.
5592         (__gnat_error_handler): Second argument of a sigaction handler is a
5593         pointer, not an int, and is unused.
5594         Adjust signal context before mapping to exception.
5595         Install signal handlers for LynxOS case.
5596
5597         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
5598         (Task_Id): Set size to Task_Address_Size
5599         (To_Task_id): Unchecked convert from Task_Address vice System.Address
5600         (To_Address): Unchecked convert to Task_Address vice System.Address
5601
5602         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
5603         address into the ATCB if the platform makes use of an alternate signal
5604         stack for stack overflows.
5605         (Free_Task): Add call to Finalize_Attributes_Link.
5606         Add argument Relative_Deadline to pass the value specified for
5607         the task. This is not yet used for any target.
5608
5609         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
5610         the value specified for the task.
5611
5612 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5613
5614         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
5615         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
5616         s-vxwext-rtp.adb): New files.
5617
5618         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
5619         Minor updates to accomodate changes above.
5620
5621 2008-04-08  Pascal Obry  <obry@adacore.com>
5622
5623         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
5624         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
5625         Use new s-win32.ads unit instead of declaration
5626         from s-osinte-mingw.ads.
5627
5628         * s-osinte-mingw.ads:
5629         Move all non tasking based interface to s-win32.ads.
5630
5631         * s-osprim-mingw.adb:
5632         Remove duplicated declarations and use s-win32.ads
5633         unit instead.
5634
5635 2008-04-08  Vincent Celier  <celier@adacore.com>
5636             Arnaud Charlet  <charlet@adacore.com>
5637
5638         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
5639         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
5640         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
5641         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
5642         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
5643
5644         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
5645         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
5646         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
5647         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
5648         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
5649         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
5650         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
5651         mlib-tgt-specific-mingw.adb: New names.
5652
5653         * Makefile.in:
5654         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
5655         Get rid of gnatbl.
5656         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
5657         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
5658         Minor updates for VMS
5659
5660         * gnatbl.c: Removed.
5661
5662 2008-04-08  Thomas Quinot  <quinot@adacore.com>
5663
5664         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
5665         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
5666         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
5667         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
5668         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
5669         ASCII.NUL throughout.
5670
5671 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5672             Matthew Heaney  <heaney@adacore.com>
5673
5674         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
5675         renaming.
5676
5677         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
5678         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
5679         to convention for non-RM specs.
5680         Add descriptive header, and documented each operation
5681         document each operation
5682
5683 2008-04-08  Robert Dewar  <dewar@adacore.com>
5684             Bob Duff  <duff@adacore.com>
5685             Gary Dismukes  <dismukes@adacore.com>
5686             Ed Schonberg  <schonberg@adacore.com>
5687
5688         * alloc.ads: Add entries for Obsolescent_Warnings table
5689
5690         * einfo.ads, einfo.adb: Minor reformatting.
5691         (Is_Discriminal): New subprogram.
5692         (Is_Prival): New subprogram.
5693         (Is_Protected_Component): New subprogram.
5694         (Is_Protected_Private): Removed.
5695         (Object_Ref, Set_Object_Ref): Removed.
5696         (Prival, Set_Prival): Change assertion.
5697         (Privals_Chain, Set_Privals_Chain): Removed.
5698         (Prival_Link, Set_Prival_Link): New subprogram.
5699         (Protected_Operation, Set_Protected_Operation): Removed.
5700         (Protection_Object, Set_Protection_Object): New subprogram.
5701         (Write_Field17_Name): Remove case for Object_Ref.
5702         (Write_Field20_Name): Add case for Prival_Link.
5703         (Write_Field22_Name): Remove case for Protected_Operation,
5704         Privals_Chain.
5705         Add case for Protection_Object.
5706         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
5707         so clients
5708         (Overlays_Constant): New flag
5709         (Is_Constant_Object): New predicate
5710         (Is_Standard_Character_Type): New predicate
5711         (Optimize_Alignment_Space): New flag
5712         (Optimize_Alignment_Time): New flag
5713         (Has_Postconditions): New flag
5714         (Obsolescent_Warrning): Field removed
5715         (Spec_PPC_List): New field
5716         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
5717         subprograms to get and set the relative deadline associated to a task.
5718
5719         * exp_attr.adb (May_Be_External_Call): Account for the case where the
5720         Access attribute is part of a named parameter association.
5721         (Expand_Access_To_Protected_Op): Test for the attribute occurring
5722         within an init proc and use that directly as the scope rather than
5723         traversing up to the protected operation's enclosing scope. Only apply
5724         assertion on Is_Open_Scopes in the case the scope traversal is done.
5725         For the init proc case use the address of the first formal (_init) as
5726         the protected object reference.
5727         Implement Invalid_Value attribute
5728         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
5729         contents of the dispatch table there is no need to duplicate the
5730         itypes associated with record types (i.e. the implicit full view
5731         of private types).
5732         Implement Enum_Val attribute
5733         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
5734         within _Postconditions procedure
5735         (Expand_N_Attribute_Reference, case Result): Implement new attribute
5736
5737         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
5738         a return statement calls a function that is not available in
5739         configurable runtime.
5740         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
5741         (Expand_Non_Function_Return): Generate call to _Postconditions proc
5742         (Expand_Simple_Function_Return): Ditto
5743
5744         * frontend.adb: Add call to Sem_Aux.Initialize
5745
5746         * sem_aux.ads, sem_aux.adb: New file.
5747
5748         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
5749         Add new Pragma_Relative_Deadline.
5750         Add support for pragmas Check and Check_Policy
5751
5752         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
5753         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
5754         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
5755         missing check because they are not allowed in CPP tagged types.
5756         Add Sure parameter to Note_Possible_Modification calls
5757         Add implementation of Invalid_Value attribute
5758         Implement new attribute Has_Tagged_Values
5759         Implement Enum_Val attribute
5760         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
5761         generated attributes.
5762         (Analyze_Attribute, case Result): If prefix of the attribute is
5763         overloaded, it always resolves to the enclosing function.
5764         (Analyze_Attribute, case Result): Properly deal with analysis when
5765         Postconditions are not active.
5766         (Resolve_Attribute, case Result): Properly deal with appearence during
5767         preanalysis in spec.
5768         Add processing for attribute Result
5769
5770         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
5771         for operators.
5772         (Analyze_Subprogram_Body): Install private_with_clauses when the body
5773         acts as a spec.
5774         (Check_Inline_Pragma): recognize an inline pragma that appears within
5775         the subprogram body to which it applies.
5776         (Analyze_Function_Return): Check that type of the expression of a return
5777         statement in a function with a class-wide result is not declared at a
5778         deeper level than the function.
5779         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
5780         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
5781         user- defined operators.
5782         (Install_Formals): Moved to spec to allow use from Sem_Prag for
5783         analysis of precondition/postcondition pragmas.
5784         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
5785         Last_Formal, along with lots of comments on what this is about
5786         (Analyze_Subprogram_Body): Fix case where we move entities from the
5787         spec to the body when there are no body entities (now possible with
5788         precondition and postcondition pragmas).
5789         (Process_PPCs): New procedure
5790         (Analyze_Subprogram_Body): Add call to Process_PPCs
5791
5792         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
5793         clause.
5794         (Pop_Scope): Restore Check_Policy_List on scope exit
5795         (Push_Scope): Save Check_Policy_List on scope entry
5796         Change name In_Default_Expression      => In_Spec_Expression
5797         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5798         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5799         (Analyze_Object_Renaming): Allow 'Reference as object
5800         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
5801         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
5802         of restriction identifier.
5803         Add Sure parameter to Note_Possible_Modication calls
5804
5805         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
5806         Don't check for primitive operations when calling Rep_Item_Too_Late.
5807         (Process_Import_Or_Interface): Do not place flag on formal
5808         subprograms.
5809         (Analyze_Pragma, case Export): If the entity is a deferred constant,
5810         propagate information to full view, which is the one elaborated by the
5811         back-end.
5812         (Make_Inline): the pragma is effective if it applies to an internally
5813         generated subprogram declaration for a body that carries the pragma.
5814         (Analyze_Pragma, case Optimize_Alignment): Set new flag
5815         Optimize_Alignment_Local.
5816         (Analyze_PPC_In_Decl_Part): New procedure
5817         (Get_Pragma_Arg): Moved to outer level
5818         (Check_Precondition_Postcondition): Change to allow new visibility
5819         rules for package spec
5820         (Analyze_Pragma, case Check_Policy): Change placement rules to be
5821         same as pragma Suppress/Unsuppress.
5822         Change name In_Default_Expression      => In_Spec_Expression
5823         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5824         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5825         (Check_Precondition_Postcondition): Do proper visibility preanalysis
5826         for the case of these pragmas appearing in the spec.
5827         (Check_Enabled): New function
5828         (Initialize): New procedure
5829         (Tree_Read): New procedure
5830         (Tree_Write): New procedure
5831         (Check_Precondition_Postcondition): New procedure
5832         Implement pragmas Check and Check_Policy
5833         Merge Assert processing with Check
5834
5835         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
5836         New warning flag -gnatw.e
5837
5838         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
5839         returning whether a task (or main procedure) has a pragma
5840         Relative_Deadline.
5841         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
5842         (or main procedure) has a pragma Relative_Deadline.
5843         Add Next_Pragma field to N_Pragma node
5844         (PPC_Enabled): New flag
5845         (Next_Pragma): Now used for Pre/Postcondition processing
5846
5847         * snames.h, snames.ads, snames.adb: New standard name
5848         Inherit_Source_Path
5849         Add entry for 'Invalid_Value attribute
5850         Add entry for new attribute Has_Tagged_Values
5851         Add entry for Enum_Val attribute
5852         Add new standard names Aggregate, Configuration and Library.
5853         Add _Postconditions
5854         Add _Result
5855         Add Pragma_Precondition
5856         Add Pragma_Postcondition
5857         Add Attribute_Result
5858         New standard name Archive_Builder_Append_Option
5859         (Preset_Names): Add _relative_deadline and relative_deadline definitions
5860         There was also a missing non_preemptive_within_priorities.
5861         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
5862         Relative_Deadline.
5863         Add support for pragmas Check and Check_Policy
5864
5865         * tree_gen.adb: Call Sem_Aux.Tree_Write
5866
5867         * tree_in.adb: Call Sem_Aux.Tree_Read
5868
5869         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
5870         sequence
5871
5872         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
5873         sequence
5874
5875         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
5876         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
5877         Relative_Deadline.
5878         (Expand_Pragma_Check): New procedure
5879
5880         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
5881         buffer.
5882
5883         * sinfo.adb (PPC_Enabled): New flag
5884
5885 2008-04-08  Robert Dewar  <dewar@adacore.com>
5886             Gary Dismukes  <dismukes@adacore.com>
5887             Javier Miranda  <miranda@adacore.com>
5888             Ed Schonberg  <schonberg@adacore.com>
5889
5890         * fe.h: Remove global Optimize_Alignment flag, no longer used
5891
5892         * layout.adb: Test Optimize_Alignment flags rather than global switch
5893
5894         * lib.ads, lib.adb: New OA_Setting field in library record
5895
5896         * lib-load.adb: New OA_Setting field in library record
5897
5898         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
5899         units mentioned in limited_with_ clauses in the ali file, with an
5900         'Y' marker.
5901         New Ox fields in U line
5902
5903         * opt.adb: New flag Optimize_Alignment_Local
5904         (Check_Policy_List[_Config]): New flags
5905
5906         * opt.ads (Invalid_Value_Used): New flag
5907         New switch Optimize_Alignment_Local
5908         (Warn_On_Parameter_Order): New flag
5909         (Check_Policy_List[_Config]): New flags
5910
5911         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
5912         limited_with clauses.
5913         New data structures for Optimize_Alignment
5914
5915         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
5916         New procedure
5917         (Check_Consistent_Optimize_Alignment): Rework for new structure
5918         (Check_Consistent_Restrictions): Fix incorrect error message
5919
5920         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
5921         created class-wide type (to the Parent field of the specific type).
5922         (Install_Siblings): Handle properly private_with_clauses on subprogram
5923         bodies and on generic units.
5924         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
5925         illegal limited_with_clause that names a non-existent package.
5926         (Check_Body_Required): Determine whether a unit named a limited_with
5927         clause needs a body.
5928         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
5929         Capture Optimize_Alignment settings to set new OA_Setting field in
5930         library record.
5931         (Build_Limited_Views): Include task and protected type declarations.
5932
5933         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
5934         case of a possible constant redeclaration where the current object is
5935         an entry index constant.
5936         (Analyze_Object_Declaration): Generate an error in case of CPP
5937         class-wide object initialization.
5938         (Analyze_Object_Declaration): Add extra information on warnings for
5939         declaration of unconstrained objects.
5940         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
5941         conflicts with the setting of Stored_Constraint in the case where the
5942         access type entity has already been created as an E_Incomplete_Type due
5943         to a limited with clause.
5944         Use new Is_Standard_Character_Type predicate
5945         (Analyze_Object_Declaration): Apply access_constant check only after
5946         expression has been resolved, given that it may be overloaded with
5947         several access types.
5948         (Constant_Redeclaration): Additional legality checks for deferred
5949         constant declarations tha involve anonymous access types and/or null
5950         exclusion indicators.
5951         (Analyze_Type_Declaration): Set Optimize_Alignment flags
5952         (Analyze_Subtype_Declaration): Ditto
5953         (Analyze_Object_Declaration): Ditto
5954         (Analyze_Object_Declaration): Don't count tasks in generics
5955         Change name In_Default_Expression      => In_Spec_Expression
5956         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5957         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5958         (Process_Discriminants): Additional check for illegal use of default
5959         expressions in access discriminant specifications in a type that is not
5960         explicitly limited.
5961         (Check_Abstract_Overriding): If an inherited function dispaches on an
5962         access result, it must be overridden, even if the type is a null
5963         extension.
5964         (Derive_Subprogram): The formals of the derived subprogram have the
5965         names and defaults of the parent subprogram, even if the type is
5966         obtained from the actual subprogram.
5967         (Derive_Subprogram): In the presence of interfaces, a formal of an
5968         inherited operation has the derived type not only if it descends from
5969         the type of the formal of the parent operation, but also if it
5970         implements it. This is relevant for the renamings created for the
5971         primitive operations of the actual for a formal derived type.
5972         (Is_Progenitor): New predicate, to determine whether the type of a
5973         formal in the parent operation must be replaced by the derived type.
5974
5975         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
5976         predicate recursive to handle components that have a user-defined
5977         Initialize procedure. Handle controlled derived types whose ancestor
5978         has a user-defined Initialize procedured.
5979         (Note_Possible_Modification): Add Sure parameter, generate warning if
5980         sure modification of constant
5981         Use new Is_Standard_Character_Type predicate
5982         (Find_Parameter_Type): when determining whether a protected operation
5983         implements an interface operation, retrieve the type of the formal from
5984         the entity when the formal is an access parameter or an
5985         anonymous-access-to-subprogram.
5986         Move Copy_Parameter_List to sem_util, for use when building stubbed
5987         subprogram bodies.
5988         (Has_Access_Values): Tagged types now return False
5989         (Within_HSS_Or_If): New procedure
5990         (Set_Optimize_Alignment_Flags): New procedure
5991         Change name In_Default_Expression      => In_Spec_Expression
5992         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
5993         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
5994
5995 2008-04-08  Tristan Gingold  <gingold@adacore.com>
5996
5997         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
5998
5999 2008-04-08  Tristan Gingold  <gingold@adacore.com>
6000
6001 PR ada/10768
6002
6003         * cuintp.c: Fix 16 bits issue for AVR.
6004         On AVR, integer is 16 bits, so it can't be used to do math with
6005         Base (=32768).
6006         So use long_integer instead.
6007
6008 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6009
6010         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
6011         System.OS_Primitives.
6012         Change type of various constants, parameters and local variables from
6013         Time to representation type OS_Time.
6014         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
6015         Remove the declaration of constant Mili_F from several routines. New
6016         body for internal package Conversions_Operations.
6017         (Time_Of): Add default parameters for several formals.
6018
6019         * a-caldel.adb: Minor reformatting
6020
6021         * a-calend.ads, a-calend.adb: New body for internal package
6022         Conversions_Operations.
6023         (Time_Of): Add default parameters for several formals.
6024
6025         * Makefile.rtl: Add a-ststop
6026         Add Ada.Calendar.Conversions to the list of runtime files.
6027         Add g-timsta
6028
6029         * a-calcon.adb, a-calcon.ads: New files.
6030
6031 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
6032             Tristan Gingold  <gingold@adacore.com>
6033
6034         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
6035         (Install_Restricted_Handlers): New procedure
6036         which is a simplified version of Install_Handlers that does not store
6037         previously installed.
6038
6039         * s-interr-vxworks.adb: Fix ACATS cxc3001
6040         On VxWorks interrupts can't be detached.
6041         (Install_Restricted_Handlers): New procedure.
6042
6043         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
6044         procedure.
6045
6046 2008-04-08  Olivier Hainque  <hainque@adacore.com>
6047
6048         * s-intman-vxworks.ads, s-intman-vxworks.adb
6049         (Map_And_Raise_Exception): Remove. Was an import of only part of the
6050         required services already implemented elsewhere.
6051         (Notify_Exception): Delete body, import __gnat_error_handler instead.
6052         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
6053         argument passed to the handler, which we need for ZCX propagation
6054         purposes.
6055
6056 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6057
6058         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
6059
6060         * g-timsta.adb, g-timsta.ads: New files.
6061
6062 2008-04-08  Robert Dewar  <dewar@adacore.com>
6063
6064         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
6065         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
6066         (Raise_Exception_Always): Fix documentation accordingly
6067
6068 2008-04-08  Robert Dewar  <dewar@adacore.com>
6069
6070         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
6071         Stream_Convert)
6072
6073         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
6074         FOnly
6075
6076 2008-04-08  Javier Miranda  <miranda@adacore.com>
6077             Robert Dewar  <dewar@adacore.com>
6078             Ed Schonberg  <schonberg@adacore.com>
6079
6080         * a-tags.adb (Register_Interface_Offset): New subprogram.
6081         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
6082         (To_Predef_Prims_Table_Ptr): Removed.
6083         (Acc_Size): Removed.
6084         (To_Acc_Size): Removed.
6085         (Parent_Size): Modified to the call the subprogram returning the size of
6086         the parent by means of the new TSD component Size_Func.
6087
6088         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
6089         (DT_Offset_To_Top_Offset): New constant value that is used to generate
6090         code referencing the Offset_To_Top component of the dispatch table's
6091         prologue.
6092         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
6093         use of 'address to initialize dispatch table slots.
6094         (Size_Func): New component of the TSD. Used by the run-time to call the
6095         size primitive of the tagged type.
6096
6097         * checks.adb (Apply_Access_Check): Avoid check when accessing the
6098         Offset_To_Top component of a dispatch table.
6099         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
6100         deferred constant declaration. do not add a null expression, to prevent
6101         spurious errors when full declaration is analyzed.
6102         (Apply_Discriminant_Check): If both discriminant constraints share a
6103         node which is not static but has no side effects, do not generate a
6104         check for that discriminant.
6105         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
6106         subexpr, since the prefix of an attribute is a name.
6107
6108         * checks.ads: Fix nit in comment.
6109
6110         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
6111         and body of predefined primitives in case of CPP tagged type
6112         derivations.
6113         (Freeze_Type): Deal properly with no storage pool case
6114         (Make_Predefined_Primitive_Specs): Generate specification of abstract
6115         primitive Deep_Adjust if a nonlimited interface is derived from a
6116         limited interface.
6117         (Build_Dcheck_Functions): Create discriminant-checking functions only
6118         for variants that have some component(s).
6119         (Build_Slice_Assignment): In expanded code for slice assignment, handle
6120         properly the case where the slice bounds extend to the last value of the
6121         underlying representation.
6122         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
6123         (Is_Variable_Size_Record): An array component has a static size if
6124         index bounds are enumeration literals.
6125
6126         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
6127         an external tag has been specified for the type.
6128         (Building_Static_DT): Add missing support for private types.
6129         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
6130         to the entity associated with the parent of Typ. This is done to
6131         avoid wrong access when the parent is a private type.
6132         (Expand_Interface_Conversion): Improve error message when the
6133         configurable runtime has no support for dynamic interface conversion.
6134         (Expand_Interface_Thunk): Add missing support to interface types in
6135         configurable runtime.
6136         (Expand_Dispatching_Call): remove obsolete code.
6137         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
6138         ensure that all subtypes and aggregates associated with dispatch
6139         tables have the attribute Is_Dispatch_Table_Entity set to true.
6140         (Register_Primitive): Rename one variable to improve code reading.
6141         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
6142         of the pointer to the 'size primitive in the TSD.
6143
6144         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
6145         (RE_Offset_To_Top_Ptr): New entity.
6146         (RE_Register_Interface_Offset): New entity.
6147         (RE_Set_Dynamic_Offset_To_Top): New entity.
6148         (RE_Set_Offset_To_Top): Removed entity.
6149         (RE_Prim_Ptr): New entity
6150         (RE_Size_Func): New entity
6151         (RE_Size_Ptr): New entity
6152         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
6153         (Ada_Dispatching_Child): Define this new subrange.
6154         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
6155          RE_Time_Span, and RE_Time_Span_Zero).
6156         (RE_Unit_Table): Add new required run-time calls
6157
6158         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
6159         children.
6160
6161         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
6162         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
6163          initializes the Offset_To_Top component of a dispatch table.
6164         (Build_Predef_Prims): Removed.
6165         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
6166          its actual code.
6167         (Build_Set_Size_Function): New subprogram.
6168
6169         * exp_ch13.adb: Do not generate storage variable for storage_size zero
6170         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
6171
6172 2008-04-08  Robert Dewar  <dewar@adacore.com>
6173
6174         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
6175         computing Fore when Exp > 0
6176
6177 2008-04-08  Robert Dewar  <dewar@adacore.com>
6178
6179         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
6180
6181         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
6182         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
6183
6184         * fmap.adb: Remove Big_String declarations (now in Types)
6185         (No_Mapping_File): New Boolean global variable
6186         (Initialize): When mapping file cannot be read, set No_Mapping_File to
6187         False.
6188         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
6189         tables were empty before adding entries, open the mapping file
6190         with Truncate = True, instead of delete/re-create.
6191
6192         * fname-sf.adb: Remove Big_String declarations (now in Types)
6193
6194         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
6195         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
6196         big pointer types
6197
6198         * table.ads: Add for Table_Ptr'Storage_Size use 0
6199
6200         * types.ads: Add Big_String declarations
6201         Add Size_Clause of zero for big pointer types
6202
6203 2008-04-08  Vincent Celier  <celier@adacore.com>
6204
6205         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
6206         (Usage): Add line for switch --subdirs=
6207         Add new switch -eL, to follow symbolic links when processing project
6208         files.
6209
6210         * gnatcmd.adb: Process switches -eL and --subdirs=
6211         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
6212         Program_Name to get proper tool names when AAMP_On_Target is set.
6213         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
6214         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
6215         Osint.Program_Name).
6216
6217         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
6218         (Usage): Add lines for switches -eL and --subdirs=
6219
6220         * makeusg.adb: Add line for switch --subdirs=
6221
6222         * prj.ads:
6223         (Source_Data): New Boolean component Compiled, defaulted to True
6224         (Empty_File_Name: New global variable in private part, initialized in
6225         procedure Initialize.
6226         (Subdirs_Option): New constant string
6227         (Subdirs): New String_Ptr global variable
6228         (Language_Config): New component Include_Compatible_Languages
6229         (Project_Qualifier): New type for project qualifiers
6230         (Project_Data): New component Qualifier
6231         (Project_Configuration): New component Archive_Builder_Append_Option
6232
6233         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
6234         another imported project indicate the name of this imported project.
6235         (Check_File): When a unit is in two project files, indicate the project
6236         names and the paths of the source files for each project.
6237         (Add_Source): Set Compiled to False if compiler driver is empty. Only
6238         set object, dependency and switches file names if Compiled is True.
6239         (Process_Compiler): Allow the empty string for value of attribute Driver
6240         (Get_Directories): When Subdirs is not null and Object_Dir is not
6241          specified, locate and create if necessary the actual object dir.
6242         (Locate_Directory): When Subdirs is not empty and Create is not the
6243         empty string, locate and create if necessary the actual directory
6244         as a subdirectory of directory Name.
6245         (Check_Library_Attributes.Check_Library): Allow a project where the only
6246         "sources" are header files of file based languages to be imported by
6247         library projects, in multi-language mode (gprbuild).
6248         (Check_Library_Attributes.Check_Library): In multi-language mode
6249         (gprbuild), allow a library project to import a project with no
6250         sources, even when this is not declared explicitly.
6251         (Check_If_Externally_Built): A virtual project extending an externally
6252         built project is also externally built.
6253         (Check_Library_Attributes): For a virtual project extending a library
6254         project, inherit the library directory.
6255         (Process_Project_Level_Array_Attributes): Process new attribute
6256         Inherit_Source_Path.
6257         For projects with specified qualifiers "standard", "library" or
6258         "abstract", check that the project conforms to the qualifier.
6259         (Process_Project_Level_Simple_Attributes): Process new attribute
6260          Archive_Builder_Append_Option.
6261
6262         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
6263         (Normalize_Compiler_Switches): Only keep compiler switches that are
6264         passed to gnat1 by the gcc driver and that are stored in the ALI file
6265         by gnat1.
6266         Do not take into account switc -save-temps
6267
6268         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
6269         gprmake is called with -eL.
6270         (Scan_Arg): Recognize switch -eL
6271         (Usage): Add line for switch -eL
6272
6273         * prj.adb (Initialize): Initialize Empty_File_Name
6274         (Project_Empty): New component Qualifier
6275
6276         * prj-attr.ads, prj-attr.adb: New project level attribute
6277         Inherit_Source_Path.
6278         New project level attribute Archive_Builder_Append_Option
6279
6280         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
6281
6282         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
6283         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
6284         upward compatibility.
6285
6286         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
6287         each Trying ..." on different lines.
6288         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
6289         is "configuration" when not in configuration. Fail when in configuration
6290         when a specified qualifier is other than "configuration".
6291
6292         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
6293         full associative array together.
6294         (Recursive_Process): Put the project qualifier in the project data
6295
6296         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
6297         (Set_Project_Qualifier_Of): New procedure
6298
6299 2008-04-08  Robert Dewar  <dewar@adacore.com>
6300
6301         * errout.ads: Update comments for new handling of info: messages
6302
6303         * erroutc.adb (Matches): New procedure
6304         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
6305         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
6306          info messages as well as style messages.
6307
6308         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
6309
6310         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
6311         subprograms.
6312         (Check_A_Call): Special "info: " warnings now have ? in the text
6313         (Elab_Warning): Use info message in static case
6314
6315 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6316
6317         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
6318         whether an array aggregate with static bounds and scalar components
6319         should be expanded into a static constant.
6320
6321 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
6322             Ed Schonberg  <schonberg@adacore.com>
6323             Robert Dewar  <dewar@adacore.com>
6324
6325         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
6326         Has_Stream_Attribute_ Definition when checking for available stream
6327         attributes on parameters of a limited type in Ada 2005. Necessary for
6328         proper recognition of visible stream attribute clauses.
6329         (Has_Stream_Attribute_Definition): If the type is derived from a
6330         private type, then use the derived type's underlying type for checking
6331         whether it has stream attributes.
6332         (Validate_Object_Declaration): The check for a user-defined Initialize
6333         procedure applies also to types with controlled components or a
6334         controlled ancestor.
6335         Reject an object declaration in a preelaborated unit if the type is a
6336         controlled type with an overriding Initialize procedure.
6337         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
6338         checking when the parent of a dereference is a selected component and
6339         the name has not been analyzed.
6340
6341         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
6342         prefixes that are invalid explicit dereferences of remote
6343         access-to-class-wide values, first checking whether the selected
6344         component is a prefixed form of call to a tagged operation.
6345         (Analyze_Call): Remove code that issues an error for limited function
6346         calls in illegal contexts, as we now support all of the contexts that
6347         were forbidden here.
6348         Allow a function call that returns a task.and appears as the
6349         prefix of a selected component.
6350         (Analyze_Reference): Give error message if we try to make a 'Reference
6351         for an object that is atomic/aliased without its type having the
6352         corresponding attribute.
6353         (Analyze_Call): Remove condition checking for attributes to allow
6354         calls to functions with inherently limited results as prefixes of
6355         attributes. Remove related comment about Class attributes.
6356         (Analyze_Selected_Component): If the prefix is a remote type, check
6357         whether this is a prefixed call before reporting an error.
6358         (Complete_Object_Operation): If the controlling formal is an access to
6359         variable reject an actual that is a constant or an access to one.
6360         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
6361         primitive operations from base type.
6362
6363         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
6364         build-in-place
6365         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6366         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
6367         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6368         (Expand_N_Slice): Test for prefix that is a build-in-place function call
6369         and call Make_Build_In_Place_Call_In_Anonymous_Context.
6370         (Analyze_Call): Remove code that issues an error for limited function
6371         calls in illegal contexts, as we now support all of the contexts that
6372         were forbidden here.
6373         New calling sequence for Get_Simple_Init_Val
6374         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
6375         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
6376
6377 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6378             Ed Schonberg  <schonberg@adacore.com>
6379             Robert Dewar  <dewar@adacore.com>
6380
6381         * exp_ch2.adb: Minor reformatting.
6382         (Expand_Entry_Index_Parameter): Set the type of the identifier.
6383         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
6384         (Expand_Protected_Component): New routine.
6385         (Expand_Protected_Private): Removed.
6386         Add Sure parameter to Note_Possible_Modification calls
6387
6388         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
6389         generated subprogram declaration must inherit the overriding indicator
6390         from the instantiation node.
6391         (Validate_Access_Type_Instance): If the designated type of the actual is
6392         a limited view, use the available view in all cases, not only if the
6393         type is an incomplete type.
6394         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
6395         and the actual subtype does not exclude null.
6396         (Process_Default): Handle properly abstract formal subprograms.
6397         (Check_Formal_Package_Instance): Handle properly defaulted formal
6398         subprograms in a partially parameterized formal package.
6399         Add Sure parameter to Note_Possible_Modification calls
6400         (Validate_Derived_Type_Instance): if the formal is non-limited, the
6401         actual cannot be limited.
6402         (Collect_Previous_Instances): Generate instance bodies for subprograms
6403         as well.
6404
6405         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
6406         try to set RM_Size.
6407         Add Sure parameter to Note_Possible_Modification calls
6408         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
6409         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
6410         constant overlaid by variable and issue warning.
6411         Use new Is_Standard_Character_Type predicate
6412         (Analyze_Record_Representation_Clause): Check that the specified
6413         Last_Bit is not less than First_Bit - 1.
6414         (Analyze_Attribute_Definition_Clause, case Address): Check for
6415         self-referential address clause
6416
6417         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
6418         detection mechanism when the lhs is a prival.
6419         (Analyze_Assignment): Call Check_Unprotected_Access to detect
6420         assignment of a pointer to protected data, to an object declared
6421         outside of the protected object.
6422         (Analyze_Loop_Statement): Check for unreachable code after loop
6423         Add Sure parameter to Note_Possible_Modication calls
6424         Protect analysis from previous syntax error such as a scope mismatch
6425         or a missing begin.
6426         (Analyze_Assignment_Statement): The assignment is illegal if the
6427         left-hand is an interface.
6428
6429         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
6430         violation of restriction No_Implicit_Conditionals
6431         Add Sure parameter to Note_Possible_Modication calls
6432         Use new Is_Standard_Character_Type predicate
6433         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
6434         call as operator. Fixes problems (e.g. validity checking) which
6435         come from the result looking as though it does not come from source).
6436         (Resolve_Call): Check case of name in named parameter if style checks
6437         are enabled.
6438         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
6439         from the checking that such calls should not occur from an entry body.
6440         (Resolve_Call): If the return type of an Inline_Always function
6441         requires the secondary stack, create a transient scope for the call
6442         if the body of the function is not available for inlining.
6443         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
6444         that are actuals for in-out formals.
6445         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
6446         primitive operations from base type.
6447         (Analyze_Selected_Component): If the context is a call to a protected
6448         operation the parent may be an indexed component prior to expansion.
6449         (Resolve_Actuals): If an actual is of a protected subtype, use its
6450         base type to determine whether a conversion to the corresponding record
6451         is needed.
6452         (Resolve_Short_Circuit): Handle pragma Check
6453
6454         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
6455         Use new Is_Standard_Character_Type predicate
6456         (Eval_Relational_Op): Catch more cases of string comparison
6457
6458 2008-04-08  Robert Dewar  <dewar@adacore.com>
6459             Gary Dismukes  <dismukes@adacore.com>
6460
6461         * s-rident.ads: Add No_Default_Initialization restriction
6462
6463         * exp_tss.adb:
6464         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
6465         (Set_TSS): Handle No_Default_Initialization case
6466
6467         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
6468         No_Default_Initialization
6469         (Expand_N_Subprogram_Body): Remove redundant initialization of out
6470         parameters when Normalize_Scalars is active.
6471         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
6472         Fix casing error in formal parameter name in call
6473         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
6474         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6475         dispatching call on VM targets.
6476
6477 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
6478             Thomas Quinot  <quinot@adacore.com>
6479
6480         * exp_ch7.adb (Find_Final_List): Change the test for generating a
6481         selected component from an access type's Associated_Final_Chain to
6482         check for the presence of that field, rather than assuming it exists
6483         for all named access types.
6484         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
6485         procedure to call at the end of the generated cleanup procedure.
6486         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
6487         and an At_End_Proc already exists in the handled sequence of statements
6488         for which cleanup actions are being expanded, the original cleanup
6489         action must be preserved.
6490
6491 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6492             Ed Schonberg  <schonberg@adacore.com>
6493             Robert Dewar  <dewar@adacore.com>
6494             Gary Dismukes  <dismukes@adacore.com>
6495
6496         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
6497         Build_Unprotected_Subprogram_Body): Generate debug info for
6498         declarations related to the handling of private data in task and
6499         protected types.
6500         (Debug_Private_Data_Declarations): New subprogram.
6501         (Install_Private_Data_Declarations): Remove all debug info flagging.
6502         This is now done by Debug_Private_Data_Declarations at the correct
6503         stage of expansion.
6504         (Build_Simple_Entry_Call): If the task name is a function call, expand
6505         the prefix into an object declaration, and make the surrounding block a
6506         task master.
6507         (Build_Master_Entity): An internal block is a master if it wraps a call.
6508         Code reformatting, update comments. Code clean up.
6509         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
6510         (Replicate_Entry_Formals): If the formal is an access parameter or
6511         anonymous access to subprogram, copy the original tree to create new
6512         entities for the formals of the subprogram.
6513         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
6514         for tasks to store the value passed using pragma Relative_Deadline.
6515         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
6516         run-time call to create a task.
6517         (Build_Wrapper_Spec): If the controlling argument of the interface
6518         operation is an access parameter with a non-null indicator, use the
6519         non-null indicator on the wrapper.
6520
6521         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
6522         present, which it may not be in the case where the type entity is an
6523         incomplete view brought in by a limited with.
6524         (Analyze_Task_Type): Only retrieve the full view when present, which it
6525         may not be in the case where the type entity is an incomplete view brought
6526         in by a limited with.
6527         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
6528         private components of a protected type, to prevent the generation of freeze
6529         nodes for which there is no proper scope of elaboration.
6530
6531         * exp_util.ads, exp_util.adb
6532         (Remove_Side_Effects): If the expression is a function call that returns a
6533         task, expand into a declaration to invoke the build_in_place machinery.
6534         (Find_Protection_Object): New routine.
6535         (Remove_Side_Effects): Also make a copy of the value
6536         for attributes whose result is of an elementary type.
6537         (Silly_Boolean_Array_Not_Test): New procedure
6538         (Silly_Boolean_Array_Xor_Test): New procedure
6539         (Is_Volatile_Reference): New function
6540         (Remove_Side_Effects): Use Is_Volatile_Reference
6541         (Possible_Bit_Aligned_Component): Handle slice case properly
6542
6543         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
6544         case test to Exp_Util
6545         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
6546
6547 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6548
6549         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
6550         in call
6551         (Add_RACW_Features): When processing an RACW in another unit than the
6552         main unit, set Body_Decls to No_List to indicate that the bodies of
6553         the type's TSS must not be generated.
6554         (GARLIC_Support.Add_RACW_Read_Attribute,
6555         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
6556         Body_Decls is No_List.
6557         (PolyORB_Support.Add_RACW_Read_Attribute,
6558         PolyORB_Support.Add_RACW_Write_Attribute,
6559         PolyORB_Support.Add_RACW_From_Any,
6560         PolyORB_Support.Add_RACW_To_Any,
6561         PolyORB_Support.Add_RACW_TypeCode): Same.
6562         (Transmit_As_Unconstrained): New function.
6563         (Build_Ordered_Parameters_List): Use the above to order parameters.
6564         (GARLIC_Support.Build_General_Calling_Stubs):
6565         Use the above to determine which parameters to unmarshall using 'Input
6566         at the point where their temporary is declared (as opposed to later on
6567         with a 'Read call).
6568         (PolyORB_Support.Build_General_Calling_Stubs):
6569         Use the above to determine which parameters to unmarshall using From_Any
6570         at the point where their temporary is declared (as opposed to later on
6571         with an assignment).
6572
6573 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6574
6575         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
6576         an Input function for an access type, do not perform default
6577         initialization on the local variable that receives the value, to
6578         prevent spurious warnings when the type is null-excluding.
6579
6580 2008-04-08  Robert Dewar  <dewar@adacore.com>
6581             Ed Schonberg  <schonberg@adacore.com>
6582
6583         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
6584         units.
6585         (Size_Known): Generic formal scalar types have known at compile
6586         time size, so remove check.
6587         Fix casing error in formal parameter name in call
6588         (Freeze_Subprogram): If the subprogram is a user-defined operator,
6589         recheck its overriding indication.
6590
6591 2008-04-08  Vincent Celier  <celier@adacore.com>
6592
6593         * gnat1drv.adb: Send all messages indicating an error to standard error
6594
6595 2008-04-08  Robert Dewar  <dewar@adacore.com>
6596
6597         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
6598         (List_Applicable_Restrictions): Do not list existing restrictions
6599
6600 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6601
6602         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
6603         add a pointer to generic sockets literature
6604         do not mention that the given example is "typical" usage.
6605         Remove obsolete comment about multicast not being supported on Windows.
6606         (Connect_Socket): Make Server mode IN rather than IN OUT
6607         since this formal is never modified.
6608
6609 2008-04-08  Robert Dewar  <dewar@adacore.com>
6610
6611         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
6612         the declaration for some different entity.
6613         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
6614         list is precent (following the parent subtype indication), display
6615         appropriate "and" keyword.
6616
6617         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
6618         Remove unnecessary calls to Init_Size_Align and Init_Esize.
6619         Add notes on use of Parent field of an Itype
6620
6621 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6622             Robert Dewar  <dewar@adacore.com>
6623             Gary Dismukes  <dismukes@adacore.com>
6624
6625         * lib-xref.adb (Is_On_LHS): Remove dead code
6626         (Output_Overriden_Op): If the overridden operation is itself inherited,
6627         list the ancestor operation, which is the one whose body or absstract
6628         specification is actually being overridden. For source navigation
6629         purposes.
6630
6631         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
6632         operation is primitive for the type.
6633         (Declare_Inherited_Private_Subprograms): If the new operation overrides
6634         an inherited private subprogram, set properly the Overridden_Operation
6635         attribute, for better cross-reference information.
6636         (Analyze_Package_Specification): Do late analysis of spec PPCs
6637         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
6638         properly the full view and underlying full views of a private type in a
6639         child unit, whose full view is derived from a private type in a parent
6640         unit, and whose own full view becomes visible in the child body.
6641
6642         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
6643         primitive operation after the type has been frozen, add an explicit
6644         reference to the type and the operation, because other primitive
6645         references have been emitted already.
6646         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6647         dispatching call on VM targets.
6648
6649 2008-04-08  Vincent Celier  <celier@adacore.com>
6650             Thomas Quinot  <quinot@adacore.com>
6651
6652         * make.adb: (Gnatmake_Called): Remove, no longer necessary
6653         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
6654         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
6655         (Insert_Project_Sources): Take into account index in multi-unit source
6656         files.
6657         After building a library project, delete all temporary files.
6658         (Initialize): Reset current output after parsing project file.
6659         (Collect_Arguments_And_Compile): Never insert in the queue the sources
6660         of library projects that are externally built.
6661         Put file name in error and inform messages if -df is used
6662         (Display): If invoked with -d7, do not display path names, but only
6663         file names.
6664
6665         * makeutl.ads (Path_Or_File_Name): New function
6666         (Path_Or_File_Name): New function
6667
6668 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
6669
6670         * Make-lang.in: Disable warnings during first stage of bootstrap
6671         Get rid of gnatbl.
6672         Update dependencies.
6673
6674 2008-04-08  Vincent Celier  <celier@adacore.com>
6675
6676         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
6677         case to decide if ALI object file is included in library.
6678         (Build_Library): Never attempt to build a library if the project is
6679         externally built.
6680
6681 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6682
6683         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6684         (No_List) is defined to return Empty.
6685
6686 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
6687
6688         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
6689         documentation.
6690         Update comments.
6691         (Read_Default_Search_Dirs): Do not consider spaces as path separators
6692         because spaces may be part of legal paths.
6693
6694 2008-04-08  Robert Dewar  <dewar@adacore.com>
6695
6696         * par-ch11.adb (P_Exception_Handler): Check indentation level for
6697         handler
6698
6699 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6700
6701         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
6702         in a type declaration, if this is not an interface declaration or
6703         private type extension.
6704
6705 2008-04-08  Vincent Celier  <celier@adacore.com>
6706
6707         * prj-util.adb (Executable_Of): New String parameter Language. When
6708         Ada_Main is False and Language is not empty, attempt to remove the body
6709         suffix or the spec suffix of the language to get the base of the
6710         executable file name.
6711         (Put): New Boolean parameter Lower_Case, defauilted to False. When
6712         Lower_Case is True, put the value in lower case in the name list.
6713         (Executable_Of): If there is no executable suffix in the configuration,
6714         then do not modify Executable_Extension_On_Target.
6715
6716         * prj-util.ads (Executable_Of): New String parameter Language,
6717         defaulted to the empty string.
6718         (Put): New Boolean parameter Lower_Case, defauilted to False
6719
6720 2008-04-08  Robert Dewar  <dewar@adacore.com>
6721
6722         * scng.adb (Scan_Identifier): Handle case of identifier starting with
6723         wide character using UTF-8 encoding.
6724
6725 2008-04-08  Javier Miranda  <miranda@adacore.com>
6726
6727         * sem.adb (Analyze): Consider case in which we analyze an empty node
6728         that was generated by a call to a runtime function that is not
6729         available under the configurable runtime.
6730
6731         * sem.ads (Inside_Freezing_Actions): New flag.
6732         (Save_Check_Policy_List): New field in scope stack entry
6733
6734 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6735             Robert Dewar  <dewar@adacore.com>
6736
6737         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
6738         the ancestor part of an extension aggregate for a limited type.
6739         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
6740         enumeration index bounds.
6741         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
6742         when array is too short.
6743         (Check_Expr_OK_In_Limited_Aggregate): Move function
6744         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
6745         change name).
6746         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
6747         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
6748         component associations.
6749         (Check_Non_Limited_Type): Moved to outer level and renamed.
6750         (Resolve_Record_Aggregate): In an extension aggregate, an association
6751         with a box initialization can only designate a component of the
6752         extension, not a component inherited from the given ancestor
6753
6754         * sem_case.adb: Use new Is_Standard_Character_Type predicate
6755
6756 2008-04-08  Robert Dewar  <dewar@adacore.com>
6757
6758         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
6759         negative scale
6760         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
6761         Properly handle case where Aft > Scale and input number is less than
6762         one.
6763
6764 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6765
6766         * s-stoele.ads, s-soflin.ads: Move the location of
6767         Dummy_Communication_Block from System.Storage_Elements to
6768         System.Soft_Links.
6769
6770         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
6771         emulate Communication_Block in certain scenarios.
6772
6773 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6774
6775         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
6776         subprogram.
6777         Add new subtype S_WWC, unchecked conversion routines From_WWC and
6778         To_WWC.
6779         (I_WWC, O_WWC): New routines for input and output of
6780         Wide_Wide_Character.
6781
6782 2008-04-08  Robert Dewar  <dewar@adacore.com>
6783
6784         * stringt.adb (Write_String_Table_Entry): Handle wide characters
6785         properly
6786
6787 2008-04-08  Robert Dewar  <dewar@adacore.com>
6788
6789         * styleg.adb (Check_Comment): Allow special char after -- in
6790         non-end-of-line case
6791
6792 2008-04-08  Robert Dewar  <dewar@adacore.com>
6793
6794         * stylesw.adb: Implement -gnaty + - y options
6795         (Set_GNAT_Style_Check_Options): Includ I in style check string
6796
6797         * stylesw.ads: Add comments for new style switch options
6798
6799 2008-04-08  Sergey Rybin  <rybin@adacore.com>
6800
6801         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
6802         to the set of the GNAT components needed by ASIS.
6803
6804 2008-04-08  Bob Duff  <duff@adacore.com>
6805
6806         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
6807
6808 2008-04-08  Tristan Gingold  <gingold@adacore.com>
6809
6810         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
6811         Improve error message generation.
6812
6813 2008-04-08  Vincent Celier  <celier@adacore.com>
6814
6815         * a-direct.adb (Start_Search): Check for Name_Error before checking for
6816         Use_Error, as specified in the RM. Check if directory is open and raise
6817         Use_Error if it is not.
6818
6819 2008-04-08  Vincent Celier  <celier@adacore.com>
6820             Robert Dewar  <dewar@adacore.com>
6821
6822         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
6823         AAMP_On_Target is set.
6824
6825         * vms_data.ads: Add NOxxx to style check switch list
6826         Add entry COMPONENTS for -gnatVe
6827         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
6828         (/SUBDIRS=).
6829         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
6830         Add qualifiers for gnatmetric coupling options
6831         Add note that -gnata enables all checks
6832         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
6833         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
6834         New warning flag -gnatw.e
6835
6836         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
6837         Add entry for -gnatyN (forgotten before)
6838         Line for new warning switch -gnatw.p
6839         New warning flag -gnatw.e
6840
6841         * gnat_ugn.texi: Add documentation fpr project file switch -aP
6842         Document -gnaty - + y
6843         Replace occurences of "package specification" with "package spec"
6844         Define preprocessing symbols in documentation of gnatprep
6845         Clarify reason for distinguishing overflow checking
6846         Add documentation for project-aware tool switches -eL and --subdirs=
6847         Complete list of configuration pragmas
6848         Specify that, even when gnatmake switch -x is used, mains on the command
6849         line need to be sources of project files.
6850         Editing of gnatcheck/gnatmetric doc.
6851         Add documentation for -gnatw.p/-gnatw.P
6852         Add missing documentation for -fno-inline-functions.
6853         Add documentation for -gnatw.e
6854
6855         * gnat_rm.texi: Add documentation for No_Default_Initialization
6856         Replace occurences of "package specification" with "package spec"
6857         Document use of * in Warnings Off string
6858         Update documentation of alignment/component clauses.
6859         Add documentation for Invalid_Value
6860         Document new consistency rule for Optimize_Alignment
6861         Add documentation for Precondition and Postcondition pragmas
6862         Add documentation for Check and Check_Policy pragmas
6863         Document new Enum_Val attribute
6864         Remove requirement for static string in pragma Assert
6865         Add documentation on GNAT.Time_Stamp
6866
6867         * ug_words: add entry for -gnatVe
6868         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
6869         Add entry for -gnatw.e
6870
6871         * debug.adb: Add missing documentation for d.a flag
6872         Document new -gnatd.a switch.
6873         Add documentation for new gnatmake debug switch -df
6874
6875 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6876
6877         * gen-soccon.c: Bump year in copyright notices.
6878
6879         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
6880
6881 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
6882
6883         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
6884         Minor reformatting.
6885
6886 2008-04-08  Robert Dewar  <dewar@adacore.com>
6887             Bob Duff  <duff@adacore.com>
6888
6889         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
6890         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
6891
6892         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
6893
6894         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
6895
6896         * g-trasym.ads: Minor comment improvements
6897
6898         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
6899
6900         * a-sequio.ads, a-direio.ads: improve message for tagged type
6901
6902         * a-strunb.ads: Minor reformatting
6903
6904         * a-tifiio.adb: Minor reformatting
6905
6906         * atree.adb (Fix_Parents): Use clearer names for formals
6907         Cleanup and simplify code
6908         Use named notation in calls
6909
6910         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
6911         confusing calls
6912
6913         * uintp.adb: Used named notation for some confusing calls
6914
6915         * bindusg.adb: Minor change in one line of output
6916
6917         * cstand.adb: Minor reformatting of src representation of Standard
6918
6919         * a-assert.ads: Add comment.
6920
6921         * g-decstr.adb: Fix bad indentation
6922
6923         * expander.ads, expander.adb: Code clean up.
6924
6925         * sem_dist.ads: Minor comment improvement
6926
6927         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
6928         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
6929
6930         * i-cstrin.adb: Fix casing error in formal parameter name in call
6931
6932 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6933
6934         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
6935         mentioned in limited_with_clauses to do create semantic dependencies
6936         even though they appear in the ali file.
6937
6938 2008-04-08  Emmanuel Briot  <briot@adacore.com>
6939
6940         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
6941         statement.
6942         (Get_Configuration): New subprogram.
6943
6944         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
6945         These optional parameters help preserve the casing of the project's name
6946         when pretty-printing.
6947
6948 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
6949             Arnaud Charlet  <charlet@adacore.com>
6950
6951         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
6952         then use __gnat_set_exit_status to report the returned status code.
6953
6954         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
6955         messages on .NET, since some constructs of the language are not
6956         properly supported.
6957
6958         * gnatlink.adb (Gnatlink): In case the command line is too long for the
6959         .NET linker, gnatlink now concatenate all .il files and pass this to
6960         ilasm.
6961
6962 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6963             Xavier Grave  <grave@ipno.in2p3.fr>
6964
6965         * Makefile.in: Add make ifeq define for mips/mipsel support.
6966         * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
6967         system-linux-mips.ads: New files.
6968
6969 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6970
6971         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
6972         detect systems using GNU libc.
6973         * gsocket.h: ditto.
6974         * socket.c: ditto.
6975         * adaint.c: ditto.
6976         * link.c: ditto.
6977
6978 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
6979
6980         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
6981         constant constant for sysconf call.
6982         (bit_field): New packed boolean type used by cpu_set_t.
6983         (cpu_set_t): New type corresponding to the C type with
6984         the same name. Note that on the Ada side we use a bit
6985         field array for the affinity mask. There is not need
6986         for the C macro for setting individual bit.
6987         (pthread_setaffinity_np): New imported routine.
6988         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
6989         on GNU/kFreeBSD.
6990
6991 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6992
6993         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
6994
6995 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6996
6997         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
6998         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
6999         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
7000         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
7001         Return by Depressed Stack Pointer.
7002
7003 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7004
7005         * decl.c (is_variable_size): Do not unconditionally return false
7006         on non-strict alignment platforms.
7007
7008 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7009
7010         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
7011         used to process all the variants of the specified type.
7012         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
7013         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
7014         (rest_of_type_decl_compilation): Likewise.
7015         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
7016
7017 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7018
7019         * gigi.h (insert_block): Kill.
7020         * utils.c (insert_block): Kill.
7021
7022 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
7023
7024         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
7025         type has self-referential size, get the size from the initializing
7026         expression directly if it is also a constant whose nominal type
7027         has self-referential size.
7028
7029 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7030
7031         PR ada/33688
7032         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
7033
7034         PR ada/33857
7035         * env.c: Always include crt_externs.h if __APPLE__ is defined.
7036         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
7037
7038 2008-04-01  Andreas Jaeger  <aj@suse.de>
7039
7040         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
7041         IP_PKTINFO.
7042
7043 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7044
7045         * g-table.adb, g-tasloc.adb, g-traceb.ads,
7046         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
7047         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
7048         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
7049         gnatlink.adb, gnatmem.adb, gprep.adb,
7050         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
7051         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
7052         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
7053         lib-xref.ads, lib.adb, link.c, live.ads,
7054         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
7055         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
7056         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
7057         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
7058         namet.adb, namet.h, nlists.adb, nlists.ads,
7059         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
7060         osint-c.ads, osint.adb, osint.ads, output.ads,
7061         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
7062         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
7063         par-endh.adb, par-labl.adb, par-prag.adb,
7064         par-sync.adb, par-tchk.adb, par-util.adb,
7065         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
7066         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
7067         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
7068         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
7069
7070 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7071
7072         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
7073         size if it has overflowed.
7074
7075 2008-03-31  Olivier Hainque  <hainque@adacore.com>
7076             Eric Botcazou  <ebotcazou@adacore.com>
7077
7078         * utils2.c (find_common_type): Document assumption on t1/t2 vs
7079         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
7080
7081 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7082
7083         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
7084         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
7085         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
7086         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
7087         exp_tss.ads, exp_util.adb, exp_util.ads,
7088         exp_vfpt.adb, freeze.adb, freeze.ads,
7089         frontend.adb, g-alleve.adb, g-altcon.adb,
7090         g-altive.ads, g-alveop.ads, g-alvevi.ads,
7091         g-arrspl.adb, g-busorg.ads, g-calend.adb,
7092         g-calend.ads, g-casuti.ads, g-cgideb.adb,
7093         g-comlin.adb, g-comlin.ads, g-curexc.ads,
7094         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
7095         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
7096         g-dyntab.adb, g-encstr.ads, g-excact.ads,
7097         g-except.ads, g-expect.ads, g-heasor.adb,
7098         g-hesora.adb, g-hesorg.adb, g-htable.ads,
7099         g-locfil.ads, g-md5.adb, g-md5.ads,
7100         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
7101         g-pehage.adb, g-pehage.ads, g-regexp.adb,
7102         g-regexp.ads, g-regpat.adb, g-regpat.ads,
7103         g-soccon-aix.ads, g-soccon-darwin.ads,
7104         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
7105         g-soccon-hpux.ads, g-soccon-irix.ads,
7106         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
7107         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
7108         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
7109         g-soccon-solaris.ads, g-soccon-tru64.ads,
7110         g-soccon-vms.ads, g-soccon-vxworks.ads,
7111         g-soccon.ads, g-socket.adb, g-socket.ads,
7112         g-socthi-mingw.adb, g-socthi-vms.adb,
7113         g-socthi-vxworks.adb, g-soliop-mingw.ads,
7114         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
7115         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
7116         typos.
7117
7118 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
7119
7120         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
7121         if the procedure is imported.
7122
7123 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7124
7125         * adaint.c: Fix warnings.
7126
7127 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7128
7129         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
7130
7131 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7132
7133         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
7134         Fix problem of status check for null file
7135
7136 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7137
7138         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
7139         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
7140         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
7141         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
7142         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
7143         comments.
7144
7145 2008-03-26  Thomas Quinot  <quinot@adacore.com>
7146
7147         PR ada/33688
7148         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
7149         Get_Socket_Option): Add support for Receive_Packet_Info.
7150
7151         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
7152         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
7153         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
7154         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
7155         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
7156         new constants SO_REUSEPORT and IP_PKTINFO
7157
7158 2008-03-26  Robert Dewar  <dewar@adacore.com>
7159
7160         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
7161         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
7162         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
7163         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
7164         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
7165         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
7166         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
7167         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7168         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
7169         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
7170         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
7171         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
7172         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
7173         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
7174         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
7175         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
7176         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
7177         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
7178         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
7179         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
7180         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
7181         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
7182         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
7183         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
7184         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
7185         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
7186         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
7187         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
7188         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
7189         s-tasloc.adb: Minor reformatting.
7190         Update comments.
7191         Remove "used for" sections from comments.
7192
7193 2008-03-26  Robert Dewar  <dewar@adacore.com>
7194
7195         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7196         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7197         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7198         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7199         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7200         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7201         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7202         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7203         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7204         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7205         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7206         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7207         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7208         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7209         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7210         double spaced if it fits on one line and otherwise single spaced.
7211
7212 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7213
7214         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
7215         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
7216         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
7217         or task info if the thread could not be created.
7218
7219 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7220
7221         * gnatvsn.ads (Library_Version): Bump to 4.4.
7222         (Current_Year): Bump to 2008.
7223
7224 2008-03-26  Robert Dewar  <dewar@adacore.com>
7225
7226         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
7227
7228         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
7229
7230         * debug.adb: Add debug flags d.r and d.v
7231         Add debug flag .T (Optimize_Alignment (Time))
7232         Add debug flag .S (Optimize_Alignment (Space))
7233
7234         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
7235         depending on setting of relevant debug flags.
7236         Replace use of Warnings_Off by Has_Warnings_Off
7237         (Freeze_Entity): In circuit for warning on suspicious convention
7238         actuals, do not give warning if subprogram has same entity as formal
7239         type, or if subprogram does not come from source.
7240         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
7241         if Optimize_Alignment set to Space.
7242
7243         * frontend.adb: Add call to Sem_Warn.Initialize
7244         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
7245         Reset Optimize_Alignment mode from debug switches .S and .T
7246
7247         * layout.adb (Layout_Composite_Object): Rewritten for
7248         Optimize_Aligment pragma.
7249
7250         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
7251         mode.
7252
7253         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
7254
7255         * par-prag.adb (N_Pragma): Chars field removed, use Chars
7256         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
7257         this change. Add entry for pragma Optimize_Alignment
7258
7259         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
7260         (Pragma_Identifier (..
7261         instead, adjustments throughout to accomodate this change.
7262         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
7263         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
7264         Add implementation of pragma Optimize_Alignment
7265
7266 2008-03-26  Vincent Celier  <celier@adacore.com>
7267
7268         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
7269         Improve memory usage to avoid use of stack.
7270
7271 2008-03-26  Robert Dewar  <dewar@adacore.com>
7272
7273         * a-teioed.ads: Correct value of Default_Fill
7274
7275         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
7276
7277 2008-03-26  Robert Dewar  <dewar@adacore.com>
7278
7279         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
7280         with Current_Output (introduce Self).
7281
7282 2008-03-26  Robert Dewar  <dewar@adacore.com>
7283
7284         * checks.adb (Ensure_Valid): Capture valid status if possible
7285         (eliminate checks)
7286
7287 2008-03-26  Robert Dewar  <dewar@adacore.com>
7288
7289         * stand.ads: Deal with reordering of package standard declarations
7290
7291         * cstand.adb: Put package Standard declarations in proper order
7292
7293 2008-03-26  Robert Dewar  <dewar@adacore.com>
7294
7295         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
7296         (Pragma_Identifier (.. instead.
7297         (OK_To_Reorder_Components): New flag
7298         (Has_Entries): Code cleanup.
7299         (Warnings_Off_Used): New flag
7300         (Warnings_Off_Used_Unmodified): New flag
7301         (Warnings_Off_Used_Unreferenced): New flag
7302         (Has_Warnings_Off): New function
7303         (Has_Unmodified): New function
7304         (Has_Unreferenced): New function
7305         (Is_Trivial_Subprogram): New flag
7306         (Is_Static_Dispatch_Table_Entity): New attribute.
7307         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
7308         (more consistent with other similar names)
7309         (Access_Subprogram_Type): New classification function
7310
7311 2008-03-26  Robert Dewar  <dewar@adacore.com>
7312
7313         * errout.ads: Document new !! insertion sequence
7314
7315         * errout.adb (N_Pragma): Chars field removed, use Chars
7316         (Pragma_Identifier (..  instead.
7317         Replace use of Warnings_Off by Has_Warnings_Off
7318         (Error_Msg_Internal): Don't delete warning ending in !!
7319
7320 2008-03-26  Robert Dewar  <dewar@adacore.com>
7321
7322         * par.adb (Check_No_Right_Paren): Removed no longer used
7323
7324         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
7325         (Pragma_Identifier (..  instead.
7326
7327         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
7328
7329         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
7330         par-ch4.adb: Minor improvements in error recovery and messages.
7331
7332         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
7333         non-serious
7334
7335         * par-ch9.adb: Minor improvements in error recovery and messages
7336         (P_Protected): Better error recovery for "protected type x;"
7337
7338         * par-util.adb: Minor improvements in error recovery and messages
7339         (Check_No_Right_Paren): Removed no longer used
7340
7341 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7342
7343         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
7344         that the prefix of an attribute is the type of the aggregate being
7345         expanded.
7346
7347 2008-03-26  Javier Miranda  <miranda@adacore.com>
7348             Robert Dewar  <dewar@adacore.com>
7349
7350         * exp_attr.adb (N_Pragma): Chars field removed.
7351         (Expand_N_Attribute_Reference): If the designated type associated with
7352         attribute 'Unrestricted_Access is a subprogram entity then replace it
7353         by an E_Subprogram_Type itype.
7354         Implement attribute Old
7355
7356         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
7357
7358         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
7359         Replace call to
7360         New_Internal_Entity by call to Create_Itype to centralize calls
7361         building itypes, ad propagate the convention of the designated
7362         subprogram. In addition, disable the machinery cleaning constant
7363         indications from all entities in current scope when 'Unrestricted_Access
7364         corresponds with a node initializing a dispatch table slot.
7365         (Analyze_Attribute): Parameterless attributes returning a string or a
7366         type will not be called with improper arguments, so we can remove junk
7367         code that was dealing with this case.
7368         Implement attribute Old
7369
7370         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
7371         Add entry for pragma Optimize_Alignment
7372         New standard names Sync and Synchronize
7373
7374 2008-03-26  Robert Dewar  <dewar@adacore.com>
7375             Arnaud Charlet  <charlet@adacore.com>
7376
7377         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
7378         stmt.
7379         (No_Exception_Propagation_Active): New function.
7380         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7381         Update comments, and review all uses of No_Exception_Propagation, which
7382         are now correct and in sync with what gigi expects.
7383
7384         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
7385         function.
7386         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7387         Update comments, and review all uses of No_Exception_Propagation, which
7388         are now correct and in sync with what gigi expects.
7389
7390 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7391
7392         * sem_ch3.adb (Access_Definition): If the access type is the return
7393         result of a protected function, create an itype reference for it
7394         because usage will be in an inner scope from the point of declaration.
7395         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
7396         OK_To_Reorder_Components.
7397         (Make_Index): If an overloaded range includes a universal integer
7398         interpretation, resolve to Standard.Integer.
7399         (Analyze_Subtype_Indication): Copy Convention to subtype
7400         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
7401         limited an synchronized progenitors in type declaration and private
7402         extension declarations.
7403
7404         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
7405         protected subprogram body, determine proper scope from subprogram
7406         declaration.
7407
7408 2008-03-26  Robert Dewar  <dewar@adacore.com>
7409
7410         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
7411         No_Run_Time_Mode
7412
7413 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
7414
7415         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
7416         of a heap allocator for a limited unconstrained function return when
7417         resstriction No_Allocators is active.
7418         (Analyze_Allocator): The restriction No_Allocators is now only checked
7419         on allocators that have Comes_From_Source set, as per RM-H.4(7).
7420
7421         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
7422         of a heap allocator for a limited unconstrained function return when
7423         resstriction No_Allocators is active.
7424         (Analyze_Allocator): The restriction No_Allocators is now only checked
7425         on allocators that have Comes_From_Source set, as per RM-H.4(7).
7426         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
7427         operands are fixed-point types, the universal_fixed predefined operation
7428         is used, regardless of whether the operand type (s) have a primitive
7429         operation of the same name.
7430
7431 2008-03-26  Javier Miranda  <miranda@adacore.com>
7432
7433         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
7434         Is_Static_Dispatch_Table
7435         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
7436         to Exchange_Declarations to exchange the private and full-view. Bug
7437         found working in this issue.
7438         (Expand_Dispatching_Call): Propagate the convention of the subprogram
7439         to the subprogram pointer type.
7440         (Make_Secondary_DT): Replace generation of Prim'Address by
7441         Address (Prim'Unrestricted_Access)
7442         (Make_DT): Replace generation of Prim'Address by
7443         Address (Prim'Unrestricted_Access)
7444         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
7445         simple call form for single entry.
7446         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
7447         tables of predefined primitives).
7448         (Make_Secondary_DT): Add support to handle access to dispatch tables of
7449         predefined primitives.
7450         (Make_Tags): Add entities to Access_Dispatch_Table associated with
7451         access to dispatch tables containing predefined primitives.
7452
7453         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
7454         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
7455         this change.
7456         (Register_Predefined_DT_Entry): Updated to handle the new contents
7457         of attribute Access_Disp_Table (pointers to dispatch tables containing
7458         predefined primitives).
7459
7460         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
7461         subprogram.
7462         (Find_Interface_ADT): Updated to skip the new contents of attribute
7463         Access_Dispatch_Table (pointers to dispatch tables containing predefined
7464         primitives).
7465
7466         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
7467         concurrent types.
7468         (Set_Convention): Use new function Is_Access_Subprogram_Type
7469         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
7470         Access_Dispatch_Table (pointers to dispatch tables containing predefined
7471         primitives).
7472
7473         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
7474         expanded code avoiding calls to Build_Predef_Prims.
7475         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
7476         call to Build_Get_Predefined_Prim_Op_Address.
7477
7478 2008-03-26  Javier Miranda  <miranda@adacore.com>
7479
7480         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
7481         subprogram Corresponding_Runtime_Package to know the runtime package
7482         that will provide support to a given protected type.
7483
7484         * exp_ch9.adb (Add_Private_Declarations,
7485         Build_Protected_Subprogram_Call,
7486         Build_Protected_Entry, Build_Simple_Entry_Call,
7487         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
7488         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
7489         cleanup using the new centralized subprogram Corresponding_Runtime
7490         Package to know the runtime package that provides support to
7491         a given protected type.
7492
7493 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7494
7495         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
7496         assignment is within the initialization procedure for a packed array,
7497         and Initialize_Scalars is enabled, compile right-hand side with checks
7498         off, because the value is purposely out of range.
7499
7500 2008-03-26  Vincent Celier  <celier@adacore.com>
7501
7502         * gnatcmd.adb: Add processing for GNAT SYNC
7503
7504         * vms_conv.ads: (Command_Type): Add command Sync
7505
7506         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
7507
7508         * vms_data.ads: Add entries for -gnatw.w
7509         Add qualifier for gnatstub --header-file option
7510         Add switches for GNAT SYNC
7511
7512         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
7513         (Add_Package_Name): New procedure
7514         (Package_Name_List): New function
7515         (Initialize): Add known package names to the list
7516         (Register_New_Package): Add the new package name to the list
7517
7518 2008-03-26  Robert Dewar  <dewar@adacore.com>
7519
7520         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
7521         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
7522         Raise_Exception by "raise with" construct.
7523
7524 2008-03-26  Pascal Obry  <obry@adacore.com>
7525
7526         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
7527         supported platforms.
7528
7529         * Makefile.rtl: Add g-sercom.o.
7530
7531         * impunit.adb: Add g-sercom.adb.
7532
7533         * s-crtl.ads (open): New routine.
7534         (close): Likewise.
7535         (write): Likewise.
7536
7537         * s-osinte-mingw.ads (BYTE): New type.
7538         (CHAR): Likewise.
7539         (OVERLAPPED): Likewise.
7540         (GENERIC_READ): New constant.
7541         (GENERIC_WRITE): Likewise.
7542         (OPEN_EXISTING): Likewise.
7543         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
7544         type instead.
7545         (CreateFile): New routine.
7546         (WriteFile): Likewise.
7547         (ReadFile): Likewise.
7548         (CloseHandle): Move next to the other file oriented routines.
7549
7550         * g-sercom.ads: New unit.
7551
7552         * g-sercom.adb: Default implementation, calls to this unit will raise
7553         a program error exception.
7554
7555         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
7556         GNU/Linux implementations.
7557
7558 2008-03-26  Robert Dewar  <dewar@adacore.com>
7559
7560         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
7561
7562         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
7563         unchecked conversion for different conventions only for subprogram
7564         pointers or on VMS.
7565
7566 2008-03-26  Vincent Celier  <celier@adacore.com>
7567
7568         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
7569         to check if the specified object file is correct.
7570
7571 2008-03-26  Thomas Quinot  <quinot@adacore.com>
7572
7573         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
7574         Comes_From_Source to exclude primitives from being checked. We want to
7575         exclude predefined primitives only, so use the appropriate specific
7576         predicate. Also, flag a formal parameter of an anonymous
7577         access-to-subprogram type as illegal for a primitive operation of a
7578         remote access to class-wide type.
7579
7580 2008-03-26  Vincent Celier  <celier@adacore.com>
7581
7582         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
7583         known, check if it may be a missspelling of a known package name. In
7584         not verbose, not mode, issue warnings only if the package name is a
7585         possible misspelling.
7586         In verbose mode, always issue a warning for a not known package name,
7587         plus a warning if the name is a misspelling of a known package name.
7588
7589         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
7590         limited withs or limited withs are parse during one call.
7591         (Parse_Single_Project): Post parse context clause in two passes: non
7592         limited withs before current project and limited withs after current
7593         project.
7594
7595         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
7596         project with the name With_Name, even if it is only extended indirectly.
7597         (Recursive_Process): Process projects in order: first single withs, then
7598         current project, then limited withs.
7599
7600         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
7601         project with the name With_Name, even if it is only extended indirectly.
7602
7603 2008-03-26  Robert Dewar  <dewar@adacore.com>
7604
7605         * scn.adb (Initialize_Scanner): Format messages belong on standard error
7606
7607 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7608
7609         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
7610         a generic subprogram that is imported, do not attempt to compile
7611         non-existent body.
7612
7613         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
7614         imported, do not generate a raise_program_error for the non-existent
7615         body.
7616         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
7617         perform minimal name resolution on the generic to avoid spurious
7618         warnings.
7619         (Find_Actual_Type): the designated type of the actual in a child unit
7620         may be declared in a parent unit without being an actual.
7621
7622 2008-03-26  Robert Dewar  <dewar@adacore.com>
7623
7624         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
7625         * sinfo.ads, sinfo.adb (From_At_End): New flag
7626
7627 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7628
7629         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
7630         operations that have an interface parameter.
7631         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
7632         Don't treat No_Return call as raise.
7633
7634         * sem_disp.adb (Check_Dispatching_Operations): apply check for
7635         non-primitive interface primitives to access parameters, not to all
7636         parameters of an access type.
7637
7638 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7639
7640         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
7641         declarations of a parent unit are made visible when compiling a child
7642         instance, the parent is not a hidden open scope, even though it may
7643         contain other pending instance.
7644
7645         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
7646         hidden open scope for some child instance, it does affect the
7647         visibility status of other stach entries.
7648         (Analyze_Object_Renaming): Check that a class-wide object cannot be
7649         renamed as an object of a specific type.
7650
7651 2008-03-26  Robert Dewar  <dewar@adacore.com>
7652
7653         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
7654         recursion and raise SE directly.
7655         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
7656         set for formal type for IN mode parameter.
7657
7658 2008-03-26  Robert Dewar  <dewar@adacore.com>
7659
7660         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
7661         (Initialize): New procedure
7662         (Output_Warnings_Off_Warnings): New procedure
7663         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
7664         (Output_Non_Modifed_In_Out_Warnings): Ditto
7665         (Warn_On_Unreferenced_Entity): Ditto
7666
7667 2008-03-26  Vincent Celier  <celier@adacore.com>
7668
7669         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
7670         readable.
7671
7672 2008-03-26  Matthew Heaney  <heaney@adacore.com>
7673
7674         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
7675         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
7676         Marked with clauses as private, and controlled operations as overriding
7677
7678 2008-03-26  Robert Dewar  <dewar@adacore.com>
7679
7680         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7681
7682 2008-03-26  Robert Dewar  <dewar@adacore.com>
7683
7684         * back_end.adb, back_end.ads: Minor reformatting
7685
7686         * bindgen.adb: Minor clarification of comments
7687
7688         * fname.ads: Minor comment fixes
7689
7690         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
7691         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
7692
7693         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
7694         xsnames.adb: Remove warnings off pragma no longer needed
7695
7696         * a-catizo.ads, a-calari.ads, a-calfor.adb,
7697         a-calfor.ads: Fix header.
7698
7699 2008-03-26  Tristan Gingold  <gingold@adacore.com>
7700
7701         * init.c: Do not adjust pc for HPARITH on alpha/vms.
7702
7703 2008-03-26  Robert Dewar  <dewar@adacore.com>
7704
7705         * lib-xref.adb: (OK_To_Set_Reference): New function
7706         (Generate_Reference): Don't set referenced from occurrence in Warnings,
7707         Unmodified, or Unreferenced pragma
7708
7709 2008-03-26  Robert Dewar  <dewar@adacore.com>
7710
7711         * alloc.ads: Add entries for Warnings_Off_Pragmas table
7712
7713 2008-03-26  GNAT Script  <nobody@adacore.com>
7714
7715         * Make-lang.in: Makefile automatically updated
7716
7717 2008-03-26  Robert Dewar  <dewar@adacore.com>
7718
7719         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
7720         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
7721         removed, use Chars (Pragma_Identifier (..  instead, adjustments
7722         throughout to accomodate this change.
7723
7724         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
7725
7726         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
7727         Einfo.Set_Needs_Debug_Info)
7728
7729 2008-03-26  Robert Dewar  <dewar@adacore.com>
7730
7731         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
7732         Add description for the new gnatstub option '--header-file'
7733         clarification of -gnatwz/-gnatwZ
7734         Add a "Irix-Specific Considerations" section to document the need to
7735         set LD_LIBRARY_PATH when using the default shared runtime library.
7736         Added documentation for both gcov and gprof.
7737
7738         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
7739         messages that are not suppressed when clients are compiled.
7740         Add documentation of s-pooglo s-pooloc
7741         Document the new GNAT.Serial_Communications API.
7742         Add documentation for 'Old attribute
7743         Add description of pragma Optimize_Alignment
7744
7745         * ug_words: Add entries for -gnatw.w -gnatw.W
7746
7747         * usage.adb: Add line for -gnatw.w (warn on warnings off)
7748
7749 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
7750
7751         Revert
7752         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7753         PR ada/35186
7754         * decl.c (maybe_pad_type): Avoid padding an integral type when
7755         bumping its alignment is sufficient.
7756
7757 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
7758
7759         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
7760         Fix wrong formatting (lines too long)
7761
7762 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7763
7764         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
7765         a-calend-vms.adb, a-calend.adb, a-calend.ads,
7766         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
7767         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
7768         a-cohama.ads, a-comlin.ads, a-coorse.adb,
7769         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
7770         a-except-2005.ads, a-except.adb, a-except.ads,
7771         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
7772         a-exextr.adb, a-filico.ads, a-finali.ads,
7773         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
7774         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
7775         a-sequio.ads, a-strbou.ads, a-strfix.adb,
7776         checks.adb, exp_ch3.adb, exp_ch4.adb,
7777         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
7778         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
7779         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
7780         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
7781         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
7782
7783 2008-03-24  Robert Dewar  <dewar@adacore.com>
7784
7785         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7786         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7787         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7788         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7789         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7790         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7791         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7792         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7793         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7794         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7795         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7796         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7797         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7798         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7799         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7800         double spaced if it fits on one line and otherwise single spaced.
7801
7802 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7803
7804         PR documentation/15479
7805         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
7806         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
7807         (doc/gnat_ugn.info): Renamed from ...
7808         (doc/gnat_ugn_unw.info): ... this.
7809         (doc/gnat_ugn.dvi): Renamed from ...
7810         (doc/gnat_ugn_unw.dvi): ... this.
7811         (doc/gnat_ugn.pdf): Renamed from ...
7812         (doc/gnat_ugn_unw.pdf): ... this.
7813         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
7814         Adjusted.
7815         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
7816         unconditionally to gnat_ugn.info.  Fix cross references to the
7817         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
7818         and GNU make manuals to be proper texinfo links.
7819         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
7820
7821 2008-03-21  Olivier Hainque  <hainque@adacore.com>
7822
7823         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
7824         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
7825
7826 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
7827
7828         * trans.c (addressable_p): Add notes on addressability issues.
7829
7830 2008-03-21  Olivier Hainque  <hainque@adacore.com>
7831             Ed Schonberg  <schonberg@adacore.com>
7832
7833         * trans.c (addressable_p): Accept COND_EXPR when both arms
7834         are addressable.
7835         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
7836         (call_to_gnu): Do not use name reference in the error message
7837         for a misaligned by_reference_parameter. The actual may be a
7838         general expression.
7839
7840 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
7841
7842         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
7843
7844 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7845
7846         * gnat_rm.texi (Implementation Defined Characteristics)
7847         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
7848         appropriate.
7849         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
7850         (Switches for gnatchop, Installing a library): Likewise.
7851
7852 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
7853
7854         * trans.c (emit_range_check): Do not emit the check if the base type
7855         of the expression is the type against which its range must be checked.
7856
7857 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7858
7859         * decl.c (maybe_pad_type): Use value_factor_p.
7860
7861 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7862
7863         * lang.opt (nostdlib): Move around.
7864         * misc.c (gnat_handle_option): Fix formatting.
7865         (gnat_dwarf_name): Move around.
7866         * trans.c (Case_Statement_to_gnu): Fix formatting.
7867         (gnat_to_gnu): Likewise.
7868         * utils.c (aggregate_type_contains_array_p): Likewise.
7869         (create_subprog_decl): Likewise.
7870
7871 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7872
7873         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
7874         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
7875
7876 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7877
7878         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
7879         BIGGEST_ALIGNMENT when capping the alignment of records with
7880         strict alignment and size clause.
7881
7882 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7883
7884         * lang-specs.h: Pass -gnatwa if -Wall is passed.
7885         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
7886         and -Wuninitialized.
7887         (gnat_post_options): Clear warn_unused_parameter.
7888
7889 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7890
7891         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
7892         aligned bit-fields, bumping the alignment of the record type if deemed
7893         profitable.
7894         (value_factor_p): Return false instead of 0.
7895
7896 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7897
7898         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
7899         for scalar types with small alignment.
7900
7901 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
7902
7903         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
7904         from that of the front-end's end label.
7905         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
7906         from that of the loop label.
7907
7908 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7909
7910         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
7911         comment for the packed array type case.
7912         * utils.c (build_template): Use a loop to strip padding or
7913         containing records for justified modular types.
7914
7915 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7916
7917         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
7918         large alignments specified for types.
7919         (validate_alignment): Minor cleanup.
7920
7921 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
7922
7923         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
7924         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
7925         the component for packing, if possible, as well as if a component
7926         size clause is specified.
7927         <E_Record_Subtype>: For an array type used to implement a packed
7928         array, get the component type from the original array type.
7929         Try to get a smaller form of the component for packing, if possible,
7930         as well as if a component size clause is specified.
7931         (round_up_to_align): New function.
7932         (make_packable_type): Add in_record parameter.
7933         For a padding record, preserve the size.  If not in_record and the
7934         size is too large for an integral mode, attempt to shrink the size
7935         by lowering the alignment.
7936         Ditch the padding bits of the last component.
7937         Compute sizes and mode manually, and propagate the RM size.
7938         Return a BLKmode record type if its size has shrunk.
7939         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
7940         Use Original_Array_Type to retrieve the type in case of an error.
7941         Adjust call to make_packable_type.
7942         (gnat_to_gnu_field): Likewise.
7943         (concat_id_with_name): Minor tweak.
7944         * trans.c (larger_record_type_p): New predicate.
7945         (call_to_gnu): Compute the nominal type of the object only if the
7946         parameter is by-reference.  Do the conversion actual type -> nominal
7947         type if the nominal type is a larger record.
7948         (gnat_to_gnu): Do not require integral modes on the source type to
7949         avoid the conversion for types with identical names.
7950         (addressable_p): Add gnu_type parameter.  If it is specified, do not
7951         return true if the expression is not addressable in gnu_type.
7952         Adjust recursive calls.
7953         * utils.c (finish_record_type): Remove dead code.
7954
7955 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
7956
7957         PR ada/35186
7958         * decl.c (maybe_pad_type): Avoid padding an integral type when
7959         bumping its alignment is sufficient.
7960
7961 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7962
7963         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
7964         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
7965         statement.
7966         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
7967         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
7968         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
7969         code output strings.
7970         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
7971         system-vms_64.ads: Fix typos in ada source code comments.
7972         * sinfo-cn.adb: Remove incomplete sentence.
7973
7974         PR documentation/15479
7975         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
7976
7977 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
7978
7979         PR ada/22255
7980         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
7981
7982 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
7983
7984         PR ada/34799
7985         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
7986         that underlying type is present.
7987
7988 2008-02-26  Tom Tromey  <tromey@redhat.com>
7989
7990         * misc.c (internal_error_function): Remove test of
7991         USE_MAPPED_LOCATION.
7992         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
7993         (Sloc_to_locus): Remove old location code.
7994
7995 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7996
7997         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
7998         `i.e.' by adding comma or `@:' as appropriate.
7999         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
8000         plain characters `C', use `@samp{C}'.
8001         * gnat_ugn.texi (File Naming Rules, About gnatkr)
8002         (Krunching Method): Likewise.
8003
8004         * gnat_ugn.texi (Conventions): List environment variables and
8005         metasyntactic variables.
8006         (Compiling Programs): Fix notation of metasyntactic variables.
8007         Add @file where appropriate.  Use @file for file extensions,
8008         @samp for strings.
8009         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
8010         instead of @file, @env instead of @code.
8011
8012 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8013
8014         PR documentation/15479
8015         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
8016         and `...' with `@dots{}' or `@enddots{}'.
8017
8018         PR documentation/15479
8019         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
8020         use @command instead of @code, @option instead of @samp or @code,
8021         @code instead of @var, @samp instead of @file.
8022
8023         PR documentation/15479
8024         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
8025         in Makefile rules, by using `&&' rather than `;'.
8026
8027 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8028
8029         PR documentation/15479
8030         * gnat_ugn.texi: In non-code, avoid space before colon.
8031         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
8032         (Examples of gnatxref Usage): Use @command{vi} instead of
8033         @file{vi}.
8034         (Character Set Control): Do not use @code for UTF-8.
8035         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
8036         use @code for IEEE.
8037         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
8038         sample.
8039         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
8040
8041 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
8042
8043         PR ada/35143
8044         * env.c: Add __rtems__ to if defined.
8045         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
8046         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
8047         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
8048         pragma Convention as required.
8049         * gsocket.h: Make compile in and out of RTS.
8050         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
8051         Use g-soccon-rtems.ads.
8052         * g-soccon-rtems.ads, system-rtems.ads: New files.
8053
8054 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8055
8056         PR other/35107
8057         * Make-lang.in (gnat1): Add $(GMPLIBS).
8058
8059 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
8060
8061         * decl.c (components_to_record): Improve comment.
8062
8063 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
8064
8065         * decl.c (components_to_record): Do not reuse the empty union type
8066         if there is a representation clause on the record.
8067         * trans.c (addressable_p): Return true for INTEGER_CST.
8068
8069 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
8070
8071         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
8072         in pointer arithmetics.
8073         * utils2.c (build_allocator): Likewise.
8074
8075 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
8076
8077         * utils.c (build_function_stub): Properly build the call expression.
8078
8079 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
8080
8081         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
8082         before converting the expression to the type of the object.
8083         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
8084         Stabilize constructors for special wrapping types.
8085
8086 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
8087
8088         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
8089         when necessary.  Merge some conditional statements.  Update comments.
8090         Rename unchecked_convert_p local variable to suppress_type_conversion.
8091         Do not suppress conversions in the In case.
8092         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
8093         into account on non strict-alignment platforms.
8094
8095 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
8096
8097         * utils.c (aggregate_type_contains_array_p): New predicate.
8098         (create_field_decl): In a packed record, force byte alignment
8099         for fields without specified position that contain an array.
8100
8101 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
8102
8103         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
8104
8105 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
8106
8107         PR ada/34466
8108         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
8109         sysconf call.
8110         (bit_field): New packed boolean type used by cpu_set_t.
8111         (cpu_set_t): New type corresponding to the C type with
8112         the same name. Note that on the Ada side we use a bit
8113         field array for the affinity mask. There is not need
8114         for the C macro for setting individual bit.
8115         (pthread_setaffinity_np): New imported routine.
8116
8117 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
8118
8119         PR ada/34647
8120         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
8121         on OpenBSD as is done on other BSD systems.
8122
8123         PR ada/34645
8124         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
8125         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
8126         I/O.
8127
8128         PR ada/34644
8129         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
8130         clearenv().
8131
8132         PR ada/34646
8133         * init.c (__gnat_error_handler, __gnat_install_handler,
8134         __gnat_init_float): Define for OpenBSD.
8135
8136         * initialize.c (__gnat_initialize): Define for OpenBSD.
8137
8138 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
8139
8140         PR ada/34553
8141         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
8142         instead of mktemp() or tmpnam() on NetBSD.
8143
8144 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
8145
8146         * trans.c (call_to_gnu): Make the temporary for non-addressable
8147         In parameters passed by reference.
8148         (addressable_p): Return true for STRING_CST and CALL_EXPR.
8149
8150 2007-12-19  Robert Dewar  <dewar@adacore.com>
8151
8152         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
8153         Add pragma Warnings (Off) for unassigned IN OUT arguments
8154
8155         * sem_warn.adb (Output_Reference): Suppress messages for internal names
8156         (Check_References): Extensive changes to tune up warnings
8157         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
8158         (Has_Pragma_Unmodifed_Check_Spec): New function
8159         (Check_References): Implement pragma Unmodified
8160         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
8161
8162         * par-prag.adb: Dummy entry for pragma Unmodified
8163
8164         * sem_prag.adb: Implement pragma Unmodified
8165
8166         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
8167         (Proc_Next_Component_Or_Discriminant): Fix typo.
8168         Update comments.
8169
8170         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
8171         Unmodified.
8172         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
8173         because the former already takes care of discarding the result.
8174         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
8175         Add comment.
8176
8177         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
8178
8179 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
8180
8181         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
8182         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
8183         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
8184         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
8185         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8186         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
8187         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
8188         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
8189         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8190         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
8191         (Dynamic_Trampolines_Used): Delete.
8192
8193         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
8194         Turn on stack probing mechanism on LynxOS.
8195
8196 2007-12-19  Bob Duff  <duff@adacore.com>
8197
8198         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
8199         the resulting tail recursion by hand. This prevents running out of
8200         memory on deeply nested concatenations, since Field2 is where the left
8201         operand of concatenations is stored.
8202         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
8203         clarify that it can only return OK or Abandon.
8204
8205         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
8206         operand by iteration, in order to avoid running out of memory on
8207         deeply-nested concatenations. Use the Parent pointer to get back up the
8208         tree.
8209         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
8210          Resolve_Op_Concat_Rest): New procedures split out of
8211         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
8212         clearer.
8213
8214         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
8215         Traverse_Func, because the former already takes care of discarding the
8216         result.
8217
8218         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
8219         because the former already takes care of discarding the result.
8220         (Remove_Warning_Messages): Use appropriate subtype for Status and
8221         Discard
8222
8223 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
8224
8225         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
8226         discriminants forces expansion of the aggregate into assignments.
8227         (Init_Record_Controller):  If the type of the aggregate is untagged and
8228         is not inherently limited, the record controller is not limited either.
8229
8230 2007-12-19  Robert Dewar  <dewar@adacore.com>
8231
8232         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
8233         handling compile time known size of record or array (case of front end
8234         layout active, e.g. in GNAAMP).
8235
8236 2007-12-19  Javier Miranda  <miranda@adacore.com>
8237
8238         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
8239         that forces the construction of static dispatch tables in case of
8240         record subtypes.
8241
8242 2007-12-19  Robert Dewar  <dewar@adacore.com>
8243
8244         * exp_ch9.adb (Null_Statements): Moved to library level
8245         (Trivial_Accept_OK): New function
8246         (Expand_Accept_Declaration): Use Trivial_Accept_OK
8247         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
8248
8249 2007-12-19  Robert Dewar  <dewar@adacore.com>
8250
8251         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
8252         in complex case where array is Volatile.
8253
8254 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
8255
8256         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
8257         properly the Ada2005 rules concerning when the current instance of a
8258         record type is aliased.
8259
8260 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
8261
8262         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
8263         mangled declaration
8264         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
8265         declarations.
8266         (P_Variant_Part): Cleaner patch for parenthesized discriminant
8267
8268 2007-12-19  Vincent Celier  <celier@adacore.com>
8269
8270         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
8271         package is not known
8272
8273         * prj-attr.ads (Unknown_Package): New constant
8274         Do not crash when an unknown package is in several projects
8275
8276         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
8277         ignored
8278
8279         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
8280         existing package Language_Processing.
8281
8282 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
8283             Gary Dismukes  <dismukes@adacore.com>
8284             Samuel Tardieu  <sam@rfc1149.net>
8285
8286         PR ada/15803, ada/15805
8287         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
8288         illegal access subtypes when there is a constrained partial view.
8289         (Check_For_Premature_Usage): New procedure inside
8290         Access_Subprogram_Declaration for checking that an access-to-subprogram
8291         type doesn't reference its own name within any formal parameters or
8292         result type (including within nested anonymous access types).
8293         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
8294         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
8295         context is an access_to_variable, the expression cannot be an
8296         access_to_constant.
8297
8298 2007-12-19  Bob Duff  <duff@adacore.com>
8299
8300         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
8301         (Analyze_Concatenation): Use iteration instead of recursion in order
8302         to avoid running out of stack space for deeply nested concatenations.
8303
8304 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
8305             Gary Dismukes  <dismukes@adacore.com>
8306
8307         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
8308         whose renamed entity is a subprogram that requires overriding.
8309         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
8310         issuing an error for premature usage and issue a message that says
8311         'type' rather than 'object'.
8312
8313 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
8314
8315         PR ada/34149
8316         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
8317         presence of a statically tagged operand (Present (Static_Tag)) with
8318         test for Indeterm_Ancestor_Call when determining whether to propagate
8319         the static tag to tag-indeterminate operands (which forces dispatching
8320         on such calls).
8321         (Check_Controlling_Formals): Ada2005, access parameters can have
8322         defaults.
8323         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
8324         not insert subprogram in list of primitive operations if already there.
8325
8326 2007-12-19  Tristan Gingold  <gingold@adacore.com>
8327
8328         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
8329         global variable.
8330
8331 2007-12-19  Thomas Quinot  <quinot@adacore.com>
8332
8333         Part of PR ada/33688
8334         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
8335         datagram info on Linux.
8336
8337 2007-12-19  Vincent Celier  <celier@adacore.com>
8338
8339         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
8340         that the source path name is always found in the dependencies.
8341
8342 2007-12-19  Robert Dewar  <dewar@adacore.com>
8343
8344         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
8345         Fix name of Wide_Wide_Latin_1/9 file names
8346         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
8347         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
8348         Add missing documentation for Ada.Command_Line.Response_File
8349         Update list of warning letters for Warnings pragma
8350         Add documentation for pragma Unmodified
8351
8352 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
8353
8354         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
8355
8356 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
8357
8358         * s-vxwork-alpha.ads: Removed, no longer used.
8359
8360 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
8361
8362         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
8363
8364 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
8365
8366         PR ada/34360
8367         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
8368         mlib-tgt-specific.adb.
8369
8370 2007-12-13  Bob Duff  <duff@adacore.com>
8371
8372         * trans.c (Attribute_to_gnu): Check for violations of the
8373         No_Implicit_Dynamic_Code restriction. This checking used to be done in
8374         the front end, but is moved here so we can make it more accurate.
8375
8376 2007-12-13  Pascal Obry  <obry@adacore.com>
8377
8378         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
8379          version is provided for older GNU/Linux distribution not
8380          supporting thread affinity sets.
8381
8382         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
8383         call.
8384         (bit_field): New packed boolean type used by cpu_set_t.
8385         (cpu_set_t): New type corresponding to the C type with
8386         the same name. Note that on the Ada side we use a bit
8387         field array for the affinity mask. There is not need
8388         for the C macro for setting individual bit.
8389         (pthread_setaffinity_np): New imported routine.
8390
8391         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
8392         no null.
8393         (Create_Task): Set the processor affinity mask if information
8394         is present.
8395
8396         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
8397
8398 2007-12-13  Robert Dewar  <dewar@adacore.com>
8399
8400         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
8401         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
8402         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
8403         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
8404         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
8405         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
8406         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
8407         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
8408         for subprogram pointers.
8409
8410         * g-ctrl_c.adb: New file.
8411
8412         * g-ctrl_c.ads (Install_Handler): New body.
8413
8414         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
8415         instead of obsolete function Is_Always_Inlined.
8416         (Freeze_Entity): check for tagged type in imported C subprogram
8417         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
8418         (Freeze_Entity): check for convention Ada subprogram pointer in
8419         imported C subprogram.
8420         (Freeze_Fixed_Point_Type): In the case of a base type where the low
8421         bound would be chopped off and go from negative to zero, force
8422         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
8423         bound) so that the size computation for the base type will take
8424         negative values into account.
8425
8426 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
8427             Bob Duff  <duff@adacore.com>
8428             Tristan Gingold  <gingold@adacore.com>
8429
8430         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
8431         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8432         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
8433         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
8434         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
8435         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8436         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
8437         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
8438         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
8439         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
8440         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
8441         (Always_Compatible_Rep): New flag to control trampolines globally.
8442         (Dynamic_Trampolines_Used): New flag for implementing the
8443         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
8444         and not yet set correctly for some targets).
8445
8446         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
8447         Simply indirectly call s-stchop when a task is created.
8448
8449         * ali.ads:
8450         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
8451         appears as an argument (entries A) in an ALI file.
8452
8453         * fe.h (Stack_Check_Limits): Declare new target parameter.
8454         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
8455
8456         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
8457         This variable is declared in C to be sure not subject to elaboration
8458         code.
8459         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
8460         Storage_Error.
8461
8462         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
8463         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
8464
8465         * s-stchop.ads: Add comments.
8466
8467         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
8468         limit method of stack checking.
8469
8470         * s-stchop-limit.ads: New file.
8471
8472 2007-12-13  Robert Dewar  <dewar@adacore.com>
8473
8474         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
8475         a-cihama.adb, g-awk.adb,
8476         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
8477         warnings
8478
8479         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
8480
8481         * sem.adb: Update handling of assigned value/unreferenced warnings
8482
8483         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
8484
8485         * lib-xref.ads: Improve documentation for k xref type
8486
8487         * lib-xref.adb:
8488         Update handling of assigned value/unreferenced warnings
8489         (Generate_Reference): Warning for reference to entity for which a
8490         pragma Unreferenced has been given should be unconditional.
8491         If the entity is a discriminal, mark the original
8492         discriminant as referenced.
8493
8494         * sem_warn.ads, sem_warn.adb
8495         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
8496         no entities referenced in package
8497         (Check_One_Unit): Don't give message about no entities referenced in
8498         a package if a pragma Unreferenced has appeared.
8499         Handle new warning flag -gnatw.a/-gnatw.A
8500         Update handling of assigned value/unreferenced warnings
8501
8502         * atree.h: Add flags up to Flag247
8503         (Flag231): New macro.
8504
8505 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
8506
8507         * adaint.h: (__gnat_plist_init): Not defined for RTX.
8508
8509         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
8510         RTX systems.
8511
8512         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
8513         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
8514         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
8515         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
8516
8517         * mingw32.h:
8518         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
8519
8520         * sysdep.c (winflush_function for RTX): Procedure that does nothing
8521         since we only have problems with Windows 95/98, which are not
8522         supported by RTX.
8523         (__gnat_ttyname): Return the empty string on Nucleus, just as
8524         done on vxworks.
8525
8526 2007-12-13  Robert Dewar  <dewar@adacore.com>
8527
8528         * a-textio.adb, a-textio.ads:
8529         Extensive changes to private part for wide character encoding
8530
8531         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
8532         (Look_Ahead): Fix mishandling of encoded sequences
8533         Move declaration of Wch_Con to private part (should not be visible)
8534
8535         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
8536         UTF-8. Probably this is never used, but if it is, brackets is
8537         clearly correct.
8538
8539         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
8540         setting wide character encoding for no main program case and when
8541         encoding is specified using -W?
8542         Initialize stack limit of environment task if stack limit method of
8543         stack checking is enabled.
8544         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
8545         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
8546         (Get_Main_Unit_Name): New function.
8547         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
8548         (Gen_Output_File): Set Bind_Main_Program to True for .NET
8549
8550         * bindusg.adb: Add line for -Wx switch
8551
8552         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
8553         Add comments
8554         Add new useful constant WC_Longest_Sequences
8555
8556         * switch-b.adb: Clean up handling of -Wx switch
8557         For -gnatWx, set Wide_Character_Encoding_Method_Specified
8558
8559         * switch-c.adb: -gnatg activates warning on assertion errors
8560         For -gnatWx, set Wide_Character_Encoding_Method_Specified
8561
8562         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
8563
8564 2007-12-13  Robert Dewar  <dewar@adacore.com>
8565             Ed Schonberg  <schonberg@adacore.com>
8566
8567         * a-ngcoty.adb: New pragma Fast_Math
8568
8569         * opt.adb: New pragma Fast_Math
8570
8571         * par-prag.adb:
8572         Add Implemented_By_Entry to the list of pragmas which do not require any
8573         special processing.
8574         (Favor_Top_Level): New pragma.
8575         New pragma Fast_Math
8576
8577         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
8578         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8579         Expand_Allocator_Expression): Take into account VM_Target
8580         (Expand_Attribute, case 'Identity):  Handle properly the case where
8581         the prefix is a task interface.
8582         New pragma Fast_Math
8583
8584         * par.adb (Next_Token_Is): New function
8585         (P_Pragma): Add Skipping parameter
8586         (U_Left_Paren): New procedure
8587         (U_Right_Paren): New procedure
8588         New pragma Fast_Math
8589
8590         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
8591         subunit
8592         New pragma Fast_Math
8593
8594         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
8595         Implemented_By_Entry.
8596         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
8597         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
8598         items, since it can apply to more than one overloadable entity. Set
8599         new flag Has_Pragma_Inline_Always for Inline_Always case.
8600         (Analyze_Pragma, case Complex_Representation): Improve error message.
8601         (Analyze_Pragma, case Assert): When assertions are disabled build the
8602         rewritten code with Sloc of expression rather than pragma, so new
8603         warning about failing is not deleted.
8604         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
8605         protected types and update error message to reflect that. Test whether
8606         the protected type is allowed for the pragma (an error is issued if the
8607         type has any entries, or components that do not have preelaborable
8608         initialization).
8609         New pragma Fast_Math
8610         (Analyze_Pragma, case No_Return): Handle generic instance
8611
8612         * snames.h, snames.ads, snames.adb:
8613         Add new predefined name for interface primitive _Disp_Requeue.
8614         New pragma Fast_Math
8615
8616         * a-tags.ads, a-tags.adb: New calling sequence for
8617         String_To_Wide_[Wide_]String
8618         (Secondary_Tag): New subprogram.
8619
8620         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
8621         from Exp_Attr
8622         New calling sequence for String_To_Wide_[Wide_]String
8623         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
8624         the use of the secondary stack for image routines.
8625
8626         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
8627         calling sequence for String_To_Wide_[Wide_]String
8628
8629         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
8630         Ada 95 mode
8631         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
8632         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8633
8634         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
8635         (P_Formal_Part): Use Skipping parameter in P_Pragma call
8636         to improve error recovery
8637
8638         * par-util.adb (Next_Token_Is): New function
8639         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
8640
8641         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
8642         semicolon if missing
8643         (P_Pragma): Implement new Skipping parameter
8644         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8645         Fix location of flag for unrecognized pragma message
8646
8647         * par-tchk.adb (U_Left_Paren): New procedure
8648         (U_Right_Paren): New procedure
8649
8650 2007-12-13  Geert Bosch  <bosch@adacore.com>
8651
8652         * a-tifiio.adb:
8653         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
8654         the second or later Scaled_Divide would omit leading zeroes,
8655         resulting in too few digits produced and a Layout_Error as result.
8656         (Put): Initialize Pos.
8657
8658 2007-12-13  Robert Dewar  <dewar@adacore.com>
8659
8660         atree.ads, atree.adb (Flag231..Flag247): New functions
8661         (Set_Flag231..Set_Flag247): New procedures
8662         (Basic_Set_Convention): Rename Set_Convention to be
8663         Basic_Set_Convention
8664         (Nkind_In): New functions
8665         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8666
8667         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
8668         instead
8669          of obsolete function Is_Always_Inlined
8670         (Register_Predefined_DT_Entry): Initialize slots of the second
8671         secondary dispatch table.
8672         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8673         (Expand_N_Function_Call): Remove special provision for stack checking.
8674
8675         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
8676         Include _Disp_Requeue in the list of predefined operations.
8677         (Find_Interface_ADT): Modified to fulfill the new specification.
8678         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8679
8680         * par-ch4.adb, nlists.ads, nlists.adb:
8681         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8682
8683         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
8684         Fix location of flag for unrecognized pragma message
8685
8686         * sem_ch7.adb: Use Nkind_In
8687
8688 2007-12-13  Vincent Celier  <celier@adacore.com>
8689
8690         * opt.ads:
8691         Indicate what flags are used by the Project Manager, gprbuild and
8692         gprclean.
8693         (Opt.Follow_Links_For_Dirs): New flag
8694         (Warn_On_Assertion_Failure): New flag
8695         (Wide_Character_Encoding_Method_Specified): New flag
8696         (Suppress_All_Inlining): New switch set by -fno-inline
8697         (Real_VMS_Target): New flag
8698         New pragma Fast_Math
8699
8700 2007-12-13  Robert Dewar  <dewar@adacore.com>
8701
8702         * back_end.adb: Recognize -fno-inline
8703
8704 2007-12-13  Robert Dewar  <dewar@adacore.com>
8705
8706         * checks.adb: Fix optimization problem with short-circuited form
8707
8708 2007-12-13  Bob Duff  <duff@adacore.com>
8709
8710         * clean.adb (Usage): Add line for -aP
8711         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
8712         with a parameter "procedure Usage", instead of passing a pointer to a
8713         procedure. This is to eliminate trampolines (since the Usage procedure
8714         is often nested in a main procedure, and it would be inconvenient to
8715         unnest it).
8716
8717         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
8718         to be generic, with a parameter "procedure Callback (...)", instead of
8719         passing a pointer to a procedure. This is to eliminate trampolines
8720         (since the Callback procedure is usually nested).
8721
8722         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
8723         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
8724         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
8725
8726         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
8727         Use the generic Heap_Sort_G instead of Heap_Sort_A.
8728
8729 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8730
8731         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
8732         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
8733         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
8734         (Renamed_In_Spec): New flag
8735         (Has_Pragma_Inline_Always): New flag
8736         Add missing doc for pragma Obsolescent_Warning
8737         Add missing doc for 17 additional unused flags (230-247)
8738         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
8739         Alphabetize with clauses.
8740         Separate Is_Thunk and Has_Thunks flags
8741         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
8742         (Related_Interface): Renamed to Related_Type.
8743         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
8744         (Set_Is_Flag): Restrict the assertion.
8745
8746 2007-12-13  Vincent Celier  <celier@adacore.com>
8747
8748         * errout.adb (Output_Source_Line): Do not keep a trailing space after
8749         the source line number if the source line is empty.
8750
8751 2007-12-13  Geert Bosch  <bosch@adacore.com>
8752
8753         * eval_fat.adb (Decompose_Int): Handle argument of zero.
8754         (Compose): Remove special casing of zero.
8755         (Exponent): Likewise.
8756         (Fraction): Likewise.
8757         (Machine): Likewise.
8758         (Decompose): Update comment.
8759
8760 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8761
8762         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
8763         limited ancestor part, initialize controllers of enclosing record
8764         before expanding ancestor aggregate.
8765         (Gen_Assign): If a component of the aggregate is box-initialized, add
8766         code to call Initialize if the component is controlled, and explicit
8767         assignment of null if the component is an access type.
8768
8769         Handle properly aggregates for limited types that appear in object
8770         declarations when the aggregate contains controlled values such as
8771         protected types.
8772         When expanding limited aggregates into individual components, do not
8773         call Adjust on controlled components that are limited.
8774
8775 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
8776
8777         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
8778
8779 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8780
8781         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
8782         predefined primitive _Disp_Requeue.
8783         (Make_Predefined_Primitive_Specs): Create the spec for predefined
8784         primitive _Disp_Requeue.
8785         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
8786         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
8787         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
8788         an interface type. In case of limited interfaces we now declare all the
8789         predefined primitives associated with synchronized interfaces as
8790         abstract.
8791         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
8792         declarations.
8793         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
8794         tagged type is an interface type and there is no user-defined equality
8795         function.
8796         Add also bodies of predefined primitives associated with synchronized
8797         interfaces.
8798         (Freeze_Record_Type): Do not build bodies of predefined primitives of
8799         interface types because they are now defined abstract.
8800         Add missing documentation.
8801         (Expand_Record_Controller): Update occurrence of Related_Interface
8802         to Related_Type.
8803         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
8804         (Expand_N_Object_Declaration): Take into account VM_Target when handling
8805         class wide interface object declaration.
8806         (Expand_Previous_Access_Type): Do not create a duplicate master entity
8807         if the access type already has one.
8808         (Expand_N_Object_Declaration): Defend against attempt to validity check
8809         generic types. Noticed for -gnatVcf specified with previous errors.
8810
8811 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
8812
8813         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8814         Expand_Allocator_Expression): Take into account VM_Target
8815
8816         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
8817         secondary stack when VM_Target /= No_VM
8818
8819 2007-12-13  Javier Miranda  <miranda@adacore.com>
8820             Ed Schonberg  <schonberg@adacore.com>
8821
8822         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
8823         Is_Complation_Unit by Is_Library_Level_Entity in the code
8824         that decides if the static dispatch tables need to be built.
8825         (Wrap_Transient_Declaration): Do not generate a finalization call if
8826         this is a renaming declaration and the renamed object is a component
8827         of a controlled type.
8828
8829 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
8830
8831         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
8832         In the case where the renamed subprogram is a dereference, call
8833         Force_Evaluation on the prefix.
8834
8835 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8836             Ed Schonberg  <schonberg@adacore.com>
8837
8838         * exp_ch9.adb (Expand_N_Asynchronous_Select,
8839         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
8840         comment reformatting.
8841         (Set_Privals): Inherit aliased flag from formal. From code reading.
8842         (Build_Simple_Entry_Call): Out parameters of an access type are passed
8843         by copy and initialized from the actual. This includes entry parameters.
8844         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
8845         and Ada 2005 models of requeue.
8846         (Null_Statements): Still connsider do-end block null if it contains
8847         Unreferenced and Warnings pragmas.
8848         (Expand_N_Accept_Statement): Do not optimize away null do end if
8849         dispatching policy is other than defaulted.
8850         (Expand_N_Timed_Entry_Call): When the triggering statement is a
8851         dispatching call, manually analyze the delay statement.
8852         (Find_Parameter_Type): Move subprogram to Sem_Util.
8853
8854 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
8855             Javier Miranda  <miranda@adacore.com>
8856
8857         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
8858         _Disp_Requeue occupies dispatch table slot number 15. Move
8859         _Disp_Timed_Select to slot 16.
8860         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
8861         generate the spec and body of _Disp_Reqeueue.
8862         (Make_DT): Build and initialize the second dispatch table.
8863         Handle initialization of RC_Offset when the parent
8864         is a private type with variable size components.
8865         (Make_Secondary_DT): Complete documentation. Add support to
8866         initialize the second dispatch table.
8867         (Make_Tags): Generate the tag of the second dispatch table.
8868         (Register_Primitive): Add support to register primitives in the
8869         second dispatch table.
8870
8871 2007-12-13  Pascal Obry  <obry@adacore.com>
8872
8873         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
8874         Windows. This signal is used by gnatmake to kill child processes for
8875         example.
8876
8877 2007-12-13  Javier Miranda  <miranda@adacore.com>
8878
8879         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8880         support for generic dispatching constructor calls in which we need to
8881         locate the tag of a secondary dispatch table associated with an
8882         interface type to properly dispatch the call.
8883         (Expand_N_Attribute_Reference [case Address],
8884         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
8885         handling of VM targets.
8886
8887 2007-12-13  Robert Dewar  <dewar@adacore.com>
8888             Ed Schonberg  <schonberg@adacore.com>
8889
8890         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
8891         assert fail
8892
8893         * ug_words: Add entries for -gnatw.a -gnatw.A
8894
8895         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
8896         literal is a subtype with non-static constraints, use the base type of
8897         the context as the base of the string subtype, to prevent type
8898         mismatches in gigi.
8899         (Resolve_Actuals): If the actual is an entity name, generate a
8900         reference before the actual is resolved and expanded, to prevent
8901         spurious warnings on formals of enclosing protected operations.
8902         (Analyze_Overloaded_Selected_Component): If type of prefix if
8903         class-wide, use visible components of base type.
8904         (Resolve_Selected_Component): Ditto.
8905         (Resolve_Short_Circuit): Detect case of pragma Assert argument
8906         evaluating to False, and issue warning message.
8907
8908         * usage.adb: Add lines for -gnatw.a and -gnatw.A
8909
8910 2007-12-13  Emmanuel Briot  <briot@adacore.com>
8911
8912         * g-calend.ads (No_Time): New constant, to represent an uninitialized
8913         time value
8914
8915         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
8916         formats.
8917         (Month_Name_To_Number): New subprogram
8918
8919         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
8920         letter to upper-case.
8921
8922 2007-12-13  Robert Dewar  <dewar@adacore.com>
8923             Ed Schonberg  <schonberg@adacore.com>
8924
8925         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
8926
8927         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
8928         context is a limited view, use non-limited view when available. If the
8929         non-limited view is an unconstrained array, this enforces consistency
8930         requirements in 3.10.2 (27).
8931         (Layout_Type): For an access type whose designated type is a limited
8932         view, examine its declaration to determine if it is an unconstrained
8933         array, and size the access type accordingly.
8934         (Layout_Type): Do not force 32-bits for convention c subprogram
8935         pointers in -gnatdm mode, only if real vms target.
8936
8937         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
8938         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8939         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
8940         violations of the No_Implicit_Dynamic_Code restriction.
8941         (Resolve_Attribute, case 'Access): If designated type of context is a
8942         limited view, use non-limited view when available. If the non-limited
8943         view is an unconstrained array, this enforces consistency requirements
8944         in 3.10.2 (27).
8945         (Layout_Type): For an access type whose designated type is a limited
8946         view, examine its declaration to determine if it is an unconstrained
8947         array, and size the access type accordingly.
8948
8949 2007-12-13  Vincent Celier  <celier@adacore.com>
8950
8951         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
8952         object directory of main project does not exist.
8953         On VMS, correctly set then environment variable for the source
8954         directories.
8955
8956 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
8957
8958         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
8959         set to True this procedure will create the value of type REG_EXPAND_SZ.
8960         It was only possible to create REG_SZ values before.
8961
8962 2007-12-13  Robert Dewar  <dewar@adacore.com>
8963
8964         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
8965         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
8966         namet-sp.adb, namet-sp.ads: New files.
8967
8968         * g-speche.adb: Use generic routine in g-spchge
8969
8970         * s-wchcnv.ads, s-wchcnv.adb:
8971         Minor code cleanup (make formal type consistent with spec)
8972
8973         * namet.adb: Update comments.
8974
8975         * par-endh.adb (Evaluate_End_Entry): Use new
8976         Namet.Sp.Is_Bad_Spelling_Of function
8977
8978         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
8979
8980         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
8981         ancestor is an access type initialized with a box, set its type
8982         explicitly, for use in subsequent expansion.
8983         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
8984         function
8985
8986 2007-12-13  Robert Dewar  <dewar@adacore.com>
8987
8988         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
8989         access Vstring)
8990
8991 2007-12-13  Robert Dewar  <dewar@adacore.com>
8992
8993         * inline.adb (Back_End_Cannot_Inline): Use new flag
8994         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
8995
8996         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
8997         Has_Pragma_Inline_Always instead.
8998         of obsolete function Is_Always_Inlined
8999         (Build_Body_To_Inline): Same change
9000         (Cannot_Inline): Same change
9001         Do not give warning on exception raise in No_Return function
9002
9003         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
9004         component has two inconsistent component clauses in the same record
9005         representation clause, favor the message that complains about
9006         duplication rather than inconsistency.
9007         Update comments.
9008         (Record_Representation_Clause): Do not warn on missing component
9009         clauses for inherited components of a type extension.
9010         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
9011         an overloadable item if it is a pragma that can apply to multiple
9012         overloadable entities (e.g. Inline) because a pragma cannot be on
9013         more than one chain at a time.
9014         (Validate_Unchecked_Conversion): Add code to warn on unchecked
9015         conversion where one of the operands is Ada.Calendar.Time.
9016         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
9017         For now, ignore Component_Size clause on VM targets, as done for
9018         pragma Pack.
9019
9020 2007-12-13  Emmanuel Briot  <briot@adacore.com>
9021             Vincent Celier  <celier@adacore.com>
9022
9023         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
9024         string
9025         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
9026         prj.ads
9027         (Hash): Move instantiation of System.HTable.Hash from spec to body
9028         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
9029         systems, since we do not need to recompute the Name_Id for the canonical
9030         file name.
9031         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
9032         as a parameter. This parameter is in fact always "ada" in all calls, and
9033         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
9034         while loading a project with 40000 files
9035
9036         * prj-attr.adb: Fix name of attribute Dependency_Driver
9037         Change the kind of indexing for attribute Root
9038
9039         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
9040         variables already declared, in case constructions.
9041
9042         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
9043         Current_Object_Path_File to No_Path.
9044
9045         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
9046         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
9047
9048         * prj-makr.adb: new parameter Current_Dir
9049
9050         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
9051         Ada sources when language is not Ada.
9052         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
9053         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
9054         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
9055         (Locate_Directory): Always resolve links when computing Canonical_Path
9056         (Look_For_Sources): Make sure that Name_Buffer contains the file name
9057         in Source_Files before checking for the presence of a directory
9058         separator.
9059         Optimize calls to Name_Find when on case sensitive systems.
9060         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
9061         as a parameter.
9062         (Prj.Nmsc.Check): new parameter Current_Dir
9063         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
9064         cannot be empty and the spec suffix cannot be the same as the body or
9065         separate suffix.
9066         (Get_Unit): When a file name can be of several unit kinds (spec, body or
9067         subunit), always consider the longest suffix.
9068         (Check_Configuration): Do not issue an error if there is no compiler
9069         for a language. Just issue a warning and ignore the sources for the
9070         language.
9071         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
9072         not empty.
9073         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
9074         (Unit_Exceptions): New hash table
9075         (Check_Naming_Schemes): Check if a file that could be a unit because of
9076         the naming scheme is not in fact a source because there is an exception
9077         for the unit.
9078         (Look_For_Sources): Put the unit exceptions in hash table
9079         Unit_Exceptions
9080         (Get_Unit_Exceptions): Give initial value No_Source to local variable
9081         Other_Part to avoid exception when code is compiled with validity
9082         checking.
9083         (Get_Sources_From_File): Check that there is no directory information
9084         in the file names.
9085         (Look_For_Sources): Check that there is no directory information in the
9086         list of file names in Source_Files.
9087         (Look_For_Sources): In multi-language mode, do not allow exception file
9088         names that are excluded.
9089         (Excluded_Sources_Htable): New hash table
9090         (Search_Directories.Check_File): New procedure to simplify
9091         Search_Directories.
9092         (Search_Directories): Do not consider excluded sources
9093         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
9094         Search_Directories.
9095         (Get_Exceptions): Set component Lang_Kind of Source_Data
9096         (Get_Unit_Exceptions): Ditto
9097         (Search_Directories): Ditto
9098
9099         * prj-pars.adb: new parameter Current_Dir
9100
9101         * prj-part.ads, prj-part.adb:
9102         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
9103         (Opt.Follow_Links_For_Dirs): New flag
9104         (Project_Path_Name_Of): Cache information returned by this routine as
9105         Locate_Regular_File is a costly routine. The code to output a log
9106         information and the effective call to Locate_Regular_File is now
9107         factorized into a routine (code clean-up).
9108         (Parse, Parse_Single_Project): new parameter Current_Dir
9109         When main project file cannot be found, indicate in the error
9110         message the project path that was used to do the search.
9111
9112         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
9113         (Prj.Proc.Process*): new parameter Current_Dir
9114
9115         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
9116
9117 2007-12-13  Bob Duff  <duff@adacore.com>
9118
9119         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
9120         procedure to be called from the back end to check the
9121         No_Implicit_Dynamic_Code restriction.
9122
9123 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
9124
9125         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
9126         Fixes another case where RTE_Available_Call was ignored instead of being
9127         taken into account.
9128         (Load_Fail): Ditto.
9129
9130         * rtsfind.ads: Add new entries.
9131
9132 2007-12-13  Robert Dewar  <dewar@adacore.com>
9133
9134         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
9135         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
9136
9137         * scn.adb: Implement BOM recognition
9138
9139 2007-12-13  Thomas Quinot  <quinot@adacore.com>
9140             Ed Schonberg  <schonberg@adacore.com>
9141
9142         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
9143         subprogram body that acts as its own spec may not have a non-private
9144         WITH clause on a private sibling.
9145         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
9146         child unit is a renaming, create an implicit with_clause on that
9147         parent, and not on the unit it renames, to prevent visibility errors
9148         in the current unit.
9149
9150 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
9151
9152         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
9153         renaming declaration, use the Slocs of the formal parameters from the
9154         declaration of the formal subprogram when creating the formal parameter
9155         entities in the renaming declaration.
9156         (Analyze_Formal_Type_Declaration): Change the placement of the error
9157         message concerning illegal known discriminants. It is now posted on the
9158         type rather than on the first discriminant. This change ensures early
9159         error report.
9160         (Freeze_Subprogram_Body): If the generic subprogram is nested within
9161         the package body that contains the instance, do not generate an
9162         out-of-place freeze node for the enclosing package.
9163         (Collect_Previous_Instantiations): Ignore internal instantiations
9164         generated for formal packages.
9165         (Validate_Derived_Type_Instance): Add a check that when a formal
9166         derived type is Known_To_Have_Preelab_Init then the actual type must
9167         have preelaborable initialization, and issue an error when this
9168         condition is violated.
9169
9170 2007-12-13  Robert Dewar  <dewar@adacore.com>
9171
9172         * s-imenne.adb, s-imenne.ads: New files.
9173
9174         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
9175         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
9176         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
9177         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
9178         s-imgwch.ads: New calling sequence for Image routines to avoid sec
9179         stack usage.
9180
9181 2007-12-13  Javier Miranda  <miranda@adacore.com>
9182             Ed Schonberg  <schonberg@adacore.com>
9183
9184         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
9185         generation of spurious error if parent is an interface type; caused
9186         because predefined primitive bodies will be generated later by
9187         Freeze_Record_Type.
9188         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
9189         flag.
9190         (Derive_Subprograms): Handle derivations of predefined primitives
9191         after all the user-defined primitives to ensure that they are
9192         found in proper order in instantiations.
9193         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
9194         of Related_Interface to Related_Type.
9195         (Record_Type_Declaration): Minor reordering of calls to decorate the
9196         Tag component because the entity must have set its Ekind attribute
9197         before setting its Is_Tag attribute.
9198         (Analyze_Subtype_Declaration): In the case of subtypes with
9199         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
9200
9201 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
9202             Ed Schonberg  <schonberg@adacore.com>
9203
9204         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
9205         statement to the list of contexts where a selected component with a
9206         concurrent tagged type prefix should yield a primitive operation.
9207         (Find_Primitive_Operation): Handle case of class-wide types.
9208         (Analyze_Overloaded_Selected_Component): If type of prefix is
9209         class-wide, use visible components of base type.
9210         (Resolve_Selected_Component): Ditto.
9211         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
9212         formal of a generic subprogram. find candidate interpretations by
9213         scanning the list of generic formal declarations.:
9214         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
9215         type from a limited_with_clause, and the full view is available, use it
9216         for subsequent semantic checks.
9217         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
9218         (Find_Primitive_Operation): New function.
9219         (Analyze_Overloaded_Selected_Component): insert explicit dereference
9220         only once if several interpretations of the prefix yield an access type.
9221         (Try_Object_Operation): Code and comment cleanup.
9222         (Analyze_Selected_Component): Reorder local variables. Minot comment and
9223         code reformatting. When the type of the prefix is tagged concurrent, a
9224         correct interpretation might be available in the primitive and
9225         class-wide operations of the type.
9226
9227 2007-12-13  Robert Dewar  <dewar@adacore.com>
9228             Ed Schonberg  <schonberg@adacore.com>
9229
9230         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
9231         renaming entry as subprogram using rename-as-body if subprogram spec
9232         frozen.
9233         (Use_One_Type): The clause is legal on an access type whose designated
9234         type has a limited view.
9235         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
9236         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
9237         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
9238         operation denoted by a selected component.
9239         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
9240         it can be an expression, possibly overloaded, that returns a task or
9241         an access to one.
9242
9243 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
9244             Gary Dismukes  <dismukes@adacore.com>
9245
9246         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
9247         requeue statement is dispatching. Do not emit an error when the name is
9248         not an entry and the context is a dispatching select. Add code to
9249         perform subtype conformance between the formals of the current entry
9250         and those of the target interface primitive.
9251         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
9252         Timed_Entry_Call): Analyze the triggering statement as the first step of
9253         the processing. If this is a dispatching select, postpone the analysis
9254         of all select statements until the Expander transforms the select. This
9255         approach avoids generating duplicate identifiers after the Expander has
9256         replicated some of the select statements. In case the Expander is
9257         disabled, perform regular analysis.
9258         (Check_Triggering_Statement): New routine.
9259         (Analyze_Requeue): Exclude any interpretations that are not entries when
9260         checking overloaded names in a requeue. Also test type conformance for
9261         matching interpretations rather than requiring subtype conformance at
9262         that point to conform with the RM's resolution rule for requeues.
9263
9264 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
9265
9266         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
9267         inherited operation is a defaulted tag-indeterminate call, and there is
9268         a statically tagged actual, use the static tag as a controlling actual
9269         for the defaulted actual.
9270
9271 2007-12-13  Geert Bosch  <bosch@adacore.com>
9272
9273         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
9274         context, so do not call Check_Non_Static_Context.
9275
9276 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
9277
9278         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
9279         whether formal E is an entity which may have parameters.
9280
9281 2007-12-13  Bob Duff  <duff@adacore.com>
9282             Javier Miranda  <miranda@adacore.com>
9283             Robert Dewar  <dewar@adacore.com>
9284
9285         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
9286         (Set_Convention): New procedure to set the Convention flag, and in
9287         addition make sure the Favor_Top_Level flag is kept in sync (all
9288         foreign-language conventions require Favor_Top_Level = True).
9289         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
9290         to Related_Type.
9291         (Collect_Interfaces_Info): Minor update to handle the two secondary
9292         dispatch tables. Update occurrence of Related_Interface to Related_Type.
9293         (Generate_Parent_Ref): Add parameter to specify entity to check
9294         (Is_Preelaborable_Expression): Allow the name of a discriminant to
9295         initialize a component of a type with preelaborable initialization.
9296         This includes the case of a discriminal used in such a context.
9297         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
9298         latest Ada 2005 rules about renaming and 'Access of
9299         discriminant-dependent components.
9300         (Check_Nested_Access): Add handling when there are no enclosing
9301         subprograms (e.g. case of a package body).
9302         (Find_Parameter_Type): Factor routine from several other compiler files.
9303         Remove routine from Find_Overridden_Synchronized_Primitive.
9304
9305 2007-12-13  Thomas Quinot  <quinot@adacore.com>
9306
9307         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
9308         an invalid access to an uninitialized slot in the
9309         Source_File_Index_Table.
9310
9311 2007-12-13  Thomas Quinot  <quinot@adacore.com>
9312
9313         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
9314
9315 2007-12-13  Bob Duff  <duff@adacore.com>
9316
9317         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
9318         access-to-subprogram types in this package.
9319
9320 2007-12-13  Olivier Hainque  <hainque@adacore.com>
9321
9322         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
9323         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
9324         Stack_Overlay_Address and document that we are using an internal
9325         abstraction.
9326         (Byte_Size, Unsigned_32_Size): Remove, now useless.
9327         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
9328         consistently throughout the various implementation pieces.
9329
9330         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
9331         overlay we are using to fill the stack area with patterns.
9332         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
9333         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
9334         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
9335
9336 2007-12-13  Robert Dewar  <dewar@adacore.com>
9337
9338         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
9339
9340 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
9341
9342         * s-tassta.adb:
9343         (Create_Task): Take into account tasks created by foreign threads.
9344         Code clean up: use constants instead of hard coded values.
9345
9346 2007-12-13  Robert Dewar  <dewar@adacore.com>
9347
9348         * styleg.adb (Check_Comment): More liberal rules for comment placement
9349
9350 2007-12-13  Olivier Hainque  <hainque@adacore.com>
9351
9352         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
9353         of Procedure Value instead of Frame Pointer as the invocation
9354         identifier associated with the instruction pointer in each traceback
9355         entry.
9356
9357         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
9358         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
9359         Pointer as the invocation identifier passed to tbk$symbolize.
9360
9361         * s-traent-vms.ads, s-traent-vms.adb
9362         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
9363         Procedure Value instead of Frame Pointer as the invocation identifier
9364         passed to tbk$symbolize.
9365
9366 2007-12-13  Robert Dewar  <dewar@adacore.com>
9367
9368         * tbuild.ads, tbuild.adb:
9369         Fix location of flag for unrecognized pragma message
9370
9371 2007-12-13  Robert Dewar  <dewar@adacore.com>
9372
9373         * treepr.ads, treepr.adb: (pl): implement use of positive value
9374         shorthands
9375
9376 2007-12-13  Robert Dewar  <dewar@adacore.com>
9377
9378         * xeinfo.adb: Remove warnings
9379         * xnmake.adb: Remove warnings
9380         * xsinfo.adb: Remove warnings
9381         * xtreeprs.adb: Remove warnings
9382         * xsnames.adb: Remove warnings
9383
9384         * a-ngcoar.adb: Fix typo.
9385         * s-interr.adb: Minor reformatting
9386         * env.c: Minor reformatting.
9387         * g-bytswa.adb: Minor reformatting.
9388         * g-rannum.ads: Minor documentation improvements
9389         * s-tasinf-mingw.adb: Minor header fix
9390         * a-clrefi.adb: Minor reformatting
9391         * g-sttsne.ads: Minor documentation improvement
9392         * g-sttsne-locking.ads: Minor documentation improvement
9393         * g-soliop-solaris.ads: Minor documentation improvement
9394         * g-soliop-mingw.ads: Minor documentation improvement
9395         * g-soliop.ads: Minor documentation improvement
9396         * exp_aggr.ads: Minor reformatting
9397         * debug.adb: Add documentation for the gprbuild debug flags
9398         * exp_ch2.adb: Use Nkind_In to simplify code throughout
9399         * exp_pakd.adb: Minor reformatting
9400
9401         * g-altive.ads, g-alleve.adb: Remove assertions.
9402         Add comment about minor differences between targets regarding
9403         floating-point operations.
9404
9405         * g-thread.adb: Remove pragma unreferenced.
9406         * lib.ads: Minor reformatting
9407         * par-ch9.adb: Minor reformatting of error messages
9408         * sem_case.adb: Minor reformatting
9409         * s-fileio.adb: Minor reformattinng
9410         * s-vmexta.ads: Minor typo
9411         * vxaddr2line.adb:
9412         Take into account 'Success' value as per new GNAT warning.
9413
9414 2007-12-13  Vincent Celier  <celier@adacore.com>
9415
9416         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
9417         even on Windows
9418
9419 2007-12-13  Robert Dewar  <dewar@adacore.com>
9420             Bob Duff  <duff@adacore.com>
9421
9422         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
9423         Document that suffixes may be terminations of each others
9424         Add doc for -gnatw.a and -gnatw.A
9425         Document gnatbind -Wx switch
9426         Document BOM recognition
9427         Document pragma Implemented_By_Entry.
9428         Document new units.
9429
9430         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
9431         Add doc for pragma Unreferenced suppressing no entities referenced msg
9432         Add documentation of GNAT.Directory_Operations.Iteration
9433         Add documentation of GNAT.Random_Numbers
9434         Add documentation for pragma Shared.
9435         Correct documentation for Bit_Order
9436         Add documentation for the Pool_Address attribute.
9437         Fix and improve documentation of pragma machine_attribute.
9438         New pragma Fast_Math
9439         Document BOM recognition
9440
9441         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
9442         Add /Wide_Character_Encoding for binder
9443         Add qualifier for the new gnatpp option --no-separate-loop-then
9444
9445 2007-12-13  Matthew Heaney  <heaney@adacore.com>
9446
9447         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
9448         which generic formal operations are called for each operation.
9449
9450 2007-12-13  Olivier Hainque  <hainque@adacore.com>
9451
9452         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
9453         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
9454
9455 2007-12-13  Emmanuel Briot  <briot@adacore.com>
9456
9457         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
9458         Reference_Dir unless we actually need it.
9459
9460 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
9461             Tristan Gingold  <gingold@adacore.com>
9462
9463         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
9464
9465         * s-osprim-vms.adb,
9466         a-calend-vms.adb: Remove pragma warning off and add pragma
9467         unreferenced.
9468
9469 2007-12-13  Robert Dewar  <dewar@adacore.com>
9470
9471         * impunit.adb: Add entries for missing units
9472
9473         * Makefile.rtl: Add new run-time units.
9474
9475         * Make-lang.in:  Update dependencies.
9476
9477 2007-12-13  Bob Duff  <duff@adacore.com>
9478
9479         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
9480         types, set Can_Use_Internal_Rep appropriately, based on
9481         Always_Compatible_Rep_On_Target.
9482
9483 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
9484             Arnaud Charlet  <charlet@adacore.com>
9485
9486         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
9487         it to the front end and setting the aamp_target environment variable
9488         to the switch's argument to ensure that gnaampbind and gnaamplink will
9489         take the specified library into account.
9490         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
9491         target, since the CIL compiler supports an "object" file (.il files).
9492
9493 2007-12-13  Vincent Celier  <celier@adacore.com>
9494
9495         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
9496         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
9497
9498 2007-12-13  Geert Bosch  <bosch@adacore.com>
9499
9500         * s-parame-vxworks.adb:
9501         Update comments to reflect usage of this package by Nucleus.
9502
9503 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
9504
9505         * i-vxwork.ads: Kill new warning on Convention C, since changing the
9506         spec would break code.
9507
9508         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
9509
9510         * system-vxworks-alpha.ads: Removed.
9511
9512 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
9513
9514         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
9515
9516 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
9517
9518         PR ada/34366
9519         * sem_ch3.adb (Designates_T): New function.
9520         (Mentions_T): Factor reusable part of the logic into Designates_T.
9521         Consider non-access parameters and access and non-access result.
9522         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
9523         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
9524
9525         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
9526
9527 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
9528
9529         PR ada/34361
9530         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
9531         the new implementation of target-specific calls.
9532
9533 2007-12-07  Olivier Hainque  <hainque@adacore.com>
9534
9535         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
9536         the designated full view, only follow a second level Full_View link
9537         for Non_Limited_Views of from_limited_with references.
9538
9539 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
9540
9541         PR ada/15805
9542         * sem_ch6.adb (Process_Formals): Prevent an access type formal
9543         to be initialized with an access to constant object.
9544
9545         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
9546         when an access to constant is used to initialize an access
9547         value.
9548
9549         PR ada/21346
9550         * a-direct.adb (Compose): Containing_Directory can be an empty string.
9551
9552 2007-12-07  Olivier Hainque  <hainque@adacore.com>
9553
9554         PR ada/34173
9555         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
9556         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
9557         this is from an alignment clause on the GNAT entity.
9558         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
9559         to distinguish the case where we set it from the type's alignment.
9560         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
9561         whether this alignment was set from an explicit alignment clause.
9562
9563 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
9564
9565         * decl.c (make_packable_type): Revert last change.
9566         (gnat_to_gnu_field): Avoid setting size and position multiple times.
9567         * utils.c (finish_record_type): Retrieve the real name of the type.
9568
9569 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
9570
9571         * trans.c (lvalue_required_p): Take base node directly instead
9572         of its parent.  Rename second parameter to 'gnu_type'.
9573         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
9574         <N_Slice>: Likewise.
9575         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
9576         Adjust calls to lvalue_required_p.
9577
9578 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
9579
9580         PR ada/21489
9581         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
9582         parameters of an entry call.
9583
9584 2007-12-03  Robert Dewar  <dewar@adacore.com>
9585             Samuel Tardieu  <sam@rfc1149.net>
9586
9587         PR ada/34287
9588         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
9589         of variables declared in a library-level package.
9590
9591 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
9592
9593         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
9594         of Empty_String'Unchecked_Access.
9595
9596         * Makefile.in: Add support for sh4-linux.
9597
9598         * system-linux-sh4.ads: New file.
9599
9600 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
9601
9602         PR ada/33722
9603         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
9604         and its argument must not be free()ed.
9605
9606 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
9607
9608         * decl.c (make_packable_type): Retrieve the real name of the type.
9609         (maybe_pad_type): Simplify similar code.
9610
9611 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
9612
9613         PR ada/15804
9614         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
9615         than an identifier is used after "case" in a variant_part.
9616
9617         PR ada/17318
9618         * par-ch4.adb (Is_Parameterless_Attribute): New map.
9619         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
9620         attribute name or not depending on the new map.
9621
9622         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
9623         returning a string or a type will not be called with improper
9624         arguments.
9625
9626         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
9627
9628         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
9629
9630         PR ada/32792
9631         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
9632         Signal an error when attribute argument is a fixed-point value of
9633         an unknown type.
9634
9635         PR ada/22559
9636         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
9637         a derived ordinary fixed point type.
9638
9639         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
9640         RM_Size when a Small clause is found.
9641
9642 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
9643
9644         PR 34081/C++
9645         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
9646         Pass 'false' for the new allocate_struct_function parameter.
9647         * utils.c (build_function_stub): Likewise.
9648
9649 2007-11-25  Richard Guenther  <rguenther@suse.de>
9650
9651         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
9652         (gnat_poplevel): Likewise.
9653
9654 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
9655
9656         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
9657         strict alignment, no alignment clause and a known static size, cap
9658         the type alignment to the greatest power of 2 factor of the size.
9659         (gnat_to_gnu_field): If the field has a component clause, is aliased
9660         or of a type with strict alignment, require that its size be equal to
9661         that of the type.
9662         (validate_size): Use the type size as the minimum size for a type with
9663         strict alignment.
9664
9665 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
9666
9667         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
9668         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
9669         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
9670         Use 'Access instead of 'Unchecked_Access in second and third
9671         arguments of pthread_sigmask.
9672
9673 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
9674
9675         * decl.c (ceil_alignment): New function.
9676         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
9677         (make_packable_type): Likewise.
9678
9679 2007-11-22  Olivier Hainque  <hainque@adacore.com>
9680
9681         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
9682         to fit in 80 columns.
9683
9684 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
9685
9686         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
9687         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
9688
9689 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
9690
9691         PR ada/34098
9692         * misc.c (gnat_adjust_rli): Delete.
9693         (gnat_init): Do not initialize the translation code here.
9694         Do not call set_lang_adjust_rli.
9695         * trans.c (init_code_table): Make static.
9696         (gnat_init_stmt_group): Delete.
9697         (gigi): Initialize the translation code entirely here.
9698         Emit debug info for the common types here instead of...
9699         * utils.c (gnat_init_decl_processing): ...here.
9700         * gigi.h (init_code_table): Delete.
9701         (gnat_init_stmt_group): Likewise.
9702
9703 2007-11-16  Olivier Hainque  <hainque@adacore.com>
9704
9705         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
9706         retrieving an allocator return value from a super-aligned address from
9707         here to ...
9708         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
9709         expect a super-aligned address for a fat or thin pointer.
9710
9711 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
9712
9713         * trans.c (call_to_gnu): Always set the source location on the call
9714         expression.  If the function returns-by-target, also set it on the
9715         address expression.
9716
9717 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
9718
9719         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
9720         sections of non-supported Interix target.
9721
9722         * s-osinte-interix.ads: Removed.
9723
9724         * i-cstrin.ads (chars_ptr): Make it a C convention type.
9725
9726 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
9727
9728         * a-tasatt.adb: Add a comment at the beginning of the package
9729         explaining why in general 'Unchecked_Access must be used instead
9730         of 'Access.
9731
9732         * sem_prag.adb (Process_Convention): Move the test for the
9733         entity on which the Convention pragma applies down to also
9734         forbid pragma Convention on enumeration literals reached
9735         through renamings.
9736
9737 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
9738
9739         * a-tasatt.adb: Revert previous change for this file as it will
9740         generate an error when this package is instantiated from a
9741         local context.
9742
9743 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
9744
9745         * a-tasatt.adb: Type Wrapper should be declared in comment instead
9746         of already declared type Node_Access.
9747         Use 'Access instead of 'Unchecked_Access when applicable. Local
9748         lifetime is the one of the package.
9749         (Set_Value): W is allocated on the heap.
9750
9751         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
9752         applicable.
9753         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
9754         access type.
9755         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
9756         access type.
9757
9758         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
9759         applicable.
9760         (elaboration code): Timer_Queue lifetime is the one of the
9761         package.
9762
9763         * tracebak.c (i386 alternative): Remove useless comparaison
9764         which is always false; LOWEST_ADDRESS is 0 and is never greater
9765         than an unsigned integer.
9766
9767         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
9768         embedded check for "Ada_Version >= Ada_05".
9769
9770 2007-11-07  Olivier Hainque  <hainque@adacore.com>
9771
9772         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
9773         craft and expand comment.
9774
9775 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
9776
9777         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
9778
9779 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
9780
9781         * misc.c (gnat_handle_option): Replace call to abort with
9782         call to gcc_unreachable.
9783         (gnat_init): Likewise.
9784         (gnat_expand_expr): Likewise.
9785         (fp_prec_to_size): Likewise.
9786         (fp_size_to_prec): Likewise.
9787
9788 2007-10-23  Richard Guenther  <rguenther@suse.de>
9789
9790         PR bootstrap/33608
9791         * tracebak.c: #undef abort after including system.h.
9792
9793 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
9794
9795         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
9796         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
9797         for win32 targets.
9798         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
9799
9800 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
9801
9802         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
9803         Set the protection status of the guard page based on the value of On.
9804
9805         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
9806
9807         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
9808         (Exit_Task): Pass False to Hide_Yellow_Zone.
9809
9810 2007-10-15  Robert Dewar  <dewar@adacore.com>
9811
9812         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
9813         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
9814         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
9815         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
9816         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
9817         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
9818         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
9819         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
9820         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
9821         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
9822         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
9823         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
9824         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
9825         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
9826         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
9827         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
9828         Minor reformatting.
9829         Add Unreferenced and Warnings (Off) pragmas for cases of
9830         variables modified calls where they are IN OUT or OUT parameters and
9831         the resulting values are not subsequently referenced. In a few cases,
9832         we also remove redundant code found by the new warnings.
9833
9834         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
9835         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
9836         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
9837         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
9838         warning controlled by -gnatw.o that warns on cases of out parameter
9839         values being ignored.
9840
9841 2007-10-15  Geert Bosch  <bosch@adacore.com>
9842
9843         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
9844
9845         * expect.c: Initial port to arm-mentor-nucleus.
9846         Use kill for __gnat_kill() on VMS.
9847
9848 2007-10-15  Emmanuel Briot  <briot@adacore.com>
9849
9850         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
9851         value.
9852         (Xref_Record): Change type for Line, since in the case of a reference to
9853         a predefined entity (as happens for array index types), the line is set
9854         to 0.
9855         Add support for parsing multiple array index types info, or
9856         multiple inherited interfaces info. This information cannot be stored
9857         in Xref_Entity_Record, which only supports a single instance of Tref_*,
9858         and is therefore stored in the list of references instead. It has a
9859         special treatement later on in tools that use this information.
9860
9861 2007-10-15  Tristan Gingold  <gingold@adacore.com>
9862
9863         * debug.adb: Document use of -gnatd.a and -gnatd.I
9864
9865         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
9866
9867 2007-10-15  Javier Miranda  <miranda@adacore.com>
9868
9869         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
9870         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
9871         care of access to class-wide interface types plus removal of bizarre
9872         conversion of tagged object to access type (reported by Gary
9873         Dismukes). After this patch there is no need to perform any
9874         additional management on these nodes in Expand_Interface_Actuals.
9875
9876         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
9877         that handles use of 'Access and 'Unchecked_Access applied to
9878         actuals covering interface types. Such code is now
9879         centralized in Expand_N_Attribute_Reference.
9880
9881 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
9882
9883         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
9884         of tagged types whose ultimate ancestor is a CPP type.
9885         (Freeze_Array_Type): For a packed array type, generate an initialization
9886         procedure if the type is public, to handle properly a client that
9887         specifies Normalize_Scalars.
9888
9889 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9890
9891         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
9892         inside a generic body, retrieve the full view of the entry family
9893         discrete subtype if available.
9894
9895 2007-10-15  Thomas Quinot  <quinot@adacore.com>
9896
9897         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
9898         attempt to generate stubs for hidden primitive operations.
9899
9900 2007-10-15  Vincent Celier  <celier@adacore.com>
9901
9902         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
9903         returning None, used when there is no platform specific body for
9904         MLib.Tgt.Specific.
9905
9906 2007-10-15  Bob Duff  <duff@adacore.com>
9907
9908         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
9909         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
9910         the generic Heap_Sort_G, in order to avoid trampolines.
9911
9912 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
9913             Jose Ruiz  <ruiz@adacore.com>
9914
9915         * vx_stack_info.c: New file.
9916
9917         * i-forbla-unimplemented.ads: New file.
9918
9919         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
9920         for unsupported configurations; use it on VMS targets instead of the
9921         real one.
9922         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
9923         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
9924         used by VxWorks targets to have access to task-specific data and be
9925         able to extract the stack boundaries for stack checking.
9926         Use system-vms-ia64.ads on ivms.
9927
9928         * Make-lang.in: Update dependencies.
9929
9930         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
9931         (vx_stack_info.c).
9932
9933 2007-10-15  Vincent Celier  <celier@adacore.com>
9934
9935         * snames.adb, snames.ads: Add new standard name runtime_library_dir
9936
9937         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
9938
9939         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
9940
9941         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
9942         the source is unknown.
9943
9944         * prj-ext.adb: Spelling error fix
9945
9946         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
9947         95 reserved word in its name.
9948         (Process_Project_Level_Array_Attributes): Process new attribute
9949         Runtime_Library_Dir.
9950
9951         * prj-part.adb (Parse_Single_Project): Do not check the name of the
9952         config project against the user project names.
9953
9954         * prj-proc.adb (Expression): In multi-language mode, indexes that do
9955         not include a dot are always case insensitive.
9956         (Process_Declarative_Items): Ditto
9957         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
9958         detected.
9959
9960         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
9961         True, compare both indexes in lower case.
9962
9963 2007-10-15  Robert Dewar  <dewar@adacore.com>
9964
9965         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
9966
9967 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
9968
9969         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
9970         association for an access component, add an association with null as
9971         the expression. Remove testing for array subtypes and the setting in
9972         that case of Ctyp to the array component type, which prevented proper
9973         inclusion of an association for null-initialized arrays. Collapse
9974         condition that tests for array subtypes into just a test of
9975         Is_Partially_Initialized_Type (which already covers arrays anyway).
9976
9977 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9978
9979         * sem_ch12.adb: Minor code reformatting.
9980         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
9981         find the parent package which may have been hidden by local
9982         declarations.
9983
9984 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
9985
9986         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
9987         flag of derived concurrent types, taking into account the flag setting
9988         on the parent subtype and any new set of discriminants.
9989
9990 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
9991
9992         * sem_ch4.adb: Minor code and comment reformatting.
9993         (Analyze_Allocator): When the designated type of an unconstrained
9994         allocator is a record with unknown discriminants or an array with
9995         unknown range bounds, emit a detailed error message depending on the
9996         compilation mode and whether the designated type is limited.
9997
9998 2007-10-15  Tristan Gingold  <gingold@adacore.com>
9999
10000         * system-vms-ia64.ads: New file.
10001
10002         * system-vms_64.ads: Minor comment fix.
10003
10004 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
10005
10006         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
10007         body generated for a function with a controlling result that is a null
10008         extension, discard the generated body in favor of the current explicit
10009         one.
10010
10011 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
10012
10013         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
10014         examining its original form, to handle properly operator calls that
10015         have been rewritten.
10016
10017 2007-10-15  Olivier Hainque  <hainque@adacore.com>
10018
10019         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
10020         instead of a procedure value in each traceback entry.
10021
10022         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
10023         instead of procedure value to TBK$SYMBOLIZE.
10024
10025         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
10026         field.
10027         (TB_Entry_For): Account for the PV/FP renaming.
10028
10029         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
10030         add comment.
10031         (Null_TB_Entry): Account for change of component name.
10032         (PV_For): Rename as FP_For.
10033
10034 2007-10-15  Tristan Gingold  <gingold@adacore.com>
10035
10036         * trans.c (gnat_to_gnu): Remove the padding structure more often.
10037         This optimize assignment to over-aligned record.
10038
10039 2007-10-15  Emmanuel Briot  <briot@adacore.com>
10040
10041         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
10042         interfaces.
10043
10044         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
10045         type, for dispatching calls.
10046
10047 2007-10-15  Vincent Celier  <celier@adacore.com>
10048             Robert Dewar  <dewar@adacore.com>
10049
10050         * gnat_ugn.texi: Add documentation for switches --version and --help
10051         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
10052         gnatxref, gnatfind, gnatls, and gnatclean.
10053         Document -gnatw.o.
10054         Mention attribute Excluded_Source_Dirs
10055         Replace obsolescent attribute Locally_Removed_Files with attribute
10056         Excluded_Source_Files.
10057         Improve documentation of -u (gnatbind)
10058         Document how to do reliable stack checking for the environmental task
10059         on iVMS.
10060
10061         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
10062         Document attribute Excluded_Source_Files and indicate that attribute
10063         Locally_Removed_Files is obsolescent.
10064
10065 2007-10-15  Thomas Quinot  <quinot@adacore.com>
10066
10067         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
10068
10069         * gen-soccon.c:
10070         Update documentation to note that OpenVMS 8.3 or later must be used
10071         to generate g-soccon-vms.ads.
10072
10073         * atree.adb: Add ??? comment
10074
10075         * exp_util.adb: Minor reformatting.
10076         Add ??? comment in Kill_Dead_Code.
10077
10078 2007-10-15  Robert Dewar  <dewar@adacore.com>
10079
10080         * errout.ads: Comment clarification
10081
10082         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
10083         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
10084
10085         * lib.ads: Comment update
10086
10087         * init.c: Minor reformatting.
10088
10089         * sem_attr.adb: Minor formatting
10090
10091         * osint-b.ads: Minor reformatting
10092
10093         * sem_ch9.adb: Implement -gnatd.I switch
10094
10095         * g-comlin.adb: (Start): Fix handling of empty command line.
10096
10097         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
10098         even when -rules follows the -cargs section.
10099
10100 2007-10-08  Ollie Wild  <aaw@google.com>
10101
10102         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
10103         gnat_return_tree.
10104         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
10105         gnat_return_tree.
10106         (gnat_eh_runtime_type): Removed.
10107         (gnat_return_tree): New function.
10108
10109 2007-10-08  Ben Elliston  <bje@au.ibm.com>
10110
10111         PR ada/33454
10112         Revert:
10113         2007-08-31  Ben Elliston  <bje@au.ibm.com>
10114
10115         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
10116         when compiling for powerpc64-*-linux.
10117         * system-linux-ppc64.ads: New file.
10118
10119 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
10120
10121         Mapped location support
10122         * back_end.adb (Call_Back_End): Pass information about source
10123         files instead of units to gigi.
10124         * gigi.h (struct File_Info_Type): New.
10125         (gigi): Rename and change type of number_units parameter, change
10126         type of file_info_ptr parameter.
10127         * trans.c (number_files): New global variable.
10128         (gigi): Rename and change type of number_units parameter, change
10129         type of file_info_ptr parameter.
10130         If mapped location support is enabled, create the isomorphic mapping
10131         between source files and line maps.
10132         (Sloc_to_locus): If mapped location support is enabled, translate
10133         source location into mapped location.
10134         (annotate_with_node): Rename into set_expr_location_from_node.
10135         Call set_expr_location instead of annotate_with_locus.
10136         (Pragma_to_gnu): Adjust for above change.
10137         (Loop_Statement_to_gnu): Likewise.
10138         (call_to_gnu): Likewise.
10139         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
10140         (gnat_to_gnu): Likewise.
10141         (add_stmt_with_node): Likewise.
10142         (add_cleanup): Likewise.
10143         * utils.c (gnat_init_decl_processing): Do not set input_line.
10144
10145 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
10146
10147         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
10148         (Applicable_Use): Emit a warning when a package tries to use itself.
10149         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
10150         is already in use or the package where it is declared is in use or is
10151         declared in the current package.
10152         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
10153
10154         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
10155         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
10156         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
10157
10158 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
10159
10160         * a-calend-vms.adb, a-calend.adb:
10161         Add a section on leap seconds control along with two entities used to
10162         enable and disable leap seconds support. The array Leap_Second_Times is
10163         now constant and contains hard time values pre-generated. Remove
10164         all elaboration code used to populate the table of leap seconds.
10165
10166         * bindgen.adb:
10167         Add entity Leap_Seconds_Support to the list of global run-time variables
10168         along with a comment on its usage and values.
10169         (Gen_Adainit_Ada): Add code to generate the declaration and import of
10170         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
10171         or one (enabled) depending on the presence of binder switch "-y".
10172         (Gen_Adainit_C): Add code to generate the declaration of external int
10173         __gl_leap_seconds_support. Set is value to zero (disabled) or one
10174         (enabled) depending on the presence of binder switch "-y".
10175
10176         * init.c: Add __gl_leap_seconds_support to the list of global values
10177         computed by the binder.
10178
10179 2007-09-26  Jerome Guitton  <guitton@adacore.com>
10180
10181         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
10182         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
10183          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
10184         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
10185
10186         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
10187
10188         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
10189         function which can be called by the debugger to interrupt the tasks of
10190         an Ada application asynchronously, as needed on VxWorks.
10191         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
10192
10193         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
10194         renamed from Stop_All_Tasks. Update comments.
10195         (Stop_All_tasks): New function declaration.
10196
10197 2007-09-26  Olivier Hainque  <hainque@adacore.com>
10198
10199         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
10200         #include <utime.h> and #define GCC_RESOURCE_H before
10201         #include <sys/wait.h>.
10202         Add more protections in __gnat_translate_vms.
10203
10204         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
10205         #include <sys/wait.h>.
10206
10207 2007-09-26  Thomas Quinot  <quinot@adacore.com>
10208             Sergey Rybin  <rybin@adacore.com>
10209
10210         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
10211
10212         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
10213         where it belongs.
10214
10215         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
10216
10217         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
10218         where it belongs.
10219
10220         * sem_dist.ads: Minor comment fix
10221
10222         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
10223
10224 2007-09-26  Javier Miranda  <miranda@adacore.com>
10225             Eric Botcazou  <ebotcazou@adacore.com>
10226
10227         * a-tags.adb:
10228         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
10229          indirection added to the HT_Link component of the TSD. This is required
10230          to statically allocate the TSD.
10231
10232         * a-tags.ads:
10233         Minor reordering of the declarations in the private part. Required to
10234         add a level of indirection to the contents of the TSD component HT_Link.
10235         This is required to statically allocate the TSD.
10236
10237         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
10238         Is_Statically_Allocated set from constant objects.
10239         Do not make exported constants created by the compiler volatile.
10240         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
10241         as read-only.
10242
10243         * trans.c (Identifier_to_gnu): For constants, unshare initializers
10244         before returning them.
10245
10246         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
10247         public part of the package.
10248         (Make_DT): Move HT_Link component out of the TSD record. For this
10249         purpose Make_DT now declares a separate object that stores the
10250         HT_Link value, and initializes the TSD component with the address
10251         of this new object. The addition of this level of indirection is
10252         required to statically allocate the TSD because the TSD cannot
10253         have variable components.
10254         (Expand_Interface_Conversion): Improve the expanded code.
10255         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
10256
10257         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
10258         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
10259         if we are building static dispatch tables then we must not generate
10260         extra code to register the primitive because the dispatch table will
10261         be built at the end of the library package; otherwise we notify that
10262         we cannot build the static dispatch table.
10263
10264 2007-09-26  Robert Dewar  <dewar@adacore.com>
10265
10266         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
10267         overlays.
10268
10269         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
10270         (Analyze_Record_Representation_Clause): Suppress junk warning for
10271         missing component clause.
10272         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
10273         tests for controlled type overlay to composites with controlled
10274         components.
10275         (Analyze_Record_Representation_Clause): Add reference for component name
10276
10277 2007-09-26  Javier Miranda  <miranda@adacore.com>
10278             Gary Dismukes  <dismukes@adacore.com>
10279
10280         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
10281         for thunks associated with interface types.
10282
10283         * einfo.ads: Improve documentatation of Is_Internal
10284         (Is_Thunk): New attribute applicable to subprograms. True for thunks
10285         associated with interface types.
10286         Extensive comment fixes regarding flags that appear in all entities. The
10287         documentation is now consistent for all such flags (there were a number
10288         of errors in the documentation in this regard).
10289
10290         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
10291
10292         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
10293         of these procedures are passed a function call that already has
10294         build-in-place actuals (testing new flag
10295         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
10296         the case where processing continues.
10297         (Expand_Call): If the call is generated from a thunk body then we
10298         propagate the extra actuals associated with the accessibility
10299         level of the access type actuals.
10300
10301         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
10302         of each extra formal of a protected operation to reference the
10303         corresponding extra formal of the subprogram denoted by the
10304         operation's Protected_Body_Subprogram.
10305
10306         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
10307         N_Function_Call nodes.
10308
10309 2007-09-26  Robert Dewar  <dewar@adacore.com>
10310
10311         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
10312
10313         * debug.adb: Add d.s flag.
10314
10315 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
10316
10317         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
10318         debug variable so that it won't be initialized when pragma
10319         Initialize_Scalars is in effect.
10320
10321 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
10322
10323         * freeze.adb (Freeze_Entity): Remove check for preelaborable
10324         initialization of a full view. This is moved to
10325         Analyze_Package_Specification.
10326
10327         * sem_ch7.adb (Analyze_Package_Specification): Add check for
10328         preelaborable initialization of a full view in entity loop.
10329         (Uninstall_Declarations): If entity is a use-visible compilation unit,
10330         its child units are use-visible only if they are visible child units.
10331
10332         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
10333         whether an expression can be used within a type declaration that
10334         requires preelaborable init.
10335         (Check_Components): Replace inline code that does partial checking for
10336         preelaborable default expressions with call to
10337         Is_Preelaborable_Expression.
10338         (Has_Preelaborable_Initialization): In the case of a generic actual
10339         subtype, (that is, Is_Generic_Actual is True), return the result of
10340         applying Has_Preelaborable_Initialization to the generic actual's base
10341         type.
10342
10343 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
10344
10345         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
10346         call to Jan_1_Day _Of_Week to optimize its performance.
10347         (Is_Leap): Move the routine to the scope of Week_In_Year.
10348         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
10349         weekday on which January 1 falls of Year - 1 and Year + 1. This function
10350         avoids calling Time_Of and Split, thus making it more efficent.
10351         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
10352
10353         * g-calend.ads (Week_In_Year): Change comment to reflect new
10354         implementation.
10355
10356 2007-09-26  Emmanuel Briot  <briot@adacore.com>
10357
10358         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
10359         Command_Line): New types
10360         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
10361         support for defining how switches can be grouped on a command line (as
10362         is the case for -gnatw... for GNAT), and how simple switches can be
10363         used as aliases for more complex switches (-gnatwa is same as
10364         -gnatwbcef...)
10365         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
10366         (Start, Current_*): New subprograms
10367         Added support for parsing an array of strings in addition to the real
10368         command line.
10369         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
10370          be moved from the body to the private part of the spec.
10371         (*): All subprograms now have an extra parameter with default value to
10372         specify which parser should be used. For backward compatibility, it
10373         defaults to parsing the command line of the application. They were also
10374         modified to properly handle cases where each of the argument does not
10375         start at index 1 (which is always true for Ada.Command_Line, but not
10376         when processing any Argument_List).
10377         (Free): New subprogram
10378         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
10379         Argument): New subprograms
10380         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
10381         special characters like ':', '=',... are now handled in a single place,
10382         which makes the code more extensible eventually.
10383         (Getopt, Full_Switch): When the switch was returned as part of the
10384         special character '*', make sure it is prepended by the switch character
10385         ('-' in general), so that the application knows whether "foo" or "-foo"
10386         was specified on the command line.
10387
10388 2007-09-26  Florian Villoing  <villoing@adacore.com>
10389
10390         * g-dirope.adb (Remove_Dir): In case we are removing directories
10391         recursively, make sure that if an exception is raised during the
10392         processing, the current working directory is reset to its initial
10393         value before propagating the exception.
10394
10395 2007-09-26  Vincent Celier  <celier@adacore.com>
10396
10397         * gnatbind.adb: If there are several ALI files specified and there is
10398         a main program to bind, the first ALI is expected to contain the main
10399         subprogram and the names of the binder generated files will be derived
10400         from the first ALI file name.
10401         (Gnatbind): Fix insertion character in invocation of Error_Msg
10402
10403 2007-09-26  Vincent Celier  <celier@adacore.com>
10404
10405         * gnatcmd.adb (Check_Files): Do not include sources that have been
10406         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
10407
10408 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10409
10410         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
10411         information about each of its index types, following the type
10412         reference for its component type.
10413
10414 2007-09-26  Vincent Celier  <celier@adacore.com>
10415
10416         * make.adb: (Kill): New procedure (__gnat_kill imported)
10417         (Running_Compile, Outstanding_Compiles): Global variables that
10418         were previously local to procedure Compile_Sources.
10419         (Sigint_Intercepted): Send signal SIGINT to all outstanding
10420         compilation processes.
10421
10422         (Gnatmake): If project files are used, create the mapping of all the
10423         sources, so that the correct paths will be found.
10424
10425         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
10426
10427 2007-09-26  Vincent Celier  <celier@adacore.com>
10428
10429         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
10430
10431         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
10432         Replace components Compiler_Min_Options and Binder_Min_Options with
10433         Compiler_Required_Switches and Binder_Required_Switches in record
10434         Language_Config.
10435         Remove components Default_Language and Config in Project_Tree_Data,
10436         no longer used.
10437
10438         * prj-attr.adb: New attributes Required_Switches (<language>) in
10439         packages Compiler and Binder.
10440
10441         * prj-nmsc.adb: Major rewrite of the processing of configuration
10442         attributes for gprbuild. No impact on GNAT tools.
10443
10444         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
10445         process configuration attributes: this is done in Prj.Nmsc.Check.
10446         (Recursive_Process): Make a full copy of packages inherited from project
10447         being extended, instead of a shallow copy.
10448         (Process_Project_Tree_Phase_1): New procedure
10449         (Process_Project_Tree_Phase_1): New procedure
10450         (Process): Implementation now uses the two new procedures
10451
10452         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
10453         from the project config, not the tree config that no longer exists.
10454
10455 2007-09-26  Vincent Celier  <celier@adacore.com>
10456
10457         * Make-lang.in: Update dependencies..
10458
10459 2007-09-26  Vincent Celier  <celier@adacore.com>
10460
10461         * osint.adb, osint.ads: Minor reformatting
10462
10463         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
10464
10465 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
10466
10467         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
10468         message to cite use of <> in aggregate component associations rather
10469         than wrongly indicating use of limited aggregates.
10470
10471 2007-09-26  Robert Dewar  <dewar@adacore.com>
10472
10473         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
10474         Address_Taken.
10475
10476 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10477
10478         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
10479         ancestor of the derived type, the operations are inherited from the
10480         primary dispatch table of the parent.
10481         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
10482         when the context is an explicit type conversion.
10483
10484 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10485
10486         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
10487         rule for qualified expressions properly, to detect improper conversions
10488         and resolve some cases of overloading.
10489
10490 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10491
10492         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
10493         proper kind of reference to the primitive operation, for better source
10494         navigation.
10495         (Valid_Conversion): A tagged conversion is legal if both operands are
10496         tagged.
10497
10498 2007-09-26  Robert Dewar  <dewar@adacore.com>
10499
10500         * sem_warn.adb (Check_References): Catch more cases of unreferenced
10501         packages.
10502
10503 2007-09-26  Vincent Celier  <celier@adacore.com>
10504
10505         * snames.adb, snames.ads: Change Include_Option to Include_Switches
10506
10507 2007-09-26  Robert Dewar  <dewar@adacore.com>
10508
10509         * s-wchstw.adb: provide messages for run time unit exceptions
10510
10511         * a-witeio.adb: Minor reformatting
10512
10513         * exp_ch13.adb: Minor reformatting
10514
10515 2007-09-26  Sergey Rybin  <rybin@adacore.com>
10516
10517         * vms_data.ads: Revise gnatmetric qualifiers.
10518         Add qualified for the new gnatbind option '-y'
10519
10520         * gnat_ugn.texi: Revise the gnatmetric section.
10521         Add entry for new gnatbind option '-y'.
10522
10523         * gnat_rm.texi: Minor spelling correction.
10524         Document restriction on overlaying controlled types
10525
10526 2007-09-26  Vincent Celier  <celier@adacore.com>
10527
10528         * makegpr.adb (Link_Executables): Do not fail when the root project has
10529         no sources, but is an extending project.
10530
10531 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10532
10533         * trans.c: Fix misplaced #define.
10534
10535 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10536
10537         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
10538         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
10539
10540 2007-09-21  Olivier Hainque  <hainque@adacore.com>
10541
10542         * utils.c (type_for_nonaliased_component_p): Return false for
10543         all AGGREGATE_TYPEs.
10544
10545 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
10546
10547         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
10548         object covered by 13.3(19) volatile.
10549
10550 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
10551
10552         PR ada/26797
10553         PR ada/32407
10554         * utils.c (unchecked_convert): Use a subtype as the intermediate type
10555         in the special VIEW_CONVERT_EXPR case.
10556
10557 2007-09-12  Robert Dewar  <dewar@adacore.com>
10558
10559         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
10560
10561         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
10562         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
10563         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
10564         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
10565         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
10566         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
10567         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
10568         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
10569         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
10570         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
10571         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
10572         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
10573         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
10574         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
10575         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
10576         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
10577         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
10578         pragma Compiler_Unit and adds it to relevant library units.
10579
10580 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
10581
10582         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
10583         a box need not correspond to any component.
10584
10585 2007-09-12  Robert Dewar  <dewar@adacore.com>
10586
10587         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
10588         the tasking version of the Ada run time when foreign threads are
10589         present and there are no explicit Ada tasks or tasking constructs.
10590
10591         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
10592
10593 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
10594
10595         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
10596         the usage of switch -y.
10597
10598         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
10599         when switch -y is present.
10600
10601         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
10602         leap seconds in Ada.Calendar and its children.
10603
10604 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
10605
10606         * a-extiti.ads (Timer): The discriminant is a "not null access
10607         constant" in the Reference Manual.
10608         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
10609
10610 2007-09-12  Robert Dewar  <dewar@adacore.com>
10611
10612         * a-swuwha.adb: Remove junk RM header
10613
10614 2007-09-12  Vincent Celier  <celier@adacore.com>
10615
10616         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
10617         indicator
10618
10619         * g-bytswa.ads: Minor reformatting
10620
10621 2007-09-12  Thomas Quinot  <quinot@adacore.com>
10622
10623         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
10624         Add new constant Thread_Blocking_IO, always True by default, set False
10625         on a per-runtime basis.
10626         (Need_Netdb_Buffer): New constant.
10627
10628 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
10629
10630         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
10631         Added renames for corresponding functions in System.Partition_Interface.
10632
10633 2007-09-12  Doug Rupp  <rupp@adacore.com>
10634
10635         * Makefile.in: Remove VMS specific System.CRTL packages which are no
10636         longer needed.
10637
10638         * s-crtl-vms64.ads: Removed.
10639
10640 2007-09-12  Olivier Hainque  <hainque@adacore.com>
10641
10642         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
10643         with discriminant constraints, generalize the code for BIT_FIELDs
10644         to PACKED fields of constant size and propagate DECL_PACKED.
10645
10646 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
10647
10648         * decl.c (array_type_has_nonaliased_component): New predicate.
10649         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
10650         set the TYPE_NONALIASED_COMPONENT flag on the type.
10651         <E_Array_Subtype>: Likewise.
10652         * gigi.h (type_for_nonaliased_component_p): Declare.
10653         * utils.c (type_for_nonaliased_component_p): New predicate.
10654         (create_field_decl): Invoke the above predicate to set the
10655         DECL_NONADDRESSABLE_P flag on the field.
10656
10657 2007-09-11  Javier Miranda  <miranda@adacore.com>
10658
10659         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
10660         in library level record type entities if we are generating statically
10661         allocated dispatch tables.
10662
10663         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
10664         importing/exporting the _tag declaration by new code
10665         importing/exporting the dispatch table wrapper. This change allows us
10666         to statically allocate of the TSD.
10667         (Make_DT.Export_DT): New procedure.
10668         (Build_Static_DT): New function.
10669         (Has_DT): New function.
10670
10671         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
10672         True_Constant and Current_Value. Required to statically
10673         allocate the dispatch tables.
10674         (Check_Allocator): Make function iterative instead of recursive.
10675         Also return inner allocator node, when present, so that we do not have
10676         to look for that node again in the caller.
10677
10678 2007-09-11  Jan Hubicka  <jh@suse.cz>
10679
10680         * misc.c (gnat_expand_body): Kill.
10681         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
10682
10683 2007-09-10  Robert Dewar  <dewar@adacore.com>
10684
10685         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
10686         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
10687         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
10688         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
10689         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
10690         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
10691         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
10692         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
10693         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
10694         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
10695         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
10696         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
10697         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
10698         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
10699         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
10700         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
10701         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
10702         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
10703         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
10704         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
10705         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
10706         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
10707         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
10708         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
10709         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
10710         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
10711         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
10712         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
10713         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
10714         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
10715         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
10716         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
10717         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
10718         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
10719         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
10720         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
10721         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
10722         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
10723         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
10724         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
10725         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
10726         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
10727         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
10728         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
10729         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
10730         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
10731         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
10732         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
10733         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
10734         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
10735         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
10736         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
10737         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
10738         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
10739         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
10740         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
10741         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
10742         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
10743         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
10744         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
10745         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
10746         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
10747         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
10748         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
10749         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
10750         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
10751         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
10752         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
10753         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
10754         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
10755         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
10756         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
10757         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
10758         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
10759         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
10760         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
10761         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
10762         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
10763         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
10764         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
10765         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
10766         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
10767         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
10768
10769 2007-09-10  Emmanuel Briot  <briot@adacore.com>
10770
10771         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
10772         classes ("[]").
10773
10774 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
10775
10776         * adaint.c (__gnat_translate_vms): new function.
10777
10778 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
10779             Thomas Quinot  <quinot@adacore.com>
10780
10781         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
10782         create an abstract subprogram in the case of 'Input. For 'Output we now
10783         create a real spec/body when the type is abstract, since it can
10784         potentially be called.
10785         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
10786         body for 'Output when the type is abstract (only the creation of the
10787         body for 'Input is excluded when the type is abstract).
10788         (Stream_Operation_OK): Add an additional condition in the return
10789         statement, so that False will be returned for TTS_Stream_Input if the
10790         associated tagged type is an abstract extension. Add comments for
10791         return statement.
10792         (Expand_N_Object_Declaration): For the case of a shared passive
10793         variable, insert init proc call only after the shared variable
10794         procedures have been processed, because the IP call needs to undergo
10795         shared passive variable reference expansion, which requires these
10796         procedures to be available (and elaborated).
10797
10798 2007-09-10  Vincent Celier  <celier@adacore.com>
10799
10800         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
10801         parameter Runtime_Project.
10802
10803 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
10804
10805         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
10806         given a box association, the type of the component is discriminated,
10807         and the value of the discriminant is the discriminant of the enclosing
10808         type, retrieve its value from the aggregate itself, where it must have
10809         been supplied.
10810
10811         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
10812         to remove other spurious ambiguities on arithmetic operations involving
10813         literals and addresses, on systems where Address is a visible integer
10814         type, when the operator is called in functional notation.
10815         (Try_Primitive_Operation): Within an instance, a call in prefixed form
10816         is legal when the types match, even if the operation is currently
10817         hidden.
10818
10819 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
10820
10821         * sem_ch12.adb (Build_Local_Package): A formal package with no
10822         associations is legal if all formals have defaults. It is not
10823         equivalent to a formal declared with a box.
10824
10825 2007-09-10  Sergey Rybin  <rybin@adacore.com>
10826
10827         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
10828
10829 2007-09-10  Sergey Rybin  <rybin@adacore.com>
10830
10831         * gnat_ugn.texi: Add description of the new '-lratio' option
10832         Update 7.3.1 section about availability of the feature.
10833
10834 2007-09-10  Thomas Quinot  <quinot@adacore.com>
10835
10836         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
10837         inserted node.
10838
10839 2007-09-10  Olivier Hainque  <hainque@adacore.com>
10840
10841         * Makefile.in: (mips-irix section): Activate build of libgmem.
10842
10843 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
10844
10845         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
10846         x87 registers.
10847
10848 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
10849
10850         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
10851         a debug renaming declaration specially.
10852
10853 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
10854
10855         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
10856         which a constant renaming is treated as a normal object declaration.
10857         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
10858         the N_Indexed_Component case.
10859         <N_Indexed_Component>: Fall through to above case.
10860         <N_Object_Renaming_Declaration>: Return true for all composite types.
10861
10862 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
10863
10864         * decl.c (make_packable_type): If the new type has been given BLKmode,
10865         try again to get an integral mode for it.
10866
10867 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
10868
10869         Re-apply accidentally reverted change:
10870
10871         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
10872
10873         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
10874         get_action_description_for): Replace _Unwind_Word with _uleb128_t
10875         and _Unwind_SWord with _sleb128_t.
10876
10877 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
10878
10879         * trans.c (convert_with_check): Update call to real_2expN.
10880
10881 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
10882
10883         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
10884         * utils.c (end_subprog_body): Likewise.
10885
10886 2007-09-03  Nick Clifton  <nickc@redhat.com>
10887
10888         * Make-lang.in: Change copyright header to refer to version 3 of
10889         the GNU General Public License and to point readers at the
10890         COPYING3 file and the FSF's license web page.
10891         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
10892         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
10893         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
10894         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
10895         Likewise.
10896
10897 2007-08-31  Vincent Celier  <celier@adacore.com>
10898
10899         PR ada/4720
10900
10901         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
10902         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
10903         (Check_Version_And_Help): New procedure in package Switch to process
10904         switches --version and --help.
10905         Use Check_Version_And_Help in GNAT tools
10906
10907         * make.adb:  Ditto.
10908         (Compile_Sources): Make sure that sources that are "excluded" are not
10909         compiled.
10910         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
10911         project file is used.
10912         (Version_Switch): Remove, moved to Switch
10913         (Help_Switch): Remove, moved to Switch
10914         (Display_Version): Remove, moved to Switch
10915
10916         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
10917         package Switch to process switches --version and --help.
10918         (Display_Version): New procedure
10919
10920         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
10921
10922 2007-08-31  Javier Miranda  <miranda@adacore.com>
10923
10924         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
10925         internal tags.
10926
10927 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10928
10929         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
10930         (Mark_Non_Null): If the node for which we just generated an access check
10931         is a reference to an *in* parameter and the reference appears in the
10932         declarative part of a subprogram body, mark the node as known non null.
10933
10934 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10935
10936         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
10937         structure of E_Exception to reflect the new flag.
10938         (Is_Raised, Set_Is_Raised): New inlined routines.
10939         Update the usage of available flag to reflect the addition of Is_Raised.
10940         (Is_Raised, Set_Is_Raised): Bodies of new routines.
10941         (Write_Entity_Flags): Write the status of flag Is_Raised.
10942         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
10943         spurious ambiguities when integer literals appear in the context of an
10944         address type that is a visible integer type.
10945
10946         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
10947         exceptions never being raised.
10948         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
10949         explicitly raised.
10950
10951 2007-08-31  Javier Miranda  <miranda@adacore.com>
10952
10953         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
10954         statement when compiling under restriction No_Exceptions_Proparation.
10955
10956 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
10957
10958         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
10959         initialization aggregate for the type, generate itype references for
10960         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
10961
10962 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
10963
10964         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
10965         library-level package renaming, pass the declaration associated with
10966         the renaming's special debug variable to Qualify_Entity_Names to ensure
10967         that its encoded name is properly qualified.
10968
10969         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
10970         occurring in the list of entities to qualify, and do not attempt to
10971         traverse an entity list in that case. Variables associated with
10972 `       library-level package renamings can now occur in the table.
10973
10974         * exp_dbug.ads: Revise documentation of the encoding for renaming
10975         declarations.
10976
10977 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10978
10979         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
10980         access type points to an unconstrained array.
10981
10982 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
10983
10984         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
10985         conversion.
10986
10987         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
10988         simple redundant qualifications. The check is performed whenever the
10989         expression is a non-overloaded identifier.
10990         (Resolve_Type_Conversion): Enchance the redundant type conversion check
10991         to include loop parameters.
10992         (Valid_Conversion): Avoid generation of spurious error message.
10993
10994 2007-08-31  Bob Duff  <duff@adacore.com>
10995
10996         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
10997         concatenations of string literals into a single literal, in order to
10998         avoid very deep recursion in the front end, which was causing stack
10999         overflow.
11000
11001         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
11002         string, and the right operand is a string literal (the case of "" &
11003         "..."), optimize by avoiding copying the right operand -- just use the
11004         value of the right operand directly.
11005
11006         * stringt.adb (Store_String_Chars): Optimize by growing the
11007         String_Chars table all at once, rather than appending characters one by
11008         one.
11009         (Write_String_Table_Entry): If the string to be printed is very long,
11010         just print the first few characters, followed by the length. Otherwise,
11011         doing "pn(n)" in the debugger can take an extremely long time.
11012
11013         * sem_prag.adb (Process_Interface_Name): Replace loop doing
11014         Store_String_Char with Store_String_Chars.
11015
11016 2007-08-31  Vincent Celier  <celier@adacore.com>
11017
11018         * prj-attr.adb: Add new attribute Excluded_Source_Files
11019
11020         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
11021         Locally_Removed_Files.
11022
11023         * snames.ads, snames.adb: New standard name Excluded_Source_Files
11024
11025 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
11026
11027         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
11028         clauses of subunits, ignore limited_with_clauses that are illegal and
11029         have not been fully analyzed.
11030
11031 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
11032
11033         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
11034         flag, for effiency. It is called when analyzing arithmetic operators
11035         and also for actuals in calls that are universal_integers. The flag is
11036         set for the predefined type address, and for any type or subtype
11037         derived from it.
11038
11039         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
11040         Universal_Integer, when the formal is a descendent of address and the
11041         call appears in user code.
11042         (Analyze_Selected_Component): if the prefix is a private extension, the
11043         tag component is visible.
11044
11045         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
11046         entity flag.
11047
11048 2007-08-31  Robert Dewar  <dewar@adacore.com>
11049
11050         * s-fileio.adb (Open): Normalize file name to lower case in non-case
11051         sensitive file name systems to avoid unexpected mismatch in Vista.
11052
11053 2007-08-31  Vincent Celier  <celier@adacore.com>
11054
11055         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
11056
11057 2007-08-31  Vincent Celier  <celier@adacore.com>
11058
11059         * symbols-vms.adb (Initialize): Read symbol files with continuation
11060         lines
11061         (Finalize): If symbol is long, split the line
11062
11063 2007-08-31  Vincent Celier  <celier@adacore.com>
11064
11065         * fmap.ads: Minor comment updates
11066
11067 2007-08-31  GNAT Script  <nobody@adacore.com>
11068
11069         * Make-lang.in: Makefile automatically updated
11070
11071 2007-08-31  Bob Duff  <duff@adacore.com>
11072
11073         * sinfo.ads: Minor comment fix.
11074
11075 2007-08-31  Thomas Quinot  <quinot@adacore.com>
11076
11077         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
11078         with implementation.
11079         Documentation cleanup only.
11080
11081 2007-08-31  Sergey Rybin  <rybin@adacore.com>
11082
11083         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
11084         gnatpp '--separate-stmt-name' option.
11085         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
11086         option.
11087
11088         * gnat_ugn.texi: Add description for the new gnatpp
11089         '--separate-stmt-name' and '--use-on-new-line' options.
11090
11091 2007-08-31  Ben Elliston  <bje@au.ibm.com>
11092
11093         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
11094         when compiling for powerpc64-*-linux.
11095         * system-linux-ppc64.ads: New file.
11096
11097 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
11098
11099         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
11100         NetBSD.
11101
11102 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11103
11104         * misc.c (gnat_type_max_size): Constify.
11105
11106 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
11107
11108         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
11109         associated with Standard_Debug_Renaming_Type, to be used as the type of
11110         the special variables whose names provide debugger encodings for
11111         renaming declarations.
11112
11113         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
11114         (Set_Debug_Renaming_Link): Change to set Node25.
11115         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
11116         (Write_Field25_Name): Add case for E_Variable to output
11117         "Debug_Renaming_Link".
11118         (Write_Field23_Name): Correct the output string for "Limited_View".
11119
11120         * exp_dbug.adb: Add with and use of Tbuild.
11121         (Debug_Renaming_Declaration): Replace creation of an enumeration type
11122         and literal with creation of a variable of type
11123         Standard_Debug_Renaming_Type whose name encodes both the renamed object
11124         and the entity of the renaming declaration.
11125         (Qualify_Entity_Name): Add the delayed qualification of the entity name
11126         part of the name of a variable that has a Debug_Renaming_Link.
11127
11128         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
11129         special type to be associated with variables that provide debugger
11130         encodings for renaming declarations.
11131
11132 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
11133             Ed Schonberg  <schonberg@adacore.com>
11134             Javier Miranda  <miranda@adacore.com>
11135
11136         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
11137         ancestor part given by an aggregate to test for an unchecked conversion,
11138         since this can occur in some cases when the ancestor part is a function
11139         call, and we don't want to fall into the recursive call to this
11140         procedure in that case.
11141
11142         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
11143         stream attributes on limited types to account for user-specified
11144         attributes as well as whether Input (resp. Output) becomes available
11145         due to Read (resp. Write) being available for the type. Change Boolean
11146         variable to the more accurate name
11147         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
11148         double-"not" predicate at beginning of return statement to more
11149         understandable form.
11150
11151         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
11152         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
11153         in a block statement and use that as the first statement of the
11154         expanded return rather than incorrectly using the handled sequence as
11155         the first statement.
11156
11157         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
11158         operation, generate an explicit freeze node for it rather than
11159         generating extra formals, to ensure that gigi has the proper order of
11160         elaboration for anonymous subtypes in the signature of the subprograms.
11161         (Build_In_Place_Formal): Move assertion to beginning of loop.
11162         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
11163         applied to a function call (occurs for some cases of 'Input).
11164         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
11165         applied to a function call (occurs for some cases of 'Input).
11166
11167         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
11168         2005, generate an extended return statement enclosing the result object
11169         and 'Read call.
11170
11171         * freeze.adb (Freeze_Record_Type): Extend the current management of
11172         components that are access type with an allocator as default value: add
11173         missing support to the use of qualified expressions of the
11174         allocator (which also cause freezing of the designated type!)
11175         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
11176         dispatching operation, since extra formals may be needed by calls to
11177         build-in-place functions (such as stream 'Input).
11178
11179         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
11180         formals for 'Constrained and accessibility level in the case of a
11181         predefined dispatching operation.
11182
11183         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
11184         point, no need to find the parent node.
11185
11186 2007-08-16  Javier Miranda  <miranda@adacore.com>
11187
11188         * exp_attr.adb (Attribute_Priority): Add missing support for entries
11189         and entry barriers.
11190
11191 2007-08-16  Javier Miranda  <miranda@adacore.com>
11192
11193         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
11194         is not really required and can introduce regression with the debugger.
11195         The original problem is fixed with the patch written for checks.adb.
11196
11197 2007-08-16  Thomas Quinot  <quinot@adacore.com>
11198
11199         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
11200         Range_Check on Allocated_Table.
11201
11202 2007-08-16  Vincent Celier  <celier@adacore.com>
11203
11204         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
11205         Including_Non_Switch set to False.
11206         (Gnatmake): For the compiler, call Test_If_Relative_Path with
11207         Including_Non_Switch set to False.
11208
11209         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
11210         parameter Including_Non_Switch, defaulted to True. When
11211         Including_Non_Switch is False, options that are not switches and
11212         appear as relative path are not converted to absolute paths.
11213
11214 2007-08-16  Nicolas Roche  <roche@adacore.com>
11215
11216         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
11217         makefiles
11218
11219         * Make-lang.in: Update dependencies
11220
11221 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
11222
11223         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
11224         currently inspected is a selected component, retrieve the entity of
11225         its selector.
11226         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
11227         from the immediate ancestor of Main_Unit_Entity.
11228         (Install_Limited_Withed_Unit): Do not install the limited view of
11229         package P if P is reachable through an ancestor chain from package C
11230         and C also has a with clause for P in its body.
11231         (Has_Limited_With_Clause): New routine.
11232         (Has_With_Clause): New routine.
11233
11234 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
11235
11236         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
11237         generic for an enclosing instance is a global reference, even though
11238         its scope is the enclosing instance.
11239
11240 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
11241             Javier Miranda  <miranda@adacore.com>
11242
11243         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
11244         initialize a limited object.
11245         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
11246         13/2 and 14/2.
11247         Make sure Has_Complex_Representation is inherited by derived type.
11248
11249 2007-08-16  Robert Dewar  <dewar@adacore.com>
11250
11251         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
11252         exception case
11253
11254 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
11255
11256         * sem_disp.adb (Check_Dispatching_Operation): If the operation
11257         implements an operation inherited from a progenitor interface, verify
11258         that they are subtype-conformant.
11259
11260 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
11261             Bob Duff  <duff@adacore.com>
11262             Nicolas Setton  <setton@adacore.com>
11263
11264         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
11265         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
11266         the statement which is being resolved comes from a predefined library
11267         unit, all non-predefined library interpretations are skipped.
11268         (Resolve_Op_Concat): If string concatenation was folded in the parser,
11269         but the "&" is user defined, give an error, because the folding would
11270         be wrong.
11271
11272         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
11273         the parser has folded a long sequence of concatenations of string
11274         literals.
11275
11276         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
11277         and "JMP_BUF" variables as artificial.
11278         (N_String_Literal): Do not use alloca for very long string literals. Use
11279         xmalloc/free instead. Otherwise the stack might overflow.
11280
11281         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
11282         compiler.
11283
11284 2007-08-16  Vincent Celier  <celier@adacore.com>
11285
11286         * vms_conv.adb (Process_Argument): Ensure that project related options
11287         are not put in the -cargs section when using GNAT COMPILE.
11288
11289 2007-08-16  Robert Dewar  <dewar@adacore.com>
11290
11291         * gnat_ugn.texi: Add note on preprocessing (output file not written)
11292
11293 2007-08-16  Thomas Quinot  <quinot@adacore.com>
11294
11295         * a-tags.adb: Minor reformatting.
11296
11297 2007-08-16  Bob Duff  <duff@adacore.com>
11298
11299         * sem_type.ads, sem_ch4.adb: Minor reformatting.
11300
11301 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11302
11303         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
11304         s-osinte-interix.ads, system-interix.ads: Removed.
11305
11306 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
11307
11308         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
11309         calls to Check_Within_Time_Bounds.
11310         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
11311         (Difference): Account for possible rounding of the resulting difference
11312
11313 2007-08-14  Robert Dewar  <dewar@adacore.com>
11314
11315         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
11316         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
11317         s-osinte-solaris.adb, s-osinte-solaris.ads,
11318         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
11319
11320         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
11321         switch -gnatyS. Enable -gnatyS in GNAT style check mode
11322
11323 2007-08-14  Robert Dewar  <dewar@adacore.com>
11324             Ed Schonberg  <schonberg@adacore.com>
11325
11326         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
11327         Suppress unmodified in-out parameter warning in some cases
11328         This patch is a also fairly significant change to the way suppressible
11329         checks are handled.
11330
11331         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
11332         needed for access to concurrent record types generated by the expander.
11333         (Generate_Range_Check): When generating a temporary to capture the
11334         value of a conversion that requires a range check, set the type of the
11335         temporary before rewriting the node, so that the type is always
11336         properly placed for back-end use.
11337         (Apply_Float_Conversion_Check): Handle case where the conversion is
11338         truncating.
11339         (Get_Discriminal): Code reformatting. Climb the scope stack looking
11340         for a protected type in order to examine its discriminants.
11341
11342 2007-08-14  Robert Dewar  <dewar@adacore.com>
11343             Gary Dismukes  <dismukes@adacore.com>
11344             Ed Schonberg  <schonberg@adacore.com>
11345             Thomas Quinot  <quinot@adacore.com>
11346
11347         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
11348         a-stwisu.adb, a-strsup.adb: Fix warnings for range
11349         tests optimized out.
11350
11351         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
11352         (Get_Allocator_Final_List): For the case of an anonymous access type
11353         that has a specified Associated_Final_Chain, do not go up to the
11354         enclosing scope.
11355         (Expand_N_Type_Conversion): Test for the case of renamings of access
11356         parameters when deciding whether to apply a run-time accessibility
11357         check.
11358         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
11359         aggregate code before allocator, and ahead of declaration for
11360         temporary, to prevent access before elaboration when the allocator is
11361         an actual for an access parameter.
11362         (Expand_N_Type_Conversion): On an access type conversion involving an
11363         access parameter, do not apply an accessibility check when the
11364         operand's original node was an attribute other than 'Access. We now
11365         create access conversions for the expansion of 'Unchecked_Access and
11366         'Unrestricted_Access in certain cases and clearly accessibility should
11367         not be checked for those.
11368
11369         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
11370         includes a type conversion of a packed component that has been expanded,
11371         recover the original expression for the object, and use this expression
11372         in the post-call assignment statement, so that the assignment is made
11373         to the object and not to a back-end temporary.
11374         (Freeze_Subprogram): In case of primitives of tagged types not defined
11375         at the library level force generation of code to register the primitive
11376         in the dispatch table. In addition some code reorganization has been
11377         done to leave the implementation clear.
11378         (Expand_Call): When expanding an inherited implicit conversion,
11379         preserve the type of the inherited function after the intrinsic
11380         operation has been expanded.
11381
11382         * exp_ch2.ads, exp_ch2.adb
11383         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
11384         of an entry formal appearing in an assignment statement does not assign
11385         to the formal.
11386         (Expand_Current_Value): Instead of calling a routine to determine
11387         whether the prefix of an attribute reference should be optimized or
11388         not, prevent the optimization of such prefixes all together.
11389
11390         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
11391         component whose prefix is known to be of an access type is an implicit
11392         dereference and does not assign to the prefix.
11393
11394 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11395             Robert Dewar  <dewar@adacore.com>
11396
11397         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
11398         itype is visited, make an entry into table to link associated node and
11399         new itype.
11400         Add comments and correct harmless error in Build_NCT_Hash_Tables
11401         (Array_Aggr_Subtype): Associate each itype created for an index type to
11402         the corresponding range construct, and not to the aggregate itself. to
11403         maintain a one-to-one correspondence between itype and its associated
11404         node, to prevent errors when complex expression is copied.
11405         Fix mishandling of multiple levels of parens
11406
11407         * sem_aggr.adb: Create a limited view of an incomplete type, to make
11408         treatment of limited views uniform for all visible declarations in a
11409         limited_withed package.
11410         (New_Copy_Tree): If hash table is being used and itype is visited,
11411         make an entry into table to link associated node and new itype.
11412         (Resolve_Record_Aggregate): Do not add an others box association for a
11413         discriminated record component that has only discriminants, when there
11414         is a box association for the component itself.
11415
11416         * par-ch4.adb: Fix mishandling of multiple levels of parens
11417
11418 2007-08-14  Robert Dewar  <dewar@adacore.com>
11419
11420         * comperr.adb: Fix problem with suppressing warning messages from gigi
11421
11422         * erroutc.ads, erroutc.adb, errout.ads,
11423         errout.adb (Write_Eol): Remove trailing spaces before writing the line
11424         (Write_Eol_Keep_Blanks): New procedure to write a line, including
11425         possible trailing spaces.
11426         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
11427         Fix problem with suppressing warning messages from back end
11428         Improve handling of deleted warnings
11429
11430         * gnat1drv.adb:
11431         Fix problem with suppressing warning messages from back end
11432         Handle setting of Static_Dispatch_Tables flag.
11433
11434         * prepcomp.adb:
11435         Fix problem with suppressing warning messages from back end
11436
11437         * exp_intr.adb: Improve handling of deleted warnings
11438
11439 2007-08-14  Robert Dewar  <dewar@adacore.com>
11440
11441         * debug.adb: Improve -gnatdI to cover all cases of serialization
11442         Add documentation of dZ, d.t
11443
11444         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
11445         serialization.
11446         (Sprint_Node_Actual): Generate new output associated with implicit
11447         importation and implicit exportation of object declarations.
11448
11449 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11450             Robert Dewar  <dewar@adacore.com>
11451             Javier Miranda  <miranda@adacore.com>
11452             Gary Dismukes  <dismukes@adacore.com>
11453
11454         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
11455         to make treatment of limited views uniform for all visible declarations
11456         in a limited_withed package.
11457         Improve warnings for in out parameters
11458         (Set_Related_Interaface/Related_Interface): Allow the use of this
11459         attribute with constants.
11460         (Write_Field26_Name): Handle attribute Related_Interface in constants.
11461         Warn on duplicate pragma Preelaborable_Initialialization
11462
11463         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
11464         generation of a freezing node to ensure proper management of null
11465         excluding access types in the backend.
11466         (Create_Extra_Formals): Test base type of the formal when checking for
11467         the need to add an extra accessibility-level formal. Pass the entity E
11468         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
11469         originally being done in a couple of cases), to ensure that the
11470         Extra_Formals list gets set on the entity E when the first entity is
11471         added.
11472         (Conforming_Types): Add missing calls to Base_Type to the code that
11473         handles anonymous access types. This is required to handle the
11474         general case because Process_Formals builds internal subtype entities
11475         to handle null-excluding access types.
11476         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11477         functions that need it, even when not marked Requires_Overriding.
11478         Improve warnings for in out parameters
11479         (Analyze_Function_Return): Warn for disallowed null return
11480         Warn on return from procedure with unset out parameter
11481         Ensure consistent use of # in error messages
11482         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
11483         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
11484         the implicit conversion of the expression done for anonymous access
11485         types. This is required to generate the code of the null excluding
11486         check (if required).
11487
11488         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
11489         A formal parameter is never publicly referenceable outside of its body.
11490         (Check_References): For an unreferenced formal parameter in an accept
11491         statement, use the same warning circuitry as for subprogram formal
11492         parameters.
11493         (Warn_On_Unreferenced_Entity): New subprogram, taken from
11494         Output_Unreferenced_Messages, containing the part of that routine that
11495         is now reused for entry formals as described above.
11496         (Goto_Spec_Entity): New function
11497         (Check_References): Do not give IN OUT warning for dispatching operation
11498         Improve warnings for in out parameters
11499         (Test_Ref): Check that the entity is not undefinite before calling
11500         Scope_Within, in order to avoid infinite loops.
11501         Warn on return from procedure with unset out parameter
11502         Improved warnings for unused variables
11503
11504 2007-08-14  Robert Dewar  <dewar@adacore.com>
11505             Javier Miranda  <miranda@adacore.com>
11506             Gary Dismukes  <dismukes@adacore.com>
11507
11508         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
11509         (Expand_N_Attribute_Reference): Further unify the handling of the
11510         three forms of access attributes, using common code now for all three
11511         cases. Add a test for the case of applying an access attribute to
11512         an explicit dereference when the context is an access-to-interface
11513         type. In that case we need to apply the conversion to the prefix
11514         of the explicit dereference rather than the prefix of the attribute.
11515         (Attribute_Version, UET_Address): Set entity as internal to ensure
11516         proper dg output of implicit importation.
11517         (Expand_Access_To_Type): Removed.
11518         (Expand_N_Attribute_Reference): Merge the code from the three cases
11519         of access attributes, since the processing is largely identical for
11520         these cases. The substantive fix here is to process the case of a
11521         type name prefix (current instance case) before handling the case
11522         of interface prefixes.
11523
11524 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11525             Ed Schonberg  <schonberg@adacore.com>
11526             Javier Miranda  <miranda@adacore.com>
11527             Robert Dewar  <dewar@adacore.com>
11528
11529         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
11530         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
11531         type that is an anonymous access to controlled object, establish
11532         an associated finalization chain to avoid corrupting the global
11533         finalization list when a dynamically allocated object designated
11534         by such a component is deallocated.
11535         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11536         functions that need it, even when not marked Requires_Overriding.
11537         (Initialize_Tag): Replace call to has_discriminants by call to
11538         Is_Variable_Size_Record in the circuitry that handles the
11539         initialization of secondary tags.
11540         (Is_Variable_Size_Record): New implementation.
11541         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
11542         Suppress_Initialization pragma for a derived type.
11543         (Is_Variable_Size_Record): New subprogram.
11544         (Build_Offset_To_Top_Functions): New implementation that simplifies the
11545         initial version of this routine and also fixes problems causing
11546         incomplete initialization of the table of interfaces.
11547         (Build_Init_Procedure): Improve the generation of code to initialize the
11548         the tag components of secondary dispatch tables.
11549         (Init_Secondary_Tags): New implementation that simplifies the previous
11550         version of this routine.
11551         (Make_DT): Add parameter to indicate when type has been frozen by an
11552         object declaration, for diagnostic purposes.
11553         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
11554         diagnose attemps to freeze a subprogram when some untagged type of its
11555         profile is a private type whose full view has not been analyzed yet.
11556         (Freeze_Array_Type): Generate init proc for packed array if either
11557         Initialize or Normalize_Scalars is set.
11558         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
11559         constructing the new profile, copy the null_exclusion indicator for each
11560         parameter, to ensure full conformance of the new body with the spec.
11561
11562         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
11563         Create wrappers for constructor functions that need it, even when not
11564         marked Requires_Overriding.
11565         (Covers): Handle properly designated types of anonymous access types,
11566         whose non-limited views are themselves incomplete types.
11567         (Add_Entry): Use an entity to store the abstract operation which hides
11568         an interpretation.
11569         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
11570         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
11571         initialization aggregate.
11572         (Function_Interp_May_Be_Hidden): Rename to
11573         Function_Interp_Has_Abstract_Op.
11574         (Has_Compatible_Type): Remove machinery that skips interpretations if
11575         they are labeled as potentially hidden by an abstract operator.
11576         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
11577         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
11578         (Write_Overloads): Output the abstract operator if present.
11579         (Add_Entry): Before inserting a new entry into the interpretation table
11580         for a node, determine whether the entry will be disabled by an abstract
11581         operator.
11582         (Binary_Op_Interp_May_Be_Hidden): New routine.
11583         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
11584         aggregate.
11585         (Function_Interp_May_Be_Hidden): New routine.
11586         (Has_Compatible_Type): Do not consider interpretations hidden by
11587         abstract operators when trying to determine whether two types are
11588         compatible.
11589         (Has_Hidden_Interp): New routine.
11590         (Set_May_Be_Hidden_Interp): New routine.
11591         (Write_Overloads): Write the status of flag May_Be_Hidden.
11592
11593 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11594             Javier Miranda  <miranda@adacore.com>
11595
11596         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
11597         types declared in the declarative part of a nested package body or in
11598         the proper body of a stub.
11599         (Set_All_DT_Position): Add missing check to avoid wrong assignation
11600         of the same dispatch table slot to renamed primitives.
11601         (Make_Select_Specific_Data_Table): Handle private types.
11602         (Tagged_Kind): Handle private types.
11603         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
11604         output of implicit importation and exportation.
11605         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
11606         first formal of the thunk is always associated with the controlling
11607         type. In addition perform the following code cleanup: remove formal
11608         Thunk_Alias which is no longer required, cleanup evaluation of the
11609         the controlling type, and update the documentation.
11610         Replace occurrence of Default_Prim_Op_Count by
11611         Max_Predef_Prims. Addition of compile-time check to verify
11612         that the value of Max_Predef_Prims is correct.
11613         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
11614         (Make_DT): Add parameter to indicate when type has been frozen by an
11615         object declaration, for diagnostic purposes.
11616         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
11617         construction of statically allocated dispatch tables.
11618         (Make_DT): In case of library-level tagged types export the declaration
11619         of the primary tag. Remove generation of tags (now done by Make_Tags).
11620         Additional modifications to handle non-static generation of dispatch
11621         tables. Take care of building tables for asynchronous interface types
11622         (Make_Tags): New subprogram that generates the entities associated with
11623         the primary and secondary tags of Typ and fills the contents of Access_
11624         Disp_Table. In case of library-level tagged types imports the forward
11625         declaration of the primary tag that will be declared later by Make_DT.
11626         (Expand_Interface_Conversion): In case of access types to interfaces
11627         replace an itype declaration by an explicit type declaration to avoid
11628         problems associated with the scope of such itype in transient blocks.
11629
11630 2007-08-14  Robert Dewar  <dewar@adacore.com>
11631             Ed Schonberg  <schonberg@adacore.com>
11632             Javier Miranda  <miranda@adacore.com>
11633
11634         * exp_util.ads, exp_util.adb:
11635         This patch replaces a number of occurrences of explicit tests for N_Null
11636         with calls to Known_Null. This improves tracking of null values, since
11637         Known_Null also catches null constants, and variables currently known to
11638         be null, so we get better tracking.
11639         (Ensure_Defined): create an itype reference only in the scope of the
11640         itype.
11641         (Side_Effect_Free): A selected component of an access type that
11642         denotes a component with a rep clause must be treated as not
11643         side-effect free, because if it is part of a linked structure its
11644         value may be affected by a renaming.
11645         (Expand_Subtype_From_Expr): For limited objects initialized with build
11646         in place function calls, do nothing; otherwise we prematurely introduce
11647         an N_Reference node in the expression initializing the object, which
11648         breaks the circuitry that detects and adds the additional arguments to
11649         the called function. Bug found working in the new patch for statically
11650         allocated dispatch tables.
11651         (Is_Library_Level_Tagged_Type): New subprogram.
11652         (Remove_Side_Effects): If the expression of an elementary type is an
11653         operator treat as a function call.
11654         (Make_Literal_Range): If the index type of the array is not integer, use
11655         attributes properly to compute the constraint on the resulting aggregate
11656         which is a string.
11657
11658         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
11659         class-wide type whose base type is an incomplete private type, leave
11660         class-wide type unfrozen so that freeze nodes can be generated
11661         properly at a later point.
11662         (Freeze_Entity, array case): Handle case of pragma Pack and component
11663         size attributre clause for same array.
11664
11665 2007-08-14  Vincent Celier  <celier@adacore.com>
11666
11667         * prj.ads, prj.adb: Update Project Manager to new attribute names for
11668         gprbuild.
11669         Allow all valid declarations in configuration project files
11670         (Reset): Initialize all tables and hash tables in the project tree data
11671         Major update of the Project Manager and of the project aware tools,
11672         including gprmake, so that the same sources in the GNAT repository
11673         can be used by gprbuild.
11674         (Slash_Id): Change type to be Path_Name_Type
11675         (Slash): Return a Path_Name_Type instead of a File_Name_Type
11676
11677         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
11678         gprbuild.
11679         Update Project Manager to new attribute names for ghprbuild
11680         Allow all valid declarations in configuration project files
11681         Major update of the Project Manager and of the project aware tools,
11682         including gprmake, so that the same sources in the GNAT repository
11683         can be used by gprbuild.
11684
11685         * prj-com.ads:
11686         Major update of the Project Manager and of the project aware tools,
11687         including gprmake, so that the same sources in the GNAT repository
11688         can be used by gprbuild.
11689
11690         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11691         insensitive flag for attributes with optional index.
11692         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11693         array attribute, put the index in lower case.
11694         Update Project Manager to new attribute names for ghprbuild
11695         Allow all valid declarations in configuration project files
11696         Major update of the Project Manager and of the project aware tools,
11697         including gprmake, so that the same sources in the GNAT repository
11698         can be used by gprbuild.
11699
11700         * prj-env.ads, prj-env.adb:
11701         Major update of the Project Manager and of the project aware tools,
11702         including gprmake, so that the same sources in the GNAT repository
11703         can be used by gprbuild.
11704         (Get_Reference): Change type of parameter Path to Path_Name_Type
11705
11706         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
11707         removing '-' from the path to start with the first character of the
11708         next directory.
11709         Major update of the Project Manager and of the project aware tools,
11710         including gprmake, so that the same sources in the GNAT repository
11711         can be used by gprbuild.
11712         Major update of the Project Manager and of the project aware tools,
11713         including gprmake, so that the same sources in the GNAT repository
11714         can be used by gprbuild.
11715
11716         * prj-nmsc.ads, prj-nmsc.adb:
11717         Update Project Manager to new attribute names for ghprbuild
11718         Allow all valid declarations in configuration project files
11719         (Search_Directories): Detect subunits that are specified with an
11720         attribute Body in package Naming. Do not replace a source/unit in the
11721         same project when the order of the source dirs are known. Detect
11722         duplicate sources/units in the same project when the order of the
11723         source dirs are not known.
11724         (Check_Ada_Name): Allow all identifiers that are not reserved words
11725         in Ada 95.
11726         Major update of the Project Manager and of the project aware tools,
11727         including gprmake, so that the same sources in the GNAT repository
11728         can be used by gprbuild.
11729         (Look_For_Sources): If the list of sources is empty, set the object
11730         directory of non extending project to nil.
11731         Change type of path name variables to be Path_Name_Type
11732         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
11733         otherwise creating missing directories will fail.
11734
11735         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
11736         prj-part.ads, prj-part.adb:
11737         Major update of the Project Manager and of the project aware tools,
11738         including gprmake, so that the same sources in the GNAT repository
11739         can be used by gprbuild.
11740
11741         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
11742         insensitive flag for attributes with optional index.
11743         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
11744         array attribute, put the index in lower case.
11745         (Parse_Variable_Reference): Allow the current project name to be used in
11746         the prefix of an attribute reference.
11747
11748         * prj-util.ads, prj-util.adb
11749         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
11750         defaulted to False. When True, always check against indexes in lower
11751         case.
11752
11753         * snames.ads, snames.h, snames.adb:
11754         Update Project Manager to new attribute names for gprbuild
11755         Allow all valid declarations in configuration project files
11756
11757 2007-08-14  Robert Dewar  <dewar@adacore.com>
11758             Ed Schonberg  <schonberg@adacore.com>
11759
11760         * opt.ads: Warning for non-local exception propagation now off by
11761         default
11762         New switch -gnatI to disable representation clauses
11763         Implement new pragma Implicit_Packing
11764
11765         * usage.adb:
11766         Warning for non-local exception propagation now off by default
11767         Add warning for unchecked conversion of pointers wi different
11768         conventions.
11769         New switch -gnatI to disable representation clauses
11770
11771         * usage.adb: new switch -gnatyS
11772
11773         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
11774         note that aggregates of anonymous array types are not flagged.
11775         -gnatwc now includes membership tests optimized away
11776         -gnatw.x warnings are now off by default
11777         Added conditional compilation Appendix
11778         Add documentation of -gnatI
11779         Add documentation for new -gnatyS style check
11780         Update documentation about SAL and auto-init on Windows.
11781
11782         * gnat_rm.texi:
11783         Add documentation for pragma Check_Name and 'Enabled attribute
11784         Document that Eliminate on dispatching operation is ignored
11785         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
11786         Document pragma Main
11787         Document pragma Implicit_Packing
11788
11789         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
11790         different conventions
11791         New switch -gnatI to disable representation clauses
11792
11793         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
11794         recognized, report the invalid characters including "-gnat" instead of
11795         just the first character in the switch.
11796         New switch -gnatI to disable representation clauses
11797         Set Warn_On_Object_Renames_Function true for -gnatg
11798
11799         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
11800         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
11801         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
11802         to switch -aP (add directory to project search dir).
11803
11804         * par-prag.adb: Implement new pragma Implicit_Packing
11805
11806         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
11807         type as having a non-standard representation, to force expansion on
11808         conversion to related types.
11809         (Analyze_Pragma): Warn on misspelled pragma
11810         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
11811         Ensure consistent use of # in error messages
11812         Implement pragma Implicit_Packing
11813
11814 2007-08-14  Olivier Hainque  <hainque@adacore.com>
11815             Eric Botcazou  <ebotcazou@adacore.com>
11816
11817         * targtyps.c (get_target_maximum_default_alignment): New function.
11818         Maximum alignment
11819         that the compiler might choose by default for a type or object.
11820         (get_target_default_allocator_alignment): New function. Alignment known
11821         to be honored by the target default allocator.
11822         (get_target_maximum_allowed_alignment): New function. Maximum alignment
11823         we might accept for any type or object on the target.
11824         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
11825
11826         * gigi.h (get_target_maximum_default_alignment): Declare new function.
11827         (get_target_default_allocator_alignment): Likewise.
11828         (get_target_maximum_allowed_alignment): Likewise.
11829
11830         PR ada/19037
11831         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
11832         result of a function call, first try to use a stabilized reference for
11833         a constant renaming too.
11834         (validate_alignment): Use target_maximum_allowed_alignment instead of
11835         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
11836         (gnat_to_gnu_entity): Use common nodes directly.
11837         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
11838         alignment and size for the object.
11839         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
11840         and N_Procedure_Call_Statement.
11841         (takes_address): Rename to lvalue_required_p, add third parameter
11842         'aliased' and adjust recursive calls.
11843         <N_Indexed_Component>: Update 'aliased' from the array type.
11844         <N_Selected_Component>: New case.
11845         <N_Object_Renaming_Declaration>: New Likewise.
11846         (Identifier_to_gnu): Adjust for above changes.
11847         (maybe_stabilize_reference) <CONST_DECL>: New case.
11848
11849         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
11850         between type variants.
11851         (build_simple_component_ref): Likewise.
11852         (build_call_alloc_dealloc): Use target_default_allocator_alignment
11853         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
11854         aligning type circuitry for allocations from the default storage pool.
11855         (build_allocator): Likewise.
11856         (build_simple_component_ref): Manually fold the reference for a
11857         constructor if the record type contains a template.
11858
11859         * utils.c (value_zerop): Delete.
11860         (gnat_init_decl_processing): Emit debug info for common types.
11861         (rest_of_record_type_compilation): If a union contains a field
11862         with a non-constant qualifier, treat it as variable-sized.
11863         (finish_record_type): Give the stub TYPE_DECL a name.
11864         (rest_of_record_type_compilation): Likewise.
11865         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
11866         types are equivalent array types.
11867         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
11868         even if the type is not passed by reference.
11869         (static_ctors, static_dtors): Delete.
11870         (end_subprog_body): Do not record constructors and destructors.
11871         (build_global_cdtor): Delete.
11872         (gnat_write_global_declarations): Do not call build_global_cdtor.
11873
11874         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
11875         -fRTS=rtp is specified.
11876         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
11877         specified.
11878
11879         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
11880         of the personality function with SJLJ exceptions.
11881
11882         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
11883         the name of the personality function with SJLJ exceptions.
11884
11885 2007-08-14  Robert Dewar  <dewar@adacore.com>
11886             Ed Schonberg  <schonberg@adacore.com>
11887
11888         * par.ads, par.adb: Improve handling of extra right parens.
11889         (Par): Remove flag From_Limited_With_Clause.
11890
11891         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
11892         Improve handling of extra right parens.
11893
11894 2007-08-14  Robert Dewar  <dewar@adacore.com>
11895
11896         * par-tchk.adb (TF_Semicolon): Improve error recovery
11897
11898 2007-08-14  Robert Dewar  <dewar@adacore.com>
11899             Ed Schonberg  <schonberg@adacore.com>
11900
11901         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
11902         enumeration type, mark all literals as referenced.
11903         (Eval_Attribute, case 'Image): If the argument is an enumeration
11904         literal and names are available, constant-fold but mark nevertheless as
11905         non-static.
11906         Clean up function names.
11907         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
11908         comment.
11909         (Requires_Simple_Name_Prefix): Removed.
11910
11911 2007-08-14  Robert Dewar  <dewar@adacore.com>
11912             Ed Schonberg  <schonberg@adacore.com>
11913
11914         * sem_ch11.adb: Improved warnings for unused variables
11915
11916         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
11917         is a synchronized interface, the derived type is limited.
11918         (Analyze_Object_Declaration): Mark the potential coextensions in the
11919         definition and expression of an object declaration node.
11920         (Build_Derived_Type): For the completion of a private type declaration
11921         with a derived type declaration, chain the parent type's representation
11922         items to the last representation item of the derived type (not the
11923         first one) if they are not present already.
11924         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
11925         object declaration of forward references to tags.
11926         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
11927         subprogram types can appear as access discriminants of synchronized
11928         types.
11929         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
11930         given in prefixed form as a selected component.
11931         (Process_Discriminants): If not all discriminants have defaults, place
11932         error message on a default that is present.
11933         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
11934         extend a synchronized tagged type.
11935         Improved warnings for unused variables
11936         (Is_Visible_Component): Fix a visibility hole on a component inherited
11937         by a private extension when parent is itself declared as a private
11938         extension, and the derivation is in a child unit.
11939         (Find_Hidden_Interface): Move spec from the package body.
11940
11941 2007-08-14  Robert Dewar  <dewar@adacore.com>
11942             Ed Schonberg  <schonberg@adacore.com>
11943
11944         * sem_ch5.adb: Improve warnings on redundant assignments
11945
11946         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
11947         parameter
11948         (Is_Synchronized_Tagged_Type): New subprogram that returns true
11949         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
11950         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
11951         is set to False. Improves handling of Known_[Not_]Null.
11952         (Wrong_Type): Special case address arithmetic attempt
11953         (Collect_Abstract_Interfaces): Add new formal to allow collecting
11954         abstract interfaces just using the partial view of private types.
11955         (Has_Abstract_Interfaces): Add new formal to allow checking types
11956         covering interfaces using the partial view of private types.
11957         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
11958         component still needs to be defined in this case, but is never
11959         initialized as VMs are using other dispatching mechanisms.
11960         (Abstract_Interface_List): For a protected type, use base type to get
11961         proper declaration.
11962         Improve warnings on redundant assignments
11963         (Is_Variable): Handle properly an implicit dereference of a prefixed
11964         function call.
11965         (Build_Actual_Subtype): If this is an actual subtype for an
11966         unconstrained formal parameter, use the sloc of the body for the new
11967         declaration, to prevent anomalises in the debugger.
11968
11969 2007-08-14  Robert Dewar  <dewar@adacore.com>
11970
11971         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
11972         dispatching operation
11973
11974 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11975             Gary Dismukes  <dismukes@adacore.com>
11976
11977         * exp_aggr.ads,
11978         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
11979         expanded aggregate code before allocator, and ahead of declaration for
11980         temporary, to prevent access before elaboration when the allocator is
11981         an actual for an access parameter.
11982         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
11983         the TSD and the table of interfaces.
11984         (Convert_To_Assignments): Augment the test for delaying aggregate
11985         expansion for limited return statements to include the case of extended
11986         returns, to prevent creation of an unwanted transient scope.
11987         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
11988         (Expand_Array_Aggregate): Handle aggregates associated with
11989         statically allocated dispatch tables.
11990         (Expand_Record_Aggregate): Handle aggregates associated with
11991         statically allocated dispatch tables.
11992         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
11993         of anonymous access type.
11994
11995 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11996
11997         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
11998         is a variable that renames a slice, use the variable itself in the
11999         expannsion when the renamed expression itself may be modified between
12000         the declaration of the renaming and the array assignment.
12001
12002 2007-08-14  Jerome Guitton  <guitton@adacore.com>
12003
12004         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
12005         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
12006         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
12007         New functions; dummy implementations.
12008
12009         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
12010         functions, used to implement the multi-tasks mode routines on VxWorks.
12011
12012         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
12013         New functions, thin
12014         binding to the VxWorks routines which have changed between VxWorks 5
12015         and 6.
12016         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
12017         which are not callable from a RTP.
12018
12019         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
12020         implemented for the multi-tasks mode on VxWorks 5 and 6.
12021
12022         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
12023
12024         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
12025         functions.
12026
12027 2007-08-14  Vincent Celier  <celier@adacore.com>
12028
12029         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
12030         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
12031         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
12032         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
12033         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
12034         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
12035         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
12036         procedure.
12037         (Major_Id_Name): New function.
12038         mlib-tgt.ads/mlib.tgt.adb:
12039         (Library_Major_Minor_Id_Supported): New function, default returns True
12040         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
12041         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
12042         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
12043         Implementation of Library_Major_Minor_Id_Supported returns False
12044         clean.adb:
12045         (Clean_Library_Directory): If major/minor ids are supported, clean all
12046         library files.
12047         Major update of the Project Manager and of the project aware tools,
12048         including gprmake, so that the same sources in the GNAT repository
12049         can be used by gprbuild.
12050
12051 2007-08-14  Olivier Hainque  <hainque@adacore.com>
12052
12053         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
12054         (GCC_ZCX_Support): Switch to True.
12055
12056         * s-intman-solaris.adb (Notify_Exception): Call
12057         Adjust_Context_For_Raise before raising, as expected for signal
12058         handlers in general.
12059
12060         * s-intman-posix.adb (Notify_Exception): Remove declaration of
12061         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
12062         to other implementation bodies.
12063
12064         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
12065         be visible by multiple implementation bodies.
12066
12067         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
12068         only for conditions coming from hardware.
12069         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
12070         adjustments to signal context prior to exception raise from signal
12071         handler.
12072         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
12073         mode.
12074         Solaris section: (__gnat_adjust_context_for_raise): New function.
12075         Implementation of the machine context adjustments to perform prior to
12076         raise from a signal handler. Version for both sparc and x86.
12077         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
12078         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
12079         prior to raising as expected for any handler, before possible nested
12080         faults to make sure all the contexts in a chain have been adjusted by
12081         the time we propagate.
12082
12083 2007-08-14  Pascal Obry  <obry@adacore.com>
12084
12085         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
12086         (SYSTEM_INFO): New record.
12087         (SetThreadIdealProcessor): New imported routine needed for supporting
12088         task_info pragma on Windows.
12089
12090         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
12091         info can be applied to the current host.
12092         (Create_Task): Set the ideal processor if information is present.
12093
12094         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
12095         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
12096
12097 2007-08-14  Olivier Hainque  <hainque@adacore.com>
12098
12099         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
12100         stack size and initial stack pointer value for a given task.
12101         (Enter_Task): Get the stack attributes of the task we are entering and
12102         let the stack checking engine know about them.
12103
12104         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
12105         Let the stack-checking engine know about the initial sp value and stack
12106         size associated with the current task.
12107         (Set_Stack_Info): If a stack base has been notified for the current
12108         task, honor it. Fallback to the previous less accurate method otherwise.
12109
12110         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
12111
12112 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12113
12114         * sem_ch10.adb: Create a limited view of an incomplete type, to make
12115         treatment of limited views uniform for all visible declarations in a
12116         limited_withed package.
12117         Set flag indicating that a subprogram body for a child unit has a
12118         generated spec.
12119         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
12120         separate declaration, remove the unit name from visibility after
12121         compilation, so that environment is clean for subsequent compilations.
12122         (Install_Limited_Context_Clauses): Do not install a
12123         limited_private_with_clause unless the current unit is a body or a
12124         private child unit.
12125         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
12126         in the same fashion.
12127         (Install_Limited_Withed_Unit): Do not install a limited with clause if
12128         it applies to the declaration of the current package body.
12129         (Remove_Private_With_Clauses): If there is a regular with_clause for
12130         the unit, delete Private_With_Clause from context, to prevent improper
12131         hiding when processing subsequent nested packages and instantiations.
12132
12133 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
12134
12135         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
12136         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
12137         representing absolute path names.
12138         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
12139
12140         * cstreams.c (__gnat_full_name for VxWorks): Use
12141         __gnat_is_absolute_path to detect whether we need to add the current
12142         directory to normalize the path.
12143
12144 2007-08-14  Javier Miranda  <miranda@adacore.com>
12145
12146         * a-tags.ads,
12147         a-tags.adb (Displace): Associate a message with the raised CE
12148         exception.
12149         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
12150         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
12151         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
12152         spec.
12153         (Default_Prim_Op_Count): Removed.
12154         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
12155         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
12156         Remove pragma Inline_Always.
12157
12158         * rtsfind.ads (Default_Prim_Op_Count): Removed
12159         (Max_Predef_Prims): New entity
12160         (RE_Expanded_Name): Removed
12161         (RE_HT_Link): Removed
12162         (RE_Iface_Tag): Remmoved
12163         (RE_Ifaces_Table): Removed
12164         (RE_Interfaces_Array): Removed
12165         (RE_Interface_Data_Element): Removed
12166         (RE_Nb_Ifaces): Removed
12167         (RE_RC_Offset): Removed
12168         (RE_Static_Offset_To_Top): Removed
12169
12170         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
12171         formal.
12172         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
12173         Prim_Op_Count by Max_Predef_Prims.
12174
12175 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12176             Vincent Celier  <celier@adacore.com>
12177
12178         * binde.adb (Elab_All_Links): Remove unnecessary call to
12179         Generic_Separately_Compiled (if a unit satisfies this predicate, there
12180         won't be an associated Afile).
12181         (Elab_All_Links): Fail if a referenced unit cannot be found
12182
12183         * bindgen.adb:
12184         Fix comments in bindgen regarding consistency checks done in Bcheck:
12185         the checks are made across units within a partition, not across several
12186         partitions.
12187         Fix generation of C binder file for VxWorks.
12188
12189         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
12190         Generic_May_Lack_ALI, more descriptive of the current use of the
12191         predicate, and update documentation.
12192
12193         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
12194         reorganization and documentation update for the case of predefined
12195         library generics (for which we do not reference an Afile).
12196
12197 2007-08-14  Robert Dewar  <dewar@adacore.com>
12198
12199         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
12200         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
12201         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
12202         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
12203         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
12204         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
12205         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
12206         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
12207         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
12208         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
12209         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
12210         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
12211         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
12212         g-altcon.adb: Minor reformatting
12213
12214         ada-tree.h: Delete empty line.
12215
12216         ali.ads: Minor reformatting
12217         Clarification of comments.
12218         Minor spelling correction
12219
12220         * exp_dbug.adb: Add Warnings Off to suppress new warning
12221
12222         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
12223         formal
12224
12225         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
12226         value
12227
12228         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
12229
12230         * a-textio.ads: Reorder the standard input/output/error declarations
12231         for consistency.
12232
12233         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
12234
12235         * par-ch2.adb: Recognize RM specially in errout
12236         Change 'R'M to RM in all error messages
12237
12238         * scng.adb: Recognize RM specially in errout
12239
12240         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
12241         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
12242
12243         * s-direio.adb: Add missing routine header box.
12244
12245         * sem_attr.ads: Add ??? comments
12246
12247         * sem_eval.adb: Recognize RM specially in errout
12248         Change 'R'M to RM in all error messages
12249
12250         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
12251
12252         * s-tasinf.ads: Fix minor comment typo.
12253
12254         * a-cihama.adb: Minor comment addition
12255
12256         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
12257         formal
12258
12259         * s-tasinf-tru64.ads: Fix minor comment typo.
12260
12261         * itypes.ads: Comment update.
12262
12263         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
12264         anymore.
12265
12266         * argv.c: Added protection against null gnat_argv and gnat_envp.
12267
12268         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
12269         warning message when Tolerate_Consistency_Errors is True.
12270
12271         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
12272         Any_Id, as this subprogram is only applicable to *type* entities (it
12273         sets RM_Size). Instead initialize just Esize and Alignment.
12274
12275 2007-08-14  Bob Duff  <duff@adacore.com>
12276
12277         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
12278         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
12279         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
12280         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
12281         a-coorse.ads (Next): Applied pragma Inline.
12282         Make all Containers packages Remote_Types (unless they are already
12283         Pure).
12284         (Previous): applied pragma Inline
12285         (Elements_Type): is now a record instead of an array
12286
12287 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12288
12289         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
12290         of Set_Item.
12291         (Set_Item): When the new item is an element of the currently allocated
12292         table passed by reference, save a copy on the stack if we're going
12293         to reallocate. Also, in Table.Set_Item, make sure we test the proper
12294         variable to determine whether to call Set_Last.
12295
12296         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
12297         symbols-vms.adb, symbols-processing-vms-alpha.adb,
12298         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
12299         some occurrences of the pattern
12300            T.Increment_Last;
12301            T.Table (T.Last) := Value;
12302         with a cleaner call to
12303            T.Append (Value);
12304
12305 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12306             Gary Dismukes  <dismukes@adacore.com>
12307             Thomas Quinot  <quinot@adacore.com>
12308
12309         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
12310         derived type with interface progenitors use the analyzed formal as the
12311         parent of the actual, to create renamings for all the inherited
12312         operations in Derive_Subprograms.
12313         (Collect_Previous_Instances): new procedure within of
12314         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
12315         unit being loaded, to ensure that the generation of global symbols is
12316         consistent in different compilation modes.
12317         (Is_Tagged_Ancestor): New function testing the ancestor relation that
12318         takes progenitor types into account.
12319         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
12320         traversing over the primitives of the formal and actual types to locate
12321         any abstract subprograms of the actual type that correspond to a
12322         nonabstract subprogram of the formal type's ancestor type(s), and issue
12323         an error if such is found.
12324         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
12325         Instantiate_Package_Body, Instantiate_Subprogram_Body):
12326         Remove bogus guard around calls to Inherit_Context.
12327         (Reset_Entity): If the entity is the selector of a selected component
12328         that denotes a named number, propagate constant-folding to the generic
12329         template only if the named number is global to the generic unit.
12330         (Set_Instance_Env): Only reset the compilation switches when compiling
12331         a predefined or internal unit.
12332
12333 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12334
12335         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
12336         parameter to determine whether operation applies to the prefix.
12337         (Complete_Object_Operation): If actual has an access type and
12338         controlling formal is not an in_parameter, reject the actual if it is
12339         an access_to_constant type.
12340         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
12341         type, the candidate operations are found in the scope of declaration of
12342         the type, because the type has no primitive subprograms.
12343         (Analyze_Selected_Component): If prefix is class-wide, and root type is
12344         a private extension, only examine visible components before trying to
12345         analyze as a prefixed call.
12346         Change Entity_List to Type_To_Use, for better readability.
12347         (Has_Fixed_Op): Use base type when checking whether the type of an
12348         operator has a user-defined multiplication/division
12349         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
12350         user-defined operators are available for fixed-point types.
12351
12352 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12353             Ed Schonberg  <schonberg@adacore.com>
12354
12355         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
12356         formal At_Any_Place indicating, when True, that we want to test for
12357         availability of the stream attribute at any place (as opposed to the
12358         current visibility context only).
12359         (Missing_Read_Write_Attributes): A stream attribute is missing for the
12360         purpose of enforcing E.2.2(8) only if it is not available at any place.
12361         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
12362         when checking the legality of an extension aggregate in a preelaborable
12363         package. Treat the literal null as a valid default expression in a
12364         component declaration for a type with preelaborable initialization.
12365         A limited interface is a legal progenitor for the designated type of a
12366         remote access to class-wide type.
12367
12368 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12369             Ed Schonberg  <schonberg@adacore.com>
12370
12371         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
12372         reference): Use correct entity as denoted entity for the selector of
12373         the rewritten node.
12374         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
12375         setting the Referenced_As_LHS flag for entities that are implicitly
12376         dereferenced.
12377         (Find_Type): If the type is an internally generated incomplete type,
12378         mark the full view as referenced, to prevent spurious warnings.
12379         (Find_Selected_Component, Has_Components): Handle properly non-limited
12380         views that are themselves incomplete types.
12381         Handle interfaces visible through limited-with clauses.
12382         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
12383         subprogram generic actual for which we have generated a renaming.
12384         Warn when the renaming introduces a homonym of
12385         the renamed entity, and the renamed entity is directly visible.
12386
12387 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12388             Hristian Kirtchev  <kirtchev@adacore.com>
12389
12390         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
12391         appear in the subtree to the current allocator if it is not a static
12392         coextension.
12393         (Resolve_Allocator): Perform cleanup if resolution has determined that
12394         the allocator is not a coextension.
12395         (Resolve): Skip an interpretation hidden by an abstract operator only
12396         when the type of the interpretation matches that of the context.
12397         (Resolve): When looping through all possible interpretations of a node,
12398         do not consider those that are hidden by abstract operators.
12399         (Resolve_Actuals): When verifying that an access to class-wide object
12400         is an actual  for a controlling formal, ignore anonymous access to
12401         subprograms whose return type is an access to class_wide type.
12402         (Resolve_Slice): If the prefix of the slice is a selected component
12403         whose type depends on discriminants, build its actual subtype before
12404         applying range checks on the bounds of the slice.
12405         (Valid_Conversion): In an instance or inlined body, compare root types,
12406         to prevent anomalies between private and public views.
12407         (Resolve): Improve error message for ambiguous fixed multiplication
12408         expressions that involve universal_fixed multiplying operations.
12409
12410 2007-08-14  Javier Miranda  <miranda@adacore.com>
12411             Hristian Kirtchev  <kirtchev@adacore.com>
12412
12413         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
12414         location to allow the correct generation of errors in case of
12415         restrictions applied to the expanded code.
12416         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
12417         function if the condition does not reference them.
12418         (Expand_Entry_Body_Declarations): Mark the index constant as having a
12419         valid value.
12420
12421 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12422             Pablo Oliveira  <oliveira@adacore.com>
12423
12424         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
12425         typecode parameters for a union (in a variant record), remove
12426         extraneous layer of Any wrapping for member label.
12427         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
12428         elabration statements, register the package with the name server
12429         at the beginning, not at the end, of the elaboration statements so
12430         that they can create remote access to subprogram values that designate
12431         remote subprograms from the package.
12432
12433 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12434
12435         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
12436         values to compute the number of seconds since the Unix Epoc in order to
12437         account for Daylight Savings Time. Perform special processing for dates
12438         that are earlier than the Unix Epoc to obtain a negative number.
12439
12440 2007-08-14  Emmanuel Briot  <briot@adacore.com>
12441
12442         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
12443         switches.
12444
12445 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
12446
12447         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
12448         binder-generated file is not in Ada.
12449         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
12450         recorded in the ALI file.
12451         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
12452
12453 2007-08-14  Vincent Celier  <celier@adacore.com>
12454
12455         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
12456         (Output_Source): Do nothing if parameter is No_Sdep_Id
12457
12458         * make.adb (Gnatmake): Do not rebuild an archive simply because a
12459         shared library it imports has a later time stamp.
12460         (Check): Resolve the symbolic links in the path name of the object
12461         directory.
12462         Check that the ALI file is in the correct object directory
12463         Check if a file name does not correspond to the mapping of units
12464         to file names.
12465         (Display_Version): New procedure
12466         (Initialize): Process switches --version and --help
12467         Use type Path_Name_Type for path name
12468
12469 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
12470
12471         * impunit.adb: Re-organize System.Random_Numbers and
12472         GNAT.Random_Numbers and add to builds.
12473
12474         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
12475
12476         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
12477
12478         * a-assert.ads, a-assert.adb: New files.
12479
12480 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
12481
12482         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
12483         if AAMP_On_Target is True, then the size of the type encompasses two
12484         addresses (a static link and a subprogram address), except in the case
12485         of library-level access types.
12486
12487 2007-08-14  Vincent Celier  <celier@adacore.com>
12488
12489         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
12490         writing the line.
12491         (Write_Eol_Keep_Blanks): New procedure to write a line, including
12492         possible trailing spaces.
12493         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
12494
12495 2007-08-14  Javier Miranda  <miranda@adacore.com>
12496
12497         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
12498         null-excluding access types.
12499
12500 2007-08-14  Javier Miranda  <miranda@adacore.com>
12501
12502         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
12503         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
12504         of private types add missing check on matching interfaces in the
12505         partial and full declarations.
12506         (Analyze_Protected_Type): Code cleanup.
12507         (Analyze_Task_Type): Code cleanup.
12508
12509 2007-08-14  Javier Miranda  <miranda@adacore.com>
12510
12511         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
12512         generated interface thunk.
12513
12514 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12515
12516         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
12517         obsolescent warning on application of 'Class to an incomplete type.
12518
12519         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
12520         prevent obsolescent warning on application of 'Class to an incomplete
12521         type.
12522
12523 2007-08-14  Pascal Obry  <obry@adacore.com>
12524
12525         * s-fileio.adb (Is_Open): Add check for usability of the underlying
12526         file stream.
12527
12528 2007-08-14  Cyrille Comar  <comar@adacore.com>
12529
12530         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
12531         since it is potentially used in cases implying double finalization of
12532         the same object.
12533
12534 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
12535
12536         * s-tasini.adb (Get_Stack_Info): Move this function to
12537         System.Soft_Links.Tasking because it is common to the full and the
12538         restricted run times.
12539         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
12540         in SSL.Tasking.Init_Tasking_Soft_Links.
12541
12542         * s-solita.adb (Get_Stack_Info): Function moved from
12543         System.Tasking.Initialization because it is common to the full and the
12544         restricted run times.
12545         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
12546
12547 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
12548
12549         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
12550         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
12551         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
12552         parameter.
12553
12554         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
12555         guard to 12K.
12556
12557 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
12558
12559         * s-veboop.adb (SU): New named number initialized to
12560         System.Storage_Unit.
12561         (True_Val): The initialization expression is revised to use SU (=
12562         Storage_Unit) rather than assuming 8 for the component size of an
12563         unpacked Boolean array.
12564
12565 2007-08-14  Tristan Gingold  <gingold@adacore.com>
12566
12567         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
12568
12569         * tb-ivms.c: New file.
12570
12571         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
12572
12573 2007-08-14  Geert Bosch  <bosch@adacore.com>
12574
12575         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
12576         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
12577         Add required linker pragmas for automatically linking with the gnalasup
12578         linear algebra support library, and the systems math library.
12579         Rename cdot to cdotu and zdot to zdotu.
12580         Update header comment to describe purpose of package.
12581
12582 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12583
12584         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
12585         an explicitly specified Associated_Final_Chain, use that list.
12586         (Expand_N_Package_Body): Build dispatch tables of library level tagged
12587         types.
12588         (Expand_N_Package_Declaration): Build dispatch tables of library level
12589         tagged types. Minor code cleanup.
12590
12591 2007-08-14  Vincent Celier  <celier@adacore.com>
12592
12593         * gnatchop.adb (Terminate_Program): Remove exception and use
12594         Types.Terminate_Program instead.
12595
12596         * osint.ads, osint.adb (Current_Exit_Status): New global variable
12597         (Find_Program_Name): Added protection against empty name.
12598         (OS_Exit_Through_Exception): New procedure
12599
12600         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
12601         (OS_Exit_Default): New procedure that contains the previous
12602         implementation of procedure OS_Exit.
12603         (Final_Value): Remove obsolete Interix stuff.
12604
12605 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12606
12607         * g-socket.ads: Reorganize example code so that it also works on
12608         Windows XP.
12609
12610 2007-08-14  Tristan Gingold  <gingold@adacore.com>
12611
12612         * g-trasym.ads: AIX now supports symbolic backtraces.
12613
12614 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12615
12616         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
12617         units being loaded to detect circularities. A circularity may be
12618         present even if the current chain of pending units to load starts from
12619         a limited_with_clause.
12620
12621         * lib-load.ads: Change profile of Load_Unit to use a with_clause
12622         rather than a boolean flag, in order to detect circularities in
12623         with_clauses.
12624
12625         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
12626         than propagating the From_Limited_With flag, in order to handle
12627         properly circularities involving with_clauses.
12628
12629 2007-08-14  Nicolas Setton  <setton@adacore.com>
12630
12631         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
12632         warnings.
12633
12634 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
12635
12636         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
12637         to build for libgnala.
12638         libgnat: Add rules to build libgnala.a
12639         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
12640         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
12641         Add s-osinte-vxworks-kernel.adb to the target pairs of the
12642         kernel run-time lib for VxWorks 6, which would provide a different
12643         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
12644         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
12645         running ZCX by default.
12646         Add g-sttsne-locking to LynxOS version.
12647         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
12648         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
12649
12650         * system-darwin-x86.ads: New file.
12651
12652         * Make-lang.in: Delete files before copying onto them, so if they are
12653         read-only, the copy won't fail.
12654         Update dependencies
12655
12656 2007-08-14  Pascal Obry  <obry@adacore.com>
12657
12658         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
12659         naming scheme.
12660
12661 2007-08-14  Vincent Celier  <celier@adacore.com>
12662
12663         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
12664         (Gcc): Initialize Gcc_Name at the first call
12665
12666 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12667
12668         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
12669         with_clauses of the enclosing unit when analyzing the package
12670         specification of a nested instance.
12671
12672 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12673
12674         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
12675         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
12676         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
12677         layout of N_Allocator.
12678
12679 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12680
12681         * rtsfind.adb (Check_RPC): Add PCS version check.
12682
12683         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
12684         (Gnat_Free_Software): New function.
12685
12686         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
12687         the PCS_Version value from s-parint, used to check that it is consistent
12688         with what exp_dist expects.
12689
12690         * s-parint.ads (PCS_Version): New entity for checking consistency
12691         between exp_dist and PCS.
12692
12693         * gen-soccon.c: (SO_REUSEPORT): New constant.
12694
12695 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12696
12697         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
12698         variable Sub_Second to Duration in order to accomodate a larger range
12699         of arithmetic operations.
12700
12701 2007-08-14  Bob Duff  <duff@adacore.com>
12702
12703         * g-sttsne-locking.ads: Move comments from spec to body.
12704         * g-sttsne-locking.adb: Move comments from spec to body.
12705         * g-sttsne-vxworks.ads: Removed.
12706         * g-sttsne-vxworks.adb: Removed.
12707
12708 2007-08-11  Ian Lance Taylor  <iant@google.com>
12709
12710         * misc.c (gnat_get_alias_set): Change return type to
12711         alias_set_type.
12712
12713 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12714
12715         * decl.c, utils2.c: Fix whitespace in last change.
12716
12717 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12718
12719         * decl.c (compare_field_bitpos): Constify.
12720         * utils2.c (compare_elmt_bitpos): Likewise.
12721
12722 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
12723
12724         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
12725         anonymous access type.
12726         (pthread_sigmask): Now take an access sigset_t.
12727
12728 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
12729
12730         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
12731
12732 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
12733
12734         PR tree-optimization/25737
12735         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
12736
12737 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
12738
12739         * trans.c (Attribute_to_gnu): When subtracting an
12740         offset from a pointer, use POINTER_PLUS_EXPR with
12741         NEGATE_EXPR instead of MINUS_EXPR.
12742         (gnat_to_gnu): Likewise.
12743         * utils.c (convert): When converting between
12744         thin pointers, use POINTER_PLUS_EXPR and sizetype
12745         for the offset.
12746         * utils2.c (known_alignment): POINTER_PLUS_EXPR
12747         have the same semantics as PLUS_EXPR for alignment.
12748         (build_binary_op): Add support for the semantics of
12749         POINTER_PLUS_EXPR's operands.
12750         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
12751
12752 2007-06-11  Rafael Ávila de Espíndola  <espindola@google.com>
12753
12754         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
12755         of get_signed_or_unsigned_type.
12756         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
12757
12758 2007-06-11  Bob Duff  <duff@adacore.com>
12759             Thomas Quinot  <quinot@adacore.com>
12760
12761         * g-stsifd-sockets.adb (Create): Work around strange behavior of
12762         'bind' on windows that causes 'connect' to fail intermittently, by
12763         retrying the 'bind'.
12764         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12765
12766 2007-06-10  Duncan Sands  <baldrick@free.fr>
12767
12768         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
12769         than to void, for the fields when making a new fat pointer type.
12770         (gnat_substitute_in_type): Now substitute_in_type.
12771         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
12772         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
12773         * utils.c (update_pointer_to): Update fat pointers by updating the
12774         dummy node pointers used for the fields.
12775
12776 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12777             Bob Duff  <duff@adacore.com>
12778
12779         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
12780         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
12781         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
12782         constant Thread_Blocking_IO, always True by default, set False
12783         on a per-runtime basis.
12784         (Need_Netdb_Buffer): New constant.
12785
12786         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
12787         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
12788         files.
12789
12790         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
12791         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
12792         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
12793         child package Task_Safe_NetDB
12794         (Host_Error_Messages): Add stub body.
12795         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12796
12797         * g-soccon-mingw.ads: Add Windows-specific constants.
12798         (Need_Netdb_Buffer): New constant.
12799         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
12800         wrapper and import inet_addr(3) from the standard sockets library
12801         directly instead.
12802         (In_Addr): Add alignment clause.
12803         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
12804
12805 2007-06-06  Robert Dewar  <dewar@adacore.com>
12806
12807         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
12808         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
12809         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
12810         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
12811         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
12812         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
12813         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
12814         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
12815         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
12816         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
12817         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
12818         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
12819         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
12820         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
12821         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
12822         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
12823         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
12824         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
12825         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
12826         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
12827         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
12828         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
12829         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
12830         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
12831         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
12832         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
12833         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
12834         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
12835         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
12836         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
12837         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
12838         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
12839         Unchecked_* by Ada.Unchecked_*
12840
12841 2007-06-06  Robert Dewar  <dewar@adacore.com>
12842
12843         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
12844         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
12845         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
12846         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
12847         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
12848         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
12849
12850         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
12851         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
12852         s-tasloc.adb, s-tasloc.ads: New files.
12853
12854 2007-06-06  Bob Duff  <duff@adacore.com>
12855
12856         * g-expect-vms.adb:
12857         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
12858         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
12859         (Send_Signal, Close): Raise Invalid_Process if the process id is
12860         invalid.
12861         (Pattern_Matcher_Access): Is now a general access type to be able to
12862         use aliased string.
12863
12864 2007-06-06  Thomas Quinot  <quinot@adacore.com>
12865             Arnaud Charlet  <charlet@adacore.com>
12866
12867         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
12868         (SIGEMT is now used instead of SIGTERM on AIX).
12869
12870         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
12871         (Time_Slice_Supported): Set to True.
12872         Use SIGEMT instead of SIGTERM as SIGADAABORT.
12873
12874 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
12875
12876         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
12877         (Time, Time)): Use To_Relative_Time rather than manual calculation to
12878         express the bounds of Duration as Time. Raise Time_Error when the
12879         result is greater or equal to the higher bound of Duration (on the
12880         margin case).
12881         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
12882         Ada_High_And_Leaps.
12883         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
12884         Ada_High_And_Leaps.
12885         ("-" (Time, Time)): Reorder code.
12886         (All_Leap_Seconds): Removed.
12887         (Arithmetic_Operations.Add): Remove sign related kludge.
12888         (Arithmetic_Operations.Difference): Control the leaps seconds processing
12889         with flag Leap_Support.
12890         (Arithmetic_Operations.Subtract): Remove sign related kludge.
12891         (Check_Within_Time_Bounds): New procedure.
12892         (Clock): Control the leap seconds processing with flag Leap_Support.
12893         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
12894         (Formatting_Operations.Split): Control the leap seconds processing with
12895         flag Leap_Support.
12896         (Formatting_Operations.Time_Of): Control the leaps seconds processing
12897         with flag Leap_Support. Adjust the year, month and day (if applicable)
12898         when the value of day seconds designates a new day.
12899         (Split): Use parameter associations for better readability. Integrate
12900         flag Is_Ada_05.
12901         (Time_Of): Use parameter associations for better readability. Integrate
12902         flag Is_Ada_05.
12903
12904         * a-calfor.adb (Split): Use parameter associations for better
12905         readability. Integrate flag Is_Ada_05.
12906         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
12907         better readability. Integrate flag Is_Ada_05.
12908
12909 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12910
12911         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
12912         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
12913         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
12914         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
12915         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
12916         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
12917         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
12918         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
12919         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
12920         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
12921         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
12922         time when entering this routine to detect a backward clock setting
12923         (manual setting or DST adjustment), to avoid waiting for a longer delay
12924         than needed.
12925         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
12926         Remove handling of deferred priority change, and replace by setting the
12927         task priority directly, as required by AI-188.
12928         Update comments.
12929         (Max_Task_Image_Length): New constant.
12930         Replace Warnings (Off) by Unreferenced pragma, cleaner.
12931         (Dynamic_Priority_Support): Removed, no longer needed.
12932         (Poll_Base_Priority_Change): Ditto.
12933         (Set_Ceiling): Add this procedure to change the ceiling priority
12934         associated to a lock. This is a dummy implementation because dynamic
12935         priority ceilings are not supported by the underlying system.
12936
12937         * a-dynpri.adb (Set_Priority): Take into account case where Target is
12938         accepting a RV with its priority boosted.
12939         Remove handling of deferred priority change, and replace by setting the
12940         task priority directly, as required by AI-188.
12941
12942         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
12943         Succeeded = True.
12944         Remove handling of deferred priority change, and replace by setting the
12945         task priority directly, as required by AI-188.
12946         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
12947         of Self_Id earlier.
12948
12949         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
12950         (Poll_Base_Priority_Change): Removed.
12951         Code clean up: use SSL.Current_Target_Exception.
12952
12953         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
12954         to run as this is a potentially dispatching point.
12955         (Call_Synchronous): Use Local_Defer_Abort.
12956         (Callable): Relax assertion.
12957         (Selective_Wait): Relax assertion in case abort is not allowed.
12958         Remove handling of deferred priority change, and replace by setting the
12959         task priority directly, as required by AI-188.
12960
12961         * s-tasuti.adb (Make_Passive): Adjust assertions.
12962         Remove handling of deferred priority change, and replace by setting the
12963         task priority directly, as required by AI-188.
12964
12965 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
12966
12967         * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
12968         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
12969         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
12970         system-vxworks-mips.ads, system-vxworks-alpha.ads,
12971         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
12972         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
12973         system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
12974         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
12975         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
12976         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
12977         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
12978         This patch changes the largest non-binary modulus from 2**31-1 to
12979         2**32-1.
12980         (Compiler_System_Version): Removed, no longer used.
12981         Clean up system files by removing flags only used on a single target.
12982         Also remove obsolete flags, only used during bootstrap from system.ads
12983         (Address): Add a pragma Preelaborable_Initialization.
12984
12985         * system-aix.ads:  Ditto.
12986         (GCC_ZCX_Support): Set to true.
12987         Update priority range on AIX and map Ada priorities to target
12988         priorities appropriately for different scheduling policies.
12989
12990         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
12991
12992 2007-06-06  Vincent Celier  <celier@adacore.com>
12993
12994         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
12995         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
12996
12997         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
12998         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
12999         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
13000         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13001         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
13002         MLib.Tgt, containing the default versions of the exported subprograms.
13003         For each platform, create a specific version of the body of new child
13004         package MLib.Tgt.Specific that contains only the body of subprograms
13005         that are different from the default.
13006         (Archive_Builder_Append_Options): New function.
13007
13008 2007-06-06  Matthew Gingell  <gingell@adacore.com>
13009
13010         * s-osinte-aix.adb: Map Ada priorities to target priorities
13011         appropriately for different scheduling policies.
13012
13013 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
13014
13015         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
13016         its C counterpart.
13017         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
13018         Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
13019
13020 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
13021
13022         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
13023         Noop on VMS, added for interface commonality.
13024
13025 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
13026             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13027             Olivier Hainque  <hainque@adacore.com>
13028
13029         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
13030         renamed expression of a full renaming at toplevel.
13031         (gnat_to_gnu_entity, case object): If not defining, do not look inside
13032         the values the constant is initialized to if it is an N_Allocator.
13033         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
13034         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
13035         (make_aligning_type): Accept an extra ROOM argument for storage to be
13036         made available before the aligned field, and an extra BASE_ALIGN
13037         argument for callers to pass the alignment guaranteed to be honored for
13038         the whole aligning object. Avoid call to finish_record_type, which only
13039         interferes with the sizes we want to set.
13040         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
13041         make_aligning_type for super-aligned objects on stack.
13042         (components_to_record): Pass the adjusted size of the type when creating
13043         fields in the qualified union for the variant part.
13044         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
13045         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
13046         packed array type.
13047         (maybe_pad_type): Set TYPE_USER_ALIGN.
13048         (make_aligning_type): Likewise.
13049         ALIGN argument is unsigned int.
13050         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
13051         (gnat_to_gnu_param): Likewise, for parameters.
13052         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
13053         if it is constant and stems from a function call.
13054         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
13055         of the record is specified.  Adjust accordingly.
13056         (adjust_packed): New static function.
13057         (gnat_to_gnu_field): Use it to adjust the packedness setting.
13058         (components_to_record): Likewise.
13059         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
13060         side-effects if the object is deemed constant.
13061         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
13062         type instead of merely finalizing it.  Tidy.
13063         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
13064         <E_Access_Type>: Likewise.
13065         (defer_debug_incomplete_list): Rename to defer_finalize_list.
13066         (defer_debug_level): Delete.
13067         (gnat_to_gnu_entity) <debug_deferred>: Likewise
13068         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
13069         type.
13070         <E_Record_Type>: Do not explicitly defer finalizing the type.
13071         Adjust for write_record_type_debug_info renaming.
13072         <E_Subprogram_Type>: Likewise.
13073         Finalize deferred types right after deferred incomplete types are
13074         expanded.
13075         (rest_of_type_decl_compilation): New global function.
13076         (components_to_record): Rename defer_debug parameter to do_not_finalize.
13077         (components_to_record): Propagate the packedness to the fields of the
13078         qualified union type if there is a variant part.
13079         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
13080         instead of inline code to adjust the XUT field offsets.
13081         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
13082         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
13083         and write the debug info if the type derives from a discriminated one.
13084         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
13085         <E_Array_Subtype>: Likewise.
13086         <E_String_Literal_Subtype>: Likewise.
13087         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
13088         an alignment clause.
13089         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
13090         before giving warning.
13091         (prepend_one_attribute_to): New function, helper to prepend an attribute
13092         to an attribute list.
13093         (gnat_to_gnu_entity) <E_Procedure>: Use it.
13094         (prepend_attributes): Likewise.
13095         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
13096         <E_Array_Type>: Declare the padding type for the element type, if any.
13097         <E_Array_Subtype>: Likewise.
13098         (defer_limited_with): New variable.
13099         (Gigi_Equivalent_Type): New function.
13100         (gnat_to_gnu_entity): Use it at start and use result throughout.
13101         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
13102         Gigi_Equivalent_Type, support Limited_With, allow two levels of
13103         indirection, precompute if unconstrained array to simplify logic, and
13104         use defer_limited_with to defer elaboration of some types from limited
13105         with.
13106         (finalize_from_with_types): New function.
13107
13108 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
13109             Eric Botcazou  <ebotcazou@adacore.com>
13110             Tristan Gingold  <gingold@adacore.com>
13111             Olivier Hainque  <hainque@adacore.com>
13112
13113         * trans.c (Identifier_to_gnu): Change test for deferred constant by
13114         adding guard that the entity is an E_Constant before testing presence
13115         of Full_view (and remove unnecessary test that entity is not a type).
13116         For a CONST_DECL used by reference, manually retrieve
13117         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
13118         (struct language_function): Move from utils.c to here.
13119         (struct parm_attr): New structure.
13120         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
13121         (f_parm_attr_cache): New macro.
13122         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
13123         expressions for the 'First, 'Last and 'Length attributes of the
13124         unconstrained array IN parameters.
13125         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
13126         Allocate the information structure for the function earlier, as well
13127         as the language-specific part.
13128         If the parameter attributes cache has been populated, evaluate the
13129         cached expressions on entry.
13130         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
13131         N_Procedure_Call_Statement and N_Indexed_Component.
13132         (Pragma_to_gnu): Translate inspection_point to an asm statement
13133         containaing a comment and a reference to the object (either its address
13134         for BLKmode or its value).
13135         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
13136         to go to DECL_INITIAL. Together with the size constraint relaxation
13137         in create_var_decl, enlarges the set of situations in which an
13138         identifier may be used as an initializer without implying elaboration
13139         code.
13140         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
13141         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
13142         node.
13143         (maybe_stabilize_reference): Remove lvalues_only parameter.
13144         (gnat_stabilize_reference): Adjust for above change.
13145         (gnat_to_gnu): Do not set location information on the result
13146         if it is a reference.
13147         (add_cleanup): Add gnat_node parameter and set the location of the
13148         cleanup to it.
13149         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
13150         (Exception_Handler_to_gnu_zcx): Likewise.
13151         (gigi): Remove the cgraph node if the elaboration procedure is empty.
13152         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
13153         the former right after the latter.
13154         (start_stmt_group): Make global.
13155         (end_stmt_group): Likewise.
13156         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
13157         vars.
13158         (gnu_program_error_label_stack): Likewise.
13159         (gigi): Initialize them.
13160         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
13161         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
13162         New cases.
13163         (push_exception_label_stack): New function.
13164         (takes_address): New function.
13165
13166         * utils.c (struct language_function): Move to trans.c from here.
13167         (unchecked_convert): Do not wrap up integer constants in
13168         VIEW_CONVERT_EXPRs.
13169         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
13170         the latter for aggregate types, unexpected by later passes, and relax an
13171         arbitrary size constraint on the former.
13172         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
13173         to compare the sizes.
13174         (convert_vms_descriptor): When converting to a fat pointer type, be
13175         prepared for a S descriptor at runtime in spite of a SB specification.
13176         (shift_unc_components_for_thin_pointers): New function.
13177         (write_record_type_debug_info): For variable-sized fields, cap the
13178         alignment of the pointer to the computed alignment.
13179         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
13180         If REP_LEVEL is 2, do not compute the sizes.
13181         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
13182         (build_unc_object_type): Likewise.
13183         (declare_debug_type): New function.
13184
13185         * ada-tree.def: USE_STMT: removed (not emitted anymore).
13186
13187         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
13188         no statement is expandable anymore.
13189         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
13190         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
13191         when the user requested it explicitely.
13192         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
13193         to 0 for Ada.
13194         (get_alias_set): Return alias set 0 for a type if
13195         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
13196
13197         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
13198         (DECL_FUNCTION_STUB): New accessor macro.
13199         (SET_DECL_FUNCTION_STUB): New setter macro.
13200
13201         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
13202
13203         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
13204         declarations.
13205
13206 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
13207
13208         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
13209         Rename to Abort_Task_Interrupt to be able to keep the same interface
13210         as the rest of the targets.
13211
13212         * s-osinte-vxworks.ads s-osinte-vxworks.adb
13213         (To_VxWorks_Priority): Remove explicit "in" mode indicator
13214
13215         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
13216         New files.
13217
13218 2007-06-06  Robert Dewar  <dewar@adacore.com>
13219
13220         * a-chahan.ads: Remove obsolescent pragmas
13221
13222         * a-chlat1.ads: Minor reformatting
13223
13224 2007-06-06  Robert Dewar  <dewar@adacore.com>
13225
13226         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
13227         for Errout
13228
13229         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
13230         implementation
13231
13232         * errout.ads (Finalize): Changed interface
13233         (Output_Messages): New procedure
13234         (Compilation_Errors): New Interface
13235
13236         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
13237         Finalize/Output_Messages interface for Errout
13238         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
13239         Errout.
13240
13241 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13242             Olivier Hainque  <hainque@adacore.com>
13243             Robert Dewar  <dewar@adacore.com>
13244
13245         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
13246         check.
13247         (Raise_Current_Excep): Call Debug_Raise_Exception just before
13248         propagation starts, to let debuggers know about the event in a reliable
13249         fashion.
13250         (Local_Raise): Moved to System.Exceptions
13251         More convenient to have this as a separate unit
13252
13253         * s-except.adb, s-except.ads: New files.
13254
13255         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
13256         Debug_Unhandled_Exception in System.Exceptions where it belongs
13257         together with a couple of other debug helpers.
13258         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
13259         the former Unhandled_Exception.
13260
13261         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
13262         (Warn_No_Exception_Propagation): New procedure
13263         (Warn_If_No_Propagation): Rewritten for new warning generation
13264         (Expand_Exception_Handlers): New warning generation
13265         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
13266         (Add_Exception_Label): Use Special_Exception_Package_Used for test
13267         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
13268         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
13269         even if restriction is set (makes life easier in Check_Returns)
13270         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
13271         checking exception identities.
13272         (Expand_Local_Exception_Handlers): Do not optimize when all others case
13273         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
13274         block for handler (used by Check_Returns)
13275         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
13276         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
13277         remove all exception handlers when optimizing local raise statements.
13278         (Find_Local_Handler): Use Get_Renamed_Entity
13279         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
13280         marked analyzed after expanding exception handlers, do not generate
13281         redundant cleanup actions, because they have been constructed already.
13282
13283 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13284
13285         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
13286         presence of this categorization pragma is mandated by the language.
13287         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
13288         for this type.
13289
13290 2007-06-06  Vincent Celier  <celier@adacore.com>
13291             Robert Dewar  <dewar@adacore.com>
13292
13293         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
13294         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
13295         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
13296         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
13297         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
13298         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
13299         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
13300         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
13301         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
13302         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
13303         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
13304         ali.ads, ali.adb:
13305         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
13306         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
13307         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
13308         Use variables of types File_Name_Type and Unit_Name_Type in error
13309         messages.
13310         (Get_Name): Add parameter Ignore_Special, and set it reading file name
13311         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
13312         here.
13313         Define flags Flag217-Flag230 with associated subprograms
13314         (Flag_Word5): New record type.
13315         (Flag_Word5_Ptr): New access type.
13316         (To_Flag_Word5): New unchecked conversion.
13317         (To_Flag_Word5_Ptr): Likewise.
13318         (Flag216): New function.
13319         (Set_Flag216): New procedure.
13320
13321 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
13322
13323         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
13324         instead of 'Size.
13325
13326         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
13327
13328 2007-06-06  Javier Miranda  <miranda@adacore.com>
13329
13330         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
13331         the package.
13332         (Object_Specific_Data_Array): This is now internal to the package.
13333         (Object_Specific_Data): This is now internal to the package.
13334         (Select_Specific_Data_Element): This is now internal to the package.
13335         (Select_Specific_Data_Array): This is now internal to the package.
13336         (Select_Specific_Data): This is now internal to the package.
13337         (Offset_To_Top_Function_Ptr): This is now public.
13338         (To_Offset_To_Top_Function_Ptr): Removed.
13339         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
13340          local to subprogram Offset_To_Top.
13341         (Predefined_DT): Removed.
13342         (Typeinfo_Ptr): Removed.
13343         (OSD): This function is now internal to this package.
13344         (SSD): This function is now internal to this package.
13345         (DT): New function that displaces the pointer to the table of primitives
13346          to get access to the enclosing wrapper record.
13347         (IW_Membership): Code cleanup.
13348         (Offset_To_Top): Code cleanup.
13349         (Predefined_DT): Removed.
13350         (Register_Interface_Tag): Removed.
13351         (Set_Interface_Table): Removed.
13352         (Set_Offset_Index): Removed.
13353         (Set_Offset_To_Top): Code cleanup.
13354         (Set_OSD): Removed.
13355         (Set_Signature): Removed.
13356         (Set_SSD): Removed.
13357         (Set_Tagged_Kind): Removed.
13358         (Typeinfo_Ptr): Removed.
13359         (TSD): Removed.
13360         (Displace): Add missing check on null actual.
13361
13362         * exp_disp.ads, exp_disp.adb
13363         (Select_Expansion_Utilities): Removed.
13364         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
13365         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
13366         the interface requires a new parameter.
13367         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
13368         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
13369         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
13370         Done to remove package Select_Expansion_Utilities.
13371         (Make_DT): New implementation for statically allocated dispatch tables.
13372         (Make_Secondary_DT): Moved to the scope of Make_DT.
13373         (Register_Primitive): Code cleanup plus incoporate the use of the new
13374         function DT_Address_Attribute.
13375         (Expand_Interface_Thunk): The profile of this subprogram has been
13376         changed to return the Thunk_Id and the corresponding code.
13377         (Fill_DT_Entry): Removed. Its functionality is now provided by
13378         subprogram Register_Primitive.
13379         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
13380         subprogram Register_Primitive.
13381         (Register_Primitive): New subprogram that incorporates the previous
13382         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
13383         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
13384         was only required to call Make_DT_Access_Action, which is now removed.
13385         (Ada_Actions): Removed
13386         (Action_Is_Proc): Removed
13387         (Action_Nb_Arg): Removed
13388         Replace all the calls to Make_DT_Access_Action by direct calls to
13389         Make_Procedure_Call_Statement or Make_Function_Call.
13390         (Set_DTC_Entity_Value): New subprogram.
13391         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
13392         (Expand_Interface_Thunk): Add missing support for primitives that are
13393         functions with a controlling result (case in which there is no need
13394         to generate the thunk).
13395
13396         * exp_atag.ads, exp_atag.adb
13397         (Build_DT): New subprogram that displaces the pointer to reference the
13398         base of the wrapper record.
13399         (Build_Typeinfo_Offset): Removed.
13400         (RTE_Tag_Node): Removed.
13401         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
13402         (Build_Get_RC_Offset): Removed.
13403         (Build_Inherit_Predefined_Prims): Removed.
13404         (Build_Inherit_TSD: Removed.
13405         (Build_New_TSD): Removed.
13406         (Build_Set_External_Tag): Removed.
13407         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
13408         (Build_Set_Prim_Op_Address): Add documentation.
13409         (Build_Set_TSD): Removed.
13410
13411         * rtsfind.ads, rtsfind.adb
13412         (Load_Fail): If load fails and we are not in configurable run-time
13413         mode, then raise Unrecoverable_Error.
13414         (Text_IO_Kludge): Generate an error message if a run-time library is
13415         not available in a given run-time (ie. zfp run-time).
13416         (RTE_Record_Component): Add code to check that the component we search
13417         for is not found in two records in the given run-time package.
13418         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
13419         (RE_DT_Predef_Prims_Offset): New entity
13420         (RE_Static_Offset_To_Top): New entity
13421         (RE_HT_Link): New entity.
13422         (System_Address_Image): Addition of this run-time package.
13423         (RE_Address_Image): New entity.
13424         (RE_Abstract_Interface): Removed.
13425         (RE_Default_Prim_Op_Count): Removed.
13426         (RE_DT_Entry_Size): Removed.
13427         (RE_DT_Min_Prologue_Size): Removed.
13428         (RE_DT_Prologue_Size): Removed.
13429         (RE_Ifaces_Table_Ptr): Removed.
13430         (RE_Interface_Data_Ptr): Removed.
13431         (RE_Type_Specific_Data): Removed.
13432         (RE_Primary_DT): Removed.
13433         (RE_Register_Interface_Tag): Removed.
13434         (RE_Set_Offset_Index): Removed.
13435         (RE_Set_OSD): Removed.
13436         (RE_Set_SSD): Removed.
13437         (RE_Set_Signature): Removed.
13438         (RE_Set_Tagged_Kind): Removed.
13439         (RE_Address_Array): New entity.
13440         (RE_DT): New entity.
13441         (RE_Iface_Tag): New entity.
13442         (RE_Interfaces_Table): New entity.
13443         (RE_No_Dispatch_Table): New entity.
13444         (RE_NDT_Prims_Ptr): New entity.
13445         (RE_NDT_TSD): New entity.
13446         (RE_Num_Prims): New entity.
13447         (RE_Offset_To_Top_Function_Ptr): New entity.
13448         (RE_OSD_Table): New entity.
13449         (RE_OSD_Num_Prims): New entity.
13450         (RE_Predef_Prims): New entity
13451         (RE_Predef_Prims_Table_Ptr): New entity.
13452         (RE_Primary_DT): New entity.
13453         (RE_Signature): New entity.
13454         (RE_SSD): New entity.
13455         (RE_TSD): New entity.
13456         (RE_Type_Specific_Data): New entity.
13457         (RE_Tag_Kind): New entity.
13458
13459 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13460
13461         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
13462         C imported variable.
13463         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
13464         on entry.
13465
13466 2007-06-06  Robert Dewar  <dewar@adacore.com>
13467
13468         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
13469         character
13470
13471 2007-06-06  Vincent Celier  <celier@adacore.com>
13472
13473         * a-tifiio.adb (Put, internal): For negative numbers, check that there
13474         is room for at least one digit and the minus sign.
13475         (Put.Put_Character): Never put a character outside of the range of
13476         string To.
13477
13478 2007-06-06  Olivier Hainque  <hainque@adacore.com>
13479             Eric Botcazou  <ebotcazou@adacore.com>
13480
13481         * utils2.c (build_allocator): Provide the extra arguments to
13482         make_aligning_type for super-aligned objects allocated from the default
13483         pool. Leave enough room for a pointer before the aligning field, and
13484         store the system's allocator return value there.
13485         (build_call_alloc_dealloc): When releasing a super-aligned object,
13486         retrieve the system's allocator return value from where build_allocator
13487         has stored it, just ahead of the adjusted address we are passed.
13488         (build_call_raise): Handle properly the generation of line numbers when
13489         the node is marked No_Location.
13490         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
13491         by using DECL_UID on ties.
13492         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
13493         main variant.
13494         (build_call_raise): Handle converting exception into goto; support new
13495         argument KIND.
13496         (build_component_ref): Add new arg to build_call_raise.
13497
13498 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13499
13500         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
13501         "." in the case of nnn.xxx when nnn terminates with an underscore.
13502         Parse the remaining "#" or ":" in the case of nnn#.xxx#
13503
13504 2007-06-06  Robert Dewar  <dewar@adacore.com>
13505
13506         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
13507
13508 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
13509             Vincent Celier  <celier@adacore.com>
13510             Robert Dewar  <dewar@adacore.com>
13511
13512         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
13513         needed.
13514         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
13515         ((destructor)) for adafinal, even when switch -a is used.
13516         Do not issue pragma Linker_Destructor for adafinal when switch -a is
13517         used.
13518         (Gen_Object_Files_Options): Add formatting of Linker Options, when
13519         Output_Linker_Option_List is set. Suppress this formatting when
13520         Zero_Formatting is set.
13521         Add case for CLI_Target.
13522         (System_Restrictions_Used): New flag, used to avoid generating with of
13523         System_Restrictions and initialization of the data unless there is
13524         some use of System.Restrictions in the partition.
13525         (Check_System_Restrictions_Used): New procedure
13526
13527         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
13528         since we only with this unit in the binder file if it is used elsewhere
13529         in the partition.
13530
13531 2007-06-06  Vincent Celier  <celier@adacore.com>
13532
13533         * bindusg.adb: Add line for @<response file>
13534         Add lines for new switches -R and -Z
13535
13536         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
13537         hierarchy in the list of files of the closure when -R is used
13538         (Gnatbind): Accept arguments starting with '@' to indicate response
13539         files and take the arguments from the response files.
13540         If List_Closure is set, display the referenced files
13541
13542 2007-06-06  Javier Miranda  <miranda@adacore.com>
13543             Robert Dewar  <dewar@adacore.com>
13544             Ed Schonberg  <schonberg@adacore.com>
13545
13546         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
13547         which the address-clause is applied to in-mode actuals (allowed by
13548         13.1(22)).
13549         (Apply_Discriminant_Check): Do not generate a check if the type is
13550         constrained by a current instance.
13551         (Activate_Division_Check): New procedure
13552         (Activate_Overflow_Check): New procedure
13553         (Activate_Range_Check): New procedure
13554         Call these new Activate procedures instead of setting flags directly
13555         (Apply_Array_Size_Check): Removed, no longer needed.
13556         Code clean up: remove obsolete code related to GCC 2.
13557         (Get_E_Length): Protect against bomb in case scope is standard
13558         (Selected_Range_Checks): If the node to be checked is a conversion to
13559         an unconstrained array type, and the expression is a slice, use the
13560         bounds of the slice to construct the required constraint checks.
13561         Improve NOT NULL error messages
13562         (Apply_Constraint_Check): If the context is a null-excluding access
13563         type, diagnose properly the literal null.
13564
13565 2007-06-06  Pascal Obry  <obry@adacore.com>
13566
13567         * clean.adb (Clean_Archive): Use untouched casing for the archive name
13568         and the corresponding .deps file.
13569         (Clean_Interface_Copy_Directory): Use untouched casing for the library
13570         src directory. Minor code-clean-up. Use untouched casing for files
13571         read into the library src dir.
13572         (Clean_Library_Directory): Idem.
13573         (Parse_Cmd_Line): Accept new switch -aP
13574
13575 2007-06-06  Javier Miranda  <miranda@adacore.com>
13576             Ed Schonberg  <schonberg@adacore.com>
13577             Robert Dewar  <dewar@adacore.com>
13578             Eric Botcazou  <ebotcazou@adacore.com>
13579             Arnaud Charlet  <charlet@adacore.com>
13580
13581         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
13582         applicable to types that have the With_Type flag set. Returns the
13583         non-limited view of the type, if available, otherwise the type itself.
13584         For class-wide types, there is no direct link in the tree, so we have
13585         to retrieve the class-wide type of the non-limited view of the Etype.
13586         New attributes Static_Initialization and Static_Elaboration_Desired.
13587         Remove the pragma Thread_Body, and the associated flag
13588         Is_Thread_Body in entities, and all related code.
13589         (Suppress_Value_Tracking_On_Call): New flag
13590         E_Exception has Esize and Alignment fields
13591         (Universal_Aliasing): New function.
13592         (Set_Universal_Aliasing): New procedure.
13593         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
13594         (Check_Nested_Access): New procedure.
13595         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
13596         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13597         (Related_Interface): New attribute. Present in dispatch table pointer
13598         components of records. Set to point to the entity of the corresponding
13599         interface type.
13600         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
13601         (Original_Access_Type): Remove, not needed.
13602         (Root_Type): Handle properly subtypes of class-wide-types.
13603         Update comments.
13604
13605         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
13606         class-wide types visible through limited-with clauses.
13607         (Try_Primitive_Operation): When examining all primitive operations of a
13608         tagged type, do not consider subprograms labeled as hidden unless they
13609         belong to a private generic type with a tagged parent.
13610         (Try_Object_Operation): Extensive rewriting, to handle properly various
13611         overloading cases, when several ancestors may have class-wide operations
13612         that are possible candidates, and when the overloaded functions return
13613         array types and have defaulted parameters so that the call may be
13614         interpreted as an indexing.
13615         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
13616         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
13617         successive actuals before analyzing the call itself.
13618         (Try_Primitive_Operation): A primitive operation is compatible with the
13619         prefix if the prefix has a synchronized type and the type of the formal
13620         is its corresponding record, as can be the case when the primitive
13621         operation is declared outside of the body of the type.
13622         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
13623         perform homonym traversal, looking for class-wide operation matches
13624         (formerly done in statements of Try_Class_Wide_Operation). Matches on
13625         access parameters are now restricted to anonymous access types.
13626         (Mark_Allocator): An allocator with a discriminant association parent is
13627         a coextension.
13628         (Try_One_Prefix_Interpretation): If the type of the object is
13629         incomplete, as can be happen when it is a limited view obtained through
13630         a limited_with_clause, the selected component is not part of a prefixed
13631         call.
13632         (Complete_Object_Operation): Diagnose properly an object that is not
13633         aliased when the corresponding controlling formal is an access
13634         parameter.
13635         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
13636         ambiguous calls in prefixed notation, where two primitives differ only
13637         in that the controlling argument of one is an access parameter.
13638
13639         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
13640         whether a function that returns an unconstrained type can be inlined.
13641         (Process_Formals): Diagnose properly the illegal use of an incomplete
13642         type in the profile of an access_to_subprogram declaration.
13643         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
13644         operations are attached to the corresponding record.
13645         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
13646         When processing a primitive of a concurrent type which implements an
13647         interface change the type of all controlling formals to that of the
13648         corresponding record type.
13649         (Check_Synchronized_Overriding): Relax the conditional logic when trying
13650         to determine the tagged type to which a primitive belongs.
13651         (Check_Conventions): Capture condition to ignore a primitive operation
13652         (which is shared between the loop in Check_Conventions and the one in
13653         Check_Convention) in a new local function Skip_Check.
13654         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
13655         confusion with Check_Conventions' own Prim_Op local variable.
13656         (Create_Extra_Formals): Test for a tagged result type rather than a
13657         controlling result when determining whether to add a BIP_Alloc_Form
13658         formal and a BIP_Final_List formal to the function.
13659         (Check_Conformance); For parameters that are anonymous access types,
13660         subtype conformance requires that the not null and the constant
13661         indicators must match
13662         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
13663         to retrieve the appropriate type when processing a concurrent type
13664         declared within a generic. Minor comment reformatting. Change invocation
13665         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
13666         mitive.
13667         (Analyze_Subprogram_Body): If the return type of a function is an
13668         anonymous access to the limited view of a class-wide type, and the
13669         non-limited view of the type is available, update the type of the
13670         function so that code can be generated.
13671         (Process_Formals): In case of access-subtype itype whose designated
13672         type is also an itype (situation that happens now with access to
13673         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
13674         attribute to avoid backend problems.
13675         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
13676         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
13677         anonymous types' designated types are same before testing
13678         Subtypes_Statically_Match.
13679         (Create_Extra_Formals): Test for a named access parameter that is a
13680         controlling formal as an additional condition for adding an
13681         accessibility level formal. This can occur in the subp type created for
13682         dispatching calls in Expand_Dispatching_Call, and allows calling
13683         Create_Extra_Formals from that procedure rather than special-casing the
13684         extra formals there.
13685         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
13686         when the function has a controlling result.
13687         (Check_Returns): Add much more knowledge of the optimization of local
13688         raise statements to gotos, to retain proper warnings in this case.
13689         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
13690         nodes when looking for last statement.
13691
13692         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
13693         class-wide types visible through limited with clauses.
13694         (Add_One_Interp): If the operands are anonymous access types, the
13695         predefined operator on universal_access is immediately visibles
13696         (Find_Unique_Type): Handle anonymous access to subprogram types just as
13697         other anonymous access types.
13698         (Disambiguate): Take into account CIL convention.
13699         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
13700
13701 2007-06-06  Robert Dewar  <dewar@adacore.com>
13702
13703         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
13704         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
13705         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
13706         Fix lower bound of tables.
13707         Add rep clauses.
13708
13709         * nlists.adb: Ditto.
13710         (Prev_Node, Next_Node): Change index type to Int so that it properly
13711         covers the range First_Node_Id - 1 up.
13712
13713 2007-06-06  Javier Miranda  <miranda@adacore.com>
13714             Ed Schonberg  <schonberg@adacore.com>
13715             Bob Duff  <duff@adacore.com>
13716             Hristian Kirtchev  <kirtchev@adacore.com>
13717
13718         * exp_aggr.ads, exp_aggr.adb:
13719         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
13720         in extension aggregates.
13721         (Flatten): Other conditions being met, an aggregate is static if the
13722         low bound given by component associations is different from the low
13723         bound of the base index type.
13724         (Packed_Array_Aggregate_Handled): If the component type is itself a
13725         packed array or record, the front-end must expand into assignments.
13726         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
13727         Init_Pr, instead of Ancestor_Is_Expression.
13728         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
13729         coextension chain root, either generate a list controller or use the
13730         already existing one.
13731         (Static_Array_Aggregate): New procedure to construct a positional
13732         aggregate that can be handled by the backend, when all bounds and
13733         components are compile-time known constants.
13734         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
13735         types covering interface types into assignments.
13736         (Replace_Type): move to Build_Record_Aggr_Code.
13737         (Expand_Record_Aggr_Code): if the target of the aggregate is an
13738         interface type, convert to the definite type of the aggregate itself,
13739         so that needed components are visible.
13740         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
13741         components and the context is an extended return statement do not
13742         create a transient block for it, to prevent premature finalization
13743         before the return is executed.
13744         (Gen_Assign): Do not generate a call to deep adjust routine if the
13745         component type is itself an array of controlled (sub)-components
13746         initialized with an inner aggregate.
13747         (Component_Check): New name for Static_Check. This name is now more
13748         appropriate, and documentation is added which was missing.
13749         (Component_Check): Add test for bit aligned component value
13750         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
13751         Tagged_Comps, name is more appropriate given added function below.
13752         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
13753
13754 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13755             Javier Miranda  <miranda@adacore.com>
13756             Robert Dewar  <dewar@adacore.com>
13757
13758         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
13759         Terminated: Add unchecked type conversion from System.Address to
13760         System.Tasking.Task_Id when calling the predefined primitive
13761         _disp_get_task_id.
13762         Disable new Ada 05 accessibility check for JVM.NET targets, which
13763         cannot be implemented in a practical way.
13764         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
13765         the sources always references the tag of the actual object. Therefore,
13766         if 'Tag is applied in the sources to class-wide interface objects we
13767         generate code that displaces "this" to reference the base of the object.
13768         (Expand_N_Attribute_Reference, case Size): Return specified size if
13769         known to front end.
13770         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
13771         has code that displaces the pointer of the object to manage interface
13772         types. However this code must not be executed when the prefix is a
13773         subprogram. This bug caused the wrong expansion of the internally
13774         generated assignment that fills the dispatch table when the primitive
13775         is a function returning a class-wide interface type.
13776         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
13777         Set_Attribute_Name for Name_Unaligned_Valid.
13778
13779 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13780             Gary Dismukes  <dismukes@adacore.com>
13781
13782         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
13783         If the initialization is the equivalent aggregate of the initialization
13784         procedure of the type, do not remove it.
13785         (Expand_N_Attribute_Definition_Clause): Exclude access variables
13786         initialized to null from having their expression reset to empty and
13787         note this exception in the comment.
13788
13789 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13790             Robert Dewar  <dewar@adacore.com>
13791             Ed Schonberg  <schonberg@adacore.com>
13792             Gary Dismukes  <dismukes@adacore.com>
13793
13794         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
13795         Add "with" and "use" clauses for Sem_Attr.
13796         (Expand_Current_Value): Do not replace occurences of attribute
13797         references where the prefix must be a simple name.
13798
13799         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
13800         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
13801         Attribute_Requires_Simple_Name_Prefix.
13802         (Name_Modifies_Prefix): Body of new function.
13803         (Requires_Simple_Name_Prefix): Body of new function.
13804         (Resolve_Attribute, case Access): Improve error message for case of
13805         mismatched conventions.
13806         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
13807         incomplete type.
13808         (Analyze_Attribute, case 'Access): If the type of the prefix is a
13809         constrained subtype for a nominal unconstrained type, use its base type
13810         to check for conformance with the context.
13811         (Resolve_Attribute): Remove test of the access type being associated
13812         with a return statement from condition for performing accessibility
13813         checks on access attributes, since this case is now captured by
13814         Is_Local_Anonymous_Access.
13815         (Analyze_Access_Attribute): Set Address_Taken on entity
13816         (Analyze_Attribute, case Address): Set Address_Taken on entity
13817         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
13818         validating an access attribute whose prefix is a current instance.
13819         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
13820         applied to dispatching operations, if freezing is required then we set
13821         the attribute Has_Delayed_Freeze in the prefix's entity.
13822         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
13823         current scope if access of local subprogram taken
13824         (Analyze_Access_Attribute): Check legality of self-reference even if the
13825         expression comes from source, as when a single component association in
13826         an aggregate has a box association.
13827         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
13828         the prefix if it is a protected operation and the attribute is
13829         Unrestricted_Access.
13830         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
13831         reference to the base type of the context, to force a constraint check
13832         when the context is an access subtype with an explicit constraint.
13833         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
13834         node is rewritten as an interface conversion. leave unanalyzed after
13835         resolution, to ensure that type checking against the context will take
13836         place.
13837
13838 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13839             Javier Miranda  <miranda@adacore.com>
13840             Robert Dewar  <dewar@adacore.com>
13841
13842         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
13843         wrapper when the full view of the controlling type of an inherited
13844         function that dispatches on result implements interfaces.
13845         (Expand_N_Object_Declaration): In cases where the type of the
13846         declaration is anonymous access, create finalization list for it.
13847         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
13848         if the object has no explicit initialization, to match description of
13849         functionality of pragam Persistent_BSS.
13850         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
13851         new function to build static aggregates, to replace initialization call
13852         when static initialization is desired.
13853         (Freeze_Type): Generate a list controller for an access type whenever
13854         its designated type has controlled anonymous access discriminants.
13855         (Build_Equivalent_Aggregate): New procedure to compute a static
13856         aggregate to be used as default initialization for composite types,
13857         instead of a generating a call to the initialization procedure for the
13858         type.
13859         (Build_Initialization_Call): When available, replace a call to the
13860         initialization procedure with a copy of the equivalent static aggregate
13861         for the type.
13862         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
13863         declarations for objects of a class-wide interface type, rather than
13864         just identifiers, to prevent visibility problems.
13865         (Expand_N_Object_Declaration): When expanding the declaration for an
13866         object of a class-wide interface type, preserve the homonym chain of
13867         the original entity before exchanging it with that of the generated
13868         renaming declaration.
13869         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
13870         active, because there is no way to handle the exception.
13871         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
13872         to do a minimum decoration of the Access_Disp_Table list.
13873         (Expand_Record_Controller): Avoid the addition of the controller between
13874         the component containing the tag of a secondary dispatch table and its
13875         adjacent component that stores the offset to the base of the object.
13876         This latter component is only generated when the parent type has
13877         discriminants ---documented in Add_Interface_Tag_Components).
13878         (Apply_Array_Size_Check): Removed, no longer needed.
13879         (Expand_N_Full_Type_Declaration): If the type has anonymous access
13880         components, create a Master_Entity for it only if it contains tasks.
13881         (Build_Init_Procedure): Suppress the tag assignment compiling under
13882         no run-time mode.
13883         (Freeze_Record_Type): Remove code associated with creation of dispatch
13884         table.
13885         (Init_Secondary_Tags): Update type of actuals when generating calls to
13886         Ada.Tags.Set_Offset_To_Top
13887         (Stream_Operation_OK): Disable use of streams compiling under no
13888         run-time mode
13889         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
13890         if Has_Init_Expression set.
13891         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
13892         Register_Primitive, which provides the same functionality.
13893         (Requires_Init_Proc): Return false in case of interface types.
13894         (Add_Secondary_Tables): Use the new attribute Related_Interface to
13895         cleanup the code.
13896         (Predefined_Primitive_Freeze): Do not assume that an internal entity
13897         is always associated with a predefined primitive because the internal
13898         entities associated with interface types are not predefined primitives.
13899         Therefore, the call to Is_Internal is replaced by a call to the
13900         function Is_Predefined_Dispatching_Operation.
13901         (Make_Eq_If): When generating the list of comparisons for the
13902         components of a given variant, omit the controller component that is
13903         present if the variant has controlled components.
13904
13905 2007-06-06  Javier Miranda  <miranda@adacore.com>
13906             Hristian Kirtchev  <kirtchev@adacore.com>
13907             Bob Duff  <duff@adacore.com>
13908
13909         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
13910         handle the creation of finalization lists and calls for nested
13911         coextensions when the root of the chains is part of a return statement.
13912         (Inside_A_Return_Statement): New function inside Complete_Coextension_
13913         Finalization.
13914         (Expand_Record_Equality): Skip components that are interface types.
13915         (Displace_Allocator_Pointer): Add missing support for interface subtypes
13916         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
13917         with Rewrite_Coextension. Change the condition for detecting coextension
13918         root nodes.
13919         (Is_Local_Access_Discriminant): Removed.
13920         (Rewrite_Coextension): New routine which rewrites a static coextension
13921         as a temporary and uses its unrestricted access in the construction of
13922         the outer object.
13923         (Complete_Coextension_Finalization): New routine. Generate finalization
13924         attachment calls to all delayed coextensions.
13925         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
13926         the allocator is not a coextension itself and has delayed coextensions.
13927         If the current allocator is controlled, but also a coextension, delay
13928         the generation of the finalization attachment call.
13929         Rename local variable "Node" to "Nod" in order to avoid confusion with
13930         "Elists.Node".
13931         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
13932         limited types that are not inherently limited. Such an allocator is
13933         illegal, but is generated by the expander for a return statement, to
13934         copy the result onto the secondary stack. This is the only case where a
13935         limited object can be copied. Generate code to displace the pointer
13936         to the object if the qualified expression is a class-wide interface
13937         object. Such displacement was missing and hence the copy of the object
13938         was wrong.
13939         (Apply_Accessibility_Check): Handle allocated objects initialized in
13940         place.
13941         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
13942         and Expand_Allocator_Expression. Allocating class-wide interface objects
13943         this routine displaces the pointer to the allocated object to reference
13944         the component referencing the corresponding secondary dispatch table.
13945         Expand_Allocator_Expression): Add missing support to allocate class-wide
13946         interface objects initialized with a qualified expression.
13947         (Get_Allocator_Final_List): Test for an anonymous access type that is a
13948         function result type, and use the finalization list associated with the
13949         function scope in that case (such an anonymous type should not be
13950         treated like an access parameter's type).
13951
13952 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
13953             Gary Dismukes  <dismukes@adacore.com>
13954             Javier Miranda  <miranda@adacore.com>
13955
13956         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
13957         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
13958         required exception handler.
13959         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
13960         properly the case of a function whose return type is a limited
13961         class-wide interface type. Modify the code of the accessibility
13962         check to handle class-wide interface objects. In this case we need to
13963         displace "this" to reference the primary dispatch table to get access
13964         to the TSD of the object (to evaluate its accessibility level).
13965         (Expand_N_Extended_Return_Statement): Test for a tagged result type
13966         rather than a controlling result as one of the conditions for
13967         generating tests of the implicit BIP_Alloc_Form formal. The
13968         initialization assignment is also handled according to whether the
13969         result is tagged instead of controlling.
13970         In the case where the init assignment is inserted in the "then" part of
13971         the allocation conditional, rewrite the target to be a dereference of
13972         the implicit BIP_Object_Access formal.
13973         If the returned value is unconstrained and created on the secondary
13974         stack, mark the enclosing block and function so that the secondary
13975         stack is not reclaimed on return.
13976         Treat returns from functions with controlling results similarly to
13977         returns from functions with unconstrained result subtypes.
13978         If the object returned is unconstrained, and an allocator must be
13979         created for it, analyze the allocator once the block for the extended
13980         return is installed, to ensure that finalizable components
13981         of the expression use the proper finalization list. Guard the call to
13982         Move_Final_List with a check that there is something to finalize.
13983         (Make_Tag_Ctrl_Assignment): Use "old" handling
13984         of controlled type assignment for virtual machines, since new code uses
13985         unsupported features (such as direct access to bytes in memory).
13986
13987 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
13988             Ed Schonberg  <schonberg@adacore.com>
13989
13990         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
13991         accessibility actual, check for the case of an aliased object that has
13992         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
13993         we fall into processing for the attribute rather than the name of the
13994         object.
13995         (Expand_Inline_Call): If an actual is a literal, and the corresponding
13996         formal has its address taken in the body, create a temporary to capture
13997         value.  If the return type is a limited interface, do not treat the
13998         return value as Controlled.
13999         (Is_In_Place_Function):  If the return type is a limited interface,
14000         treat as returning in place. The actual returned object may not always
14001         be limited, but the caller has to assume that it is returned in place.
14002         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
14003         context of an allocator, use the correct finalization chain (that is,
14004         the chain belonging to the access type, rather than the chain belonging
14005         to the current scope).
14006         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
14007         result type rather than a controlling result as a precondition for
14008         adding an allocation form actual to a build-in-place call.
14009         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
14010         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
14011         primitive in the dispatch tables. This work is now done by Make_DT when
14012         the type is frozen.
14013         (Register_Predefined_DT_Entry): Removed.
14014         (Add_Return): If end label is not present, use sloc of last statement
14015         for generated return statement in procedure, for better gdb behavior
14016         on expanded code.
14017         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
14018         object address nodes to ensure proper processing by routines like
14019         Insert_After*.
14020         (Expand_Call): Fix generation of validity check for parameter
14021         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
14022         the allocation form parameter if the result subtype is constrained,
14023         except when the function has a controlling result.
14024         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
14025         rather than Is_Controlled and Has_Controlled_Component, since we want to
14026         include class-wide result types in this treatment. Also test for a
14027         controlling result, since that also requires passing a finalization
14028         list.
14029         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
14030         even when the result subtype is constrained, to handle calls involving
14031         controlling results.
14032         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
14033         is now called even when the result subtype is constrained, to handle
14034         calls involving controlling results.
14035         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
14036         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
14037         now performs the test).
14038         (Make_Build_In_Place_Call_In_Object_Declaration):
14039         Add_Alloc_Form_Actual_* is now called even when the result subtype is
14040         constrained, to handle calls involving controlling results.
14041         (Add_Return): Accomodate rewritten pattern from local raise to goto
14042         transformation, so that we still recognize an transfer statement
14043         and do the right thing here in that case.
14044         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
14045         and end of subprogram code.
14046         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
14047         support for primitives that are functions (without formals) with a
14048         controlling result.
14049         (Inherited_From_Formal): If the actual subtype has not generic parent
14050         type, it is not an actual for a formal derived type, and there is no
14051         operation to inherit from the formal.
14052
14053 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14054             Thomas Quinot  <quinot@adacore.com>
14055
14056         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
14057         inserted cleanup code appropriately for GDB use.
14058         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
14059         exception handler for Deep_Adjust or Deep_Finalize.
14060         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
14061         Raise_From_Controlled_Operation is available, use a call to that
14062         subprogram instead of a plain "raise Program_Error" node to raise
14063         Program_Error if an exception is propagated from an Adjust or Finalize
14064         operation.
14065         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
14066         appears in the optional statement list of a triggering alternative, the
14067         scope actions can be inserted directly there, and not in the list that
14068         includes the asynchronous select itself.
14069
14070 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14071             Robert Dewar  <dewar@adacore.com>
14072             Hristian Kirtchev  <kirtchev@adacore.com>
14073
14074         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
14075         generated exception handler appropriately when debugging generated code.
14076         Deal properly with No_Exception_Propagation restriction mode.
14077         (Expand_N_Abort_Statement): Add an unchecked type conversion from
14078         System.Address to System.Tasking.Task_Id when processing the result of
14079         the predefined primitive _disp_get_task_id.
14080         (Expand_N_Asynchronous_Select): Clarify comment.
14081         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
14082         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
14083         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
14084         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
14085         privals and for generated call to Complete_Entry_Body, for better gdb
14086         behavior.
14087         (Copy_Result_Type): Utility to construct a parameter and result profile
14088         for protected functions whose return type is an anonymous access to
14089         subprogram.
14090         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
14091         call the above.
14092         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
14093         point when the local-raise-to-goto transformation has taken place.
14094
14095 2007-06-06  Javier Miranda  <miranda@adacore.com>
14096             Nicolas Setton  <setton@adacore.com>
14097
14098         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
14099         functionality when the backend is generating code.
14100         Otherwise any serious error
14101         reported by the backend calling the frontend routine Error_Msg
14102         changes the Compilation_Mode to Check_Semantics, disables the
14103         functionality of this routine and causes the generation of
14104         spureous additional errors.
14105
14106         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
14107         debugging information now generated by the compiler for fat-pointer
14108         types.
14109         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
14110         DWARF2/3.
14111         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
14112
14113 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14114
14115         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
14116         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
14117         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
14118         For a remote call to a function with a classwide return type, apply an
14119         E.4(18) check to the returned value.
14120         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
14121         stream attributes of the designated type of an RACW, as they are not
14122         dispatching primitive operations.
14123
14124 2007-06-06  Geert Bosch  <bosch@adacore.com>
14125
14126         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
14127         negative literal
14128         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
14129         positive
14130         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
14131         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
14132         positive
14133         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
14134
14135 2007-06-06  Javier Miranda  <miranda@adacore.com>
14136
14137         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
14138         attribute compiling package Ada.Tags under No_Run_Time_Mode.
14139
14140 2007-06-06  Javier Miranda  <miranda@adacore.com>
14141
14142         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
14143         deallocation of class-wide interface objects.
14144         (Expand_Dispatching_Constructor_Call): Take into account that if the
14145         result of the dispatching constructor is an interface type, the
14146         function returns a class-wide interface type; otherwise the returned
14147         object would be actual. The frontend previously accepted returning
14148         interface types because Expand_Interface_Actuals silently performed
14149         the management of the returned type "as if" it were a class-wide
14150         interface type.
14151         (Expand_Dispatching_Constructor_Call): Replace call to
14152         Make_DT_Access_Action by direct call to Make_Function_Call.
14153
14154 2007-06-06  Robert Dewar  <dewar@adacore.com>
14155             Ed Schonberg  <schonberg@adacore.com>
14156
14157         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
14158         compute masking constant, since we now set Esize properly to the
14159         underlying size.
14160         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
14161         to match the alignment.
14162         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
14163         packed arrays of 8 bits or less.
14164
14165         * freeze.adb (Freeze_Entity): When freezing the formals of a
14166         subprogram, freeze the designated type of a parameter of an access type
14167         only if it is an access parameter.
14168         Increase size of C convention enumeration object
14169         (Freeze_Entity, array type case): Make sure Esize value is properly
14170         adjusted for the alignment if it is known.
14171         (Freeze_Entity, array type case): When checking bit packed arrays for
14172         the size being incorrect, check RM_Size, not Esize.
14173         (Freeze_Record_Type): Check for bad discriminated record convention
14174         (In_Exp_Body): Return true if the body is generated for a subprogram
14175         renaming, either an attribute renaming or a renaming as body.
14176         (Check_Itype): If the designated type of an anonymous access component
14177         is a non-protected subprogram type, indicate that it is frozen, to
14178         prevent out-of-scope freeze node at some subsequent call.
14179         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
14180         only if the subprogram is neither imported nor exported, as well as the
14181         NCA descriptor class if the subprogram is exported.
14182
14183 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14184             Arnaud Charlet  <charlet@adacore.com>
14185             Robert Dewar  <dewar@adacore.com>
14186             Gary Dismukes  <dismukes@adacore.com>
14187
14188         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
14189         default initialization on an imported object, when there is no
14190         initialization call generated for it.
14191         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
14192         restriction
14193
14194         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
14195         Static_Elaboration_Desired.
14196         Remove pragma Thread_Body.
14197         Implement a new pragma No_Body
14198         Removes the Explicit_Overriding pragma
14199         Remove Optional_Overriding pragma
14200         (Prag): Deal with Universal_Aliasing.
14201         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14202         Pragma_CIL_Constructor): New names.
14203
14204         * sem_cat.adb (Validate_Object_Declaration): An initialization that
14205         uses the equivalent aggregate of a type must be treated as an implicit
14206         initialization.
14207         (Get_Categorization): Check a unit for pragma Preelaborate only if it
14208         has none of the other categories.
14209         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
14210         to apply Import to an object renaming declaration.
14211
14212         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
14213         from a C++ class should be declared as limited and that it will be
14214         considererd limited.
14215         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
14216         should be declared as limited and that it will be considererd limited.
14217         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
14218         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
14219         (Analyze_Pragma): Deal with Universal_Aliasing.
14220         (Sig_Flags): Likewise.
14221         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
14222         (Overflow_Checks_Unsuppressed): New flag.
14223         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
14224         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
14225         case of JVM or .NET targets, and compiling user code.
14226         Add debugging convenience routine rv
14227
14228 2007-06-06  Robert Dewar  <dewar@adacore.com>
14229
14230         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
14231         are interface type.
14232         (Build_Elementary_Input_Call): For floating-point use right type in the
14233         absence of strange size or stream size clauses.
14234         (Build_Elementary_Write_Call): Same fix
14235         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
14236         set to value that does not match base type size.
14237
14238 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14239
14240         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
14241         object of a limited type can be initialized with a call to a function
14242         that returns in place. If the limited type has unknown discriminants,
14243         and the underlying type is a constrained composite type, build an actual
14244         subtype from the function call, as is done for private types.
14245         (Side_Effect_Free): An expression that is the renaming of an object or
14246         whose prefix is the renaming of a object, is not side-effect free
14247         because it may be assigned through the renaming and its value must be
14248         captured in a temporary.
14249         (Has_Controlled_Coextensions): New routine.
14250         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
14251         as is done for other limited types.
14252         (Non_Limited_Designated_Type): new predicate.
14253         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
14254         objects.
14255         Remove all handling of with_type clauses.
14256
14257         * par-ch10.adb: Remove all handling of with_type clauses.
14258
14259         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
14260         checksum if the main source could not be parsed.
14261         (Loat_Unit): When processing a child unit, determine properly whether
14262         the parent unit is a renaming when the parent is itself a child unit.
14263         Remove handling of with_type clauses.
14264
14265         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
14266         (Set_Is_Static_Coextension): New procedure.
14267         (Has_Local_Raise): New function
14268         (Set_Has_Local_Raise): New procedure
14269         (Renaming_Exception): New field
14270         (Has_Init_Expression): New flag
14271         (Delay_Finalize_Attach): Remove because flag is obsolete.
14272         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
14273         Remove all handling of with_type clauses.
14274         (Exception_Junk): Can now be set in N_Block_Statement
14275
14276 2007-06-06  Vincent Celier  <celier@adacore.com>
14277             Robert Dewar  <dewar@adacore.com>
14278
14279         * frontend.adb (Frontend): Return immediately if the main source could
14280         not be parsed, because of preprocessing errors.
14281
14282         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
14283         (Gnat1drv): Exit with errors if the main source could not be parsed,
14284         because of preprocessing errors.
14285         (Check_Rep_Info): New procedure
14286
14287 2007-06-06  Robert Dewar  <dewar@adacore.com>
14288
14289         * g-hesorg.ads, g-heasor.ads,
14290         g-busorg.ads, g-bubsor.ads: Update documentation
14291         GNAT.Heap/Bubble_Sort_G is now pure
14292
14293 2007-06-06  Robert Dewar  <dewar@adacore.com>
14294
14295         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
14296
14297 2007-06-06  Robert Dewar  <dewar@adacore.com>
14298             Ed Schonberg  <schonberg@adacore.com>
14299
14300         * g-comlin.ads, g-comlin.adb:
14301         Add new warning for renaming of function return objects
14302
14303         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
14304         (Tree_Read): Use size of object instead of type'object_size, since the
14305         latter is incorrect for packed array types.
14306         (Tree_Write): Same fix
14307
14308         * opt.ads: Add new warning for renaming of function return objects
14309         (Generating_Code): New boolean variable used to indicate that the
14310         frontend as finished its work and has called the backend to process
14311         the tree and generate the object file.
14312         (GCC_Version): Is now private
14313         (Static_Dispatch_Tables): New constant declaration.
14314         (Overflow_Checks_Unsuppressed): New flag.
14315         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
14316         (List_Closure): New flag for gnatbind (-R)
14317         Zero_Formatting: New flag for gnatbind (-Z)
14318         (Special_Exception_Package_Used): New flag.
14319         (Warn_On_Unrepped_Components): New flag.
14320
14321         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
14322         unit is a compilation unit, rather than relying on its scope, so that
14323         Standard can be renamed.
14324         (Analyze_Object_Renaming): Add new warning for renaming of function
14325         return objects.
14326         Also reject attempt to rename function return object in Ada 83 mode.
14327         (Attribute_Renaming): In case of tagged types, add the body of the
14328         generated function to the freezing actions of the type.
14329         (Find_Type): A protected type is visible right after the reserved word
14330         "is" is encountered in its type declaration. Set the entity and type
14331         rather than emitting an error message.
14332         (New_Scope): Properly propagate Discard_Names to inner scopes
14333         (Check_Nested_Access): New procedure.
14334         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
14335         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
14336
14337         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
14338         Add new warning for renaming of function return objects
14339         (Check_References): Suppress warnings for objects whose type or
14340         base type has Warnings suppressed.
14341         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
14342         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
14343
14344 2007-06-06  Vincent Celier  <celier@adacore.com>
14345             Emmanuel Briot  <briot@adacore.com>
14346             Olivier Hainque  <hainque@adacore.com>
14347
14348         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
14349         absolute value of Header.Block_Size when displaying the freed physical
14350         memory in traces.
14351         (Allocate): Compute Storage_Address using Integer_Address, not
14352         Storage_Offset, because the range of Storage_Offset may not be large
14353         enough.
14354         (Configure): New parameter Low_Level_Traces
14355         (Allocate, Deallocation, Free_Physically): Added low-level traces
14356         (Configure): new parameter Errors_To_Stdout.
14357         (Output_File): new subprogram
14358         (Deallocate, Dereference): Send error messages to the proper stream
14359         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
14360         documented. Previous code would send it to the current output file
14361         defined in GNAT.IO, which might not be stdout
14362         (Is_Valid): Adjust comment to mention that a positive reply means that
14363         Header_Of may be used to retrieve the allocation header associated with
14364         the subprogram Storage address argument. Return False early if this
14365         address argument is misaligned.
14366
14367 2007-06-06  Vincent Celier  <celier@adacore.com>
14368
14369         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
14370         switch -P
14371         (ASIS_Main): New global variable
14372         (Get_Closure): New procedure
14373         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
14374         check, metric or pretty. Call Get_Closure in this case.
14375         (Check_Files): For GNAT LIST, check all sources of all projects when
14376         All_Projects is True.
14377         (GNATCmd): Accept -U for GNAT LIST
14378
14379 2007-06-06  Vincent Celier  <celier@adacore.com>
14380
14381         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
14382         has been specified
14383         Correct error message when invocation of the linker fails
14384         Add explicit size clause for the C imported variables
14385         Object_List_File_Supported and Using_GNU_Linker to emphasize that
14386         we expect char size.
14387         Read target parameters earlier, since this is needed to set
14388         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
14389         targets.
14390
14391 2007-06-06  Vincent Celier  <celier@adacore.com>
14392
14393         * gnatls.adb:
14394         Add 3 spaces before the default project directory when displaying
14395         the project search path.
14396         Add new command line switch '-l' to display license information.
14397
14398 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
14399
14400         * gmem.c: Add support for timestamps on memory operations.
14401
14402         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
14403         operations (not used currently, just foundation for future
14404         enhancements). Add possibility to perform full dump of gmem.out file.
14405         (Print_Back_Traces): Declare accesses to root arrays constants since
14406         they aren't modified.
14407         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
14408
14409 2007-06-06  Vincent Celier  <celier@adacore.com>
14410
14411         * gnatsym.adb: Update Copyright notice
14412         (Parse_Cmd_Line): Accept new switch -D
14413         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
14414          file.
14415
14416         * prj.ads (Policy): New policy Direct
14417         (Yes_No_Unknown): New enumeration type
14418         (Project_Data): New component Libgnarl_Needed
14419
14420         * prj-nmsc.adb (Check_For_Source): When recording a source file make
14421         use the untouched pathname casing.
14422         (Get_Directories): Ensure that the Display_Exec_Directory is using the
14423         proper casing on non case-sensitive platforms like Windows.
14424         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
14425         on all platforms, as it is not possible to know which one is allowed
14426         before processing the project files.
14427         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
14428         specified when symbol policy is Direct. Check that when there is a
14429         symbol file defined (either by default or with attribute
14430         Library_Symbol_File) it is not the same as the reference symbol file.
14431         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
14432         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
14433         extending projects.
14434         (Record_Ada_Source): Record a source that has been locally removed in an
14435         imported project.
14436
14437         * symbols.ads (Policy): New policy Direct
14438
14439         * symbols-vms.adb (Initialize): Take new policy Direct in case
14440         statement
14441
14442 2007-06-06  Vincent Celier  <celier@adacore.com>
14443
14444         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
14445         Correct obvious bug (return Dir; instead of return Directory;).
14446         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
14447
14448 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14449
14450         * g-pehage.adb (Produce): Open output files in Binary mode, so that
14451         they have UNIX line endings (LF only) even on Windows, and thus pass
14452         all GNAT style checks.
14453
14454 2007-06-06  Emmanuel Briot  <briot@adacore.com>
14455
14456         * g-regpat.adb (Quote): Fix improper quoting of '.'
14457
14458 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14459
14460         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
14461         default, set False on a per-runtime basis.
14462         (Need_Netdb_Buffer): New constant.
14463
14464         * g-socket.ads, g-socket.adb: Import new package
14465         GNAT.Sockets.Thin.Task_Safe_NetDB.
14466         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
14467         binding to obtain proper message.
14468         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
14469         Replace various occurrences of Arry (Arry'First)'Address with the
14470         equivalent Arry'Address (GNAT always follows implementation advice from
14471         13.3(14)).
14472         (Get_Host_By_Address, Get_Host_By_Name,
14473         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
14474         instead, rely on platform-specific task safe netdb operations provided
14475         by g-socthi.
14476
14477         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
14478         parameter Process_Blocking_IO.
14479         (Host_Error_Messages): Add stub body.
14480         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
14481         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
14482         Safe_Getservbyport): Move functions into new child package
14483         Task_Safe_NetDB.
14484         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
14485         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
14486         (In_Addr): Add alignment clause.
14487
14488 2007-06-06  Robert Dewar  <dewar@adacore.com>
14489
14490         * g-trasym.ads, g-traceb.ads: Update list of supported targets
14491         Add note about symbolic traceback
14492
14493 2007-06-06  Pascal Obry  <obry@adacore.com>
14494
14495         * hostparm.ads (Normalized_CWD): Use the host directory separator
14496         instead of the hardcoded forward slash which is not the proper
14497         character on Windows for example.
14498         (Java_VM): Removed.
14499
14500 2007-06-06  Vincent Celier  <celier@adacore.com>
14501             Arnaud Charlet  <charlet@adacore.com>
14502
14503         * a-clrefi.adb, a-clrefi.ads: New files
14504
14505         * impunit.adb: Add s-os_lib in the list of user visible units.
14506         (Non_Imp_File_Names_95): Add a-clrefi to this list
14507         Remove obsolete run-time entries.
14508         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
14509          "a-exetim" -- Ada.Execution_Time
14510          "a-extiti" -- Ada.Execution_Time.Timers
14511
14512         * mlib-prj.ads, mlib-prj.adb
14513         (Build_Library): Use untouched object dir and library dir. At the
14514         same time makes sure that the checks are done using the canonical
14515         form. Removes hard-coded directory separator and use the proper host
14516         one instead.
14517         (Process_Project): Do not look in object directory to check if libgnarl
14518         is needed for a library, if there is no object directory.
14519         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
14520         linking.
14521         (Build_Library): When invoking gnatbind, use a response file if the
14522         total size of the arguments is too large.
14523
14524         * Makefile.rtl: (g-sttsne): New object file.
14525         Add entry for a-clrefi, s-utf_32, System.Exceptions
14526
14527         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
14528         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
14529         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
14530         Change g-string to s-string, g-os_lib to s-os_lib
14531         Change all g-utf_32 references to s-utf_32
14532
14533 2007-06-06  Tristan Gingold  <gingold@adacore.com>
14534             Olivier Hainque  <hainque@adacore.com>
14535
14536         * init.c: Do not adjust IP of an imported VMS exception of ia64.
14537         LIB$STOP is called to raise an exception and the IP of the exception
14538         is the instruction right after the call.
14539         (__gnat_adjust_context_for_raise, AIX): Implement.
14540         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
14541          adjust_context_for_raise before Raise_From_Signal_Hanler.
14542         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
14543         siginfo is passed to the handler, necessary to let the zcx propagation
14544         engine unwind past it.
14545
14546 2007-06-06  Olivier Hainque  <hainque@adacore.com>
14547
14548         * initialize.c (__gnat_initialize for vxworks):  Update documentation
14549         on the ZCX support, using different sets of crtstuff objects than with
14550         GCC 3.4.
14551
14552 2007-06-06  Robert Dewar  <dewar@adacore.com>
14553
14554         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
14555         spec from body
14556         (Layout_Type): Fix recomputation of size from alignment.
14557
14558 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14559             Javier Miranda  <miranda@adacore.com>
14560
14561         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
14562         association in an instance.
14563         (Copy_Generic_Node): If the node is a string literal, no need to copy
14564         its descendants.
14565         (Is_Generic_Formal): For a formal subprogram, the declaration is the
14566         grandparent of the entity.
14567         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
14568         to simplify handling of formal interfaces that derive from other formal
14569         interfaces.
14570         (Instantiate_Subprogram_Body): The defining unit name of the body of
14571         the instance should be a defining identifier.
14572         (Install_Formal_Packages): make global to the package, for use in
14573         instantiations of child units.
14574         (Analyze_Package_Instantiation): Do not attempt to set information on an
14575         enclosing master of an entry when expansion is disabled.
14576         (Instantiate_Type): If the actual is a tagged synchronized type and the
14577         generic ancestor is an interface, create a generic actual for the
14578         corresponding record.
14579         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
14580         declaration, to ensure that the interface list is processed correctly.
14581         (Inline_Instance_Body): If enclosing scope is an instance body, remove
14582         its entities from visibiility as well.
14583         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
14584         given with a named association, analyze the expression only, not the
14585         discriminant association itself.
14586         (Reset_Entity): If the analysis of a selected component is transformed
14587         into an expanded name in the prefix of a call with parameters, do not
14588         transform the original node into an expanded name, to prevent visibility
14589         errors in the case of nested generics.
14590         (Check_Private_View): For an array type, check whether the index types
14591         may need exchanging.
14592
14593 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14594             Vincent Celier  <celier@adacore.com>
14595
14596         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
14597         since both are separated.
14598         Add support for imported CIL packages.
14599         Add further special handling of "value_type" for CIL.
14600         Add special handling of pragma Import for CIL.
14601
14602         * make.ads, make.adb: When switch -eS is used, direct all outputs to
14603         standard output instead of standard error, except errors.
14604         (Absolute_Path): Use untouched casing for the parent directory.
14605         (Add_Library_Search_Dir): Use the untouched directory name.
14606         (Add_Source_Search_Dir): Idem.
14607         (Change_To_Object_Directory): Update output to use proper casing.
14608         (Create_Binder_Mapping_File): Use the untouched filename to set
14609         ALI_Name.
14610         (Gnatmake): Use untouched library and executable directory names.
14611         (Insert_Project_Sources): Use untouched filename for spec and body.
14612         (Is_In_Object_Directory): Use untouched object directory.
14613         (Mark_Directory): Idem.
14614         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
14615         contains the non-canonical filename in all cases.
14616         (Change_To_Object_Directory): In verbose mode, display the name of the
14617         object directory we're changing to.
14618         (Compile_Sources): Make sure, when a project file is used, to compile
14619         the body of the unit, when there is one, even when only the spec is
14620         recorded in an ALI file.
14621         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
14622         spec to the body.
14623         (Report_Compilation_Failed): New procedure
14624         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
14625         procedures moved from the spec to the body.
14626         (Extract_Failure): Removed, not used
14627         Replace explicit raises of exception Bind_Failed and Link_Failed with
14628         calls to Make_Failed with the proper message.
14629         Replace explicit raises of exception Compilation_Failed with calls to
14630         procedure Report_Compilation_Failed.
14631         (Initialize): Create mapping files unconditionally when using project
14632         files.
14633
14634         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14635         Pragma_CIL_Constructor): New names.
14636
14637         * targparm.ads, targparm.adb
14638         (Compiler_System_Version): Removed, no longer used.
14639         (Get_Target_Parameters): Relax checks on system.ads validity. Add
14640         handling of two new system flags: JVM and CLI.
14641
14642 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
14643             Arnaud Charlet  <charlet@adacore.com>
14644
14645         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
14646         time, use the default s-interr body that provides interrupt support
14647         based on signals.
14648         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
14649         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
14650         g-soccon.ads, and s-taprop.adb for the marte run time.
14651         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
14652         timers are supported on marte.
14653         (EH_MECHANISM for marte): Do not use ZCX.
14654         (THREADSLIB for marte): Use -lmarte.
14655         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
14656         Add mlib-tgt-specific.o to gnatmake objects
14657         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
14658         longer of MLib.Tgt.
14659         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
14660         6, either kernel or rtp, use a specialized version of s-osinte.ads.
14661
14662 2007-06-06  Pascal Obry  <obry@adacore.com>
14663
14664         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
14665
14666 2007-06-06  Vincent Celier  <celier@adacore.com>
14667
14668         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
14669         separator, use instead the proper host directory separator.
14670         (Copy_ALI_Files): Make sure that an already existing ALI file in the
14671         ALI copy dir is writable, before doing the copy.
14672
14673         * mlib-utl.ads, mlib-utl.adb:
14674         (Gcc): If length of command line is too long, put the list of object
14675         files in a response file, if this is supported by the platform.
14676         (Ar): If invocation of the archive builder is allowed to be done in
14677         chunks and building it in one shot would go above an OS dependent
14678         limit on the number of characters on the command line, build the archive
14679         in chunks.
14680
14681 2007-06-06  Vincent Celier  <celier@adacore.com>
14682
14683         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
14684         of specified object file is not equal to base name of source.
14685
14686 2007-06-06  Javier Miranda  <miranda@adacore.com>
14687             Hristian Kirtchev  <kirtchev@adacore.com>
14688             Ed Schonberg  <schonberg@adacore.com>
14689
14690         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
14691         the full type declaration.
14692         (Analyze_Component_Declaration): Add local variable E to capture the
14693         initialization expression of the declaration. Replace the occurences of
14694         Expression (N) with E.
14695         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
14696         limited interface object with a function call.
14697         (Array_Type_Declaration): If the declaration lacks subtype marks for
14698         indices, create a simple index list to prevent cascaded errors.
14699         (Is_Null_Extension): Ignore internal components created for secondary
14700         tags when checking whether a record extension is a null extension.
14701         (Check_Abstract_Interfaces): Add missing support for interface subtypes
14702         and generic formals.
14703         (Derived_Type_Declaration): Add missing support for interface subtypes
14704         and generic formals.
14705         (Analyze_Object_Declaration): If an initialization expression is
14706         present, traverse its subtree and mark all allocators as static
14707         coextensions.
14708         (Add_Interface_Tag_Component): When looking for components that may be
14709         secondary tags, ignore pragmas that can appear within a record
14710         declaration.
14711         (Check_Abstract_Overriding): an inherited function that dispatches on
14712         result does not need to be overriden if the controlling type is a null
14713         extension.
14714         (Mentions_T): Handle properly a 'class attribute in an anonymous access
14715         component declaration, when the prefix is an expanded name.
14716         (Inherit_Component): If the derivation is for a private extension,
14717         inherited components remain visible and their ekind should not be set
14718         to Void.
14719         (Find_Type_Of_Object): In the case of an access definition, always set
14720         Is_Local_Anonymous_Access. We were previously not marking the anonymous
14721         access type of a return object as a local anonymous type.
14722         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
14723         range with character literal bounds.
14724         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
14725         (Access_Subprogram_Declaration): Indicate that the type declaration
14726         depends on an incomplete type only if the incomplete type is declared
14727         in an open scope.
14728         (Analyze_Subtype_Declaration): Handle properly subtypes of
14729         synchronized types that are tagged, and that may appear as generic
14730         actuals.
14731         (Access_Subprogram_Declaration): An anonymous access to subprogram can
14732         appear as an access discriminant in a private type declaration.
14733         (Add_Interface_Tag_Components): Complete decoration of the component
14734         containing the tag of a secondary dispatch table and the component
14735         containing the offset to the base of the object (this latter component
14736         is only generated when the parent type has discriminants --as documented
14737         in this routine).
14738         (Inherit_Components): Use the new decoration of the tag components to
14739         improve the condition that avoids inheriting the components associated
14740         with secondary tags of the parent.
14741         (Build_Discriminanted_Subtype): Indicate to the backend that the
14742         size of record types associated with dispatch tables is known at
14743         compile time.
14744         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
14745         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
14746         to include task, protected, and synchronized interfaces as limited
14747         interfaces.
14748         (Process_Discriminants): Remove the setting of
14749         Is_Local_Anonymous_Access on the type of (anonymous) access
14750         discriminants of nonlimited types.
14751         (Analyze_Interface_Type_Declaration): Complete the decoration of the
14752         class-wide entity it is is already present. This situation occurs if
14753         the limited-view has been previously built.
14754         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
14755         field.
14756         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
14757         Related_Interface.
14758
14759 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14760
14761         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
14762         of the type that specify the position of interface tags when the type
14763         inherits discriminated array components from the parent type.
14764         If a component is initialized with a box, check for the presence of a
14765         default expression in its declaration before using its default
14766         initialization procedure.
14767         (Resolve_Record_Aggregate): If a component is box-initialized, and the
14768         component type has a discriminants, create a partial aggregate for it
14769         by copying the discriminants of the component subtype.
14770         Reject attempt to initialize a discriminant with a box.
14771         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
14772         associated with dispatch tables is known at compile time.
14773         (Get_Value): If an association in a record aggregate has a box
14774         association, and the corresponding record component has a default
14775         expression, always copy the default expression, even when the
14776         association has a single choice, in order to create a proper
14777         association for the expanded aggregate.
14778
14779 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14780             Robert Dewar  <dewar@adacore.com>
14781
14782         * par-ch12.adb (P_Generic_Associations): The source position of an
14783         Others association is that of the others keyword, not that of the token
14784         that follows the box.
14785         (P_Formal_Type_Definition): Handle formal access types that carry a
14786         not null indicator.
14787
14788         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
14789         multiple identifier are present, save Scan_State before scanning the
14790         colon, to ensure that separate trees are constructed for each
14791         declaration.
14792         (P_Identifier_Declarations): For object declaration, set new flag
14793         Has_Init_Expression if initialization expression present.
14794         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
14795         Improve NOT NULL error messages
14796
14797 2007-06-06  Robert Dewar  <dewar@adacore.com>
14798
14799         * par-ch4.adb: (P_Name): Recover from literal used as name
14800
14801 2007-06-06  Vincent Celier  <celier@adacore.com>
14802
14803         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
14804         defaulted to False.
14805         In the "not" case, recursive call with Complemented set to True.
14806         Do not allow "or" or "and" operators when Complemented is True.
14807
14808 2007-06-06  Vincent Celier  <celier@adacore.com>
14809
14810         * prj.adb (Project_Empty): Gives default value for new component
14811         Libgnarl_Needed
14812
14813         * prj-attr.ads: Minor reformatting
14814
14815         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
14816         directory using the untouched casing.
14817         (For_All_Source_Dirs): Idem.
14818
14819         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
14820         directories specified with switches -aP.
14821         (Add_Search_Project_Directory): New procedure
14822         (Initialize_Project_Path): Put the directories in table
14823         Search_Directories in the project search path.
14824         (Initialize_Project_Path): For VMS, transform into canonical form the
14825         project path.
14826
14827 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14828
14829         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
14830         true if configurable run-time or No_Run_Time is set.
14831         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
14832         processing an unit which is not the one being compiled.
14833
14834 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14835
14836         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
14837         Replace UC by Ada.UC
14838
14839         * s-bitops.adb: Get rid of System.Pure_Exceptions.
14840         Replace UC by Ada.UC
14841
14842 2007-06-06  Robert Dewar  <dewar@adacore.com>
14843
14844         * scng.adb: (Check_End_Of_Line): Deal with very long lines
14845
14846 2007-06-06  Robert Dewar  <dewar@adacore.com>
14847
14848         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
14849         Remove no longer used nodes.
14850
14851 2007-06-06  Javier Miranda  <miranda@adacore.com>
14852             Ed Schonberg  <schonberg@adacore.com>
14853             Robert Dewar  <dewar@adacore.com>
14854
14855         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
14856         on obsolescent withed unit in case of limited-withed units.
14857         (Analyze_Compilation_Unit): Add guard to code that removed an
14858         instantiation from visibility, to prevent compiler aborts when
14859         instantiation is abandoned early on.
14860         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
14861         current unit being analyzed, and Distinguish local incomplete types
14862         from limited views of types declared elsewhere.
14863         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
14864         to state that the class-wide entity is shared by the limited-view
14865         and the full-view.
14866         (Analyze_With_Clause): Improve placement of flag for case of
14867         unimplemented unit.
14868         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
14869         manner similar to GNAT.Current_Exception. This is a violation of
14870         restriction (No_Exception_Propagation), and also inhibits the
14871         optimization of local raise to goto.
14872         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
14873         and if so set Most_Recent_Exception_Used flag in Opt, and also check
14874         for violation of restriction No_Exception_Propagation.
14875
14876 2007-06-06  Javier Miranda  <miranda@adacore.com>
14877             Hristian Kirtchev  <kirtchev@adacore.com>
14878             Gary Dismukes  <dismukes@adacore.com>
14879
14880         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
14881         use of entity Exception_Occurrence if it is not available in the
14882         target run-time.
14883
14884         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
14885         concurrent types are declared within an Ada 2005 generic, build their
14886         corresponding record types since they are needed for overriding-related
14887         semantic checks.
14888         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
14889         protected type does not implement a task interface or a nonlimited
14890         interface.
14891         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
14892         type does not implement a protected interface or a nonlimited interface.
14893         (Single_Task_Declaration, Single_Protected_Declaration): use original
14894         entity for variable declaration, to ensure that debugging information
14895         is correcty generated.
14896         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
14897         routines if the expander is not active.
14898         (Analyze_Task_Body): Mark all handlers to stop optimization of local
14899         raise, since special things happen for task exception handlers.
14900
14901         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
14902         concurrent types declared within a generic.
14903         (Check_Dispatching_Operation): Do not emit warning about late interface
14904         operations in the context of an instance.
14905         (Check_Dispatching_Call): Remove restriction against calling a
14906         dispatching operation with a limited controlling result.
14907         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
14908         Register_Interface_DT_Entry by calls to Register_Primitive.
14909         (Check_Dispatching_Formals): Handle properly a function with a
14910         controlling access result.
14911
14912 2007-06-06  Robert Dewar  <dewar@adacore.com>
14913             Arnaud Charlet  <charlet@adacore.com>
14914
14915         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
14916         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
14917         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
14918         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
14919         message when using a VM, since this attribute is not supported.
14920         (Analyze_Record_Representation_Clause): Give unrepped component warnings
14921
14922         * usage.adb: Add new warning for renaming of function return objects
14923         Indicate that -gnatwp and -gnatwP concern front-end inlining
14924         Add line for -gnatyg
14925         Add usage information for -gnatw.c/C
14926
14927 2007-06-06  Robert Dewar  <dewar@adacore.com>
14928             Ed Schonberg  <schonberg@adacore.com>
14929
14930         * sem_ch5.adb
14931         (Find_Var): Do not consider function call in test for infinite loop
14932         warning if warnings set off for function entity.
14933         (One_Bound): Do not create a temporary for a loop bound if it is a
14934         character literal.
14935         (Analyze_Assignment): Traverse the right hand side of an assignment and
14936         mark all allocators as static coextensions.
14937         (Analyze_Assignment): Exempt assignments involving a dispatching call
14938         to a function with a controlling access result from the check requiring
14939         the target to be class-wide.
14940
14941 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
14942             Ed Schonberg  <schonberg@adacore.com>
14943             Robert Dewar  <dewar@adacore.com>
14944             Javier Miranda  <miranda@adacore.com>
14945
14946         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
14947         chain of coextensions when an allocator serves as the root of such a
14948         chain.
14949         (Propagate_Coextensions): Remove the test for the root being an
14950         allocator.
14951         (Resolve_Allocator): Add condition to ensure that all future decoration
14952         occurs on an allocator node. Add processing and cleanup for static
14953         coextensions.
14954         (Valid_Conversion): If the operand type is the limited view of a
14955         class-wide type, use the non-limited view is available to determine
14956         legality of operation.
14957         (Ambiguous_Character): move to spec, for use elsewhere.
14958         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
14959         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
14960         character literals.
14961         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
14962         Do_Division_Check flag explicitly.
14963         (Resolve_Actuals): If the actual is of a synchronized type, and the
14964         formal is of the corresponding record type, this is a call to a
14965         primitive operation of the type, that is declared outside of the type;
14966         the actual must be unchecked-converted to the type of the actual
14967         (Resolve_Call): Kill all current values for any subprogram call if
14968         flag Suppress_Value_Tracking_On_Call is set.
14969         (Resolve_Type_Conversion): Generate error message the the operand
14970         or target of interface conversions come from a limited view.
14971         (Check_Infinite_Recursion): Ignore generated calls
14972         (Check_Allocator_Discrim_Accessibility): New procedure for checking
14973         that an expression that constrains an access discriminant in an
14974         allocator does not denote an object with a deeper level than the
14975         allocator's access type.
14976         (Resolve_Allocator): In the case of an allocator initialized by an
14977         aggregate of a discriminated type, check that associations for any
14978         access discriminants satisfy accessibility requirements by calling
14979         Check_Allocator_Discrim_Accessibility.
14980         (Resolve_Equality_Op): Handle comparisons of anonymous access to
14981         subprogram types in the same fashion as other anonymous access types.
14982         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
14983         message that is not a continuation message.
14984         (Resolve_Type_Conversion): Add missing support for conversion to
14985         interface type.
14986         (Resolve_Actuals): Introduce a transient scope around the call if an
14987         actual is a call to a function returning a limited type, because the
14988         resulting value must be finalized after the call.
14989         (Resolve_Actuals): If the call was given in prefix notations, check
14990         whether an implicit 'Access reference or implicit dereference must be
14991         added to make the actual conform to the controlling formal.
14992
14993 2007-06-06  Robert Dewar  <dewar@adacore.com>
14994             Javier Miranda  <miranda@adacore.com>
14995
14996         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
14997         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
14998         overriding of an inherited private subprogram now there is no need to
14999         inherit its dispatching slot and reduce the size of the dispatch table.
15000         Set_All_DT_Position now ensures that the same slot is now assigned to
15001         both entities. This is required to statically build the dispatch table.
15002         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
15003         of calling Set_All_DT_Position to re-evaluate the position of the
15004         entries in the dispatch table. Such reevaluation is not desired if
15005         the tagged type is already frozen.
15006
15007 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
15008             Gary Dismukes  <dismukes@adacore.com>
15009             Robert Dewar  <dewar@adacore.com>
15010             Javier Miranda  <miranda@adacore.com>
15011
15012         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
15013         reference acts as an lvalue when the attribute name modifies the prefix
15014         (Is_Coextension_Root): New routine.
15015         (Mark_Static_Coextensions): New routine.
15016         (Type_Access_Level): Revise code for checking the level of the
15017         anonymous access type of a return object.
15018         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
15019         (Matches_Prefixed_View_Profile): Remove the no longer necessary
15020         retrieval of the corresponding controlling record type.
15021         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
15022         concurrent types declared within a generic as well as class wide types.
15023         Emit a mode incompatibility error whenever a protected entry or routine
15024         override an interface routine whose first parameter is not of mode
15025         "out", "in out" or access to variable.
15026         (Overrides_Synchronized_Primitive): Rename to
15027         Find_Overridden_Synchronized_Primitive.
15028         (Collect_Interface_Components): New subprogram that collects all the
15029         components of a tagged record containing tags of secondary dispatch
15030         tables.
15031         (Add_Global_Declaration): New procedure
15032         (Abstract_Interface_List): Handle properly the case of a subtype of a
15033         private extension.
15034         (Type_Access_Level): In the case of a type whose parent scope is a
15035         return statement, call Type_Access_Level recursively on the enclosing
15036         function's result type to determine the level of the return object's
15037         type.
15038         (Build_Elaboration_Entity): Build name of elaboration entity from the
15039         scope chain of the entity, rather than the unit name of the file name.
15040         (Check_Nested_Access): New procedure.
15041         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
15042         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
15043         (Get_Renamed_Entity): Utility routine for performing common operation
15044         of chasing the Renamed_Entity field of an entity.
15045
15046 2007-06-06  Robert Dewar  <dewar@adacore.com>
15047
15048         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
15049         elaboration model
15050         (Check_A_Call): Add check for entry call which was causing blowup
15051
15052 2007-06-06  Olivier Hainque  <hainque@adacore.com>
15053
15054         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
15055         special code on ia64-vms to handle major incompatibilities between the
15056         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
15057         this routine with a very different set of arguments and expectations on
15058         the return value.
15059
15060 2007-06-06  Thomas Quinot  <quinot@adacore.com>
15061
15062         * socket.c (__gnat_close_signalling_fd): New function.
15063         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
15064         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
15065         New supporting functions for task safe Netdb operations.
15066
15067 2007-06-06  Thomas Quinot  <quinot@adacore.com>
15068             Olivier Hainque  <hainque@adacore.com>
15069
15070         * a-except-2005.ads, a-except-2005.adb
15071         (Raise_From_Controlled_Operation): New procedure in
15072         (private part of) Ada.Exceptions (standard runtime version). Used to
15073         provide informational exception message when Program_Error is raised as
15074         a result of an Adjust or Finalize operation propagating an exception.
15075         (Rmsg_28): Fix description for E.4(18) check.
15076         (Raise_Current_Excep): Call Debug_Raise_Exception just before
15077         propagation starts, to let debuggers know about the event in a reliable
15078         fashion.
15079         Take the address of E and dereference to make sure it is homed on stack
15080         and prevent the stores from being deleted, necessary for proper
15081         debugger behavior on "break exception" hits.
15082         (Local_Raise): Moved to System.Exceptions
15083
15084         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
15085         exception message from the current occurrence and raise Program_Error
15086         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
15087
15088 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
15089             Arnaud Charlet  <charlet@adacore.com>
15090
15091         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
15092         lock, if needed.
15093
15094         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
15095         priority associated to a lock.
15096
15097         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
15098         assertion to take into account case of no abort restriction.
15099         (Initialize_Protection_Entries): Add initialization for the field
15100         New_Ceiling associated to the protected object.
15101         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
15102         needed.
15103
15104         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
15105         since this function needs to be set consistently with Update_Exception.
15106
15107         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
15108         since this function needs to be set consistently with Update_Exception.
15109
15110         * s-taskin.ads: Update comments on
15111         Interrupt_Server_Blocked_On_Event_Flag.
15112         (Unbind_Handler): Fix handling of server_task wakeup
15113         (Server_Task): Set self's state so that Unbind_Handler can take
15114         appropriate actions.
15115         (Common_ATCB): Now use a constant from System.Parameters to determine
15116         the max size of the Task_Image field.
15117
15118         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
15119         Initialize_Analyzer function.
15120         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
15121         take into account case of no abort restriction.
15122         ([Vulnerable_]Complete_Master): Modify assertion.
15123
15124         * s-tataat.adb (Finalize): Use the nestable versions of
15125         Defer/Undefer_Abort.
15126
15127         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
15128
15129         * s-tpobop.ads: Update comments.
15130
15131         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
15132         of locking the object manually, to avoid inconsistencies between
15133         Lock/Unlock_Entry assertions.
15134
15135         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
15136         terminating
15137         application and System.Parameters.No_Abort is True.
15138         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
15139         (Unbind_Handler): Fix handling of server_task wakeup
15140         (Server_Task): Set self's state so that Unbind_Handler can take
15141         appropriate actions.
15142
15143 2007-06-06  Thomas Quinot  <quinot@adacore.com>
15144
15145         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
15146         declarations instead of an explicit null body, for conciseness.
15147
15148 2007-06-06  Robert Dewar  <dewar@adacore.com>
15149
15150         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
15151         illegal aggregate and the type is still Any_Composite.
15152         (Subtypes_Statically_Match): Fix problem of empty discriminant list
15153
15154 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
15155
15156         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
15157         to prevent subsequent expansion.
15158
15159 2007-06-06  Robert Dewar  <dewar@adacore.com>
15160
15161         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
15162
15163 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
15164             Robert Dewar  <dewar@adacore.com>
15165
15166         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
15167         exceptions.
15168         (Write_Itype): Handle case of string literal subtype, which
15169         comes up in this context.
15170         (Update_Itype): when debugging expanded code, update sloc of itypes
15171         associated with defining_identifiers and ranges, for gdb use.
15172         (Sprint_Node_Actual): Add static keyword to object or exception
15173         declaration output if Is_Statically_Allocated is True.
15174         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
15175         or task body, so that the tree carries the proper Sloc information for
15176         debugging use.
15177         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
15178
15179 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
15180
15181         * s-secsta.adb (Chunk): Ensure this object has a static size known at
15182         compile time, to avoid dynamic memory allocation
15183         (Elaboration code): Only use dynamic memory allocation when needed.
15184
15185 2007-06-06  Quentin Ochem  <ochem@adacore.com>
15186
15187         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
15188         "Overflow_Guard".
15189         (Stack_Analyzer): Added field "Overflow_Guard"
15190         (Task_Result): Added field "Overflow_Guard".
15191         (Index_Str): New constant.
15192         (Task_Name_Str): New constant.
15193         (Actual_Size_Str): New constant.
15194         (Pattern_Array_Element_Size): New constant.
15195         (Get_Usage_Range): New subprogram.
15196         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
15197         Now align the output.
15198         Added comments.
15199         (Initialize): Added value for Overflow_Guard.
15200         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
15201         Update the value of the overflow guard according to the actual
15202         beginning of the pattern array.
15203         (Initialize_Analyzer): Added parameter Overflow_Guard.
15204         Take this parameter into accound when computing the max size.
15205         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
15206         (Report_Result): Removed extra useless procedure.
15207         Updated call to Output_Result.
15208         Moved full computation of the Task_Result here.
15209
15210 2007-06-06  Thomas Quinot  <quinot@adacore.com>
15211
15212         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
15213         Thread_Blocking_IO, always True by default, set False on a per-runtime
15214         basis.
15215         Add Windows-specific constants
15216         Add new constant Need_Netdb_Buffer.
15217         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
15218         not, whether to use getXXXbyYYY_r.
15219
15220         * gsocket.h: Add new constant Need_Netdb_Buffer.
15221         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
15222         not, whether to use getXXXbyYYY_r.
15223
15224 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
15225
15226         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
15227         than their first call.
15228         Add type Dummy_Communication_Block used in the generation of the pre-
15229         defined dispatching primitive _disp_asynchronous_select.
15230         (Storage_Element): Put Pragma Universal_Aliasing on it.
15231
15232 2007-06-06  Vincent Celier  <celier@adacore.com>
15233
15234         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
15235         function.
15236
15237         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
15238         letter if it is not followed by a '/' or a '\'.
15239         (Windows): New Boolean function
15240
15241         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
15242         Ada 2005.
15243         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
15244         drive letter.
15245         (Containing_Directory): Raise Use_Error when the directory is a root
15246         directory.
15247         (Extension): When returning the result, use a conversion to Result_Type,
15248         not a qualification.
15249
15250 2007-06-06  Robert Dewar  <dewar@adacore.com>
15251
15252         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
15253         (Set_Style_Check_Options): Recognize new -gnatyg style switch
15254
15255         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
15256         Warn_On_Non_Local_Exception to False, to turn off warnings for
15257         No_Exception_Propagation in ZFP runtime.
15258         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
15259         back-ends.
15260         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
15261
15262 2007-06-06  Vincent Celier  <celier@adacore.com>
15263
15264         * switch-b.adb (Scan_Binder_Switches): Add processing for new
15265         switches -R and -Z
15266
15267         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
15268         (Scan_Make_Switches): Recognize new switch -aP
15269
15270 2007-06-06  Matthew Gingell  <gingell@adacore.com>
15271             Jose Ruiz  <ruiz@adacore.com>
15272
15273         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
15274         VxWorks task descriptor in the Ada run time, call a C subprogram
15275         (__gnat_get_stack_info) that extracts the required information.
15276
15277         * sysdep.c: Back out temporary lynxos workaround.
15278         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
15279         time the stack information associated to the currently executing task.
15280         Only VxWorks systems require this function.
15281
15282 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
15283
15284         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
15285         add the stack bias if the offset is computed from a frame address.
15286         (__gnat_backtrace): Adjust for above change.
15287
15288 2007-06-06  Thomas Quinot  <quinot@adacore.com>
15289
15290         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
15291         PE_Non_Transportable_Actual.
15292         (By_Descriptor_Last): New constant.
15293         (By_Copy_Return): Likewise.
15294
15295 2007-06-06  Vincent Celier  <celier@adacore.com>
15296
15297         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
15298         is.
15299
15300         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
15301         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
15302         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
15303         Add missing comment for /OPTIMIZE=SPACE
15304         Add entry for OPTIMIZE=SPACE
15305         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
15306         Add documentation for new qualifiers corresponding to -gnatw.c/.C
15307
15308 2007-06-06  Vincent Celier  <celier@adacore.com>
15309             Robert Dewar  <dewar@adacore.com>
15310
15311         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
15312         -gnatw.C)
15313
15314         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
15315         Document gnatbind switch -a
15316         (case Constructions): Document that variables declarations are allowed
15317         for previously declared variables.
15318         Fix external lib project example
15319         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
15320         Indicate that "#if not X or Y then" is not allowed in input files to
15321         gnatprep.
15322         Document gnatw.x and gnatw.X warning flags
15323         Mention -Winline switch to activate warnings when back-end inlining is
15324         ineffective.
15325         Add gnatcheck rule descriptions
15326         Describe how to use the GNAT driver to call a tool on a closure.
15327         Describe how to run project-wide checks or metrics.
15328         Document gnatbind's -R option
15329         Updated to account for Ada 2005 support
15330
15331         * gnat_rm.texi (Case Construction): Allow variable declarations for
15332         previously declared variables.
15333         (Representation Clauses and Pragmas): Lift restriction on alignment
15334         clauses for record types.
15335         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
15336         Document No_Exception_Propagation restriction
15337         Document No_Body pragma
15338         Updated to account for Ada 2005 support; corrected some typos
15339         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
15340
15341         * gnat-style.texi: Make it clear that we never use mode IN for
15342         procedures or functions
15343
15344         * ug_words: Add entries for -gnatw.x and -gnatw.X
15345         Add entries for -gnatw.c/.C
15346
15347 2007-06-06  Pascal Obry  <obry@adacore.com>
15348             Vincent Celier  <celier@adacore.com>
15349
15350         * makegpr.adb (Add_Archive_Path): Use untouched object and library
15351         dirs and library name.
15352         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
15353         comments.
15354         (Build_Library): Idem.
15355         (Compile_Individual_Sources): Idem.
15356         (Compile_Link_With_Gnatmake): Idem.
15357         (Compile_Sources): Idem.
15358         (Get_Imported_Directories): Idem.
15359         (Link_Executables): Idem. Same change for the executable dir.
15360         (Check_Compilation_Needed): C_Source_Path new variable containing
15361         the canonical form of Source_Path to check against the source names
15362         in the dependency file.
15363         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
15364         verbose mode, display the name of the object directory we're changing
15365         to.
15366         (Saved_Switches): New name of table X_Switches
15367         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
15368         (Usage): New line for switch -aP
15369         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
15370         testing if a directory should be added to the search path.
15371
15372 2007-06-06  Javier Miranda  <miranda@adacore.com>
15373
15374         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
15375         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
15376         declaration after freezing point of all its associated tagged types;
15377         otherwise such types are frozen too early.
15378
15379 2007-06-06  Robert Dewar  <dewar@adacore.com>
15380
15381         * a-reatim.adb: Documentation addition
15382
15383         * g-cgideb.adb: Minor code reorganization
15384
15385         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
15386         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
15387         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
15388
15389         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
15390         function.  Change name New_Scope to Push_Scope
15391         (Get_Debug_Flag_K): Remove unused obsolete function.
15392
15393         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
15394         Push_Scope.
15395
15396         * makeusg.adb: Update Copyright notice
15397         Add line for switch -aP
15398
15399         * makeusg.adb: Fix wording of some usage messages
15400
15401         * s-assert.adb (Raise_Assert_Failure): Add call to
15402         Debug_Raise_Assert_Failure.
15403
15404         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
15405         (2, Standard'Alignment) for compatibility with AAMP (where alignment
15406         is restricted to 1).
15407
15408         * s-wchjis.adb: Remove use of System.Pure_Exceptions
15409
15410         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
15411         node location to No_Location when we're not debugging the expanded
15412         code.
15413
15414 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
15415
15416         * misc.c (enumerate_modes): Consider log2_b to always be one.
15417
15418 2007-05-14  Rafael Ávila de Espíndola  <espindola@google.com>
15419
15420         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
15421
15422 2007-05-02  Pascal Obry  <obry@adacore.com>
15423
15424         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
15425         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
15426         encoding support of Stream_IO.
15427         (Write_Unit): Idem.
15428
15429         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
15430         filename and corresponding encoding to match the OS requirement.
15431         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
15432         routine will fail on specific devices like CON: AUX: ...
15433
15434         PR ada/29856: Add missing braces
15435
15436 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15437
15438         PR ada/31660
15439         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
15440
15441 2007-04-21  Jan Hubicka  <jh@suse.cz>
15442
15443         * misc.c (gnat_expand_body): Don't call target for destructors,
15444         avoid redundant check on syntax errors.
15445
15446 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15447
15448         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
15449         instead of checking GIMPLE_STMT_P in chain_next.
15450
15451 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
15452
15453         PR ada/31576
15454         * system-linux-alpha.ads: Disable constant condition warning for the
15455         Default_Bit_Order variable.
15456         * system-linux-s390.ads: Likewise.
15457         * system-linux-s390x.ads: Likewise.
15458         * system-linux-sparc.ads: Likewise.
15459
15460 2007-04-06  Javier Miranda  <miranda@adacore.com>
15461             Matt Heaney  <heaney@adacore.com>
15462             Robert Dewar  <dewar@adacore.com>
15463
15464         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
15465         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
15466         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
15467         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
15468         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
15469         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
15470         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
15471         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
15472         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
15473         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
15474         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
15475         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
15476         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
15477         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
15478         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
15479         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
15480         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
15481         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
15482         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
15483         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
15484         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
15485         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
15486         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
15487         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
15488         s-taprop-tru64.adb, s-taprop-irix.adb,
15489         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
15490         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
15491         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
15492         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
15493         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
15494         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
15495         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
15496         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
15497         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
15498         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
15499         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
15500         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
15501         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
15502         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
15503         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
15504         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
15505         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
15506         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
15507         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
15508         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
15509         access types.
15510         Update documentation.
15511         Minor rewording.
15512
15513 2007-04-06  Robert Dewar  <dewar@adacore.com>
15514
15515         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
15516         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
15517         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
15518         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
15519         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
15520         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
15521         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
15522         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
15523         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
15524         system-hpux-ia64.ads, targparm.adb,
15525         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
15526
15527         * system.ads: Move Functions_Return_By_DSP to obsolete section,
15528         kept for bootstrap purposes only.
15529
15530 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
15531
15532         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
15533         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
15534         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
15535         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
15536
15537 2007-04-06  Robert Dewar  <dewar@adacore.com>
15538
15539         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
15540         (Local_Raise): New dummy procedure called when a raise is converted
15541         to a local goto. Used for debugger to detect that the exception
15542         is raised.
15543
15544         * debug.adb: Document new d.g flag (expand local raise statements to
15545         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
15546
15547         * exp_sel.adb: Use Make_Implicit_Exception_Handler
15548
15549         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
15550         suppress warnings for unused handlers.
15551         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
15552         warnings for raise statements not handled locally.
15553         (Get_RT_Exception_Entity): New function
15554         (Get_Local_Call_Entity): New function
15555         (Find_Local_Handler): New function
15556         (Warn_If_No_Propagation): New procedure
15557         (Expand_At_End_Handler): Call Make_Implicit_Handler
15558         (Expand_Exception_Handlers): Major additions to deal with local handlers
15559         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
15560         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
15561         for local raise
15562
15563         * exp_ch11.ads (Get_RT_Exception_Entity): New function
15564         (Get_Local_Call_Entity): New function
15565
15566         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
15567         of restrictions that the binder will never suggest adding.
15568
15569         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
15570         to No_Elist.
15571
15572         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
15573         be with'ed in the presence of pragma Restriction
15574         (No_Exception_Propagation).
15575
15576         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
15577
15578         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
15579         parameter, then the handler is not a suitable target for a local raise,
15580         and this is a violation of restriction No_Exception_Propagation.
15581         (Analyze_Handled_Statements): Analyze choice parameters in exception
15582         handlers before analyzing statement sequence (needed for proper
15583         detection of local raise statements).
15584         (Analyze_Raise_Statement): Reraise statement is a violation of the
15585         No_Exception_Propagation restriction.
15586
15587         * s-rident.ads: Add new restriction No_Exception_Propagation
15588
15589         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
15590         function, like Make_Exception_Handler but sets Local_Raise_Statements
15591         to No_List.
15592         (Add_Unique_Serial_Number): Deal with case where this is called during
15593         processing of configuration pragmas.
15594
15595 2007-04-06  Thomas Quinot  <quinot@adacore.com>
15596             Pat Rogers  <rogers@adacore.com>
15597             Pascal Obry  <obry@adacore.com>
15598
15599         * g-stsifd-sockets.adb: New file.
15600
15601         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
15602         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
15603         g-socthi-vms.adb: Move signalling
15604         fd management to a nested package, so that they can conveniently be
15605         moved to a subunit that is shared across Windows, VMS, and VxWorks
15606         (Ada implementation) or completed with imported bodies from socket.c
15607         (UNIX case).
15608         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
15609         subprograms.
15610         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
15611         the signalling file descriptor.
15612         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
15613         signalling file descriptor.
15614         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
15615         instead of creating a pair of sockets for signalling here.
15616
15617         * g-socthi.adb: Ditto.
15618         Set the runtime process to ignore SIGPIPEs on platforms that support
15619         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15620
15621         * g-socthi-mingw.adb: Ditto.
15622         (WS_Version): Use Windows 2.2.
15623         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15624
15625         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
15626         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15627
15628         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
15629         added GNAT byte swapping facility
15630         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
15631
15632         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
15633
15634         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
15635         New subprograms.
15636         (__gnat_create_signalling_fds): New subprogram.
15637         Set the runtime process to ignore SIGPIPEs on platforms that support
15638         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15639
15640 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
15641             Vincent Celier  <celier@adacore.com>
15642
15643         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
15644         New version of Ada.Calendar which supports the new upper bound of Ada
15645         time (2399-12-31 86_399.999999999).
15646         The following modifications have been made to the package:
15647          - New representation of time as count of nanoseconds since the start of
15648            Ada time (1901-1-1 0.0).
15649          - Target independent Split and Time_Of routines which service both
15650            Ada 95 and Ada 2005 code.
15651          - Target independent interface to the Ada 2005 children of Calendar.
15652          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
15653          - Handling of non-leap centenial years.
15654          - Updated clock function.
15655          - Updated arithmetic and comparison operators.
15656
15657         * a-caldel.adb (To_Duration): Add call to target independent routine in
15658         Ada.Calendar to handle the conversion of time to duration.
15659
15660         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
15661         (UTC Offset).
15662         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
15663         set off to 0.
15664         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
15665         targets do not have a natural time zone, GMT is used as a default.
15666         (__gnat_get_task_options): New.
15667
15668         * a-direct.adb (Modification_Time): Add with and use clauses for
15669         Ada.Calendar and Ada.
15670         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
15671         since it is no longer needed.
15672         (Duration_To_Time): Removed.
15673         (OS_Time_To_Long_Integer): Removed.
15674         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
15675         Formatting Time_Of routines which automatically handle time zones,
15676         buffer periods and leap seconds.
15677
15678         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
15679         target independent routines in Ada.Calendar.
15680
15681         * a-calfor.ads, a-calfor.adb:
15682         Code cleanup and addition of validity checks in various routines.
15683         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
15684         Ada.Calendar.
15685
15686         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
15687         independent routine in Ada.Calendar.
15688
15689 2007-04-06  Olivier Hainque  <hainque@adacore.com>
15690
15691         * adaint.c:
15692         (convert_addresses): Adjust prototype and dummy definition to expect an
15693          extra file_name argument.
15694
15695         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
15696         filling the now expected file_name argument with the appropriate
15697         argv[0] expansion.
15698         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
15699         (tracebk): Array of void * instead of char *, corresponding to what
15700          convert_addresses expects.
15701         (exename): New static global, to hold the executable file name to be
15702         used in all convert_addresses invocations.
15703         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
15704         change.
15705         (__gnat_gmem_a2l_initialize): Resolve exename.
15706         (__gnat_convert_addresses): Use exename as the convert_addresses
15707         file_name argument.
15708
15709         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
15710         "convert_addresses", now expecting a filename argument. Import the
15711         necessary entities to compute the filename to use and pass it to
15712         convert_addresses.
15713
15714 2007-04-06  Matt Gingell  <gingell@adacore.com>
15715
15716         * system-aix.ads: Back out previous change.
15717         (Functions_Return_By_DSP): Removed
15718
15719 2007-04-06  Pascal Obry  <obry@adacore.com>
15720
15721         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
15722         or the monotonic used by Ada.Real_Time) to compute the sleep duration
15723         on Windows.
15724
15725 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
15726
15727         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
15728         function. Its value changes in different VxWorks versions, and it is
15729         now handled by the function __gnat_get_task_options.
15730
15731         * s-taprop-vxworks.adb (Create_Task): Call the function
15732         __gnat_get_task_options to get the required options for creating a task.
15733
15734 2007-04-06  Pascal Obry  <obry@adacore.com>
15735             Thomas Quinot  <quinot@adacore.com>
15736
15737         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
15738         dealing with filename.
15739         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
15740         filename from a standard string to a wide-string depending on the
15741         encoding value.
15742         (__gnat_freopen): Idem.
15743         (__gnat_current_time): New function (wrapper for time(3) standard C
15744         function).
15745
15746         * g-os_lib.ads (Current_Time): New function. Returns the current
15747         system time as an OS_Time value.
15748
15749         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
15750         (Monotonic_Clock): Same.
15751
15752 2007-04-06  Quentin Ochem  <ochem@adacore.com>
15753
15754         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
15755         not on a natural.
15756         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
15757
15758 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
15759
15760         * a-retide.adb: Add elaboration code to ensure that the tasking run
15761         time is initialized when using delay operations even when no task is
15762         created.
15763
15764 2007-04-06  Javier Miranda  <miranda@adacore.com>
15765
15766         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
15767         component Num_Prim_Ops.
15768         (Set_Num_Prim_Ops): Removed.
15769         Remove all the assertions because all the routines of this
15770         package are inline always.
15771         (Get_Offset_Index): Add support to primary dispatch tables.
15772         Move the documentation about the dispatch table to a-tags.ads
15773         (Set_External_Tag): Removed
15774         (Inherit_TSD): Removed.
15775         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
15776         moved to a-tags.ads
15777         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
15778         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
15779         of the TSD field "Table" because this field has been renamed to
15780         "Ifaces_Table".
15781         (Inherit_CPP_DT): Removed.
15782         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
15783         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
15784         declarations have been moved to a-tags.ads
15785         (Check_Size): Removed.
15786         (Expanded_Name): Updated to get access to the new field of TSD
15787         containing the address of the expanded name.
15788         (Get_Access_Level/Set_Access_Level): Removed.
15789         (Get_Predefined_Prim_Op_Address): Removed.
15790         (Set_Predefined_Prim_Op_Address): Removed.
15791         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
15792         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
15793         (Set_Expanded_Name): Removed.
15794         (Inherit_DT): Removed.
15795         (Inherit_CPP_DT): Removed.
15796         (Set_RC_Offset): Removed.
15797         (Set_TSD): Removed.
15798         (Base_Address): New function that displaces "this" to point to the base
15799         of the object (that is, to point to the primary tag of the object).
15800
15801 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15802             Javier Miranda  <miranda@adacore.com>
15803
15804         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
15805         anonymous access component, do not create a master_id if type already
15806         has one, as may happen if the type is a subcomponent of a packed array
15807         type.
15808         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
15809         Initialize_Tag): Remove code associated with the old CPP pragmas.
15810         CPP_Virtual and CPP_Vtable are no longer supported.
15811         (Build_Offset_To_Top_Internal): Add support for concurrent record types
15812         (Build_Offset_To_Top_Functions): Add support for concurrent record types
15813         (Freeze_Record_Type): Remove call to
15814         Init_Predefined_Interface_Primitives.
15815         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
15816         code required to initialize the tags of the secondary dispatch tables.
15817         This leaves the algoritm more clear.
15818         (Init_Secondary_Tags): Add support for concurrent record types
15819         (Make_Predefined_Primitive_Specs): Code cleanup.
15820         (Predefined_Primitive_Bodies): Code cleanup.
15821         (Build_Master_Renaming): New local subprogram.
15822         (Expand_N_Full_Type_Declaration): Build the master_id associated with
15823         anonymous access to task type components.
15824         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
15825         subtype indication are resolved during analysis, and must not be done
15826         here.
15827         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
15828
15829 2007-04-06  Geert Bosch  <bosch@adacore.com>
15830             Ed Schonberg  <schonberg@adacore.com>
15831             Javier Miranda  <miranda@adacore.com>
15832             Bob Duff  <duff@adacore.com>
15833
15834         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
15835         for conversion of a Float_Type'Truncation to integer.
15836
15837         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
15838         check if a node is an attribute that can be handled directly by the
15839         back end.
15840         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
15841         attributes that can be handled directly by the back end.
15842         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
15843         use new predicate Is_Access_Protected_Subprogram_Type.
15844         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
15845         and Unchecked_Union if it is generated as part of the default  Output
15846         procedure for a type with default discriminants.
15847         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
15848         if we are compiling under restriction No_Dispatching_Calls.
15849         (Constrained): Use Underlying_Type, in case the type is private without
15850         discriminants, but the full type has discriminants.
15851         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
15852         call to Build_Get_Access_Level.
15853         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
15854         interface objects requires a call to the run-time subprogram that
15855         returns the base address of the object.
15856         (Valid_Conversion): Improve error message on illegal attempt to store
15857         an anonymous access to subprogram value into a record component.
15858
15859         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
15860         null".
15861         (Simplify_Type_Conversion): New procedure that performs simplification
15862         of Int_Type (Float_Type'Truncation (X)).
15863         (Resolve_Type_Conversion): Call above procedure after resolving operand
15864         and before performing checks. This replaces the existing ineffective
15865         code in Exp_Ch4.
15866         (Set_String_Literal_Subtype): When creating the internal static lower
15867         bound subtype for a string literal, use a newly created copy of the
15868         subtree representing the lower bound.
15869         (Resolve_Call): Exclude build-in-place function calls from transient
15870         scope treatment. Update comments to describe this exception.
15871         (Resolve_Equality_Op): In case of dispatching call check violation of
15872         restriction No_Dispatching_Calls.
15873         (Resolve_Call): If the call returns an array, the context imposes the
15874         component type of the array, and the function has one non-defaulted
15875         parameter, rewrite the call as the indexing of a call with a single
15876         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
15877         in prefix form.
15878         (Resolve_Actuals): If an actual is an allocator for an access parameter,
15879         the master of the created object is the innermost enclosing statement.
15880         (Remove_Conversions): For a binary operator, check if type of second
15881         formal is numeric, to check if an abstract interpretation is present
15882         in the case of exponentiation as well.
15883
15884 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
15885             Bob Duff  <duff@adacore.com>
15886
15887         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
15888         copying a parameter list in a call, set properly the First_Named_Formal
15889         and Next_Named_Formal fields in the new list and in the enclosing call.
15890         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
15891         names, to ease typing in the debugger. Improve comments.
15892         (Watch_Node): New variable, intended to be set in the debugger.
15893         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
15894         called when the watched node is created.
15895         (New_Node_Debugging_Output): Combined version of local procedures
15896         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
15897         with a parameter so that conditional breakpoints like "if Node = 12345"
15898         work.
15899         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
15900         Add Elist1 function
15901
15902 2007-04-06  Thomas Quinot  <quinot@adacore.com>
15903             Ed Schonberg  <schonberg@adacore.com>
15904             Gary Dismukes  <dismukes@adacore.com>
15905
15906         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
15907         required for a conversion between two access-to-unconstrained-array
15908         types.
15909         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
15910         to discriminant constraints on discriminant objects. This rule must
15911         apply as well to discriminants of protected types in private components.
15912         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
15913         object of a null-excluding access type then don't require the
15914         the object declaration to have an expression and don't emit a
15915         run-time check.
15916
15917 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
15918             Eric Botcazou  <botcazou@adacore.com>
15919
15920         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
15921         and made constant.
15922
15923         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
15924         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
15925         carry any.
15926
15927         * fe.h (Compiler_Abort): Add third parameter.
15928
15929         * misc.c (internal_error_function): Build third argument from current
15930         input location and pass it to Compiler_Abort.
15931
15932 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
15933
15934         * cstand.adb (Create_Standard): When the target's storage unit size is
15935         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
15936         Standard_String.
15937
15938 2007-04-06  Nicolas Roche  <roche@adacore.com>
15939
15940         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
15941         absolute path can have the following form: device:/a/b. In this case
15942         '/' should be inserted between the path and the filename.
15943
15944 2007-04-06  Olivier Hainque  <hainque@adacore.com>
15945             Eric Botcazou  <botcazou@adacore.com>
15946
15947         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
15948         VAR_DECL to a CONST_DECL we make for a public constant when we know the
15949         corresponding definition has created the so made visible variable.
15950         Handle anonymous access to protected subprogram.
15951         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
15952         object with an address clause volatile.  Re-enable original fix.
15953         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
15954         too.
15955         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
15956         associated with either the Equivalent or Root type, instead of the
15957         naked type node.
15958         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
15959         subtree for every field of a global record type.
15960         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
15961         discriminants, invoke again variable_size on its newly computed sizes.
15962
15963 2007-04-06  Robert Dewar  <dewar@adacore.com>
15964             Thomas Quinot  <quinot@adacore.com>
15965             Ed Schonberg  <schonberg@adacore.com>
15966             Bob Duff  <duff@adacore.com>
15967
15968         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
15969         (Next_Component_Or_Discriminant): New function and procedure
15970         (First_Index, First_Literal, Master_Id,
15971         Set_First_Index, Set_First_Literal, Set_Master_Id):
15972         Add missing Ekind assertions.
15973         (Is_Access_Protected_Subprogram_Type): New predicate.
15974         (Has_RACW): New entity flag, set on package entities to indicate that
15975         the package contains the declaration of a remote accecss-to-classwide
15976         type.
15977         (E_Return_Statement): This node type has the Finalization_Chain_Entity
15978         attribute, in case the result type has controlled parts.
15979         (Requires_Overriding): Add this new flag, because "requires
15980         overriding" is subtly different from "is abstract" (see AI-228).
15981         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
15982         Is_Abstract_Type. Make sure these are called only when appropriate.
15983         (Has_Pragma_Unreferenced_Objects): New flag
15984
15985         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
15986         class-wide, the tag of the right-hand side must be an exact match, not
15987         an ancestor of that of the object on left-hand side.
15988         (Move_Activation_Chain): New procedure to create the call to
15989         System.Tasking.Stages.Move_Activation_Chain.
15990         (Expand_N_Extended_Return_Statement): Generate code to call
15991         System.Finalization_Implementation.Move_Final_List at the end of a
15992         return statement if the function's result type has controlled parts.
15993         Move asserts to Build_In_Place_Formal.
15994         (Move_Final_List): New function to create the call statement.
15995         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
15996         tagged type, replace generation of call to the run-time subprogram
15997         CW_Membership by call to Build_CW_Membership.
15998         (Expand_N_Return_Statement): Replace generation of call to the run-time
15999         subprogram Get_Access_Level by call to Build_Get_Access_Level.
16000         (Expand_N_Simple_Function_Return): Replace generation of call to the
16001         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
16002
16003         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
16004         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
16005         access to protected operations.
16006         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
16007         master and chain actual parameters to a build-in-place function call
16008         involving tasks.
16009         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
16010         statement.
16011         (Make_Build_In_Place_Call_In_Allocator,
16012         Make_Build_In_Place_Call_In_Anonymous_Context,
16013         Make_Build_In_Place_Call_In_Assignment,
16014         Make_Build_In_Place_Call_In_Object_Declaration): Call
16015         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
16016         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
16017         stubbed procedure with a null body, replace the call with a null
16018         statement without using the full inlining machinery, for efficiency
16019         and to avoid invalid values in source file table entries.
16020
16021         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
16022         renamings of calls to build-in-place functions.
16023
16024         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
16025         provides the functionality of RTE_Available to record components.
16026         (RTU_Entity): The function Entity has been renamed to RTU_Entity
16027         to avoid undesired overloading.
16028         (Entity): New subprogram that returns the entity for the referened
16029         unit. If this unit has not been loaded, it returns Empty.
16030         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
16031         Remove no longer used entities.
16032         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
16033         (RE_Type_Specific_Data): New entity.
16034         (RE_Move_Any_Value): New entity.
16035         (RE_TA_A, RE_Get_Any_Type): New entities.
16036         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
16037          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
16038          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
16039         (Entity): New subprogram that returns the entity for the referened
16040         unit. If this unit has not been loaded, it returns Empty.
16041         (RTE): Addition of a new formal that extends the search to the scopes
16042         of the record types found in the chain of the package.
16043
16044         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
16045         "abstract subprograms must be visible" message, whether or not the type
16046         is an interface; that is, remove the special case for interface types.
16047         (Analyze_Function_Return): Remove error message "return of task objects
16048         is not yet implemented" because this is now implemented.
16049         (Create_Extra_Formals): Add the extra master and activation chain
16050         formals in case the result type has tasks.
16051         Remove error message "return of limited controlled objects is not yet
16052         implemented".
16053         (Create_Extra_Formals): Add the extra caller's finalization list formal
16054         in case the result type has controlled parts.
16055         (Process_Formals): In case of access formal types there is no need
16056         to continue with the analysis of the formals if we already notified
16057         errors.
16058         (Check_Overriding_Indicator): Add code to check overriding of predefined
16059         operators.
16060         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
16061         flags for formals that do not require them,.
16062         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
16063         hidden entity is use visible or directly visible.
16064         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
16065         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
16066         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
16067         New_Overloaded_Entity): Split Is_Abstract flag into
16068         Is_Abstract_Subprogram and Is_Abstract_Type.
16069
16070         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
16071         a return statement's finalization list to the caller's list, used for
16072         build-in-place functions with result type with controlled parts.
16073         Remove no longer used entities.
16074
16075         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
16076         longer needed, because the full type is now limited, and therefore a
16077         pass-by-reference type.
16078         (Foreign_Task_Level): New constant.
16079
16080         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
16081         move tasks from the activation chain belonging to a return statement to
16082         the one passed in by the caller, and update the master to the one
16083         passed in by the caller.
16084         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
16085         of unactivated tasks, so we don't kill the ones that are being returned
16086         by a build-in-place function.
16087         (Create_Task): Ignore AI-280 for foreign threads.
16088
16089 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16090             Robert Dewar  <dewar@adacore.com>
16091             Bob Duff  <duff@adacore.com>
16092             Gary Dismukes  <dismukes@adacore.com>
16093
16094         * errout.adb (Unwind_Internal_Type): Use predicate
16095         Is_Access__Protected_Subprogram_Type.
16096
16097         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
16098         (Freeze_Entity, packed array case): Do not override explicitly set
16099         alignment and size clauses.
16100         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
16101         the enclosing subprogram is a child unit body that acts as a spec.
16102         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
16103         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
16104         Remove all code for DSP option
16105
16106         * layout.adb (Layout_Record_Type): Use First/
16107         Next_Component_Or_Discriminant
16108         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
16109         to handle properly the anonymous access case.
16110
16111         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
16112         for all access attributes, because overload resolution should work the
16113         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
16114         causes the error message for the ambiguous "X'Access = Y'Access" and
16115         "X'Unrestricted_Access = Y'Access" and so forth to match.
16116         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
16117         now that anonymous access to protected operations have their own kind.
16118         (Resolve_Attribute): In case of dispatching call check the violation of
16119         restriction No_Dispatching_Calls.
16120         (Check_Array_Type): Check new -gnatyA array index style option
16121
16122         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
16123         attempt to derive from a synchronized tagged type.
16124         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
16125         type, inherit the class-wide type already created, because it may
16126         already have been used in a self-referential anonymous access component.
16127         (Mentions_T): Recognize self-referential anonymous access components
16128         that use (a subtype of) the class-wide type of the enclosing type.
16129         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
16130         Derived_Type for Prev formal on call to
16131         Check_Anonymous_Access_Components rather than Empty.
16132         (Make_Incomplete_Type_Declaration): Add test for case where the type has
16133         a record extension in deciding whether to create a class-wide type,
16134         rather than just checking Tagged_Present.
16135         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
16136         to stand-alone object declarations as well as component declarations.
16137         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
16138         prevent accidental overwriting when enclosing package appears in
16139         a limited_with_clause.
16140         (Array_Type_Declaration): If the component type is an anonymous access,
16141         the associated_node for the itype is the type declaration itself.
16142         (Add_Interface_Tag_Components): Modified to support concurrent
16143         types with abstract interfaces.
16144         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
16145         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
16146         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
16147         to complete the decoration of synchronized interface types. Add also
16148         a call to Check_Abstract_Interfaces to verify the ARM rules.
16149         (Derive_Interface_Subprograms): Modified to support concurrent types
16150         with abstract interfaces.
16151         (Analyze_Subtype_Indication): Resolve the range with the given subtype
16152         mark, rather than delaying the full resolution depending on context.
16153         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
16154         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
16155         Array_Type_Declaration,Build_Derived_Record_Type,
16156         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
16157         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
16158         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
16159         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
16160         called only when appropriate.
16161         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
16162         to private type.
16163         (Analyze_Subtype_Declaration): For an access subtype declaration, create
16164         an itype reference for the anonymous designated subtype, to prevent
16165         scope anonmalies in gigi.
16166         (Build_Itype_Reference): New utility, to simplify construction of such
16167         references.
16168
16169 2007-04-06  Vincent Celier  <celier@adacore.com>
16170
16171         * errutil.adb (Initialize): Initialize warnings table, if all warnings
16172         are suppressed, supply an initial dummy entry covering all possible
16173         source locations.
16174
16175         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
16176         and start with only one, such as "-RTS=none".
16177         (Collect_Arguments): Do not check for sources outside of projects.
16178         Do not collect arguments if project is externally built.
16179         (Compile_Sources): Do nothing, not even check if the source is up to
16180         date, if its project is externally built.
16181         (Compile): When compiling a predefined source, add -gnatpg
16182         as the second switch, after -c.
16183         (Compile_Sources): Allow compilation of Annex J renames without -a
16184         (Is_In_Object_Directory): Check if the ALI file is in the object
16185         even if there is no project extension.
16186         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
16187         gnatbind if the ALI file effectively exists.
16188         (Initialize): Add the directory where gnatmake is invoked in front of
16189         the path if it is invoked from a bin directory, even without directory
16190         information, so that the correct GNAT tools will be used when spawned
16191         without directory information.
16192
16193         * makeusg.adb: Change switch -S to -eS
16194         Add lines for new switches -we, -wn and -ws
16195         Add line for new switch -p
16196
16197         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
16198         Treat_As_Error and there are warnings.
16199
16200         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
16201         -gnatww Change gnatmake switch -S to -eS
16202         (Scan_Make_Switches): Code reorganisation. Process separately multi
16203         character switches and single character switches.
16204         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
16205         False when switch is not recognized by gnatmake.
16206         (Scan_Make_Switches): Set Setup_Projects True when -p or
16207         --create-missing-dirs is specified.
16208
16209         * fname.adb (Is_Predefined_File_Name): Return True for annex J
16210         renamings Calendar, Machine_Code, Unchecked_Conversion and
16211         Unchecked_Deallocation only when Renamings_Included is True.
16212
16213         * par.adb: Allow library units Calendar, Machine_Code,
16214         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
16215         when -gnatg is not specified.
16216         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16217         there is no need to generate always a record_definition_node in case
16218         of synchronized interface types.
16219         (SIS_Entry_Active): Initialize global variable to False
16220         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
16221         indicate cases where AI-447 says "not null" is legal.
16222
16223         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
16224
16225         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
16226         files with with several lines starting with the object fileb name.
16227         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
16228         is specified.
16229         (Initialize): Add the directory where gprmake is invoked in front of the
16230         path, if it is invoked from a bin directory or with directory
16231         information, so that the correct GNAT tools will be used when invoked
16232         directly.
16233         (Check_Compilation_Needed): Process correctly backslashes on Windows.
16234
16235         * vms_data.ads: Update switches/qualifiers
16236
16237 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16238             Thomas Quinot  <quinot@adacore.com>
16239
16240         * exp_aggr.adb:
16241         If the array component is a discriminated record, the array aggregate
16242         is non-static even if the component is given by an aggregate with
16243         static components.
16244         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
16245         (Convert_Aggr_In_Allocator): If the allocator is for an access
16246         discriminant and the type is controlled. do not place on a finalization
16247         list at this point. The proper list will be determined from the
16248         enclosing object.
16249         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
16250         initialize record controller if needed, before the components, to ensure
16251         that they are properly finalized.
16252         (Build_Record_Aggr_Code): For the case of an array component that has a
16253         corresponding array aggregate in the record aggregate, perform sliding
16254         if required.
16255
16256 2007-04-06  Javier Miranda  <miranda@adacore.com>
16257             Gary Dismukes  <dismukes@adacore.com>
16258             Ed Schonberg  <schonberg@adacore.com>
16259
16260         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
16261         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
16262
16263         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
16264         accessibility on class-wide allocators if the allocator occurs at the
16265         same scope level as the allocator's type. The check is guaranteed to
16266         succeed in that case, even when the expression originates from a
16267         parameter of the containing subprogram.
16268         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
16269         under No_Dispatching_Calls restriction. During the semantic analysis
16270         we already notified such violation.
16271         (Tagged_Membership): Constant folding. There is no need to check
16272         the tag at run-time if the type of the right operand is non
16273         class-wide abstract.
16274         Replace call to Is_Ancestor by call to Is_Parent
16275         to support concurrent types with interface types.
16276         (Expand_N_Allocator): Add an assertion associated with the generation
16277         of the master_id.
16278         (Expand_N_Slice): Do not enable range check to nodes associated
16279         with the frontend expansion of the dispatch table.
16280         (Is_Local_Access_Discriminant): Subsidiary function to
16281         Expand_N_Allocator.
16282         (Tagged_Membership): Replace generation of call to the run-time
16283         subprogram CW_Membership by call to Build_CW_Membership.
16284         (Expand_Allocator_Expression): Replace generation of call to the
16285         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
16286
16287         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
16288         initialize most the TSD components by means of an aggregate.
16289         Modify the declaration of the object containing the TSD
16290         because we now expand code that has a higher level of abstraction.
16291         The TSD has a discriminant containing the Inheritance Depth Level,
16292         value that is used in the membership test but also to fix the size
16293         of the table of ancestors.
16294         (Expand_Interface_Conversion): Insert function body at the closest place
16295         to the conversion expression, to prevent access-before-elaboration
16296         errors in the backend.
16297         Code improved to reduce the size of the dispatch table if
16298         compiling under restriction No_Dispatching_Calls plus code cleanup.
16299         Code reorganization plus removal of calls to Set_Num_Prim_Ops
16300         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
16301         (Expand_Dispatching_Call): Minor code reorganization plus addition of
16302         code to return immediately if compiling under No_Dispatching_Calls
16303         restriction.
16304         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
16305         CPP_Virtual and CPP_Vtable are no longer supported.
16306         (Expand_Interface_Conversion): Add missing support for interface type
16307         derivations.
16308         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
16309         Is_Parent to support concurrent types with interfaces.
16310         (Init_Predefined_Interface_Primitives): Removed.
16311         (Make_Secondary_DT): Modified to support concurrent record types.
16312         (Set_All_DT_Position): Modified to support concurrent record types.
16313         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
16314         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
16315         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
16316         with CW_Membership.
16317         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
16318         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
16319         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
16320         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
16321         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
16322         (Expand_Dispatching_Call): Replace generation of call to the run-time
16323         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
16324         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
16325         Address.
16326         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
16327         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
16328         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
16329         Build_Set_Prim_Op_Address.
16330         (Get_Remotely_Callable): Subprogram removed.
16331         (Init_Predefined_Interface_Primitives): Replace generation of call to
16332         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
16333         Prims.
16334
16335         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
16336         First (Parameter_Associations ()) with the call to First_Actual that
16337         returns an actual parameter expression for both named and positional
16338         associations.
16339
16340         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
16341         check violation of restriction No_Dispatching_Calls.
16342         (Check_Controlling_Type): A formal of a tagged incomplete type is a
16343         controlling argument.
16344
16345         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
16346         First/Next_Component_Or_Discriminant
16347         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
16348         (Find_Implemented_Interface): Removed. All the calls to this subprogram
16349         specify Any_Limited_Interface, and this functionality is already
16350         provided by the function Has_Abstract_Interfaces.
16351         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
16352         support concurrent types implementing interfaces.
16353         (Find_Implemented_Interface): Removed. All the calls to this subprogram
16354         specify kind Any_Limited_Interface, and this functionality is already
16355         provided by the function Has_Abstract_Interfaces.
16356         (Remove_Side_Effects): replace Controlled_Type by
16357         CW_Or_Controlled_Type whenever the issue is related to
16358         using or not the secondary stack.
16359
16360         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
16361         P_Interface_Type_Definition to fulfill the new interface (the formal
16362         Is_Synchronized is no longer required).
16363
16364         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
16365         Update dependencies.
16366
16367         * exp_atag.ads, exp_atag.adb: New file
16368
16369 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16370             Bob Duff  <duff@adacore.com>
16371             Cyrille Comar  <comar@adacore.com>
16372
16373         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
16374         anonymous, use finalization list of enclosing dynamic scope.
16375         (Expand_N_Package_Declaration): For a library package declaration
16376         without a corresponding body, generate RACW subprogram bodies in the
16377         spec (just as we do for the task activation call).
16378         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
16379         Is_Abstract_Type. Make sure these are called only when appropriate.
16380         Remove all code for DSP option
16381         (CW_Or_Controlled_Type): new subprogram.
16382
16383 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16384             Ed Schonberg  <schonberg@adacore.com>
16385             Gary Dismukes  <dismukes@adacore.com>
16386
16387         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
16388         parameter. If it is set to true, return a result capped according to
16389         the global upper bound for the index of an entry family.
16390         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
16391         (Build_Find_Body_Index): Adjust for above change.
16392         (Entry_Index_Expression): Likewise.
16393         (Is_Potentially_Large_Family): New function extracted from...
16394         (Collect_Entry_Families): ...here. Call it to detect whether the family
16395         is potentially large.
16396         (Build_Entry_Count_Expression): If the family is potentially large, call
16397         Family_Size with 'Cap' set to true.
16398         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
16399         a protected version of an operation declared in the private part of
16400         a protected object, because they may be invoked through a callback.
16401         (Set_Privals): If the type of a private component is an anonymous access
16402         type, do not create a new itype for each protected body.
16403         If the body of a protected operation creates
16404         controlled types (including allocators for class-widetypes), the
16405         body of the corresponding protected subprogram must include a
16406         finalization list.
16407         (Build_Activation_Chain_Entity): Build the chain entity for extended
16408         return statements.
16409         (Type_Conformant_Parameters): Use common predicate Conforming_Types
16410         to determine whether operation overrides an inherited primitive.
16411         (Build_Wrapper_Spec): Add code to examine the parents while looking
16412         for a possible overriding candidate.
16413         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
16414         hold an actual parameter value since its initialization is separated
16415         from the the declaration. Prevents errors on null-excluding access
16416         formals.
16417
16418 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16419             Pablo Oliveira  <oliveira@adacore.com>
16420
16421         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
16422         Do an Unchecked_Conversion to handle the passage from the Underlying
16423         Type to the Base Type when calling Build_To_Any_Call and
16424         Build_From_Any_Call.
16425         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
16426         E_Constant, depending upon Variable formal.
16427         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16428         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
16429         parameter that requires an extra constrained parameter, declare
16430         temporary for actual as a variable, not a constant.
16431         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
16432         the unit being compiled is the one that contains the stub type.
16433         Change primitive operation name for the RACW associated with a RAS
16434         from Call to _Call so it cannot clash with any legal identifier.
16435         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
16436         Is_RAS.
16437         (Append_RACW_Bodies): New subprogram.
16438         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
16439         Add_Receiving_Stubs_To_Declarations functions.
16440         When expanding a package body, this list correspond to the
16441         statements in the HSS at the end of the pacakge.
16442         When expanding a package spec, this list correspond to the
16443         spec declarations.
16444         (Add_Receiving_Stubs_To_Declarations): Append the function
16445         registering the receiving stubs at the end of the 'Stmts' list.
16446         (RCI_Package_Locator): Pass the new Version generic formal when
16447         instantiating a RCI_Locator package.
16448         (Build_From_Any_Function): To compute the High bound for an
16449         unconstrained array actual, we add the Low bound with the length.
16450         Thus we must convert the low bound and the length to an appropriate
16451         type before doing the sum.
16452         (Build_Subprogram_Receiving_Stubs, PolyORB):
16453          * Retrieve the extra formals parameters at the
16454            end of the parameter stream.
16455          * Use Move_Any_Value to write back out parameters
16456            after executing the request as it is more efficient
16457            than Copy_Any_Value.
16458          * Build the any containing Extra Formals with the
16459            appropriate typecode.
16460         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
16461         empty Component_List.
16462         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
16463         the tree the declaration for an object that serves as actual parameter
16464         in server-side stubs.
16465         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16466         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
16467         Use Build_Actual_Object_Declaration to prepare the actuals.
16468         (Add_Parameter_To_NVList): Set the parameter mode to In for
16469         Extra Constrained Parameters.
16470         (Build_General_Calling_Stubs): Set the parameter type to boolean for
16471         Extra Constrained parameters.
16472         (Build_To_Any_Function, Build_From_Any_Function,
16473         Built_TypeCode_Function): When Typ is implicit, call the correct
16474         function with the first not implicit parent type.
16475         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
16476         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
16477         typecode from the Etype. Therefore we retrieve the correct typecode
16478         with a call to Get_Any_Type.
16479         (Copy_Specification): Do controlling formal type substitution based on
16480         Is_Controlling_Formal flag, instead of caller-provided object type.
16481         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
16482         a RACW primitive operation, we might get a subprogram declaration for an
16483         ancestor of the RACW designated type (not for the designated type
16484         itself), in the case where this operation is inherited. In this case we
16485         have no easy means of determining the original tagged type for which
16486         the primitive was declared, so instead we now rely on
16487         Copy_Specification to use the Is_Controlling_Formal flag to determine
16488         which formals require type substitution.
16489
16490 2007-04-06  Robert Dewar  <dewar@adacore.com>
16491             Ed Schonberg  <schonberg@adacore.com>
16492
16493         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
16494         GNAT.Current_Exception are not allowed if pragma Restrictions
16495         (No_Exception_Propagation) is set and in any case make the associated
16496         handler unsuitable as a target for a local raise statement.
16497         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
16498         run-time subprogram CW_Membership by call to Build_CW_Membership.
16499         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
16500         by a function call, a temporary must be created before expanding the
16501         Constructor_Call itself, to prevent out-of-order elaboration in the
16502         back-end when stack checking is enabled..
16503
16504 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16505
16506         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
16507         result are the bounds of the left operand, not the right.
16508
16509 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16510
16511         * exp_strm.adb
16512         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
16513          discriminant defaults.
16514         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
16515         (Make_Component_List_Attributes): Ditto.
16516
16517 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16518             Bob Duff  <duff@adacore.com>
16519
16520         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
16521         an association with a box as providing a value even though the
16522         initialization procedure for the type is not available.
16523         (Resolve_Record_Aggregate): Check that a choice of an association with a
16524         box corresponds to a component of the type.
16525         (Resolve_Record_Aggregate): Split Is_Abstract flag into
16526         Is_Abstract_Subprogram and Is_Abstract_Type.
16527
16528         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
16529         assert.
16530
16531         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
16532         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
16533         called only when appropriate.
16534
16535 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16536
16537         * g-alleve.ads (Low Level Vector type definitions): Map each to the
16538         associated vector view instead of all to the unsigned char view.
16539
16540         * g-altcon.adb (Generic_Conversions): New internal generic package,
16541         offering facilities for all the Vector/View conversion routines
16542         implemented by this unit.
16543         (To_View/To_Vector - all versions): Reimplemented in a systematic
16544         manner, using the internal Generic_Conversions facilities.
16545
16546 2007-04-06  Pascal Obry  <obry@adacore.com>
16547
16548         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
16549         string.
16550         (Create): Free the source string before storing the new one.
16551
16552 2007-04-06  Vincent Celier  <celier@adacore.com>
16553
16554         * g-debpoo.adb (Validity): New package with a complete new
16555         implementation of subprograms Is_Valid and Set_Valid.
16556         (Is_Valid): Move to local package Validity
16557         (Set_Valid): Move to local package Validity
16558
16559 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
16560             Pablo Oliveira  <oliveira@adacore.com>
16561
16562         * g-expect.adb (Get_Command_Output): When expanding the output buffer
16563         we must ensure that there is enough place for the new data we are going
16564         to copy in.
16565
16566 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16567
16568         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
16569         computation.
16570
16571 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
16572             Vincent Celier  <celier@adacore.com>
16573
16574         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
16575         (Stack_String): Add this String that contains the name of the Stack
16576         package in the project file.
16577         (Packages_To_Check_By_Stack): Add this list that contains the packages
16578         to be checked by gnatstack, which are the naming and the stack packages.
16579         (Check_Files): If no .ci files were specified for gnatstack we add all
16580         the .ci files belonging to the projects, including binder generated
16581         files.
16582         (Non_VMS_Usage): Document that gnatstack accept project file switches.
16583         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
16584         Add gnatstack to the list of commands that use project file related
16585         switches, and get the single attribute Switches from the stack package
16586         in a project file when calling gnatstack. Parse the -U flag for
16587         processing files belonging to all projects in the project tree.
16588         Remove all processing for command Setup
16589
16590         * prj-attr.adb: Add new package Stack with single attribute Switches
16591
16592         * vms_conv.ads (Command_Type): Add command Stack.
16593         Move to body declarations that are only used in the body: types Item_Id,
16594         Translation_Type, Item_Ptr, Item and its subtypes.
16595
16596         * vms_conv.adb: (Initialize): Add data for new command Stack.
16597         Add declarations moved from the spec: types Item_Id, Translation_Type,
16598         Item_Ptr, Item and its subtypes.
16599         (Cargs_Buffer): New table
16600         (Cargs): New Boolean global variable
16601         (Process_Buffer): New procedure to create arguments
16602         (Place): Put character in table Buffer or Cargs_Buffer depending on the
16603          value of Cargs.
16604         (Process_Argument): Set Cargs when processing qualifiers for GNAT
16605         COMPILE
16606         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
16607         empty, for table Cargs_Buffer.
16608         (Initialize): Remove component Setup in Command_List
16609
16610 2007-04-06  Vincent Celier  <celier@adacore.com>
16611
16612         * gprep.adb (Process_Files.Process_One_File): Use full file name when
16613         issuing pragma Source_Reference.
16614
16615 2007-04-06  Emmanuel Briot  <briot@adacore.com>
16616
16617         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
16618         [[:xdigit:]] character class.
16619         Also raise an exception when an invalid character class is used.
16620
16621 2007-04-06  Pascal Obry  <obry@adacore.com>
16622
16623         * i-cstrea.ads: (fopen): Add encoding parameter.
16624         (freopen): Idem.
16625         Change reference from a-sysdep.c to sysdep.c in comment.
16626         Update copyright notice.
16627         This set of patch add support for the encoding form parameter.
16628
16629         * mingw32.h (S2WSU): New macro to convert from a string to a
16630         wide-string using the UTF-8 encoding. The S2WS macro supports now only
16631         standard 8bits encoding.
16632         (WS2SU): As above but converting from wide-sring to string.
16633         This is needed as it is necessary to have access to both versions in the
16634         runtime for the form parameter encoding support.
16635         This set of patch add support for the encoding form parameter.
16636         (S2WS): Improve implementation to handle cases where the filename is not
16637         UTF-8 encoded. In this case we default to using the current code page
16638         for the conversion.
16639
16640         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
16641         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
16642         the constants defined in adaint.h.
16643         (fopen): Add encoding parameter.
16644         (freopen): Idem.
16645
16646         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
16647         encoding. This is needed for the Reset routine (freopen low level-call).
16648
16649         * s-fileio.adb (Open): Decode encoding form parameter and set the
16650         corresponding encoding value into AFCB structure.
16651         (Reset): Pass the encoding value to freopen.
16652         (Close): Move the call to Lock_Task to the beginning of the procedure.
16653
16654 2007-04-06  Geert Bosch  <bosch@adacore.com>
16655             Robert Dewar  <dewar@adacore.com>
16656
16657         * i-fortra.ads: Add Double_Complex type.
16658
16659         * impunit.adb: (Is_Known_Unit): New function
16660         Add Gnat.Byte_Swapping
16661         Add GNAT.SHA1
16662         Add new Ada 2005 units
16663         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
16664         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
16665         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
16666         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
16667
16668         * impunit.ads (Is_Known_Unit): New function
16669
16670         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
16671         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
16672         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
16673         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
16674         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
16675         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
16676         New files.
16677
16678         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
16679
16680         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
16681
16682 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16683             Arnaud Charlet  <charlet@adacore.com>
16684
16685         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
16686         __gnat_adjust_context_for_raise.
16687         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
16688         implementation of floating point operations as native x86 targets.
16689         So the FPU should be initialized in the same way using finit. Fix
16690         floating point operations accuracy issues.
16691         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
16692         member in struct sigaction, so as to avoid warning for incompatible
16693         pointer types.
16694
16695 2007-04-06 Serguei Rybin  <rybin@adacore.com>
16696
16697         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
16698         switches from previously loaded tree
16699
16700 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16701
16702         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
16703         cases where a given dependency has a body or not.
16704         (Write_With_File_Names): New subprogram, common code for the two cases
16705         above.
16706
16707 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16708             Javier Miranda  <miranda@adacore.com>
16709
16710         * lib-xref.ads, lib-xref.adb:
16711         Modify the loop that collects type references, to include interface
16712         types that the type implements. List each of these interfaces when
16713         building the entry for the type.
16714         (Generate_Definition): Initialize component Def and Typ of new entry
16715         in table Xrefs, to avoid to have these components unitialized.
16716         (Output_References): Split Is_Abstract flag into
16717         Is_Abstract_Subprogram and Is_Abstract_Type.
16718         (Generate_Reference): Add barrier to do not generate the warning
16719         associated with Ada 2005 entities with entities generated by the
16720         expander.
16721
16722 2007-04-06  Robert Dewar  <dewar@adacore.com>
16723             Arnaud Charlet  <charlet@adacore.com>
16724             Vincent Celier  <celier@adacore.com>
16725
16726         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
16727         Update 'Exception Handling Control' chapter which was outdated.
16728         Minor fix to documentation of -gnatwq
16729         Remove section "Adapting the Run Time to a New C++ Compiler" because
16730         it is now obsolete.
16731         Add passage on need of -nostart-files in some non-ada-main cases.
16732         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
16733         Update documentation about Interfacing with C++
16734         Add documentation for new gnatmake switch -p
16735         Add missing protocol part in URLs.
16736         Document -gnatyA
16737         Document pragma Compile_Time_Error
16738         Add documentation for Object_Size indicating that stand alone
16739         objects can have a larger size in some cases.
16740         Add node for GNAT.Byte_Swapping, GNAT.SHA1
16741         Update reference to the Ravenscar profile.
16742         Document pragma Unreferenced_Objects
16743
16744         * gnat-style.texi: Fix typo
16745
16746 2007-04-06  Vincent Celier  <celier@adacore.com>
16747
16748         * mlib.adb (Building_Library): Only output "building a library..." in
16749         verbose mode
16750
16751         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
16752         files in verbose mode.
16753
16754         * mlib-utl.adb (Ar): Only output the first object files when not in
16755         verbose mode.
16756         (Gcc): Do not display all the object files if not in verbose mode, only
16757         the first one.
16758
16759 2007-04-06  Robert Dewar  <dewar@adacore.com>
16760
16761         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
16762         it no longer destroys the contents of Name_Buffer or Name_Len and
16763         non-standard and invalid names are handled better.
16764         (Get_Decoded_Name_String): Improve performance by using
16765         Name_Has_No_Encodings flag in the name table.
16766         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
16767         Used for debugging printouts.
16768
16769 2007-04-06  Robert Dewar  <dewar@adacore.com>
16770             Javier Miranda  <miranda@adacore.com>
16771             Bob Duff  <duff@adacore.com>
16772
16773         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
16774         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16775         there is no need to generate always a record_definition_node in case
16776         of synchronized interface types.
16777         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
16778         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
16779         illegal in Ada 95, in cases where it is legal. Change the warnings to
16780         errors in other cases. Don't give the error unless the "not null"
16781         parses properly. Correct the source position at which the error occurs.
16782         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
16783         P_Null_Exclusion, to suppress "not null" warnings.
16784         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
16785         associated goto statements.
16786
16787         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
16788         of END RECORD
16789
16790         * scans.ads (Type_Token_Location): New flag
16791
16792         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
16793         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
16794         P_Null_Exclusion, to suppress "not null" warnings.
16795
16796 2007-04-06  Robert Dewar  <dewar@adacore.com>
16797             Javier Miranda  <miranda@adacore.com>
16798             Bob Duff  <duff@adacore.com>
16799             Vincent Celier  <celier@adacore.com>
16800
16801         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
16802         (Extensions_Allowed): No longer sets Ada_Version
16803         Entry for pragma Unreferenced_Objects
16804
16805         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
16806         system.tasking if pragma priority used in a procedure
16807         (Analyze_Pragma, case Warning): Handle dot warning switches
16808         (Process_Compile_Time_Warning_Or_Error): New procedure
16809         (Analyze_Pragma): Add processing for Compile_Time_Error
16810         Add support for extra arguments External_Name and Link_Name.
16811         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
16812         (Process_Import_Or_Interface): Add support for the use of pragma Import
16813         with tagged types.
16814         (Extensions_Allowed): No longer affects Ada_Version
16815         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
16816         Is_Abstract_Type. Make sure these are called only when appropriate.
16817         Add processing for pragma Unreferenced_Objects
16818
16819         * snames.h, snames.ads, snames.adb: Add entry for pragma
16820         Compile_Time_Error
16821         Add new standard name Minimum_Binder_Options for new gprmake
16822         Add new standard names for gprmake: Archive_Suffix,
16823         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
16824         Library_Support, Library_Version_Options,
16825         Shared_Library_Minimum_Options,
16826         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
16827         Change Name_Call to Name_uCall so that it cannot clash with a legal
16828         subprogram name.
16829         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
16830         Append C_Plus_Plus to convention identifiers as synonym for CPP
16831         Add new standard names Stack and Builder_Switches
16832         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
16833         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
16834         Run_Path_Option, Toolchain_Version.
16835         Entry for pragma Unreferenced_Objects
16836
16837         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
16838         switches, without repetition of "eD". Make sure that last character of
16839         -gnatep= switch is not taken as -gnat switch character.
16840         Complete rewrite of circuit for handling saving compilation options
16841         Occasioned by need to support dot switchs for -gnatw, but cleans up
16842         things in general.
16843         -gnatX does not affect Ada_Version
16844         Include -gnatyA in -gnatg style switches
16845
16846         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
16847         warnings on return objects.
16848         (Warn_On_Useless_Assignment): Exclude warnings on return objects
16849         (Set_Dot_Warning_Switch): New procedure
16850         (Check_References): Add missing case of test for
16851         Has_Pragma_Unreferenced_Objects
16852         (Output_Unreferenced_Messages): Implement effect of new pragma
16853         Unreferenced_Objects, remove special casing of limited controlled
16854         variables.
16855
16856 2007-04-06  Vincent Celier  <celier@adacore.com>
16857
16858         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
16859         the default project path, initially done during elaboration of the
16860         package.
16861         If the prefix returned by Sdefault is null, get the prefix from a call
16862         to Executable_Prefix_Path.
16863         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
16864         null.
16865
16866         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
16867         canonical directory name to open the directory from which files are
16868         retrieved.
16869         (Record_Other_Sources): Idem.
16870         (Locate_Directory): Add the possibility to create automatically missing
16871         directories when Setup_Projects is True.
16872         Call Locate_Directory so that the directory will be created when
16873         Setup_Projects is True, for object dir, library dir, library ALI dir,
16874         library source copy dir and exec dir.
16875
16876         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
16877         versions of GNAT.
16878
16879 2007-04-06  Robert Dewar  <dewar@adacore.com>
16880
16881         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
16882         Use First/Next_Component_Or_Discriminant
16883         (Analyze_Record_Representation_Clause):
16884         Use First/Next_Component_Or_Discriminant
16885         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
16886         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
16887         definition if type is unconstrained.
16888         (Adjust_Record_For_Reverse_Bit_Order): New procedure
16889         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
16890         Is_Abstract_Subprogram and Is_Abstract_Type.
16891         (Adjust_Record_For_Reverse_Bit_Order): New procedure
16892
16893         * repinfo.adb (List_Record_Info): Use First/
16894         Next_Component_Or_Discriminant.
16895
16896         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
16897         New procedure.
16898
16899         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
16900         Include -gnatyA in default switches
16901
16902         * opt.ads: (Warn_On_Non_Local_Exception): New flag
16903         (Warn_On_Reverse_Bit_Order): New flag
16904         (Extensions_Allowed): Update the documentation.
16905         (Warn_On_Questionable_Missing_Parens): Now on by default
16906
16907         * usage.adb: Add documentation of -gnatw.x/X switches
16908         Document new -gnatyA style switch
16909         -gnatq warnings are on by default
16910
16911 2007-04-06  Ed Falis  <falis@adacore.com>
16912
16913         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
16914         full word is no longer compared twice.
16915
16916 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16917
16918         * sem_ch10.adb (Install_Limited_Context_Clauses.
16919         Expand_Limited_With_Clause): Use a new copy of selector name in the
16920         call to Make_With_Clause. This fixes the tree structure for ASIS
16921         purposes. Nothing is changed in the compiler behaviour.
16922         (Process_Body_Clauses): Handle properly use clauses whose prefix is
16923         a package renaming.
16924         (Install_Limited_With_Clauses): Do not install non-limited view when it
16925         is still incomplete.
16926
16927 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16928             Gary Dismukes  <dismukes@adacore.com>
16929
16930         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
16931         when capturing size information, instead of base type, which for a
16932         formal array type will be the unconstrained type.
16933         (Analyze_Formal_Object_Declaration): Add check for illegal default
16934         expressions for a formal in object of a limited type.
16935         (Instantiate_Object): Ditto.
16936         (Check_Formal_Package_Instance): Skip entities that are formal objects,
16937         because they were defaulted in the formal package and no check applies
16938         to them.
16939         (Check_Formal_Package_Instance): Extend conformance check to other
16940         discrete types beyond Integer.
16941         (Process_Default): Copy directly the unmatched formal. A generic copy
16942         has already been performed in Analyze_Formal_Package.
16943         (Analyze_Associations): If a formal subprogram has no match, check for
16944         partial parametrization before looking for a default, to prevent
16945         spurious errors.
16946         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
16947         not set the instantiation environment before analyzing the actuals.
16948         Fixes regression on 8515-003 with implementation of AI-133.
16949         Set_Instance_Env checks whether the generic unit is a predefined
16950         unit, in which case the instance must be analyzed with the latest Ada
16951         mode. This setting must take place after analysis of the actuals,
16952         because the actuals must be analyzed and frozen in the Ada mode extant
16953         outside of the current instantiation.
16954         (Save_Env, Restore_Env): Preserve and restore the configuration
16955         parameters so that predefined units can be compiled in the proper Ada
16956         mode.
16957         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
16958         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
16959         and Is_Abstract_Type.
16960         (Analyze_Formal_Package): For better error recovery, Add exception
16961         handler to catch Instantion_Error, which can be raised in
16962         Analyze_Associations
16963
16964 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16965             Bob Duff  <duff@adacore.com>
16966             Gary Dismukes  <dismukes@adacore.com>
16967
16968         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
16969         prefix type is a discriminated subtype of the type of the formal.
16970         (Analyze_Allocator): Collect all coextensions regardless of the context.
16971         Whether they can be allocated statically is determined in exp_ch4.
16972         (Analyze_Selected_Component): If the prefix is a limited view and the
16973         non-limited view is available, use the non-limited one.
16974         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
16975         therefore illegal), suggest a qualified expression rather than a type
16976         conversion, because a type conversion would be illegal in this context.
16977         (Anayze_Allocator): Trace recursively all nested allocators so that all
16978         coextensions are on the corresponding list for the root. Do no mark
16979         coextensions if the root allocator is within a declaration for a stack-
16980         allocated object, because the access discriminants will be allocated on
16981         the stack as well.
16982         (Analyze_Call): Remove restriction on calls to limited functions for the
16983         cases of generic actuals for formal objects, defaults for formal objects
16984         and defaults for record components.
16985         (Analyze_Allocator): Before analysis, chain coextensions on the proper
16986         element list. Their expansion is delayed until the enclosing allocator
16987         is processed and its finalization list constructed.
16988         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
16989         for an operation with the given name among the primitive operations of
16990         the corresponding record type.
16991         (Analyze_Selected_Component): If the prefix is a task type that
16992         implements an interface, and there is no entry with the given name,
16993         check whether there is another primitive operation (e.g. a function)
16994         with that name.
16995         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
16996         properly the indexing of a function call written in prefix form, where
16997         the function returns an array type, and all parameters of the function
16998         except the first have defaults.
16999         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
17000         the original operands, rather than relocating them, for efficiency and
17001         to work properly when an operand is overloaded.
17002         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
17003         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
17004         (Analyze_Selected_Component): If the prefix is a private extension, only
17005         scan the visible components, not those of the full view.
17006         (Try_Primitive_Operation): If the operation is a procedure, collect all
17007         possible interpretations, as for a function, because in the presence of
17008         classwide parameters several primitive operations of the type can match
17009         the given arguments.
17010
17011 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17012             Robert Dewar  <dewar@adacore.com>
17013
17014         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
17015         tag-indeterminate call to an abstract function, when the left-hand side
17016         is not classwide.
17017         (Analyze_Loop_Statement): Improve detection of infinite loops
17018
17019 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17020             Thomas Quinot  <quinot@adacore.com>
17021
17022         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
17023         out of Analyze_Package_Declaration, because processing must be applied
17024         to package bodies as well, for deferred constants completed by pragmas.
17025         (Analyze_Package_Declaration): When the package declaration being
17026         analyzed does not require an explicit body, call Check_Completion.
17027         (May_Need_Implicit_Body): An implicit body is required when a package
17028         spec contains the declaration of a remote access-to-classwide type.
17029         (Analyze_Package_Body): If the package contains RACWs, append the
17030         pending subprogram bodies generated by exp_dist at the end of the body.
17031         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
17032         Is_Abstract_Subprogram and Is_Abstract_Type.
17033         (Preserve_Full_Attributes): The full entity list is not an attribute
17034         that must be preserved from full to partial view.
17035
17036         * sem_dist.adb (Add_RAS_Dereference_TSS):
17037         Change primitive name to _Call so it cannot clash with any legal
17038         identifier, and be special-cased in Check_Completion.
17039         Mark the full view of the designated type for the RACW associated with
17040         a RAS as Comes_From_Source to get proper view switching when installing
17041         private declarations.
17042         Provite a placeholder nested package body along with the nested spec
17043         to have a place for Append_RACW_Bodies to generate the calling stubs
17044         and stream attributes.
17045
17046 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17047             Robert Dewar  <dewar@adacore.com>
17048
17049         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
17050         that is a limited view, check the non-limited view if available.
17051         (Undefined): Refine error message for missing with of Text_IO
17052         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
17053         to distinguish real missing with cases.
17054         Fix format of all missing with messages
17055         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
17056         renaming as body when renamed entity is abstract.
17057
17058 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17059             Javier Miranda  <miranda@adacore.com>
17060
17061         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
17062         predicate recursive, to handle complex expressions on literals whose
17063         spurious ambiguity comes from the abstract interpretation of some
17064         subexpression.
17065         (Interface_Present_In_Ancestor): Add support to concurrent record
17066         types.
17067         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
17068         Is_Abstract_Subprogram and Is_Abstract_Type.
17069
17070 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17071             Javier Miranda  <miranda@adacore.com>
17072
17073         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
17074         dereference of a local object R created as a reference to another
17075         object O, use the access level of O.
17076         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
17077         rather than local Same_Formal_Type, to check whether protected operation
17078         overrides an inherited one.
17079         (Same_Formal_Type): New predicate, used when matching signatures of
17080         overriding synchronized operations, to handle the case when a formal
17081         has a type that is a generic actual.
17082         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
17083         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
17084         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
17085         syntactic ambiguities involving indexing of function calls that return
17086         arrays.
17087         (Abstract_Interface_List): New subprogram that returns the list of
17088         abstract interfaces associated with a concurrent type or a
17089         concurrent record type.
17090         (Interface_Present_In_Parent): New subprogram used to check if a
17091         given type or some of its parents implement a given interface.
17092         (Collect_Abstract_Interfaces): Add support for concurrent types
17093         with interface types.
17094         (Has_Abstract_Interfaces): Add support for concurrent types with
17095         interface types.
17096         (Is_Parent): New subprogram that determines whether E1 is a parent
17097         of E2. For a concurrent type its parent is the first element of its
17098         list of interface types; for other types this function provides the
17099         same result than Is_Ancestor.
17100         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
17101         (Collect_Synchronized_Interfaces): Removed because the subprogram
17102         Collect_Abstract_Interfaces provides this functionality.
17103         (Collect_Abstract_Interfaces): Minor update to give support to
17104         concurrent types and thus avoid undesired code duplication.
17105         (Get_Subprogram_Entity): Handle entry calls.
17106         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
17107         entry calls.
17108         (Enter_Name): Do not give -gnatwh hiding warning for record component
17109         entities, they never result in hiding.
17110
17111 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17112             Robert Dewar  <dewar@adacore.com>
17113
17114         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
17115         to chain nested components that are allocators for access discriminants
17116         of the enclosing object.
17117         Add N_Push and N_Pop nodes
17118         New field Exception_Label added
17119         (Local_Raise_Statements): New field in N_Exception_Handler_Node
17120         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
17121         (Is_Coextension): New flag for allocators, to mark allocators that
17122         correspond to access discriminants of dynamically allocated objects.
17123         (N_Block_Statement): Document the fact that the corresponding entity
17124         can be an E_Return_Statement.
17125         (Is_Coextension): New flag for allocators.
17126         Remove all code for DSP option
17127
17128         * sprint.ads, sprint.adb: Display basic information for class_wide
17129         subtypes. Add handling of N_Push and N_Pop nodes
17130
17131 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
17132
17133         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
17134         before propagating exception.
17135
17136 2007-04-06  Olivier Hainque  <hainque@adacore.com>
17137
17138         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
17139         an address always within the call instruction from a return address.
17140
17141 2007-04-06  Olivier Hainque  <hainque@adacore.com>
17142             Eric Botcazou  <botcazou@adacore.com>
17143
17144         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
17145         expression with a COMPOUND_EXPR including the call instead of emitting
17146         the call directly here.
17147         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
17148         high bound is constant and the slice is empty.  Tidy.
17149         (tree_transform, case N_Op_Not): Handle properly the case where the
17150         operation applies to a private type whose full view is a modular type.
17151         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
17152         Address_Clause, use the associated Expression as the GNAT tree
17153         representing the choice value to ensure the corresponding GCC tree is
17154         of the proper kind.
17155         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
17156         instead of just the operands, as the base GCC stabilize_reference does.
17157         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
17158         requested; otherwise fail.
17159         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
17160
17161 2007-04-06  Thomas Quinot  <quinot@adacore.com>
17162
17163         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
17164         implementation of UI_Div.
17165         (UI_Div): Reimplement as a call to UI_Div_Rem.
17166         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
17167         remainder, avoiding the cost of a multiplication and a subtraction.
17168         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
17169         provides both quotient and remainder in a single computation.
17170         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
17171         functions for uint.
17172         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
17173         is undefined if the given n is not inversible.
17174
17175 2007-04-06  Olivier Hainque  <hainque@adacore.com>
17176
17177         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
17178         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
17179         opcodes.
17180
17181 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
17182             Olivier Hainque  <hainque@adacore.com>
17183
17184         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
17185         when updating the contents of the old pointer to an unconstrained array.
17186         (end_subprog_body): Set error_gnat_node to Empty.
17187         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
17188         (unchecked_convert): For subtype to base type conversions, require that
17189         the source be a subtype if it is an integer type.
17190         (builtin_decls): New global, vector of available builtin functions.
17191         (gnat_pushdecl): Add global builtin function declaration nodes to the
17192         builtin_decls list.
17193         (gnat_install_builtins): Adjust comments.
17194         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
17195         calling gnat_pushdecl, so that it knows when it handed a builtin
17196         function declaration node.
17197         (builtin_decl_for): Search the builtin_decls list.
17198
17199 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
17200
17201         * s-stchop-vxworks.adb:
17202         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
17203
17204 2007-04-06  Robert Dewar  <dewar@adacore.com>
17205             Arnaud Charlet  <charlet@adacore.com>
17206
17207         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
17208
17209         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
17210         of files
17211         Add mention of -Sev (set initialize_scalars option from environment
17212         variable at run time) in gnatbind usage message.
17213
17214         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
17215
17216         * fname-uf.ads: Minor comment fix
17217
17218         * osint.ads: Change pragma Elaborate to Elaborate_All
17219
17220         * par-load.adb: Add documentation.
17221
17222         * sem_cat.ads, sem_cat.adb: Minor code reorganization
17223
17224         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
17225
17226         * s-secsta.ads: Extra comments
17227
17228         * s-soflin.ads: Minor comment fixes
17229
17230         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
17231
17232         * s-wchcon.ads: Minor comment addition
17233
17234         * treepr.adb: Minor change in message
17235         (Print_Name,Print_Node): Make these debug printouts more robust: print
17236         "no such..." instead of crashing on bad input.
17237
17238 2007-03-30  Rafael Ávila de Espíndola  <espindola@google.com>
17239
17240         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
17241         instead of gnat_signed_or_unsigned_type.
17242         * utils.c (gnat_signed_or_unsigned_type): Remove.
17243         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
17244         * gigi.h (gnat_signed_or_unsigned_type): Remove
17245
17246 2007-03-09  Roger Sayle  <roger@eyesopen.com>
17247
17248         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
17249         fold with the result of buildN.
17250         * decl.c (gnat_to_gnu_entity): Likewise.
17251         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
17252         * utils.c (finish_record_type, merge_sizes, max_size, convert):
17253         Likewise.
17254         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
17255         nonbinary_modular_operation, build_binary_op, build_unary_op,
17256         build_cond_expr): Likewise.
17257
17258         * utils.c (convert): Use fold_build1 when casting values to void.
17259         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
17260         fold_convert instead of convert when appropriate.
17261
17262 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
17263
17264         * Make-lang.in: Add install-pdf target as copied from
17265         automake v1.10 rules.
17266
17267 2007-02-28  Andreas Schwab  <schwab@suse.de>
17268
17269         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
17270         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
17271         (doc/gnat-style.info): Likewise.
17272
17273 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
17274
17275         * gnat-style.texi: Standardize title page.
17276         * gnat_rm.texi: Likewise.
17277         * gnat_ugn.texi: Likewise.
17278
17279 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
17280
17281         * decl.c (annotate_value): Adjust for refactoring of tree_map
17282         hierarchy.
17283
17284 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
17285
17286         * decl.c (annotate_value): Adjust for refactoring of tree_map
17287         hierarchy.
17288
17289 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
17290
17291         PR ada/18819
17292         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
17293         untagged derived type, add hidden components to keep discriminant
17294         layout consistent, when a given discriminant of the derived type
17295         constraints several discriminants of the parent type.
17296
17297 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
17298             Sandra Loosemore  <sandra@codesourcery.com>
17299
17300         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
17301         build the call expression.
17302         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
17303         * utils.c (max_size) <tcc_exceptional>: Delete.
17304         <tcc_vl_exp>: New case.
17305         <tcc_expression>: Delete CALL_EXPR subcase.
17306         (build_global_cdtor): Use build_call_nary instead of build3.
17307         * utils2.c (build_call_1_expr): Likewise.
17308         (build_call_2_expr): Likewise.
17309         (build_call_0_expr): Likewise.
17310         (build_call_alloc_dealloc): Likewise.
17311
17312 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
17313
17314         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
17315         get_action_description_for): Replace _Unwind_Word with _uleb128_t
17316         and _Unwind_SWord with _sleb128_t.
17317
17318 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
17319
17320         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
17321         * decl.c: Include gt-ada-decl.h.
17322         (annotate_value_cache): New.
17323         (annotate_value): Use it instead of TREE_COMPLEXITY.
17324
17325 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
17326
17327         * misc.c, utils2.c: Fix comment typos.
17328
17329 2007-01-24  Roger Sayle  <roger@eyesopen.com>
17330
17331         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
17332         TREE_CONSTANT_OVERFLOW.
17333         (allocatable_size_p, annotate_value): Likewise.
17334         * trans.c (gnat_to_gnu): Likewise.
17335         * utils.c (unchecked_convert): Likewise.
17336         * utils2.c (build_simple_component_ref): Likewise.
17337
17338 2007-01-23  Richard Guenther  <rguenther@suse.de>
17339
17340         PR bootstrap/30541
17341         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
17342         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
17343         (gnatboot3): Likewise.
17344         (GNATBIND): Do not define.
17345         * Makefile.in (GNATBIND): Do not define.
17346
17347 2007-01-08  Richard Guenther  <rguenther@suse.de>
17348
17349         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
17350         * trans.c (gnat_to_gnu): Likewise.
17351
17352 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
17353
17354         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
17355         * adaint.c: Likewise.
17356
17357 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
17358
17359         Merge from gimple-tuples-branch:
17360         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
17361
17362         * ada-tree.h (lang_tree_node): Handle gimple tuples.
17363         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
17364         GIMPLE_MODIFY_STMT.
17365
17366 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
17367
17368         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
17369         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
17370         Fix typos.
17371
17372 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
17373
17374         PR ada/27936
17375         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
17376         if the initializer takes into account the padding.
17377
17378 2006-11-11  Richard Guenther  <rguenther@suse.de>
17379
17380         * trans.c (maybe_stabilize_reference): Remove handling of
17381         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
17382
17383 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
17384
17385         PR ada/29707
17386         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
17387         (To_Target_Priority): New function.
17388
17389 2006-10-31  Robert Dewar  <dewar@adacore.com>
17390
17391         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
17392         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
17393         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
17394         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
17395         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
17396         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
17397         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
17398         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
17399         a-szbzha.adb: Minor reformatting. Fix header.
17400
17401         * a-numaux-x86.adb: Add parentheses for use of unary minus
17402         * a-ngcefu.adb: Supply missing parentheses for unary minus
17403         * a-ngcoty.adb: Add parens for use of unary minus
17404         * a-ngelfu.adb: Add missing parens for unary minus
17405         * a-tifiio.adb: Add parentheses for uses of unary minus
17406
17407 2006-10-31  Robert Dewar  <dewar@adacore.com>
17408             Bob Duff  <duff@adacore.com>
17409             Ed Schonberg  <schonberg@adacore.com>
17410
17411         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
17412         with multiplying operator.
17413         (Expected_Type_Is_Any_Real): New function to determine from the Parent
17414         pointer whether the context expects "any real type".
17415         (Resolve_Arithmetic_Op): Do not give an error on calls to the
17416         universal_fixed "*" and "/" operators when they are used in a context
17417         that expects any real type. Also set the type of the node to
17418         Universal_Real in this case, because downstream processing requires it
17419         (mainly static expression evaluation).
17420         Reword some continuation messages
17421         Add some \\ sequences to continuation messages
17422         (Resolve_Call): Refine infinite recursion case. The test has been
17423         sharpened to eliminate some false positives.
17424         Check for Current_Task usage now includes entry barrier, and is now a
17425         warning, not an error.
17426         (Resolve): If the call is ambiguous, indicate whether an interpretation
17427         is an inherited operation.
17428         (Check_Aggr): When resolving aggregates, skip associations with a box,
17429         which are priori correct, and will be replaced by an actual default
17430         expression in the course of expansion.
17431         (Resolve_Type_Conversion): Add missing support for conversion from
17432         a class-wide interface to a tagged type. Minor code cleanup.
17433         (Valid_Tagged_Converion): Add support for abstact interface type
17434         conversions.
17435         (Resolve_Selected_Component): Call Generate_Reference here rather than
17436         during analysis, and use May_Be_Lvalue to distinguish read/write.
17437         (Valid_Array_Conversion): New procedure, abstracted from
17438         Valid_Conversion, to incorporate accessibility checks for arrays of
17439         anonymous access types.
17440         (Valid_Conversion): For a conversion to a numeric type occurring in an
17441         instance or inlined body, no need to check that the operand type is
17442         numeric, since this has been checked during analysis of the template.
17443         Remove legacy test for scope name Unchecked_Conversion.
17444
17445         * sem_res.ads: Minor reformatting
17446
17447         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
17448         (PE_Current_Task_In_Entry_Body): New exception code
17449         (SE_Restriction_Violation): Removed, not used
17450
17451         * a-except.ads:  Update comments.
17452
17453         * types.h, types.ads: Add definition for Validity_Check
17454         (PE_Current_Task_In_Entry_Body): New exception code
17455         (SE_Restriction_Violation): Removed, not used
17456
17457 2006-10-31  Thomas Quinot  <quinot@adacore.com>
17458
17459         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
17460         error status.
17461
17462 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
17463             Jose Ruiz  <ruiz@adacore.com>
17464
17465         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
17466         part of Ada.Calendar: all subprogram raise Unimplemented.
17467         (Split_W_Offset): Temp function body, raising Unimplemented
17468
17469         * a-calend.ads, a-calend-vms.ads:
17470         Add imported variable Invalid_TZ_Offset used to designate targets unable
17471         to support time zones.
17472         (Unimplemented): Temporary function raised by the body of new
17473         subprograms below.
17474         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
17475         unit provides handling of leap seconds and is used by the new Ada 2005
17476         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
17477         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
17478         version returns an extra value which is the offset to UTC.
17479
17480         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
17481         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
17482         (Split_W_Offset): New function body.
17483         (Time_Of): When a date is close to UNIX epoch, compute the time for
17484         that date plus one day (that amount is later substracted after
17485         executing mktime) so there are no problems with time zone adjustments.
17486
17487         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
17488
17489         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
17490         a-catizo.ads, a-catizo.adb: New files.
17491
17492         * impunit.adb: Add new Ada 2005 entries
17493
17494         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
17495         Rename all occurences of "__gnat_localtime_r" to
17496         "__gnat_localtime_tzoff".
17497         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
17498         zone data and calculate the GMT offset.
17499         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
17500         Use the field "tm_gmtoff" to extract the GMT offset.
17501         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
17502         the external variable "timezone" to calculate the GMT offset.
17503
17504 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
17505             Jose Ruiz  <ruiz@adacore.com>
17506
17507         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
17508         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
17509         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
17510         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
17511         System.Any_Priority to a POSIX priority on the target.
17512
17513         * system-linux-ia64.ads:
17514         Extend range of Priority types on Linux to use the whole range made
17515         available by the system.
17516
17517         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
17518         function maps from System.Any_Priority to a POSIX priority on the
17519         target.
17520         (PTHREAD_PRIO_PROTECT): Set real value.
17521         (PTHREAD_PRIO_INHERIT): Now a function.
17522         (SIGCPUFAIL): New signal.
17523         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
17524         are documented as reserved by the OS.
17525
17526         * system-aix.ads: Use the full range of priorities provided by the
17527         system on AIX.
17528
17529         * s-taprop-posix.adb: Call new function To_Target_Priority.
17530         (Set_Priority): Take into account Task_Dispatching_Policy and
17531         Priority_Specific_Dispatching pragmas when determining if Round Robin
17532         must be used for scheduling the task.
17533
17534         * system-linux-x86_64.ads, system-linux-x86.ads,
17535         system-linux-ppc.ads: Extend range of Priority types on Linux to use
17536         the whole range made available by the system.
17537
17538         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
17539         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
17540         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
17541         when deallocating the TCB in order to avoid potential references to
17542         deallocated data.
17543         (Set_Priority): Take into account Task_Dispatching_Policy and
17544         Priority_Specific_Dispatching pragmas when determining if Round Robin
17545         or FIFO within priorities must be used for scheduling the task.
17546
17547         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
17548         the Thread field (to be used internally by the run-time system) and the
17549         kernel-level task id in the LWP field (to be used by the debugger).
17550         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
17551         instance, and propagate the current task options to the spawned task.
17552         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
17553         (Initialize): Set Round Robin dispatching when the corresponding pragma
17554         is in effect.
17555
17556 2006-10-31  Robert Dewar  <dewar@adacore.com>
17557
17558         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
17559         system-linux-hppa.ads, system-hpux-ia64.ads,
17560         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
17561         system-vxworks-sparcv9.ads, system-solaris-x86.ads,
17562         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
17563         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
17564         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
17565         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
17566         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
17567         Default_Bit_Order) to kill constant condition warnings for references
17568         to this switch.
17569
17570 2006-10-31  Vincent Celier  <celier@adacore.com>
17571             Eric Botcazou  <ebotcazou@adacore.com>
17572
17573         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
17574         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
17575         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
17576         Ext_To, when building the library file name
17577
17578         * mlib-tgt-vxworks.adb: ditto.
17579         (Get_Target_Suffix): Add support for x86 targets.
17580
17581         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
17582
17583         * mlib-tgt-darwin.adb:
17584         Use Append_To, instead of Ext_To, when building the library file name
17585         (Flat_Namespace): New global variable.
17586         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
17587         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
17588         (Link_Shared_Libgcc): Delete.
17589         (Build_Dynamic_Library): Adjust for above changes.
17590         Use Opt package.
17591         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
17592
17593 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
17594
17595         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
17596         (Initialize): Add type conversions required by above change.
17597
17598 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
17599
17600         * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
17601         (getpid): New body for this function that uses the underlying taskIdSelf
17602         function for VxWorks 5 and VxWorks 6 in kernel mode.
17603         (unsigned_int): New type, modular to allow logical bit operations.
17604         (taskOptionsGet): New imported function.
17605
17606         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
17607         field to be compliant with the type used by the corresponding operating
17608         system primitive.
17609
17610 2006-10-31  Pascal Obry  <obry@adacore.com>
17611             Eric Botcazou  <ebotcazou@adacore.com>
17612             Vincent Celier  <celier@adacore.com>
17613
17614         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
17615         ASCII version of the registry API. This is needed as the GNAT runtime
17616         is now UNICODE by default.
17617         Include version.h.
17618         (get_gcc_version): Do not hardcode the return value.
17619         (__gnat_file_time_name): On Windows properly set the default returned
17620         value to -1 which corresponds to Invalid_Time.
17621         (__gnat_fopen): New routine. A simple wrapper on all plateforms
17622          except on Windows where it does conversion for unicode support.
17623         (__gnat_freopen): Idem.
17624         (__gnat_locate_exec_on_path): If environment variable PATH does not
17625         exist, return a NULL pointer
17626
17627         * adaint.h: (__gnat_fopen): Declare.
17628         (__gnat_freopen): Likewise.
17629
17630         * mingw32.h (_tfreopen): Define this macro here for older MingW
17631         version.
17632         Activate the unicode support on platforms using a MingW runtime
17633         version 3.9 or newer.
17634
17635         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
17636         This is needed for proper unicode support on Windows.
17637         (freopen): Idem.
17638
17639 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
17640             Nicolas Setton  <setton@adacore.com>
17641             Olivier Hainque  <hainque@adacore.com>
17642             Gary Dismukes  <dismukes@adacore.com>
17643
17644         * gigi.h: (tree_code_for_record_type): Declare.
17645         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
17646         (get_global_renaming_pointers): Rename to
17647         invalidate_global_renaming_pointers.
17648         (static_ctors): Delete.
17649         (static_dtors): Likewise.
17650         (gnat_write_global_declarations): Declare.
17651         (create_var_decl): Adjust descriptive comment to indicate that the
17652         subprogram may return a CONST_DECL node.
17653         (create_true_var_decl): Declare new function, similar to
17654         create_var_decl but forcing the creation of a VAR_DECL node.
17655         (get_global_renaming_pointers): Declare.
17656         (add_global_renaming_pointer): Likewise.
17657
17658         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
17659
17660         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
17661         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
17662         processing.
17663         (gnat_to_gnu_entity): Remove From_With_Type from computation for
17664         imported_p.
17665         <E_Access_Type>: Use the Non_Limited_View as the full view of the
17666         designated type if the pointer comes from a limited_with clause.  Make
17667         incomplete designated type if it is in the main unit and has a freeze
17668         node.
17669         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
17670         Underlying_Full_View similarly.  Return earlier if the full view already
17671         has an associated tree.
17672         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
17673         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
17674         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
17675         reference type built for objects with an address clause.
17676         Use create_true_var_decl with const_flag set for
17677         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
17678         TREE_READONLY set.
17679         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
17680         for Character and Wide_Character types. This info is read by the
17681         dwarf-2 writer, and is needed to be able to use the command "ptype
17682         character" in the debugger.
17683         (gnat_to_gnu_entity): When generating a type representing
17684         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
17685         so that debug writers can distinguish it from ordinary integers.
17686         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
17687         addition to TREE_READONLY to assert the constantness of variables for
17688         elaboration purposes.
17689         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
17690         parameters to call new Einfo function First_Formal_With_Extras.
17691         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
17692         protected type with its corresponding discriminant, to obtain a usable
17693         declaration
17694         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
17695         for a multiple elaboration of the "equivalent" type.
17696         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
17697         into record_global_renaming_pointer.
17698         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
17699         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
17700         <E_Array_Subtype>: Likewise.
17701         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
17702         incomplete subtypes and incomplete subtypes of incomplete types visible
17703         through a limited with clause.
17704         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
17705         the base index type for the maximum size of the array only if they are
17706         constant.
17707         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
17708         expression into a SAVE_EXPR if stabilization failed.
17709
17710         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
17711         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
17712         by lower level compilation passes.
17713         (gnat_genericize): New function, lowering a function body to GENERIC.
17714         Turn the type of RESULT_DECL into a real reference type if the decl
17715         has been marked DECL_BY_REFERENCE, and adjust references to the latter
17716         accordingly.
17717         (gnat_genericize_r): New function. Tree walking callback for
17718         gnat_genericize.
17719         (convert_from_reference, is_byref_result): New functions. Helpers for
17720         gnat_genericize_r.
17721         (create_type_decl): Call gnat_pushdecl before calling
17722         rest_of_decl_compilation, to make sure that field TYPE_NAME of
17723         type_decl is properly set before calling the debug information writers.
17724         (write_record_type_debug_info): The heuristics which compute the
17725         alignment of a field in a variant record might not be accurate. Add a
17726         safety test to make sure no alignment is set to a smaller value than
17727         the alignment of the field type.
17728         (make_dummy_type): Use the Non_Limited_View as the underlying type if
17729         the type comes from a limited_with clause. Do not loop on the full view.
17730         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
17731         (dummy_node_table): New global variable, moved from decl.c.
17732         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
17733         (save_gnu_tree): Use above macros.
17734         (get_gnu_tree): Likewise.
17735         (present_gnu_tree): Likewise.
17736         (init_dummy_type): New function, moved from decl.c. Use above macros.
17737         (make_dummy_type): Likewise.
17738         (tree_code_for_record_type): New function extracted from make_dummy_type
17739         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
17740         (static_ctors): Change it to a vector, make static.
17741         (static_dtors): Likewise.
17742         (end_subprog_body): Adjust for above change.
17743         (build_global_cdtor): Moved from trans.c.
17744         (gnat_write_global_declarations): Emit global constructor and
17745         destructor, and call cgraph_optimize before emitting debug info for
17746         global declarations.
17747         (global_decls): New global variable.
17748         (gnat_pushdecl): Store the global declarations in global_decls, for
17749         later use.
17750         (gnat_write_global_declarations): Emit debug information for global
17751          declarations.
17752         (create_var_decl_1): Former create_var_decl, with an extra argument to
17753          state whether the creation of a CONST_DECL is allowed.
17754         (create_var_decl): Behavior unchanged. Now a wrapper around
17755         create_var_decl_1 allowing CONST_DECL creation.
17756         (create_true_var_decl): New function, similar to create_var_decl but
17757         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
17758         (create_field_decl): Do not always mark the field as addressable
17759         if its type is an aggregate.
17760         (global_renaming_pointers): New static variable.
17761         (add_global_renaming_pointer): New function.
17762         (get_global_renaming_pointers): Likewise.
17763
17764         * misc.c (gnat_dwarf_name): New function.
17765         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
17766         (gnat_post_options): Add comment about structural alias analysis.
17767         (gnat_parse_file): Do not call cgraph_optimize here.
17768         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
17769
17770         * trans.c (process_freeze_entity): Don't abort if we already have a
17771         non dummy GCC tree for a Concurrent_Record_Type, as it might
17772         legitimately have been elaborated while processing the associated
17773         Concurrent_Type prior to this explicit freeze node.
17774         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
17775         exception handler volatile if it is of variable size.
17776         (process_type): Remove bypass for types coming from a limited_with
17777         clause.
17778         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
17779         actual, convert the corresponding gnu_actual to the real destination
17780         type when necessary.
17781         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
17782         originally TREE_READONLY but whose elaboration cannot be performed
17783         statically.
17784         Part of fix for F504-021.
17785         (tree_transform, subprogram cases): Change loops on formal parameters to
17786         call new Einfo function First_Formal_With_Extras.
17787         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
17788         stemming from type conversion for the lhs.
17789         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
17790         number of bits per unit for components of records.
17791         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
17792         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
17793         with At_End_Proc after the SJLJ EH cleanup.
17794         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
17795         compilation unit.
17796         (elaborate_all_entities): Do not retest type_annotate_only.
17797         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
17798         result type of an abstract subprogram, which may be an itype associated
17799         with an anonymous access result (related to AI-318-02).
17800         (build_global_cdtor): Move to utils.c.
17801         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
17802         this choice is not a null tree nor an integer constant.
17803         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
17804         on the body of elaboration routines instead of mark_unvisited.
17805         (add_stmt): Do not mark the tree.
17806         (add_decl_expr): Tweak comment.
17807         (mark_unvisited): Delete.
17808         (unshare_save_expr): New static function.
17809         (call_to_gnu): Issue an error when making a temporary around a
17810         procedure call because of non-addressable actual parameter if the
17811         type of the formal is by_reference.
17812         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
17813         after building the elaboration routine.
17814
17815 2006-10-31  Bob Duff  <duff@adacore.com>
17816
17817         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
17818         as finalization-started, so we can raise Program_Error on 'new'.
17819
17820         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
17821         collection has already started.
17822
17823         * s-finimp.ads (Collection_Finalization_Started): Added new special
17824         flag value for indicating that a collection's finalization has started.
17825
17826         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
17827         create a task whose master has already waited for dependent tasks.
17828
17829 2006-10-31  Robert Dewar  <dewar@adacore.com>
17830
17831         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
17832
17833         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
17834         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
17835         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
17836         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
17837         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
17838         a-except-2005.ads: Add pragma Preelaborable_Warning
17839
17840 2006-10-31  Robert Dewar  <dewar@adacore.com>
17841             Jose Ruiz  <ruiz@adacore.com>
17842
17843         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
17844
17845         * ali.adb (Get_Name): Properly handle scanning of wide character names
17846         encoded with brackets notation.
17847         (Known_ALI_Lines): Add S lines to this list.
17848         (Scan_ALI): Acquire S (priority specific dispatching) lines.
17849         New flag Elaborate_All_Desirable in unit table
17850
17851         * ali.ads (Priority_Specific_Dispatching): Add this range of
17852         identifiers to be used for Priority_Specific_Dispatching table entries.
17853         (ALIs_Record): Add First_Specific_Dispatching and
17854         Last_Specific_Dispatching that point to the first and last entries
17855         respectively in the priority specific dispatching table for this unit.
17856         (Specific_Dispatching): Add this table for storing each S (priority
17857         specific dispatching) line encountered in the input ALI file.
17858         New flag Elaborate_All_Desirable in unit table
17859
17860         * bcheck.adb: (Check_Configuration_Consistency): Add call to
17861         Check_Consistent_Dispatching_Policy.
17862         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
17863         verifying that the use of Priority_Specific_Dispatching,
17864         Task_Dispatching_Policy, and Locking_Policy is consistent across the
17865         partition.
17866
17867         * bindgen.adb: (Public_Version_Warning): function removed.
17868         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
17869         required information from ALI files in order to initialize the table
17870         containing the specific dispatching policy.
17871         (Gen_Adainit_Ada): Generate the variables required for priority specific
17872         dispatching entries (__gl_priority_specific_dispatching and
17873         __gl_num_specific_dispatching).
17874         (Gen_Adainit_C): Generate the variables required for priority specific
17875         dispatching entries (__gl_priority_specific_dispatching and
17876         __gl_num_specific_dispatching).
17877         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
17878         pragma entries.
17879         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
17880         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
17881         (Tab_To): Removed.
17882         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
17883         a call to gnat_set_globals.
17884         Generate a string containing settings from
17885         Priority_Specific_Dispatching pragma entries.
17886         (Gen_Object_Files_Options): Do not include the runtime libraries when
17887         pragma No_Run_Time is specified.
17888
17889         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
17890         consistency with s-intman-posix.adb.
17891         (__gnat_error_handler, case FreeBSD): Account for the fact that the
17892         handler is installed with SA_SIGINFO.
17893         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
17894         FreeBSD ZCX support, copied from Linux version.
17895         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
17896         sigfillset, and sigemptyset so the routines defined by MaRTE.
17897         (__gl_priority_specific_dispatching): Add this variable that stores the
17898         string containing priority specific dispatching policies in the
17899         partition.
17900         (__gl_num_specific_dispatching): Add this variable that indicates the
17901         highest priority for which a priority specific dispatching pragma
17902         applies.
17903         (__gnat_get_specific_dispatching): Add this routine that returns the
17904         priority specific dispatching policy, as set by a
17905         Priority_Specific_Dispatching pragma appearing anywhere in the current
17906         partition. The input argument is the priority number, and the result
17907         is the upper case first character of the policy name.
17908         (__gnat_set_globals): Now a dummy function.
17909         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
17910         mechargs instead of sigargs, as the latter can be retrieved from the
17911         former and sigargs is not what we want on ia64.
17912         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
17913         mechargs argument.
17914         (__gnat_adjust_context_for_raise, ia64-vms): New function.
17915         (tasking_error): Remove unused symbol.
17916         (_abort_signal): Move this symbol to the IRIX specific part since this
17917         is the only target that uses this definition.
17918         (Check_Abort_Status): Move this symbol to the IRIX specific part since
17919         this is the only target that uses this definition.
17920         (Lock_Task): Remove unused symbol.
17921         (Unlock_Task): Remove unused symbol.
17922
17923         * lib-writ.adb (Write_ALI): Output new S lines for
17924         Priority_Specific_Dispatching pragmas.
17925         Implement new flag BD for elaborate body desirable
17926
17927         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
17928         (Specific_Dispatching): Add this table for storing the entries
17929         corresponding to Priority_Specific_Dispatching pragmas.
17930         Document new BD flag for elaborate body desirable
17931
17932         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
17933         of known pragmas.
17934
17935 2006-10-31  Javier Miranda  <miranda@adacore.com>
17936
17937         * a-tags.ads, a-tags.adb:
17938         (Predefined_DT): New function that improves readability of the code.
17939         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
17940         Inherit_DT): Use the new function Predefined_DT to improve code
17941         readability.
17942         (Register_Interface_Tag): Update assertion.
17943         (Set_Interface_Table): Update assertion.
17944         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
17945         determining progenitor interfaces in Tags.
17946         (Inherit_CPP_DT): New subprogram.
17947
17948         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
17949         analysis of the thunk code.
17950         (Expand_Interface_Conversion): Handle run-time conversion of
17951         access to class wide types.
17952         (Expand_Dispatching_Call): When generating the profile for the
17953         subprogram itype for a dispatching operation, properly terminate the
17954         formal parameters chaind list (set the Next_Entity of the last formal
17955         to Empty).
17956         (Collect_All_Interfaces): Removed. This routine has been moved to
17957         sem_util and renamed as Collect_All_Abstract_Interfaces.
17958         (Set_All_DT_Position): Hidden entities associated with abstract
17959         interface primitives are not taken into account in the check for
17960         3.9.3(10); this check is done with the aliased entity.
17961         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
17962         interfacing with CPP by default.
17963         (Expand_Interface_Conversion): Add missing support for static conversion
17964         from an interface to a tagged type.
17965         (Collect_All_Interfaces): Add new out formal containing the list of
17966         abstract interface types to cleanup the subprogram Make_DT.
17967         (Make_DT): Update the code to generate the table of interfaces in case
17968         of abstract interface types.
17969         (Is_Predefined_Dispatching_Alias): New function that returns true if
17970         a primitive is not a predefined dispatching primitive but it is an
17971         alias of a predefined dispatching primitive.
17972         (Make_DT): If the ancestor of the type is a CPP_Class and we are
17973         compiling under full ABI compatibility mode we avoid the generation of
17974         calls to run-time services that fill the dispatch tables because under
17975         this mode we currently inherit the dispatch tables in the IP subprogram.
17976         (Write_DT): Emit an "is null" indication for a null procedure primitive.
17977         (Expand_Interface_Conversion): Use an address as the type of the formal
17978         of the internally built function that handles the case in which the
17979         target type is an access type.
17980
17981 2006-10-31  Robert Dewar  <dewar@adacore.com>
17982
17983         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
17984
17985 2006-10-31  Robert Dewar  <dewar@adacore.com>
17986
17987         * bindusg.ads, bindusg.adb:
17988         Change to package and rename procedure as Display, which
17989         now ensures that it only outputs usage information once.
17990
17991 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
17992
17993         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
17994         using RTPs.
17995
17996         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
17997         when using RTPs.
17998
17999 2006-10-31  Robert Dewar  <dewar@adacore.com>
18000             Ed Schonberg  <schonberg@adacore.com>
18001
18002         * treepr.adb: Use new subtype N_Membership_Test
18003
18004         * checks.ads, checks.adb: Add definition for Validity_Check
18005         (Range_Or_Validity_Checks_Suppressed): New function
18006         (Ensure_Valid): Test Validity_Check suppressed
18007         (Insert_Valid_Check): Test Validity_Check suppressed
18008         (Insert_Valid_Check): Preserve Do_Range_Check flag
18009         (Validity_Check_Range): New procedure
18010         (Expr_Known_Valid): Result of membership test is always valid
18011         (Selected_Range_Checks): Range checks cannot be applied to discriminants
18012         by themselves. Disabling those checks must also be done for task types,
18013         where discriminants may be used for the bounds of entry families.
18014         (Apply_Address_Clause_Check): Remove side-effects if address expression
18015         is non-static and is not the name of a declared constant.
18016         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
18017         Code cleanup and new error messages.
18018         (Enable_Range_Check): Test for some cases of suppressed checks
18019         (Generate_Index_Checks): Suppress index checks if index checks are
18020         suppressed for array object or array type.
18021         (Apply_Selected_Length_Checks): Give warning for compile-time detected
18022         length check failure, even if checks are off.
18023         (Ensure_Valid): Do not generate a check on an indexed component whose
18024         prefix is a packed boolean array.
18025         * checks.adb: (Alignment_Checks_Suppressed): New function
18026         (Apply_Address_Clause_Check): New procedure, this is a completely
18027         rewritten replacement for Apply_Alignment_Check
18028         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
18029         we request a discriminal value only in case of discriminants.
18030         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
18031         assignments where the target subtype is unconstrained and the target
18032         object is a parameter or dereference (other aliased cases are known
18033         to be unconstrained).
18034
18035 2006-10-31  Robert Dewar  <dewar@adacore.com>
18036
18037         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
18038         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
18039         vms_conv.adb: Fix bad table increment values (much too small)
18040
18041         * table.adb (Realloc): Make sure we get at least some new elements
18042         Defends against silly small values for table increment
18043
18044 2006-10-31  Robert Dewar  <dewar@adacore.com>
18045             Ed Schonberg  <schonberg@adacore.com>
18046             Bob Duff  <duff@adacore.com>
18047
18048         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
18049         entities. Move other fields around to make this possible
18050         (Is_Derived_Type): Add missing call to Is_Type.
18051         (Extra_Formals): New function for subprograms, entries, subprogram
18052         types.
18053         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
18054         (First_Formal_With_Extras): New function for subprogs, entries, subp
18055         types.
18056         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
18057         Add node information for E_Return_Statement.
18058         (Elaborate_Body_Desirable): New flag
18059         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
18060         to be Is_Inherently_Limited_Type, because return-by-reference has
18061         no meaning in Ada 2005.
18062         (E_Return_Statement): New entity kind.
18063         (Return_Applies_To): Field of E_Return_Statement.
18064         (Is_Return_Object): New flag in object entities.
18065         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
18066         (Must_Have_Preelab_Init): New flag
18067         (Known_To_Have_Preelab_Init): New flag
18068         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
18069         (Is_Visible_Formal): New flag on entities in formal packages.
18070         (Low_Bound_Known): New flag
18071         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
18072         Incomplete_Kind.
18073         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
18074         output when Id is an incomplete subtype.
18075
18076 2006-10-31  Robert Dewar  <dewar@adacore.com>
18077
18078         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
18079         Avoid abbreviation Creat
18080         (Finalize): List all sources in extended mail source if -gnatl
18081         switch is active.
18082         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
18083         (Finalize): Implement new -gnatl=xxx switch to output listing to file
18084         (Set_Specific_Warning_On): New procedure
18085         (Set_Specific_Warning_Off): New procedure
18086         Add implementation of new insertion \\
18087         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
18088         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
18089         types.
18090         (Error_Msg_Internal): Make sure that we set Last_Killed to
18091         True when a message from another package is suppressed.
18092         Implement insertion character ~ (insert string)
18093         (First_Node): Minor adjustments to get better placement.
18094
18095         * frontend.adb:
18096         Implement new -gnatl=xxx switch to output listing to file
18097
18098         * gnat1drv.adb:
18099         Implement new -gnatl=xxx switch to output listing to file
18100
18101         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
18102         (Commands_To_Stdout): New flag
18103         Implement new -gnatl=xxx switch to output listing to file
18104         New switch Dump_Source_Text
18105         (Warn_On_Deleted_Code): New warning flag for -gnatwt
18106         Define Error_Msg_Line_Length
18107         (Warn_On_Assumed_Low_Bound): New switch
18108
18109         * osint.ads, osint.adb
18110         (Normalize_Directory_Name): Fix bug.
18111         Implement new -gnatl=xxx switch to output listing to file
18112         (Concat): Removed, replaced by real concatenation
18113         Make use of concatenation now allowed in compiler
18114         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
18115         we find the 'lib' or 'bin' directory even when the tool has been
18116         invoked with a relative path.
18117         (Executable_Name): New function taking string parameters.
18118
18119         * osint-c.ads, osint-c.adb:
18120         Implement new -gnatl=xxx switch to output listing to file
18121
18122         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
18123
18124         * switch-c.adb:
18125         Implement new -gnatl=xxx switch to output listing to file
18126         Recognize new -gnatL switch
18127         (no longer keep in old warning about old style usage)
18128         Use concatenation to simplify code
18129         Recognize -gnatjnn switch
18130         (Scan_Front_End_Switches): Clean up handling of -gnatW
18131         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
18132
18133 2006-10-31  Robert Dewar  <dewar@adacore.com>
18134
18135         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
18136         (Set_Specific_Warning_Off): New procedure
18137         (Warning_Specifically_Suppressed): New function
18138         (Validate_Specific_Warnings): New procedure
18139         (Output_Msg_Text): Complete rewrite to support -gnatjnn
18140
18141         * err_vars.ads: Implement insertion character ~ (insert string)
18142
18143 2006-10-31  Bob Duff  <duff@adacore.com>
18144             Ed Schonberg  <schonberg@adacore.com>
18145
18146         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
18147         the parent part is a build-in-place function call, generate assignments.
18148         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
18149         are build-in-place function calls.
18150         (Replace_Self_Reference): New subsidiary of
18151         Make_OK_Assignment_Statement, to replace an access attribute that is a
18152         self-reference into an access to the appropriate component of the
18153         target object. Generalizes previous mechanism to handle self-references
18154         nested at any level.
18155         (Is_Self_Referential_Init): Remove, not needed.
18156         (Is_Self_Referential_Init): New predicate to simplify handling of self
18157         referential components in record aggregates.
18158         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
18159         check for presence of entity before checking for self-reference.
18160         (Has_Default_Init_Comps): Return True if a component association is a
18161         self-reference to the enclosing type, which can only come from a
18162         default initialization.
18163         (Make_OK_Assignment_Statement): If the expression is of the form
18164         Typ'Acc, where Acc is an access attribute, the expression comes from a
18165         default initialized self-referential component.
18166         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
18167         that has been derived from several abstract interfaces we must also
18168         initialize the tags of the secondary dispatch tables.
18169
18170 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18171             Thomas Quinot  <quinot@adacore.com>
18172             Javier Miranda  <miranda@adacore.com>
18173             Robert Dewar  <dewar@adacore.com>
18174
18175         * exp_attr.adb:
18176         (Expand_Access_To_Protected_Op): If the context indicates that an access
18177         to a local operation may be transfered outside of the object, create an
18178         access to the wrapper operation that must be used in an external call.
18179         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
18180         target, pass the Valid attribute applied to a floating-point prefix on
18181         to the back end without expansion.
18182         (Storage_Size): Use the new run-time function Storage_Size to retrieve
18183         the allocated storage when it is specified by a per-object expression.
18184         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
18185         Nothing to do here, the attribute has been rewritten during semantic
18186         analysis.
18187         (Expand_Attribute_Reference): Handle expansion of the new Priority
18188         attribute
18189         (Find_Fat_Info): Handle case of universal real
18190         (Expand_Access_To_Protected_Op): Fix use of access to protected
18191         subprogram from inside the body of a protected entry.
18192         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
18193         'Access and 'Unrestricted_Access, to transform the attribute reference
18194         into a fat pointer.
18195         (Is_Constrained_Aliased_View): New predicate to help determine whether a
18196         subcomponent's enclosing variable is aliased with a constrained subtype.
18197         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
18198         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
18199         an aliased prefix must be known to be constrained in order to use True
18200         for the attribute value, and now it's possible for some aliased views
18201         to be unconstrained.
18202
18203 2006-10-31  Robert Dewar  <dewar@adacore.com>
18204
18205         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
18206         (Expand_Entity_Reference): Correct error of not handling subprogram
18207         formals in current_value processing.
18208
18209 2006-10-31  Javier Miranda  <miranda@adacore.com>
18210             Robert Dewar  <dewar@adacore.com>
18211             Ed Schonberg  <schonberg@adacore.com>
18212             Gary Dismukes  <dismukes@adacore.com>
18213
18214         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
18215         register in the final list objects containing class-wide interfaces;
18216         otherwise we incorrectly register the tag of the interface in the final
18217         list.
18218         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
18219         generate the wrapper if the parent primitive is abstract. This is
18220         required to report the correct error message.
18221         (Expand_N_Subtype_Indication): Do validity checks on range
18222         (Clean_Task_Names): If an initialization procedure includes a call to
18223         initialize a task (sub)component, indicate that the procedure will use
18224         the secondary stack.
18225         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
18226         compatibility for interfacing with CPP by default.
18227         (Expand_N_Object_Declaration): Only build an Adjust call when the
18228         object's type is a nonlimited controlled type.
18229         * exp_ch3.adb: Add with and use of Exp_Ch6.
18230         (Expand_N_Object_Declaration): Check for object initialization that is a
18231         call to build-in-place function and apply Make_Build_In_Place_Call_In_
18232         Object_Declaration to the call.
18233         (Freeze_Type): When the designated type of an RACW was not frozen at the
18234         point where the RACW was declared, validate the primitive operations
18235         with respect to E.2.2(14) when it finally is frozen.
18236         (Build_Initialization_Call,Expand_Record_Controller): Rename
18237         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
18238         return-by-reference has no meaning in Ada 2005.
18239         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
18240         to register tag of the immediate ancestor interfaces in the
18241         run-time structure.
18242         (Init_Secondary_Tags): Moved to the specification to allow the
18243         initialization of extension aggregates with abstract interfaces.
18244         (Build_Master_Renaming): Make public, for use by function declarations
18245         whose return type is an anonymous access type.
18246         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
18247         Insert_List_Before_And_Analyze after the generation of the specs
18248         associated with null procedures.
18249         (Expand_Tagged_Root): Update documentation in its specification.
18250         (Init_Secondary_Tags): Update documentation.
18251         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
18252         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
18253         then generate code to inherit the contents of the dispatch table
18254         directly from the ancestor.
18255         (Expand_Record_Controller): Insert controller component after tags of
18256         implemented interfaces.
18257         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
18258         create null procedure overridings when null procedures are inherited
18259         from interfaces.
18260         (Make_Null_Procedure_Specs): New procedure to generate null procedure
18261         declarations for overriding null primitives inherited from interfaces.
18262         (Is_Null_Interface_Procedure): New function in
18263         Make_Null_Procedure_Specs.
18264         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
18265         immediate ancestor of a tagged type is an abstract interface type we
18266         must generate the specification of the predefined primitives associated
18267         with controlled types (because the dispatch table of the ancestor is
18268         null and hence these entries cannot be inherited). This is required to
18269         elaborate well the dispatch table.
18270
18271 2006-10-31  Javier Miranda  <miranda@adacore.com>
18272             Ed Schonberg  <schonberg@adacore.com>
18273             Bob Duff  <duff@adacore.com>
18274             Gary Dismukes  <dismukes@adacore.com>
18275             Robert Dewar  <dewar@adacore.com>
18276
18277         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
18278         conversion.
18279         (Expand_N_In): Do validity checks on range
18280         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
18281         (Expand_N_Allocator): For "new T", if the object is constrained by
18282         discriminant defaults, allocate the right amount of memory, rather than
18283         the maximum for type T.
18284         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
18285         when the allocator is initialized by a build-in-place call, since the
18286         allocator is already rewritten as a reference to the function result,
18287         and this prevents an unwanted duplication of the function call.
18288         Add with and use of Exp_Ch6.
18289         (Expand_Allocator_Expresssion): Check for an allocator whose expression
18290         is a call to build-in-place function and apply
18291         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
18292         untagged designated types).
18293         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
18294         optimization if source or target is biased.
18295         (Expand_N_Allocator): Add comments for case of an allocator within a
18296         function that returns an anonymous access type designating tasks.
18297         (Expand_N_Allocator): apply discriminant checks for access
18298         discriminants of anonymous access types (AI-402, AI-416)
18299
18300 2006-10-31  Bob Duff  <duff@adacore.com>
18301             Robert Dewar  <dewar@adacore.com>
18302             Gary Dismukes  <dismukes@adacore.com>
18303             Ed Schonberg  <schonberg@adacore.com>
18304
18305         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
18306
18307         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
18308         (Expand_N_Assignment_Statement): Call
18309         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
18310         build-in-place function call. Currently, this can happen only for
18311         assignments that come from aggregates.
18312         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18313         in order to alleviate the upward compatibility introduced by AI-318.
18314         (Expand_N_Extended_Return_Statement): Add support for handling the
18315         return object as a build-in-place result.
18316         (Expand_Non_Function_Return): Implement simple return statements nested
18317         within an extended return.
18318         (Enable_New_Return_Processing): Turn on the new processing of return
18319         statements.
18320         (Expand_Non_Function_Return): For a return within an extended return,
18321         don't raise Program_Error, because Sem_Ch6 now gives a warning.
18322         (Expand_N_Extended_Return_Statement): Implement AI-318
18323         (Expand_Simple_Function_Return): Ditto.
18324         (Expand_N_If_Statement): Handle new -gnatwt warning
18325         (Expand_N_Case_Statement): Handle new -gnatwt warning
18326         (Expand_N_Assignment): Handle assignment to the Priority attribute of
18327         a protected object.
18328         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
18329         validity checking of assignments to elementary record components.
18330         (Expand_N_Return_Statement): return Class Wide types on the secondary
18331         stack independantly of their controlled status since with HIE runtimes,
18332         class wide types are not potentially controlled anymore.
18333
18334         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
18335         node kind.
18336
18337         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
18338         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
18339         it expects a block, procedure, or task. The return statement will get
18340         turned into a block, and Expand_Cleanup_Actions will happen then.
18341
18342 2006-10-31  Robert Dewar  <dewar@adacore.com>
18343             Ed Schonberg  <schonberg@adacore.com>
18344             Bob Duff  <duff@adacore.com>
18345             Gary Dismukes  <dismukes@adacore.com>
18346
18347         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
18348         capability.
18349         (Expand_Inlined_Call): Tagged types are by-reference types, and
18350         therefore should be replaced by a renaming declaration in the expanded
18351         body, as is done for limited types.
18352         (Expand_Call): If this is a call to a function with dispatching access
18353         result, propagate tag from context.
18354         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
18355         CPP by default.
18356         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
18357         build-in-place when the right-hand side of an assignment is a
18358         build-in-place function call.
18359         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
18360         of the explicit dereference of the allocator to the result subtype of
18361         the build-in-place function. This is needed to satisfy type checking
18362         in cases where the caller's return object is created by an allocator for
18363         a class-wide access type and the type named in the allocator is a
18364         specific type.
18365         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
18366         conversion of the reference to the declared object to the result subtype
18367         of the build-in-place function. This is needed to satisfy type checking
18368         in cases where the declared object has a class-wide type. Also, in the
18369         class-wide case, change the type of the object entity to the specific
18370         result subtype of the function, to avoid passing a class-wide object
18371         without explicit initialization to the back end.
18372         (Register_Interface_DT_Entry): Moved outside the body of
18373         Freeze_Subprogram because this routine is now public; it is called from
18374         Check_Dispatching_Overriding to handle late overriding of abstract
18375         interface primitives.
18376         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
18377         adding an implicit access actual on a call to a build-in-place function.
18378         (Expand_Actuals): Test for an actual parameter that is a call to a
18379         build-in-place function and apply
18380         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
18381         (Is_Build_In_Place_Function): New function to determine whether an
18382         entity is a function whose calls should be handled as build-in-place.
18383         (Is_Build_In_Place_Function_Call): New function to determine whether an
18384         expression is a function call that should handled as build-in-place.
18385         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
18386         calls to build-in-place functions as the initialization of an allocator.
18387         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
18388         handling calls to build-in-place functions in contexts that do not
18389         involve init of a separate object (for example, actuals of subprogram
18390         calls).
18391         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
18392         handling calls to build-in-place functions as the initialization of an
18393         object declaration.
18394         (Detect_Infinite_Recursion): Add explicit parameter Process to
18395         instantiation of Traverse_Body to avoid unreferenced warning.
18396         (Check_Overriding_Inherited_Interfaces): Removed.
18397         (Register_Interface_DT_Entry): Code cleanup.
18398         (Register_Predefined_DT_Entry): Code cleanup.
18399         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
18400         inlined statements if within a transient scope.
18401         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
18402         formal parameters with occurrences of actuals in inlined body, establish
18403         visibility on the proper view of the actual's subtype for the body's
18404         context.
18405         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
18406         compatibility mode and we have an imported CPP subprogram because
18407         for now we assume that imported CPP primitives correspond with
18408         objects whose constructor is in the CPP side (and therefore we
18409         don't need to generate code to register them in the dispatch table).
18410         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
18411         aligned selected component.
18412         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
18413         the actual of an in-mode parameter is a type conversion.
18414         (Expand_Actuals): If the call does not come from source and the actual
18415         is potentially misaligned, let gigi handle it rather than rejecting the
18416         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
18417         Class Wide types as returning by reference independantly of their
18418         controlled status since with HIE runtimes class wide types are not
18419         potentially controlled anymore.
18420
18421 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18422
18423         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
18424         references that are private components of the protected object.
18425         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
18426         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
18427         instantiation to deal with warnings.
18428         (Initialize_Protection): If expression for priority is non-static, use
18429         System_Priority as its expected type, in case the expression has not
18430         been analyzed yet.
18431
18432 2006-10-31  Robert Dewar  <dewar@adacore.com>
18433
18434         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
18435         initialization of Homonym_Len.
18436         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
18437         names from fully qualified name. Fixes problem of duplicate
18438         external names differing only in the presence of such a block name.
18439
18440 2006-10-31  Thomas Quinot  <quinot@adacore.com>
18441             Pablo Oliveira  <oliveira@adacore.com>
18442
18443         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
18444         subprogram Ids, even if they are not yet assigned.
18445         (Build_Subprogram_Id): It is now this function that will take care of
18446         calling Assign_Subprogram_Ids if necessary.
18447         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
18448         should be done only once they are assigned.
18449         (Build_From_Any_Function, case of tagged types): Add missing call to
18450         Allocate_Buffer.
18451         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
18452         type for an RACW type.
18453         (Add_RACW_Features): When processing an RACW declaration for which the
18454         designated type is already frozen, enforce E.2.2(14) rules immediately.
18455         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
18456         special reordering of controlling formals.
18457
18458         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
18459         associated stub type for an RACW type.
18460
18461 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18462
18463         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
18464         fixed-point operations in an integer context, i.e. as operands of a
18465         conversion to an integer type, indicate that result must be rounded.
18466
18467 2006-10-31  Robert Dewar  <dewar@adacore.com>
18468
18469         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
18470         cases, pass the encoding method, since it is now required by the run
18471         time.
18472
18473         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
18474         assumption that Str'First = 1.
18475         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
18476         it on to the Value_Wide_Wide_Character call.
18477         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
18478         properly handles a string of the form quote-encoded_wide_char-quote.
18479
18480         * s-wchcnv.adb: Minor reformatting
18481
18482 2006-10-31  Javier Miranda  <miranda@adacore.com>
18483
18484         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
18485         run-time membership test to ensure that the constructed object
18486         implements the target abstract interface.
18487
18488 2006-10-31  Robert Dewar  <dewar@adacore.com>
18489
18490         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
18491         Machine_Attribute pragma internally to implement the user pragma.
18492         Add processing for pragma Interface so that it is now completely
18493         equivalent to pragma Import.
18494
18495         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
18496         so that it can be applied to all entities, including record components
18497         and enumeration literals.
18498         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
18499         priority ranges are correct, verify compatibility against task
18500         dispatching and locking policies, and if everything is correct an entry
18501         is added to the table containing priority specific dispatching entries
18502         for this compilation unit.
18503         (Delay_Config_Pragma_Analyze): Delay processing
18504         Priority_Specific_Dispatching pragmas because when processing the
18505         pragma we need to access run-time data, such as the range of
18506         System.Any_Priority.
18507         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
18508         Allow pragma Unreferenced as a context item
18509         Add pragma Preelaborable_Initialization
18510         (Analyze_Pragma, case Interface): Interface is extended so that it is
18511         now syntactically and semantically equivalent to Import.
18512         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
18513         insertion characters.
18514         Add handling for Pragma_Wide_Character_Encoding
18515         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
18516         never supercedes a real restriction, and that a real restriction
18517         always supercedes a warning.
18518         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
18519         appropriate form.
18520
18521 2006-10-31  Bob Duff  <duff@adacore.com>
18522             Ed Schonberg  <schonberg@adacore.com>
18523             Robert Dewar  <dewar@adacore.com>
18524
18525         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
18526         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
18527         Is_Inherently_Limited_Type, because return-by-reference has no meaning
18528         in Ada 2005.
18529         (Find_Node_To_Be_Wrapped): Use new method of determining the result
18530         type of the function containing a return statement, because the
18531         Return_Type field was removed. We now use the Return_Applies_To field.
18532
18533         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
18534         (Build_Task_Image_Decl): If procedure is not called from an
18535         initialization procedure, indicate that function that builds task name
18536         uses the sec. stack. Otherwise the enclosing initialization procedure
18537         will carry the indication.
18538         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
18539         N_Object_Declaration instead.
18540         (Kill_Dead_Code): New interface to implement -gnatwt warning for
18541         conditional dead code killed, and change implementation accordingly.
18542         (Insert_Actions): Add N_Return_Object_Declaration case.
18543         Correct comment to mention N_Extension_Aggregate node.
18544         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
18545         attempts to save information for global variables which cannot be
18546         safely tracked.
18547         (Get_Current_Value_Condition): Handle conditions the other way round
18548         (constant on left). Also handle right operand of AND and AND THEN
18549         (Set_Current_Value_Condition): Corresponding changes
18550         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
18551         (Get_Current_Value_Condition): Handle simple boolean operands
18552         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
18553         (Get_Current_Value_Condition): If the variable reference is within an
18554         if-statement, does not appear in the list of then_statments, and does
18555         not come from source, treat it as being at unknown location.
18556         (Get_Current_Value_Condition): Enhance to allow while statements to be
18557         processed as well as if statements.
18558         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
18559         come from source.
18560         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
18561         of loop. This is safe now that we fixed Kill_Current_Values.
18562         (OK_To_Do_Constant_Replacement): Check whether current scope is
18563         Standard, before examining outer scopes.
18564
18565 2006-10-31  Vincent Celier  <celier@adacore.com>
18566
18567         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
18568         When True, apply VMS treatment to children of packages A, G, I and S.
18569         For F320-016
18570
18571         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
18572
18573 2006-10-31  Robert Dewar  <dewar@adacore.com>
18574             Ed Schonberg  <schonberg@adacore.com>
18575
18576         * freeze.adb: Add handling of Last_Assignment field
18577         (Warn_Overlay): Supply missing continuation marks in error msgs
18578         (Freeze_Entity): Add check for Preelaborable_Initialization
18579
18580         * g-comlin.adb: Add Warnings (Off) to prevent new warning
18581
18582         * g-expect.adb: Add Warnings (Off) to prevent new warning
18583
18584         * lib-xref.adb: Add handling of Last_Assignment field
18585         (Generate_Reference): Centralize handling of pragma Obsolescent here
18586         (Generate_Reference): Accept an implicit reference generated for a
18587         default in an instance.
18588         (Generate_Reference): Accept a reference for a node that is not in the
18589         main unit, if it is the generic body corresponding to an subprogram
18590         instantiation.
18591
18592         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
18593
18594         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
18595         -gnatwq/Q.
18596         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
18597         exception handler.
18598         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
18599         use clauses, to avoid messages on packages used to qualify, and also
18600         to avoid messages from obsolescent units.
18601         (Warn_On_Useless_Assignments): Don't generate messages for imported
18602         and exported variables.
18603         (Warn_On_Useless_Assignments): New procedure
18604         (Output_Obsolescent_Entity_Warnings): New procedure
18605         (Check_Code_Statement): New procedure
18606
18607         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
18608         Change name Is_Ada_2005 to Is_Ada_2005_Only
18609         (Last_Assignment): New field for useless assignment warning
18610
18611 2006-10-31  Olivier Hainque  <hainque@adacore.com>
18612
18613         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
18614         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
18615
18616 2006-10-31  Bob Duff  <duff@adacore.com>
18617             Robert Dewar  <dewar@adacore.com>
18618             Ed Schonberg  <schonberg@adacore.com>
18619
18620         * g-awk.adb (Default_Session, Current_Session): Compile this file in
18621         Ada 95 mode, because it violates the new rules for AI-318.
18622
18623         * g-awk.ads: Use overloaded subprograms in every case where we used to
18624         have a default of Current_Session. This makes the code closer to be
18625         correct for both Ada 95 and 2005.
18626
18627         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
18628         code, relying on the fact that the compiler generates a warning
18629         instead of an error in -gnatg mode.
18630
18631         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
18632         E_Return_Statement entity kind.
18633         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
18634
18635         * par.adb (P_Interface_Type_Definition): Addition of one formal to
18636         report an error if the reserved word abstract has been previously found.
18637         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
18638
18639         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
18640         parenthesized range attribute usage
18641         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
18642
18643         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
18644         in the syntax for extended_return_statement. This is not in the latest
18645         RM, but the ARG is expected to issue an AI allowing this.
18646         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
18647         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
18648         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
18649         P_Return_Statement): Parse the new syntax for extended_return_statement.
18650
18651         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
18652         Output_End_Missing): Add error-recovery code for the new
18653         extended_return_statement syntax; that is, the new E_Return entry on
18654         the scope stack.
18655
18656         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
18657         limited to nonlimited, because otherwise we violate the new Ada 2005
18658         rules about returning limited types in function Create_AST_Handler in
18659         s-asthan.adb.
18660
18661         * sem.adb (Analyze): Add cases for new node kinds
18662         N_Extended_Return_Statement and N_Return_Object_Declaration.
18663
18664         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
18665         type is in the same category as type of context before applying check,
18666         to prevent anomalies in instantiations.
18667         (Resolve_Aggregate): Remove test for limited components in aggregates.
18668         It's unnecessary in Ada 95, because if it has limited components, then
18669         it must be limited. It's wrong in Ada 2005, because limited aggregates
18670         are now allowed.
18671         (Resolve_Record_Aggregate): Move check for limited types later, because
18672         OK_For_Limited_Init requires its argument to have been resolved.
18673         (Get_Value): When copying the component default expression for a
18674         defaulted association in an aggregate, use the sloc of the aggregate
18675         and not that of the original expression, to prevent spurious
18676         elaboration errors, when the expression includes function calls.
18677         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
18678         were missing. We also didn't handle qualified expressions. Now also
18679         allow function calls. Use new common routine OK_For_Limited_Init.
18680         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
18681         with space can upper case letter).
18682
18683         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
18684         Has_Static_Discriminants flag
18685         (Record_Type_Declaration): Diagnose an attempt to declare an interface
18686         type with discriminants.
18687         (Process_Range_Expr_In_Decl): Do validity checks on range
18688         (Build_Discriminant_Constraints): Use updated form of
18689         Denotes_Discriminant.
18690         (Process_Subtype): If the subtype is a private subtype whose full view
18691         is a concurrent subtype, introduce an itype reference to prevent scope
18692         anomalies in gigi.
18693         (Build_Derived_Record_Type, Collect_Interface_Primitives,
18694         Record_Type_Declaration):  The functionality of the subprograms
18695         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
18696         is now performed by a single routine.
18697         (Build_Derived_Record_Type): If the type definition includes an explicit
18698         indication of limitedness, then the type must be marked as limited here
18699         to ensure that any access discriminants will not be treated as having
18700         a local anonymous access type.
18701         (Check_Abstract_Overriding): Issue a detailed error message when an
18702         abstract subprogram was not overridden due to incorrect mode of its
18703         first parameter.
18704         (Analyze_Private_Extension_Declaration): Add support for the analysis of
18705         synchronized private extension declarations. Verify that the ancestor is
18706         a limited or synchronized interface or in the generic case, the ancestor
18707         is a tagged limited type or synchronized interface and all progenitors
18708         are either limited or synchronized interfaces.
18709         Derived_Type_Declaration): Check for presence of private extension when
18710         dealing with synchronized formal derived types.
18711         Process_Full_View): Enchance the check done on the usage of "limited" by
18712         testing whether the private view is synchronized.
18713         Verify that a synchronized private view is completed by a protected or
18714         task type.
18715         (OK_For_Limited_Init_In_05): New function.
18716         (Analyze_Object_Declaration): Move check for limited types later,
18717         because OK_For_Limited_Init requires its argument to have been resolved.
18718         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18719         in order to alleviate the upward compatibility introduced by AI-318.
18720         (Constrain_Corresponding_Record): If the constraint is for a component
18721         subtype, mark the itype as frozen, to avoid out-of-scope references to
18722         discriminants in the back-end.
18723         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
18724         this subprogram against wrong sources.
18725         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
18726         discriminant of limited type completed with a protected type, when the
18727         discriminant is used to constrain a private component of the type, and
18728         expansion is disabled.
18729         (Find_Type_Of_Object): Do not treat a return subtype that is an
18730         anonymous subtype as a local_anonymous_type, because its accessibility
18731         level is the return type of the enclosing function.
18732         (Check_Initialization): In -gnatg mode, turn the error "cannot
18733         initialize entities of limited type" into a warning.
18734         (OK_For_Limited_Init): Return true for generated nodes, since it
18735         sometimes violates the legality rules.
18736         (Make_Incomplete_Declaration): If the type for which an incomplete
18737         declaration is created happens to be the currently visible entity,
18738         preserve the homonym chain when removing it from visibility.
18739         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
18740         inherited subprograms.
18741         (Access_Definition): If this is an access to function that is the return
18742         type of an access_to_function definition, context is a type declaration
18743         and the scope of the anonymous type is the current one.
18744         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
18745         incomplete subtype to the set of private dependents of the original
18746         incomplete type.
18747         (Constrain_Discriminated_Type): Emit an error message whenever an
18748         incomplete subtype is being constrained.
18749         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
18750         corresponding subtype of the full view of the original incomplete type.
18751         (Check_Incomplete): Properly detect invalid usage of incomplete types
18752         and subtypes.
18753
18754 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18755
18756         * g-catiio.ads, g-catiio.adb (Value): New function.
18757         Given an input String, try and parse a valid Time value.
18758
18759 2006-10-31  Vincent Celier  <celier@adacore.com>
18760
18761         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
18762         Integer_Address arithmetic, as in Set_Valid.
18763
18764 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
18765             Robert Dewar  <dewar@adacore.com>
18766
18767         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
18768         handling executable extension manually and duplicating code.
18769
18770         * make.adb: Implement new -S switch
18771         (Gnatmake): Use new function Osint.Executable_Name instead
18772         of handling executable extension manually.
18773
18774         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
18775         is specified, the executable name ends with this suffix.
18776         Take advantage of Osint.Executable_Name instead of duplicating code.
18777
18778         * switch-m.adb: Recognize new gnatmake -S switch
18779
18780         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
18781         variable.
18782         (Get_Target_Parameters): Set Executable_Extension_On_Target if
18783         available.
18784
18785         * makeusg.adb: Add line for gnatmake -S switch
18786
18787 2006-10-31  Vincent Celier  <celier@adacore.com>
18788
18789         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
18790         call it with -static-libgcc, as there are some platforms, such as
18791         Darwin, where one of these two switches is compulsory to link.
18792
18793 2006-10-31  Vincent Celier  <celier@adacore.com>
18794
18795         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
18796         instead of ADA_PROJECT_PATH, for the project path.
18797         (Gnatls): When displaying the project path directories, use host dir
18798         specs.
18799
18800         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
18801         names in the project path, as absolute paths may correspond to
18802         multi-valued VMS logical names.
18803
18804 2006-10-31  Vincent Celier  <celier@adacore.com>
18805
18806         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
18807         absolute path name.
18808         (Locate_Regular_File): Ditto
18809         (Change_Dir): Remove, no longer used
18810         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
18811         on Windows. Get it calling Get_Current_Dir.
18812         (OpenVMS): Remove imported boolean, no longer needed.
18813         (Normalize_Pathname)[VMS]: Do not resolve directory names.
18814         (Pid_To_Integer): New function to convert a Process_Id to  Integer
18815
18816 2006-10-31  Thomas Quinot  <quinot@adacore.com>
18817
18818         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
18819         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
18820         to No_Socket.
18821         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
18822         W_Sig_Socket.
18823
18824 2006-10-31  Robert Dewar  <dewar@adacore.com>
18825
18826         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
18827         initial letter o as a zero.
18828
18829 2006-10-31  Robert Dewar  <dewar@adacore.com>
18830
18831         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
18832
18833 2006-10-31  Robert Dewar  <dewar@adacore.com>
18834
18835         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
18836         variant records
18837         (Layout_Variant_Record): Retrieve the discriminants from the entity
18838         rather than from the type definition, because in the case of a full
18839         type for a private type we need to take the discriminants from the
18840         partial view.
18841         (Layout_Component_List): When applying the Max operator to variants with
18842         a nonstatic size, check whether either operand is static and scale that
18843         operand from bits to storage units before applying Max.
18844         (Layout_Type): In VMS, if a C-convention access type has no explicit
18845         size clause (and does not inherit one in the case of a derived type),
18846         then the size is reset to 32 from 64.
18847
18848 2006-10-31  Vincent Celier  <celier@adacore.com>
18849
18850         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
18851         its file has already been loaded, according to the unit being loaded,
18852         not to the current value of Multiple_Unit_Index.
18853
18854 2006-10-31  Thomas Quinot  <quinot@adacore.com>
18855             Eric Botcazou  <ebotcazou@adacore.com>
18856             Arnaud Charlet  <charlet@adacore.com>
18857
18858         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
18859         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
18860         possible.
18861         (a-except.o): Pass it to the compiler.
18862         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
18863         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
18864         a-calend-mingw.adb version.
18865
18866         * Makefile.rtl: Added s-dsaser.
18867         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
18868         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
18869         Ada.Dispatching.Round_Robin.
18870         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
18871
18872         * Make-lang.in: Remove all references to gt-ada-decl.h.
18873         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
18874         sources.
18875         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
18876         Update dependencies.
18877
18878         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
18879
18880 2006-10-31  Vincent Celier  <celier@adacore.com>
18881
18882         * mlib-utl.adb (Initialized): Remove, no longer used
18883         (Initialize): Remove, no longer used
18884         (Ar): If Ar_Exec is null, get the location of the archive builder and,
18885         if there is one, the archive indexer. Fail if the archive builder cannot
18886         be found.
18887         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
18888         be found.
18889
18890 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18891
18892         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
18893         Process_Body_Clauses): If the context of a body includes a use clause
18894         for P.Q then a with_clause for P in the same body is not redundant,
18895         even if the spec also has a with_clause on P.
18896         Add missing continuation mark to error msg
18897         (Build_Limited_Views): A limited view of a type is tagged if its
18898         declaration includes a record extension.
18899         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
18900         node, even if the subunit has errors. This avoids malfunction by
18901         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
18902         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
18903         generation of obsolescent messages for with statements (cannot do
18904         this too early, or we cannot implement avoiding the messages in the
18905         case of obsolescent units withing obsolescent units).
18906         (Install_Siblings): If the with_clause is on a remote descendant of
18907         an ancestor of the current compilation unit, find whether there is
18908         a sibling child unit that is immediately visible.
18909         (Remove_Private_With_Clauses): New procedure, invoked after completing
18910         the analysis of the private part of a nested package, to remove from
18911         visibility the private with_clauses of the enclosing package
18912         declaration.
18913         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
18914         now centralized in Generate_Reference.
18915         (Install_Limited_Context_Clauses): Remove superfluous error
18916         message associated with unlimited view visible through use
18917         and renamings. In addition, at the point in which the error
18918         is reported, we add the backslash to the text of the error
18919         to ensure that it is reported as a single error message.
18920         Use new // insertion for some continuation messages
18921         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
18922         to create implicit with_clause for parent unit mentioned in original
18923         limited_with_clause.
18924         (Install_Limited_With_Unit): Set entity of parent identifiers if the
18925         unit is a child unit. For ASIS queries.
18926         (Analyze_Subunit): If the subunit appears within a child unit, make all
18927         ancestor child units directly visible again.
18928
18929 2006-10-31  Robert Dewar  <dewar@adacore.com>
18930
18931         * par-ch10.adb (P_Context_Clause): Minor error message fix
18932
18933 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
18934             Javier Miranda  <miranda@adacore.com>
18935
18936         * par-ch12.adb: Grammar update and cleanup.
18937         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
18938         support for synchronized derived type definitions.
18939         Add the new actual Abstract_Present to every call to
18940         P_Interface_Type_Definition.
18941         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
18942         a formal object declaration with an access definition or a subtype mark
18943         with a null exclusion.
18944         (P_Generic_Association): Handle association with box, and others_choice
18945         with box, to support Ada 2005 partially parametrized formal packages.
18946
18947 2006-10-31  Robert Dewar  <dewar@adacore.com>
18948             Javier Miranda  <miranda@adacore.com>
18949
18950         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
18951         (P_Type_Declaration): Remove barrier against the reserved word "limited"
18952         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
18953         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
18954         private extensions.
18955         (P_Type_Declaration): Add the new actual Abstract_Present to every call
18956         to P_Interface_Type_Definition.
18957         (P_Interface_Type_Definition): Addition of one formal to report an error
18958         if the reserved word abstract has been previously found.
18959         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
18960         object renaming declaration with an access definition or subtype mark
18961         with a possible null exclusion.
18962
18963         * par-ch9.adb: Minor error msg fix
18964
18965         * par-load.adb: Add missing continuation mark to error msg
18966
18967         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
18968
18969 2006-10-31  Vincent Celier  <celier@adacore.com>
18970
18971         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
18972         unknown attribute in unknown package or in package that does not need
18973         to be checked.
18974         (Parse_Package_Declaration): Do not issue warning for unknown package in
18975         quiet output.
18976
18977 2006-10-31  Vincent Celier  <celier@adacore.com>
18978
18979         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
18980         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
18981         Packages_To_Check.
18982
18983 2006-10-31  Vincent Celier  <celier@adacore.com>
18984
18985         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
18986         on VMS, change "__" to '.' before checking the name.
18987         (Record_Ada_Source): Always add the source file name in the list of
18988         of sources, even if it is not the first time, as it is for another
18989         source index.
18990         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
18991         dot, instead of replacing only the first '_'.
18992
18993         * prj-part.adb (Parse): Convert project file path to canonical form
18994
18995         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
18996         extended, the project id of the project extending it is recorded in its
18997         data, even when it has already been processed as an imported project.
18998
18999 2006-10-31  Robert Dewar  <dewar@adacore.com>
19000
19001         * repinfo.adb (List_Entities): Don't list entities from renaming
19002         declarations.
19003
19004 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
19005             Robert Dewar  <dewar@adacore.com>
19006
19007         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
19008         only a restriction warning is active for the given restriction. This is
19009         desirable because we do not want to modify code in the case where only
19010         a warning is set.
19011         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
19012         causes overriding of real restrictions.
19013         Take advantage of new No_Restrictions constant.
19014
19015         * raise.h: (__gnat_set_globals): Change profile.
19016
19017 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
19018
19019         * rtsfind.adb: Remove s-polint from comment as it exists no more.
19020
19021         * rtsfind.ads:
19022         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
19023         Move all the entities in obsolete package System.PolyORB_Interface to
19024         System.Partition_Interface.
19025         (RE_Storage_Size): New function in System.Tasking.
19026         (RE_Get_Ceiling): New entity.
19027         (RE_Set_Ceiling): New entity.
19028         (RO_PE_Get_Ceiling): New entity.
19029         (RO_RE_Set_Ceiling): New entity.
19030         (Inherit_CPP_DT): New entity
19031
19032 2006-10-31  Robert Dewar  <dewar@adacore.com>
19033
19034         * scng.adb (Scan, case of numeric literal): Better msg for identifier
19035         starting with a digit.
19036
19037 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19038             Thomas Quinot  <quinot@adacore.com>
19039             Javier Miranda  <miranda@adacore.com>
19040             Gary Dismukes  <dismukes@adacore.com>
19041
19042         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
19043         properly an attempt to apply Unchecked_Access to a protected operation.
19044         (OK_Self_Reference): New subprogram to check the legality of an access
19045         attribute whose prefix is the type of an enclosing aggregate.
19046         Generalizes previous mechanism to handle attribute references nested
19047         arbitrarily deep within the aggregate.
19048         (Analyze_Access_Attribute): An access attribute whose prefix is a type
19049         can appear in an aggregate if this is a default-initialized aggregate
19050         for a self-referential type.
19051         (Resolve_Attribute, case Access): Ditto.
19052         Add support for new implementation defined attribute Stub_Type.
19053         (Eval_Attribute, case Attribute_Stub_Type): New case.
19054         (Analyze_Attribute, case Attribute_Stub_Type): New case.
19055         (Stream_Attribute_Available): Implement using new subprogram from
19056         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
19057         Has_Specified_Stream_Attribute flag.
19058         Disallow Storage_Size and Storage_Pool for access to subprogram
19059         (Resolve_Attribute, case 'Access et al): Take into account anonymous
19060         access types of return subtypes in extended return statements. Remove
19061         accessibility checks on anonymous access types when Unchecked_Access is
19062         used.
19063         (Analyze_Attribute): Add support for the use of 'Class to convert
19064         a class-wide interface to a tagged type.
19065         Add support for the attribute Priority.
19066         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
19067         whether the designated type is discriminated with a constrained partial
19068         view and require static matching in that case.
19069         Add local variable Des_Btyp. The Designated_Type
19070         of an access to incomplete subtype is either its non-limited view if
19071         coming from a limited with or its etype if regular incomplete subtype.
19072
19073         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
19074         Fix predicate to identify and allow cases of (expander-generated)
19075         references to tag of designated object of a RACW.
19076         (Validate_Static_Object_Name): In Ada 2005, a formal object is
19077         non-static, and therefore cannot appear as a primary in a preelaborable
19078         package.
19079         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
19080         Has_Read_Write_Attributes.
19081         (Has_Read_Write_Attributes): Reimplement in termes of
19082         Has_Stream_Attribute_Definition.
19083         (Missing_Read_Write_Attributes): When checking component types in a
19084         record, unconditionally call Missing_Read_Write_Attributes recursively
19085         (remove guard checking for Is_Record_Type / Is_Access_Type).
19086
19087 2006-10-31  Robert Dewar  <dewar@adacore.com>
19088
19089         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
19090         useless assignments here and conditionalize it on absence of exception
19091         handlers.
19092         (Analyze_Exception_Handlers): Small code reorganization of error
19093         detection code, for new handling of formal packages.
19094
19095 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19096             Hristian Kirtchev  <kirtchev@adacore.com>
19097
19098         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
19099         that has been constant-folded, preserve information of original tree,
19100         for ASIS uses.
19101         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
19102         generated private extension declaration if the formal derived type is
19103         synchronized. Carry synchronized present over to the generated private
19104         extension.
19105         (Validate_Derived_Type_Instance): Ensure that the actual of a
19106         synchronized formal derived type is a synchronized tagged type.
19107         (Instantiate_Formal_Package): When creating the instantiation used to
19108         validate the actual package of a formal declared without a box, check
19109         whether the formal itself depends on a prior actual.
19110         (Instantiate_Formal_Subprogram): Create new entities for the defining
19111         identifiers of the formals in the renaming declaration, for ASIS use.
19112         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
19113         a renaming declaration or a subtype declaration for an actual in an
19114         instance, capture location information of declaration in generic, for
19115         ASIS use.
19116         (Instantiate_Formal_Package): Add comments on needed additional tests.
19117         AI-317 (partial parametrization) is fully implemented.
19118         (Validate_Private_Type_Instance): Add check for actual which
19119         must have preelaborable initialization
19120         Use new // insertion for some continuation messages
19121         (Analyze_Formal_Object_Declaration): Change usage of Expression to
19122         Default_Expression. Add type retrieval when the declaration has an
19123         access definition. Update premature usage of incomplete type check.
19124         (Check_Access_Definition): New subsidiary routine. Check whether the
19125         current compilation version is Ada 05 and the supplied node has an
19126         access definition.
19127         (Instantiate object): Alphabetize local variables. Handle the creation
19128         of new renaming declarations with respect to the kind of definition
19129         used - either an access definition or a subtype mark. Guard against
19130         unnecessary error message in the context of anonymous access types after
19131         they have been resolved. Add check for required null exclusion in a
19132         formal object declaration.
19133         (Switch_View): A private subtype of a non-private type needs to be
19134         switched (the base type can have been switched without its private
19135         dependents because of the last branch of Check_Private_View.
19136         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
19137         value from BT.
19138         (Instantiate_Type): Emit an error message whenever a class-wide type of
19139         a tagged incomplete type is used as a generic actual.
19140         (Find_Actual_Type): Extend routine to handle a component type in a child
19141         unit that is imported from a formal package in a parent.
19142         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
19143         agree on constrainedness, rather than checking against ultimate ancestor
19144         (Instantiate_Subprogram_Body): Create a cross-reference link to the
19145         generic body, for navigation purposes.
19146
19147 2006-10-31  Robert Dewar  <dewar@adacore.com>
19148             Thomas Quinot  <quinot@adacore.com>
19149
19150         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
19151         type.
19152         (New_Stream_Subprogram): When processing an attribute definition clause
19153         for a stream-oriented subprogram, record an entity node occurring at
19154         the point of clause to use for checking the visibility of the clause,
19155         as defined by 8.3(23) as amended by AI-195.
19156         (New_Stream_Subprogram): New procedure, factoring behaviour from both
19157          New_Stream_Function and New_Stream_Procedure.
19158         (New_Stream_Function, New_Stream_Procedure): Removed.
19159         (Analyze_Attribute_Definition_Clause, case Address): Check new
19160         Alignment_Check check
19161
19162 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19163             Javier Miranda  <miranda@adacore.com>
19164             Robert Dewar  <dewar@adacore.com>
19165
19166         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
19167         generate the same errors compiling under -gnatc.
19168         (Try_Object_Operation): If no candidate interpretation succeeds, but
19169         there is at least one primitive operation with the right name, report
19170         error in call rather than on a malformed selected component.
19171         (Analyze_Selected_Component): If the prefix is an incomplete type from
19172         a limited view, and the full view is available, use the full view to
19173         determine whether this is a prefixed call to a primitive operation.
19174         (Operator_Check): Verify that a candidate interpretation is a binary
19175         operation before checking the type of its second formal.
19176         (Analyze_Call): Add additional warnings for function call contexts not
19177         yet supported.
19178         (Analyze_Allocator): Move the check for "initialization not allowed for
19179         limited types" after analyzing the expression. This is necessary,
19180         because OK_For_Limited_Init looks at the structure of the expression.
19181         Before analysis, we don't necessarily know what sort of expression it
19182         is. For example, we don't know whether F(X) is a function call or an
19183         indexed component; the former is legal in Ada 2005; the latter is not.
19184         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
19185         were missing. We also didn't handle qualified expressions. Now also
19186         allow function calls. Use new common routine OK_For_Limited_Init.
19187         (Analyze_Type_Conversion): Do not perform some legality checks in an
19188         instance, because the error message will be redundant or spurious.
19189         (Analyze_Overloaded_Selected_Component): Do not do style check when
19190         setting an entity, since we do not know it is the right entity yet.
19191         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
19192         (Analyze_Overloaded_Selected_Component): Same change
19193         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
19194         since regular incomplete subtypes are transformed into corresponding
19195         subtypes of their full views.
19196         (Complete_Object_Operation): Treat name of transformed subprogram call
19197         as coming from source, for browsing purposes.
19198         (Try_Primitive_Operation): If formal is an access parameter, compare
19199         with base type of object to determine whether it is a primitive
19200         operation.
19201         (Operator_Check): If no interpretation of the operator matches, check
19202         whether a use clause on any candidate might make the operation legal.
19203         (Try_Class_Wide_Operation): Check whether the first parameter is an
19204         access type whose designated type is class-wide.
19205
19206 2006-10-31  Robert Dewar  <dewar@adacore.com>
19207             Ed Schonberg  <schonberg@adacore.com>
19208             Gary Dismukes  <dismukes@adacore.com>
19209
19210         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
19211         warn on infinite loops.
19212         Add \\ to some continuation messages
19213         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
19214         (Process_Bounds): If the bounds are integer literals that result from
19215         constant-folding, and they carry a user-defined type, preserve that type
19216         rather than treating this as an integer range.
19217         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
19218         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
19219         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
19220         left hand side of assignment.
19221         (Analyze_Assignment): Add suport to manage assigments to the attribute
19222         priority of a protected object.
19223         (Check_Possible_Current_Value_Condition): Allow fully qualified names
19224         not just identifiers.
19225         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
19226         or AND THEN for possible tracking.
19227         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
19228         case of while loops so we can track values in the loop body.
19229
19230 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19231             Hristian Kirtchev  <kirtchev@adacore.com>
19232             Bob Duff  <duff@adacore.com>
19233
19234         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
19235         procedure cannot be a protected operation (it is a basic_declaration,
19236         not a subprogram_declaration).
19237         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
19238         Subp. Add logic for entry processing.
19239         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
19240         Determine whether an entry or subprogram of a protected or task type
19241         override an inherited primitive of an implemented interface.
19242         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
19243         Update the actual used in calls to Check_Overriding_Indicator.
19244         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
19245         generate the proper reference to the parent unit, for cross-reference.
19246         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
19247         Is_Formal.
19248         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
19249         (Add_Extra_Formal): Revise procedure to allow passing in associated
19250         entity, scope, and name suffix, and handle setting of the new
19251         Extra_Formals field.
19252         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
19253         pass new parameters. Add support for adding the new extra access formal
19254         for functions whose calls are treated as build-in-place.
19255         (Analyze_A_Return_Statement): Correct casing in error message.
19256         Move Pop_Scope to after Analyze_Function_Return, because an extended
19257         return statement really is a full-fledged scope. Otherwise, visibility
19258         doesn't work right. Correct use of "\" for continuation messages.
19259         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
19260         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
19261         the node doesn't get properly marked as analyzed.
19262         (Analyze_Subprogram_Body): If subprogram is a function that returns
19263         an anonymous access type that denotes a task, build a Master Entity
19264         for it.
19265         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
19266         proper usage of null exclusion in a result definition.
19267         (Process_Formals): Code cleanup and new error message.
19268         (Process_Formals): Detect incorrect application of null exclusion to
19269         non-access types.
19270         (Conforming_Types): Handle conformance between [sub]types and itypes
19271          generated for entities that have null exclusions applied to them.
19272         (Maybe_Primitive_Operation): Add an additional type retrieval when the
19273          base type is an access subtype. This case arrises with null exclusions.
19274         (New_Overloaded_Entity): Do not remove the overriden entity from the
19275         homonym chain if it corresponds with an abstract interface primitive.
19276         (Process_Formals): Replace membership test agains Incomplete_Kind with a
19277         call to the synthesized predicate Is_Incomplete_Type.
19278         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
19279         primitives.
19280         (Analyze_Subprogram_Declaration): Check that abstract interface
19281         primitives are abstract or null.
19282         (Analyze_Subprogram_Specification): Remove previous check for abstract
19283         interfaces because it was not complete.
19284         (Has_Interface_Formals): Removed.
19285
19286 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19287             Javier Miranda  <miranda@adacore.com>
19288
19289         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
19290         of Analyze_Package_Body, to create Itype references for anonymous
19291         access types created in the package declaration, whose designated types
19292         may have only a limited view.
19293         (Analyze_Package_Specification): For the private part of a nested
19294         package, install private_with_clauses of enclosing compilation unit if
19295         we are in its visible part.
19296         (Declare_Inherited_Private_Subprograms): Complete barrier
19297         to ensure that the primitive operation has an alias to some parent
19298         primitive. This is now required because, after the changes done for the
19299         implementation of abstract interfaces, the contents of the list of
19300         primitives has entities whose alias attribute references entities of
19301         such list of primitives.
19302         (Analyze_Package_Specification): Simplify code that handles parent units
19303         of instances and formal packages.
19304         (Uninstall_Declarations): Check the convention consistency among
19305         primitive overriding operations of a tagged record type.
19306
19307 2006-10-31  Robert Dewar  <dewar@adacore.com>
19308             Hristian Kirtchev  <kirtchev@adacore.com>
19309             Javier Miranda  <miranda@adacore.com>
19310             Ed Schonberg  <schonberg@adacore.com>
19311
19312         * sem_ch8.adb: Minor error msg rewording
19313         (Undefined): When checking for misspellings, invert arguments (to get
19314         expected and found set right)
19315         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
19316         (Analyze_Generic_Renaming): Same fix
19317         (Use_One_Package): Do not take into account the internal entities of
19318         abstract interfaces during the analysis of entities that are marked
19319         as potentially use-visible.
19320         (Find_Type): Handle the case of an attribute reference for
19321         implementation defined attribute Stub_Type (simply let the analysis of
19322         the attribute reference rewrite it).
19323         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
19324         type that appears in a Use_Type clause.
19325         (Analyze_Object_Renaming): Add support for renaming of the Priority
19326         attribute.
19327         (Find_Type): In Ada 2005, a task type can be used within its own body,
19328         when it appears in an access definition.
19329         (Analyze_Object_Renaming): Remove warning on null_exclusion.
19330         (Analyze_Object_Renaming): Introduce checks for required null exclusion
19331          in a formal object declaration or in a subtype declaration.
19332         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
19333         (Check_Null_Exclusion): New local routine to
19334         Analyze_Subprogram_Renaming. Check whether the formals and return
19335         profile of a renamed subprogram have required null exclusions when
19336         their counterparts of the renaming already impose them.
19337         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
19338         Determine whether an entity is inside a generic scope.
19339         (In_Open_Scope): First pass of documentation update.
19340         (Find_Expanded_Name): Add support for shadow entities associated with
19341         limited withed packages. This is required to handle nested packages.
19342         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
19343         that makes a renaming of a limited withed package illegal.
19344
19345 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
19346             Ed Schonberg  <schonberg@adacore.com>
19347
19348         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
19349         Check_Overriding_Indicator.
19350         (Analyze_Task_Definition): Ditto.
19351         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
19352         (Check_Overriding_Indicator): To find overridden interface operation,
19353         examine only homonyms that have an explicit subprogram declaration, not
19354         inherited operations created by an unrelated type derivation.
19355         (Check_Overriding_Indicator): When checking for the presence of "null"
19356         in a procedure, ensure that the queried node is a procedure
19357         specification.
19358         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
19359         type when the formal is an access to variable.
19360         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
19361         (Analyze_Task_Type): Same addition
19362         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
19363         provide navigation capabilities for entries.
19364
19365 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
19366             Ed Schonberg  <schonberg@adacore.com>
19367             Javier Miranda  <miranda@adacore.com>
19368             Gary Dismukes  <dismukes@adacore.com>
19369
19370         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
19371         inherited from an interface ancestor by another interface in the
19372         context of an instance as 'late'.
19373         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
19374         of a call to a function that dispatches on access result.
19375         (Check_Dispatching_Operation): In case of late overriding of a primitive
19376         that covers abstract interface subprograms we register it in all the
19377         secondary dispatch tables associated with abstract interfaces.
19378         (Check_Dispatching_Call): Add check that a dispatching call is not made
19379         to a function with a controlling result of a limited type. This is a
19380         current implementation restriction.
19381         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
19382         (Check_Dispatching_Operation): Do no emit a warning if the controlling
19383         argument is an interface type that is a generic formal.
19384         (Is_Interface_Subprogram): Removed.
19385         (Check_Dispatching_Operation): If the subprogram is not a dispatching
19386         operation, check the formals to handle the case in which it is
19387         associated with an abstract interface type.
19388
19389 2006-10-31  Robert Dewar  <dewar@adacore.com>
19390             Ed Schonberg  <schonberg@adacore.com>
19391
19392         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
19393         Add new calls to this procedure during traversal
19394         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
19395         another unit if expansion is disabled.
19396
19397 2006-10-31  Robert Dewar  <dewar@adacore.com>
19398
19399         * sem_eval.adb (Compile_Time_Compare): Make use of information from
19400         Current_Value in the conditional case, to evaluate additional
19401         comparisons at compile time.
19402
19403 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19404             Hristian Kirtchev  <kirtchev@adacore.com>
19405             Javier Miranda  <miranda@adacore.com>
19406
19407         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
19408         subprogram type to provide better diagnostics in case of ambiguity.
19409         (Covers): Handle coverage of formal and actual anonymous access types in
19410         the context of generic instantiation.
19411         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
19412         abstract interface types; this is required to handle concurrent types
19413         with discriminants and abstract interface types.
19414         (Covers): Include type coverage of both regular incomplete subtypes and
19415         incomplete subtypes of incomplete type visibles through a limited with
19416         clause.
19417
19418 2006-10-31  Robert Dewar  <dewar@adacore.com>
19419             Hristian Kirtchev  <kirtchev@adacore.com>
19420             Ed Schonberg  <schonberg@adacore.com>
19421
19422         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
19423         messages for entities in packages which are not used.
19424         (Collect_Synchronized_Interfaces): New procedure.
19425         (Overrides_Synchronized_Primitive): New function.
19426         (Denotes_Discriminant): Extend predicate to apply to task types.
19427         Add missing continuation marks in error msgs
19428         (Unqualify): New function for removing zero or more levels of
19429         qualification from an expression. There are numerous places where this
19430         ought to be used, but we currently only deal properly with zero or one
19431         level.
19432         (In_Instance); The analysis of the actuals in the instantiation of a
19433         child unit is not within an instantiation, even though the parent
19434         instance is on the scope stack.
19435         (Safe_To_Capture_Value): Exclude the case of variables that are
19436         renamings.
19437         (Check_Obsolescent): Removed
19438         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
19439         is an aliased view, even when rewritten as a reference to the target
19440         object in an assignment.
19441         (Get_Subprogram_Entity): New function
19442         (Known_To_Be_Assigned): New function
19443         (Type_Access_Level): Compute properly the access level of a return
19444         subtype that is an anonymous access type.
19445         (Explain_Limited_Type): Correct use of "\" for continuation messages.
19446         (Is_Transfer): The new extended_return_statement causes a transfer of
19447         control.
19448         (Has_Preelaborable_Initialization): New function
19449         (Has_Null_Exclusion): New function. Given a node N, determine whether it
19450         has a null exclusion depending on its Nkind.
19451         Change Is_Lvalue to May_Be_Lvalue
19452         (May_Be_Lvalue): Extensive additional code to deal with subprogram
19453         arguments (IN parameters are not Lvalues, IN OUT parameters are).
19454         (Safe_To_Capture_Value): Extend functionality so it can be used for
19455         the current value condition case.
19456         (Has_Compatible_Alignment): New function
19457         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
19458         objects to handle the Ada 2005 case, where aliasedness no longer implies
19459         that the object is constrained. In particular, for dereferenced names,
19460         the designated object must be assumed to be unconstrained.
19461         (Kill_Current_Values): Properly deal with the case where we encounter
19462         a loop in the scope chain.
19463         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
19464         a value.
19465         (Compile_Time_Constraint_Error): Improve error message in error case
19466
19467         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
19468         associated with entities of abstract interface primitives.
19469         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
19470
19471 2006-10-31  Robert Dewar  <dewar@adacore.com>
19472
19473         * s-osinte-tru64.adb:
19474         Mark Asm statements Volatile to prevent warnings (seems a
19475         reasonable change anyway)
19476         Fixes new warnings
19477
19478         * s-mastop-irix.adb: Add Volatile to Asm statements
19479         Suppresses warning, and seems appropriate in any case
19480
19481         * s-osinte-vms.adb: Add Volatile to Asm statement
19482
19483         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
19484
19485         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
19486         returned.
19487         Add call to Check_Code_Statement
19488
19489 2006-10-31  Robert Dewar  <dewar@adacore.com>
19490             Ed Schonberg  <schonberg@adacore.com>
19491             Bob Duff  <duff@adacore.com>
19492
19493         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
19494         Synchronized_Present): Add Formal_Derived_Type_Definition and
19495         Private_Extension_Declaration to the list of assertions.
19496         (Is_Entry_Barrier_Function): New flag
19497         (Has_Self_Reference): New flag on aggregates, to indicate that they
19498         contain a reference to the enclosing type, inserted through a default
19499         initialization.
19500         (Next_Rep_Item): Move from Node4 to Node5.
19501         (Entity): Add this field for N_Attribute_Definition_Clause.
19502         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
19503         (N_Return_Object_Declaration): Remove this node kind. We now use
19504         N_Object_Declaration instead.
19505         (Actual_Designated_Subtype): Move to a different place to make room in
19506         N_Extended_Return_Statement.
19507         (Procedure_To_Call): Move to a different place to make room in
19508         N_Extended_Return_Statement.
19509         (Return_Type): Removed this field to make room in return statements
19510         (both kinds).
19511         (Return_Statement_Entity): New field in return statements, in part to
19512         replace Return_Type, and in part to support the fact that return
19513         statements are now pushed on the scope stack during semantic analysis.
19514         (Return_Object_Declarations): New field to support extended return
19515         statements.
19516         (N_Extended_Return_Statement): New node for extended_return_statement
19517         nonterminal.
19518         (N_Return_Object_Declaration): New node for part of
19519         extended_return_statement nonterminal. Needed because all the necessary
19520         fields won't fit in N_Extended_Return_Statement.
19521         Generic_associations now carry the Box_Present flag, to indicate a
19522         default for an actual in a partially parametrized formal package.
19523
19524         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
19525         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
19526         and for the new predefined dispatching policies: EDF_Across_Priorities,
19527         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
19528         Introduce new name Stub_Type for implementation defined attribute.
19529         Add pragma Preelaborable_Initialization
19530         Add entry for Priority attribute.
19531         Add Pragma_Wide_Character_Encoding
19532         (Get_Convention_Name): Given a convention id, this function returns the
19533         corresponding name id from the names table.
19534
19535 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19536             Robert Dewar  <dewar@adacore.com>
19537             Bob Duff  <duff@adacore.com>
19538
19539         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
19540         print null exclusion twice in the case of an access definition,
19541         Implement new -gnatL switch
19542         Remove N_Return_Object_Declaration. We now use
19543         N_Object_Declaration instead. Implement the case for
19544         N_Extended_Return_Statement. Alphabetize the cases.
19545         Add cases for new nodes N_Extended_Return_Statement and
19546         N_Return_Object_Declaration. The code is not yet written.
19547         Update the output for N_Formal_Object_Declaration
19548         and N_Object_Renaming_Declaration.
19549         (Write_Itype): Account for the case of a modular integer subtype whose
19550         base type is private.
19551
19552 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
19553
19554         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
19555         Remove elaboration code, now done in the binder.
19556
19557         * s-rident.ads: Make this unit Preelaborate.
19558         (No_Restrictions): New constant used to clean up code and follow
19559         preelaborate constraints.
19560
19561         * s-stalib.adb:
19562         Add System.Restrictions dependence, referenced directly from the
19563         binder generated file.
19564
19565 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
19566
19567         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
19568         True when AAMP extended floating-point is in use (48-bit). Change type
19569         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
19570         the two byte array types on AFloat. Change type of IV_Ilf overlay
19571         variable from Byte8 to ByteLF. Add appropriate initializations of
19572         floating-point overlays for AAMP cases.
19573
19574 2006-10-31  Javier Miranda  <miranda@adacore.com>
19575
19576         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
19577         (Get_Ceiling): New subprogram that returns
19578         the ceiling priority of the protected object.
19579         (Set_Ceiling): New subprogram that sets the new ceiling priority of
19580         the protected object.
19581
19582         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
19583
19584         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
19585
19586 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
19587
19588         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
19589         requeuing to the same protected object to give higher priority tasks
19590         the opportunity to execute.
19591
19592 2006-10-31  Robert Dewar  <dewar@adacore.com>
19593
19594         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
19595         add more precise check for the character sequence that follows '[' to
19596         avoid possible confusion in case if '[' is the last character of a
19597         string literals.
19598         (Scan_Wide): Always allow brackets encoding
19599
19600 2006-10-31  Olivier Hainque  <hainque@adacore.com>
19601
19602         * s-stchop.ads: make this unit preelaborate. This is desirable in
19603         general and made mandatory by the use of this unit by s-taprop which
19604         is itself preelaborate.
19605
19606         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
19607         Td_Events component.
19608
19609 2006-10-31  Vincent Celier  <celier@adacore.com>
19610
19611         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
19612         in file names.
19613
19614 2006-10-31  Vincent Celier  <celier@adacore.com>
19615
19616         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
19617
19618 2006-10-31  Vincent Celier  <celier@adacore.com>
19619
19620         * makegpr.adb (Check_Compilation_Needed): Take into account path names
19621         with spaces.
19622         (Check_Compilation_Needed): When checking a C or C++ source, do not
19623         resolve symbolic links.
19624         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
19625         When not in verbose mode and Ellipse is True, display "..." for the
19626         first argument with Display set to False.
19627         (Build_Global_Archive): Always set Display True for the first object
19628         file. Call Display_Command with Ellipse set to True.
19629
19630 2006-10-31  Matt Heaney  <heaney@adacore.com>
19631
19632         * a-crbtgo.ads: Commented each subprogram
19633
19634         * a-crbtgo.adb: Added reference to book from which algorithms were
19635         adapted.
19636
19637         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
19638         indicate which child.
19639         (Generic_Conditional_Insert): changed parameter name from "Success" to
19640         "Inserted".
19641         (Generic_Unconditional_Insert_With_Hint): improved algorithm
19642
19643         * a-coorse.adb (Replace_Element): changed parameter name in call to
19644         conditional insert operation.
19645
19646         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
19647
19648         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
19649         Generic_Iteration
19650
19651         * a-ciorse.adb (Replace_Element): changed parameter name in call to
19652         conditional insert operation.
19653
19654         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
19655         Generic_Iteration.
19656
19657         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
19658         instead of mode inout.
19659
19660         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
19661         draft
19662         (Generic_Read): preserve existing buckets array if possible
19663         (Generic_Write): don't send buckets array length anymore
19664
19665         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
19666         instead of mode inout.
19667
19668         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
19669         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19670
19671         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
19672         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19673         (Replace_Element): local operation is now an instantiation
19674
19675         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
19676         check current length.
19677         (Generic_Replace_Element): new operation
19678
19679 2006-10-31  Doug Rupp  <rupp@adacore.com>
19680
19681         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
19682         Call TBK$SYMBOLIZE without omitting parameters.
19683
19684 2006-10-31  Vincent Celier  <celier@adacore.com>
19685
19686         * symbols-processing-vms-ia64.adb,
19687         symbols-processing-vms-alpha.adb (Process): Do not include symbols
19688         that come from generic instantiations in bodies.
19689
19690 2006-10-31  Pat Rogers  <rogers@adacore.com>
19691
19692         * a-rttiev.ads, a-rttiev.adb:
19693         This is a significant redesign primarily for the sake of automatic
19694         timer task termination but also to fix a design flaw.
19695         Therefore we are now using an RTS lock, instead of a protected
19696         object, to provide mutual exclusion to the queue of pending events
19697         and the type Timing_Event is no longer a protected type.
19698
19699 2006-10-31  Robert Dewar  <dewar@adacore.com>
19700             Cyrille Comar  <comar@adacore.com>
19701             Ben Brosgol  <brosgol@adacore.com>
19702
19703         * debug.adb:  Update flags documentation
19704
19705         * gnat_ugn.texi: Add documentation for new -gnatwq switch
19706         Clean up documentation for several other warning switches
19707         Clarify how task stack size can be specified with various
19708         versions of Windows.
19709         Add note that -gnatVo includes ranges including loops
19710         Add documentation for -gnatL switch
19711         Add note on elaboration warning for initializing variables
19712         Add documentation for new -gnatwt warning switch
19713         Document new form of pragma Warnings (On|Off, string)
19714         Add comment on use of pragma Warnings to control warnings
19715         Add documentation for -gnatjnn switch
19716         Modify section on interfacing with C for VMS 64-bit.
19717         Add doc for -gnatVe/E
19718         Add documentation of new warning flags -gnatww/-gnatwW
19719         Add warnings about address clause overlays to list of warnings
19720         (Exception Handling Control): Document that the option --RTS must be
19721         used consistently for gcc and gnatbind.
19722         Clarify that inlining is not always possible
19723         Update documentation on pragma Unchecked_Union.
19724
19725         * gnat_rm.texi:
19726         Add documentation for new extended version of pragma Obsolescent
19727         Add documentation for implementation defined attribute 'Stub_Type.
19728         Add note on use of Volatile in asm statements
19729         Add documentation on use of pragma Unreferenced in context clause
19730         Document new form of pragma Warnings (On|Off, pattern)
19731         Document pragma Wide_Character_Encoding
19732         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
19733         enforced if code generation is active.
19734         Add section on pragma Suppress to document GNAT specific check
19735         Alignment_Check
19736         Clarify difference between No_Dispatching_Calls & No_Dispatch.
19737         Add documentation for pragma Restrictions (No_Elaboration_Code)
19738
19739         * gnat-style.texi:
19740         Add comments on layout of subprogram local variables in the
19741         presence of nested subprograms.
19742
19743         * ug_words: Resync.
19744
19745         * elists.ads: Minor reformatting
19746         Node returns Node_Or_Entity_Id (doc change only)
19747
19748         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
19749
19750         * g-arrspl.ads (Create): Update comments.
19751
19752         * sem.ads: Add details on the handling of the scope stack.
19753
19754         * usage.adb: Update documentation.
19755
19756         * validsw.ads, validsw.adb:
19757         Add definition of Validity_Check_Components and implement -gnatVe/E
19758
19759         * vms_data.ads: Add missing VMS qualifiers.
19760
19761         * s-addope.ads: Add documentation on overflow and divide by zero
19762
19763 2006-10-31  Robert Dewar  <dewar@adacore.com>
19764             Thomas Quinot  <quinot@adacore.com>
19765             Arnaud Charlet  <charlet@adacore.com>
19766
19767         * fmap.adb: Put routines in alpha order
19768
19769         * g-boumai.ads: Remove redundant 'in' keywords
19770
19771         * g-cgi.adb: Minor reformatting
19772
19773         * g-cgi.ads: Remove redundant 'in' keywords
19774
19775         * get_targ.adb: Put routines in alpha order
19776
19777         * prj-attr.ads: Minor reformatting
19778
19779         * s-atacco.ads: Minor reformatting
19780
19781         * scn.adb: Put routines in alpha order
19782
19783         * sinput-l.adb: Minor comment fix
19784
19785         * sinput-p.adb: Minor comment fix
19786
19787         * s-maccod.ads: Minor reformatting
19788
19789         * s-memory.adb: Minor reformatting
19790
19791         * s-htable.adb: Fix typo in comment.
19792
19793         * s-secsta.adb: Minor comment update.
19794
19795         * s-soflin.adb: Minor reformatting
19796
19797         * s-stoele.ads:
19798         Add comment about odd qualification in Storage_Offset declaration
19799
19800         * s-strxdr.adb:
19801         Remove unnecessary 'in' keywords for formal parameters.
19802
19803         * treeprs.adt: Minor reformatting
19804
19805         * urealp.adb: Put routines in alpha order
19806
19807         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
19808         taking string.
19809
19810         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19811
19812         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
19813
19814         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
19815         workaround as on other platforms.
19816
19817         * g-eacodu-vms.adb: Remove redundant 'in' keywords
19818         * g-expect-vms.adb: Remove redundant 'in' keywords
19819
19820         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
19821         clear error message if the list-of-files file cannot be opened.
19822
19823         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
19824         equality operator is always visible.
19825
19826         * lang.opt: Woverlength-strings: New option.
19827
19828         * nmake.adt:
19829         Update copyright, since nmake.ads and nmake.adb have changed.
19830
19831         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
19832         (Binder_Output_Time_Stamps_Set): removed.
19833         (Old_Binder_Output_Time_Stamp): idem.
19834         (New_Binder_Output_Time_Stamp): idem.
19835         (Recording_Time_From_Last_Bind): idem.
19836         (Recording_Time_From_Last_Bind): Make constant.
19837
19838         * output.ads, output.adb (Write_Str): Allow LF characters
19839         (Write_Spaces): New procedure
19840
19841         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
19842
19843         * inline.adb: Minor reformatting
19844
19845         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
19846
19847         * s-mastop-vms.adb: Remove redundant 'in' keywords
19848
19849         * s-osprim-vms.adb: Remove redundant 'in' keywords
19850
19851         * s-trafor-default.adb: Remove redundant 'in' keywords
19852
19853         * 9drpc.adb: Remove redundant 'in' keywords
19854
19855         * s-osinte-mingw.ads: Minor reformatting
19856
19857         * s-inmaop-posix.adb: Minor reformatting
19858
19859         * a-direio.ads: Remove quotes from Compile_Time_Warning message
19860
19861         * a-exexda.adb: Minor code reorganization
19862
19863         * a-filico.adb: Minor reformatting
19864
19865         * a-finali.adb: Minor reformatting
19866
19867         * a-nudira.ads: Remove quote from Compile_Time_Warning message
19868
19869         * a-numeri.ads: Minor reformatting
19870
19871         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
19872
19873         * exp_pakd.ads: Fix obsolete comment
19874
19875         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
19876         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
19877         Probably not a bug, but certainly neater and more efficient.
19878
19879         * a-tienio.adb: Minor reformatting
19880
19881         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
19882         Avoid assuming low bound of string is 1.
19883
19884         * gnatbind.adb: Change Bindusg to package and rename procedure as
19885         Display, which now ensures that it only outputs usage information once.
19886         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
19887
19888         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
19889         Table'First.
19890
19891         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
19892         warning.
19893         (Match): Add pragma Assert to ensure that Matches'First is zero
19894
19895         * g-regpat.ads (Match): Document that Matches lower bound must be zero
19896
19897         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
19898         documented preconditions (also kills warnings about bad indexes).
19899
19900         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
19901         is 1.
19902         (Build_Import_Library): Ditto;
19903
19904         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
19905
19906         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
19907
19908         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
19909         lower bound of choice table is 1.
19910
19911         * sem_case.ads (Analyze_Choices): Document that lower bound of
19912         Choice_Table is 1.
19913
19914         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
19915         string is 1.
19916
19917         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
19918         and add appropriate Assert pragma to suppress warnings.
19919
19920         * atree.h, atree.ads, atree.adb
19921         Change Elist24 to Elist25
19922         Add definitions of Field28 and Node28
19923         (Traverse_Field): Use new syntactic parent table in sinfo.
19924
19925         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19926
19927         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
19928
19929         * exp_tss.adb: Put routines in alpha order
19930
19931         * fe.h: Remove redundant declarations.
19932
19933 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
19934
19935         * utils.c (builtin_function): Rename to gnat_builtin_function.
19936         Move common code to add_builtin_function.
19937         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
19938         gnat_builtin_function.
19939         * gigi.h (builtin_function): Rename to gnat_builtin_function.
19940         Change the signature.
19941
19942 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
19943
19944         * Makefile.in: Add TEXI2PDF definition.
19945         * Make-lang.in: Add "ada.pdf" target.
19946
19947 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
19948
19949         * decl.c, utils.c: Fix comment typos.
19950         * utils.c: Fix a typo.
19951
19952 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
19953
19954         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
19955         on "pure" Ada subprograms if SJLJ exceptions are used.
19956         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
19957         on the declaration node of JMPBUF_SAVE.
19958         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
19959         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
19960         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
19961
19962 2006-08-20  Laurent Guerby  <laurent@guerby.net>
19963
19964         PR ada/28716
19965         g-socket.adb (Bind_Socket): Call Set_Address.
19966
19967 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
19968
19969         PR ada/15802
19970         * decl.c (same_discriminant_p): New static function.
19971         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
19972         subtype and we have discriminants, fix up the COMPONENT_REFs
19973         for the discriminants to make them reference the corresponding
19974         fields of the parent subtype after it has been built.
19975
19976 2006-09-15  Roger Sayle  <roger@eyesopen.com>
19977
19978         PR ada/18817
19979         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
19980         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
19981
19982 2006-09-13  Olivier Hainque  <hainque@adacore.com>
19983
19984         PR ada/29025
19985         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
19986         of a SAVE_EXPR, just make the operand addressable/not-readonly and
19987         let the common gimplifier code make and propagate a temporary copy.
19988         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
19989         out/in-out actuals and defer setting the addressable/readonly bits
19990         to the gimplifier.
19991
19992 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
19993
19994         PR ada/28591
19995         * decl.c (components_to_record): Defer emitting debug info for the
19996         record type associated with the variant until after we are sure to
19997         actually use it.
19998
19999 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
20000
20001         PR ada/21952
20002         * gigi.h (gnat_internal_attribute_table): Declare.
20003         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
20004         * utils.c (gnat_internal_attribute_table): New global variable.
20005         (builtin_function): Always call decl_attributes on the builtin.
20006         (handle_const_attribute): New static function.
20007         (handle_nothrow_attribute): Likewise.
20008
20009 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
20010
20011         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
20012
20013 2006-06-23  Olivier Hainque  <hainque@adacore.com>
20014
20015         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
20016         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
20017
20018 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
20019             Eric Botcazou  <ebotcazou@adacore.com>
20020
20021         PR ada/18692
20022         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
20023         check-gnat into check-acats.
20024
20025 2006-06-17  Karl Berry  <karl@gnu.org>
20026
20027         * gnat-style.texi (@dircategory): Use "Software development"
20028         instead of "Programming", following the Free Software Directory.
20029
20030 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20031
20032         PR ada/27944
20033         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
20034
20035 2006-06-06  Laurent Guerby  <laurent@guerby.net>
20036
20037         PR ada/27769
20038         mlib-utl.adb: Use Program_Name.
20039
20040 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
20041
20042         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
20043         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
20044         trans.c, utils.c: Fix comment typos.  Follow spelling
20045         conventions.
20046         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
20047         conventions.
20048
20049 2006-05-19  Nicolas Setton  <setton@adacore.com>
20050
20051         * misc.c (gnat_dwarf_name): New function.
20052         (LANG_HOOKS_DWARF_NAME): Define to it.
20053
20054 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
20055
20056         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
20057         (ada/misc.o): Likewise.
20058         (ada/utils.o): Likewise.
20059
20060 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
20061
20062         * Makefile.in: Add Ada support for GNU/kFreeBSD.
20063         * s-osinte-kfreebsd-gnu.ads: New file.
20064
20065 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
20066
20067         * Make-lang.in: Rename docdir to gcc_docdir.
20068
20069 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
20070
20071         * gigi.h (get_ada_base_type): Delete.
20072         * utils2.c (get_ada_base_type): Likewise.
20073         * trans.c (convert_with_check): Operate in the real base type.
20074
20075 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20076
20077         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
20078
20079 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
20080
20081         * utils.c (create_var_decl): Use have_global_bss_p when deciding
20082         whether to make the decl common.
20083
20084 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
20085
20086         * Make-lang.in (Ada): Remove.
20087         (.PHONY): Remove Ada
20088
20089 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20090
20091         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
20092         aggregate, check the interpretations of the other operand to find one
20093         that may be a boolean array.
20094
20095         (Analyze_Selected_Component): Fix flow-of-control typo in case where
20096         the prefix is a private extension.
20097
20098 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
20099
20100         PR ada/26315
20101         * utils2.c (find_common_type): If both input types are BLKmode and
20102         have the same constant size, keep using the first one.
20103
20104         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
20105
20106         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
20107
20108         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
20109
20110 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
20111
20112         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
20113         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
20114         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
20115         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
20116         Abort_Defer/Undefer pairs to avoid the possibility of a task being
20117         aborted while owning a lock.
20118
20119 2006-02-17  Javier Miranda  <miranda@adacore.com>
20120             Robert Dewar  <dewar@adacore.com>
20121
20122         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
20123         through an access to class-wide interface we force the displacement of
20124         the pointer to the allocated object to reference the corresponding
20125         secondary dispatch table.
20126         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
20127         if Long_Shifts are supported on the target, even if 64 bit divides
20128         are not supported (configurable run time mode).
20129         (Expand_N_Type_Conversion): Do validity check if validity checks on
20130         operands are enabled.
20131         (Expand_N_Qualified_Expression): Do validity check if validity checks
20132         on operands are enabled.
20133
20134 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20135
20136         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
20137         must be materialized when the renamed expression is an explicit
20138         dereference.
20139
20140 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20141
20142         * freeze.adb (Statically_Discriminated_Components): Return false if
20143         the bounds of the type of the discriminant are not static expressions.
20144
20145         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
20146         the bounds of the discriminant type are not static.
20147
20148 2006-02-17  Robert Dewar  <dewar@adacore.com>
20149
20150         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
20151         then we close To if it is valid.
20152
20153 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
20154
20155         * init.c (facility_resignal_table): new array
20156         (__gnat_default_resignal_p): enhance default predicate to resignal if
20157         VMS condition has one of the predefined facility codes.
20158
20159 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
20160
20161         * Makefile.in: Use VMS64 specialized versions of several units in
20162         Interfaces.C hierarchy to be compatible with HP C default size choices.
20163         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
20164
20165 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20166
20167         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
20168         instantiation, the corresponding entity is the related_instance of the
20169         wrapper package created for the instance.
20170
20171 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20172
20173         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
20174         the current instance is nested within another instance in a child unit.
20175
20176 2006-02-17  Javier Miranda  <miranda@adacore.com>
20177             Ed Schonberg  <schonberg@adacore.com>
20178
20179         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
20180         type we cannot inherit the primitive operations; we inherit the
20181         Corresponding_Record_Type (which has the list of primitive operations).
20182         (Check_Anonymous_Access_Types): When creating anonymous access types for
20183         access components, use Rewrite in order to preserve the tree structure,
20184         for ASIS use.
20185         (Analyze_Object_Declaration): For limited types with access
20186         discriminants with defaults initialized by an aggregate, obtain
20187         subtype from aggregate as for other mutable types.
20188         (Derived_Type_Declaration): If the derived type is a limited interface,
20189         set the corresponding flag (Is_Limited_Record is not sufficient).
20190
20191 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20192
20193         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
20194         to inline a function that returns an unconstrained type, the return
20195         expression must be the first variable declared in the body of the
20196         function.
20197
20198 2006-02-17  Javier Miranda  <miranda@adacore.com>
20199
20200         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
20201         abstract interface type, the static analysis is not enough to know if
20202         the interface is implemented or not by the source tagged type. Hence
20203         we must pass the work to the expander to generate the required code to
20204         evaluate the conversion at run-time.
20205         (Resolve_Equality_Op): Do not apply previous
20206         transformation if expansion is disasbled, to prevent anomalies when
20207         locating global references in a generic unit.
20208
20209 2006-02-17  Vincent Celier  <celier@adacore.com>
20210
20211         * snames.ads, snames.adb: New standard names for new project attributes:
20212         archive_builder, archive_indexer, compiler_pic_option,
20213         config_body_file_name, config_body_file_name_pattern,
20214         config_file_switches, config_file_unique, config_spec_file_name,
20215         config_spec_file_name_pattern, default_builder_switches,
20216         default_global_compiler_switches, default_language,
20217         dependency_file_kind, global_compiler_switches, include_path,
20218         include_path_file, language_kind, linker_executable_option,
20219         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
20220         roots, runtime_project.
20221
20222 2006-02-17  Matthew Heaney  <heaney@adacore.com>
20223
20224         * a-convec.ads, a-convec.adb:
20225         (operator "&"): handle potential overflow for large index types
20226         (Insert): removed Contraint_Error when using large index types
20227         (Insert_Space): removed Constraint_Error for large index types
20228         (Length): moved constraint check from Length to Insert
20229
20230         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
20231         as not null access.
20232         Explicit raise statements now include an exception message.
20233         (operator "&"): handle potential overflow for large index types
20234         (Insert): removed Contraint_Error when using large index types
20235         (Insert_Space): removed Constraint_Error for large index types
20236         (Length): moved constraint check from Length to Insert
20237
20238 2006-02-17  Robert Dewar  <dewar@adacore.com>
20239
20240         * s-wchcnv.adb: Document handling of [ on output (we do not change
20241         this to ["5B"] and the new comments say why not.
20242
20243         * gnat_ugn.texi:
20244         Add note for -gnatVo that this now includes the cases of type
20245         conversions and qualified expressions.
20246         Add comments on handling of brackets encoding for Text_IO
20247
20248 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
20249             Thomas Quinot  <quinot@adacore.com>
20250             Robert Dewar  <dewar@adacore.com>
20251             Javier Miranda  <miranda@adacore.com>
20252
20253         * expander.adb: Fix typo in comment
20254
20255         * exp_pakd.adb: Fix typo
20256         Minor comment reformatting.
20257
20258         * g-dyntab.adb: Minor reformatting
20259
20260         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
20261         aliased subprograms to look for the abstract interface subprogram.
20262
20263 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
20264
20265         * env.c (__gnat_setenv): Use size_t.
20266         (__gnat_unsetenv): Likewise.
20267         (__gnat_clearenv): Likewise.
20268
20269 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
20270
20271         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
20272
20273 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20274
20275         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
20276         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
20277         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
20278         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
20279         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
20280         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
20281         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
20282         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
20283         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
20284         no longer used.
20285
20286 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
20287
20288         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
20289         protection against race conditions is not needed.
20290         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
20291         fallback handler.
20292         (Set_Specific_Handler): Add mutual exclusive access to the specific
20293         handler.
20294         (Specific_Handler): Add mutual exclusive access for retrieving the
20295         specific handler.
20296
20297         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
20298         back handler.
20299
20300         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
20301         Fall_Back_Handler and Specific_Handler.
20302
20303         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
20304         termination handlers.
20305         Set two different owerflow depending on the maximal stack size.
20306
20307         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
20308         protection against race conditions is not needed when executing the
20309         task termination handler.
20310
20311 2006-02-13  Robert Dewar  <dewar@adacore.com>
20312
20313         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
20314         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
20315         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
20316         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
20317         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
20318         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
20319         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
20320         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
20321         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
20322         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
20323         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
20324         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
20325         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
20326         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
20327         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
20328         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
20329         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
20330         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
20331         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
20332         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
20333         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
20334         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
20335         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
20336         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
20337         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
20338         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
20339         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
20340         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
20341         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
20342         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
20343         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
20344         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
20345         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
20346         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
20347         reformatting.
20348
20349 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
20350
20351         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
20352         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
20353         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
20354         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
20355         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
20356         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
20357         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
20358         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
20359         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
20360
20361 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20362
20363         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
20364         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
20365         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
20366         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
20367         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
20368         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
20369         replaced by anonymous access type.
20370         (pthread_sigmask): Now take an access sigset_t
20371
20372         * s-osinte-hpux.ads:  Ditto.
20373         (pthread_mutex_t, pthread_cond_t): Update definitions to support
20374         properly 32 and 64 bit ABIs.
20375
20376 2006-02-13  Pascal Obry  <obry@adacore.com>
20377
20378         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
20379         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
20380         s-taprop-linux.adb, s-taprop-solaris.adb,
20381         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
20382         adjustement is already done when calling this routine.
20383
20384 2006-02-13  Pascal Obry  <obry@adacore.com>
20385
20386         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
20387         table to take advantage of the 16 priority levels available on Windows
20388         2000 and XP. On NT4 there are only 7 priority levels, this is properly
20389         supported by this new mapping.
20390
20391 2006-02-13  Nicolas Setton  <setton@adacore.com>
20392
20393         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
20394         (get_encoding): New subprogram. Extracts the encodings from an encoded
20395         Ada name.
20396
20397 2006-02-13  Pascal Obry  <obry@adacore.com>
20398             Nicolas Roche  <roche@adacore.com>
20399             Arnaud Charlet  <charlet@adacore.com>
20400
20401         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
20402         support.
20403         (__gnat_try_lock): Add unicode support by using a specific section on
20404         Windows.
20405         (__gnat_get_current_dir): Idem.
20406         (__gnat_open_read): Idem.
20407         (__gnat_open_rw): Idem.
20408         (__gnat_open_create): Idem.
20409         (__gnat_create_output_file): Idem.
20410         (__gnat_open_append): Idem.
20411         (__gnat_open_new): Idem.
20412         (__gnat_file_time_name): Idem.
20413         (__gnat_set_file_time_name): Idem.
20414         (__gnat_stat): Idem.
20415         (win32_no_block_spawn): Idem.
20416         (__gnat_locate_exec_on_path): Idem.
20417         (__gnat_opendir): New routine.
20418         (__gnat_closedir): Idem.
20419         (__gnat_readdir): Add new parameter length (pointer to int). Update
20420         implementation to use it and add specific Win32 code for Unicode
20421         support.
20422         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
20423         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
20424         (convert_addresses): Do not define this dummy routine on VMS.
20425
20426         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
20427         runtime Unicode support will be activated.
20428         (S2WS): String to Wide-String conversion. This version just copy a
20429         string in non Unicode version.
20430         (WS2S): Wide-String to String conversion. This version just copy a
20431         string in non Unicode version.
20432
20433         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
20434         (Open): Now import __gnat_opendir from adaint.c.
20435         (Read): Change the implementation to support unicode characters. It is
20436         not possible to use strlen() on Windows as this version supports only
20437         standard ASCII characters. So the length of the directory entry is now
20438         returned from the imported __gnat_readdir routine.
20439         Update copyright notice.
20440
20441         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
20442         (opendir): Moved to adaint.c.
20443
20444         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
20445         (Get_Directory): Fix wrong indexing.
20446         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
20447         __gnat_getenv from env.c
20448         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
20449         from env.c
20450
20451         * env.h, env.c: New file.
20452
20453         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
20454         adaint.c by __gnat_getenv from env.c
20455
20456         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
20457         adaint.c by __gnat_getenv from env.c
20458
20459         * Make-lang.in: Add env.o in the list of C object needed by gnat1
20460         and gnatbind.
20461         Update dependencies.
20462
20463 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20464             Olivier Hainque  <hainque@adacore.com>
20465             Eric Botcazou  <ebotcazou@adacore.com>
20466
20467         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
20468
20469         * gigi.h (value_factor_p): Add prototype and description, now public.
20470
20471         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
20472         promotion for field with rep clause if the associated size was proven
20473         to be in error.
20474         Expand comments describing attempts to use a packable type.
20475         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
20476         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
20477         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
20478         necessary since these are not different types and pointers may
20479         actually designate any subtype in this hierarchy.
20480         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
20481         discriminants but put them into record only if not Unchecked_Union;
20482         pass flag to components_to_record showing Unchecked_Union.
20483         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
20484         components before variants; don't set TYPE_UNCHECKED_UNION_P.
20485         (components_to_record): New argument UNCHECKED_UNION.
20486         Remove special case code for Unchecked_Union and instead use main code
20487         with small changes.
20488
20489         PR ada/26096
20490         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
20491         variable with the expression being built, only its inner field.
20492
20493         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
20494         emit_sequence_entry_statements.
20495         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
20496         (establish_gnat_vms_condition_handler): Move before
20497         Subprogram_Body_to_gnu.
20498         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
20499         for a subprogram if it has a foreign convention or is exported.
20500         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
20501         substituted for a CONST_DECL.
20502         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
20503         Etype to assoc_to_constructor.
20504         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
20505         discriminants of Unchecked_Union.
20506         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
20507         don't need cluttering preprocessor directives.
20508         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
20509         condition handler as current in the compiled function.
20510         (body_with_handlers_p): New function. Tell whether a given sequence of
20511         statements node is attached to a package or subprogram body and involves
20512         exception handlers possibly nested within inner block statements.
20513         (emit_sequence_entry_statements): New function, to emit special
20514         statements on entry of sequences when necessary. Establish GNAT
20515         condition handler in the proper cases for VMS.
20516         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
20517         emit_sequence_entry_statements.
20518
20519         * utils2.c (find_common_type): If both input types are BLKmode and
20520         have a constant size, use the smaller one.
20521         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
20522         the same.
20523
20524         * utils.c (value_factor_p): Make public, to allow uses from other gigi
20525         units.
20526         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
20527         (convert, case UNION_TYPE): Remove special treatment for unchecked
20528         unions.
20529
20530         PR ada/18659
20531         (update_pointer_to): Update variants of pointer types to unconstrained
20532         arrays by attaching the list of fields of the main variant.
20533
20534 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20535             Robert Dewar  <dewar@adacore.com>
20536
20537         * a-exexpr.adb, a-exexpr-gcc.adb
20538         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
20539         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
20540         Remove code unused for exception propagation for the compiler itself
20541         from a-except.adb and update to still share separate packages.
20542
20543         * a-except.ads, a-except.adb: Ditto.
20544         Add comments that this version is now used only by the compiler and
20545         other basic tools. The full version that includes the Ada 2005 stuff
20546         is in separate files a-except-2005.ads/adb. The reason is that we do
20547         not want to cause bootstrap problems with compilers not recognizing
20548         Wide_Wide_String.
20549         Add exception reason code PE_Implicit_Return
20550         Add new exception reason code (Null Exception_Id)
20551
20552         * a-except-2005.adb, a-except-2005.ads: New files.
20553
20554         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
20555
20556         * s-wchcon.adb: New file.
20557
20558         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
20559         (traceback.o deps): Likewise.
20560         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
20561         Activate build of GMEM instrumentation library on VMS targets.
20562         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
20563         Use a-except-2005.ads/adb for all run-time library builds unless
20564         specified otherwise.
20565         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
20566         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
20567         Use s-parame.adb on all native platforms.
20568         Use s-parame-vxworks.adb on all vxworks platforms.
20569         Add env.c env.h in LIBGNAT_SRCS
20570         Add env.o in LIBGNAT_OBJS
20571         (GNATMAKE_OBJS): Remove ctrl_c.o object.
20572         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
20573         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
20574         supports VxWorks 6 RTPs.
20575         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
20576         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
20577
20578         * types.h, types.ads (Terminate_Program): New exception
20579         Add comment on modifying multiple versions of a-except.adb when the
20580         table of exception reasons is modified.
20581         Add exception reason code PE_Implicit_Return
20582         Add new exception reason code (Null Exception_Id)
20583
20584         * clean.adb (Initialize): Get the target parameters before checking
20585         if target is OpenVMS. Move the OpenVMS specific code here from package
20586         body elaboration code.
20587
20588 2006-02-13  Thomas Quinot  <quinot@adacore.com>
20589             Vincent Celier  <celier@adacore.com>
20590             Robert Dewar  <dewar@adacore.com>
20591
20592         * ali-util.adb (Get_File_Checksum): Update to account for change in
20593         profile of Initialize_Scanner.
20594
20595         * gprep.adb (Gnatprep): Update to account for change in profile of
20596         Initialize_Scanner.
20597         (Process_One_File): Same.
20598
20599         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
20600         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
20601         that behaviour using the new Unit information recorded in the source
20602         files table, rather than going through all units every time.
20603         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
20604         (Get_Source_Unit): Same.
20605
20606         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
20607         change in profile of Initialize_Scanner.
20608         (Prepare_To_Preprocess): Same.
20609
20610         * lib.ads: Fix typo in comment (templace -> template).
20611
20612         * prj-part.adb (Parse_Single_Project): Update to account for change in
20613         profile of Initialize_Scanner.
20614
20615         * scn.adb (Initialize_Scanner): Account for change in profile of
20616         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
20617         Also record the association of the given Source_File_Index to the
20618         corresponding Unit_Number_Type.
20619
20620         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
20621         procedure.
20622         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
20623         Remove Unit formal for generic scanner: this formal
20624         is only relevant to Scn (the scanner instance used to parse Ada source
20625         files), not to other instances. Update comment accordingly.
20626         (Scan): Use new function Snames.Is_Keyword_Name.
20627
20628         * sinfo-cn.adb: Fix typo in comment.
20629
20630         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
20631         Unit.
20632
20633         * sinput.ads (Source_File_Record): New component Unit, used to capture
20634         the unit identifier (if any) associated to a source file.
20635
20636         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
20637         Unit in Source_File_Record.
20638
20639         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
20640         in profile of Initialize_Scanner.
20641
20642         * scans.adb (Initialize_Ada_Keywords): New procedure
20643
20644         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
20645         Ada keywords in the Namet table, without the need to call
20646         Initialize_Scanner.
20647
20648         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
20649         (Is_Keyword_Name): New function
20650
20651         * snames.ads: Add subtype Configuration_Pragma_Names
20652         Add pragma Ada_2005 (synonym for Ada_05)
20653         (Is_Keyword_Name): New function
20654
20655         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
20656
20657 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20658
20659         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
20660         index.
20661
20662         * a-stwima.adb (To_Set): Add extra check when N = 0.
20663
20664         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
20665
20666 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20667
20668         * s-parame-mingw.adb, s-parame-linux.adb,
20669         s-parame-solaris.adb: Removed, replaced by s-parame.adb
20670
20671         * s-parame-vxworks.ads: Fix typo.
20672
20673         * s-parame-vxworks.adb: New file.
20674
20675         * s-parame.adb: Version now used by all native platforms.
20676         (Default_Stack_Size): Use 2 megs for default stack size and use
20677         __gl_default_stack_size when available.
20678         (Minimum_Stack_Size): Use 12K.
20679
20680         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
20681         (Create_Task): Refine implementation taking advantage of the XP stack
20682         size support. On XP, we now create the thread using the flag
20683         STACK_SIZE_PARAM_IS_A_RESERVATION.
20684
20685         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
20686
20687         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
20688         XP and 0 on older Windows versions.
20689
20690         * interfac-vms.ads: Removed, no longer used.
20691
20692 2006-02-13  Matthew Heaney  <heaney@adacore.com>
20693
20694         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
20695         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
20696         a-cohase.adb: All explicit raise statements now include an exception
20697         message.
20698
20699         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
20700         (Update_Element_Preserving_Key): renamed op to just Update_Element.
20701         Explicit raise statements now include an exception message
20702
20703         * a-cihase.ads, a-cohase.ads: Removed comment.
20704
20705         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
20706         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
20707         a-szbzha.adb, a-szfzha.ads: New files.
20708
20709 2006-02-13  Matthew Heaney  <heaney@adacore.com>
20710
20711         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
20712         quicksort.
20713
20714 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
20715
20716         * lang.opt: Wvariadic-macros: New option.
20717         Wold-style-definition: Likewise.
20718         Wmissing-format-attribute: Likewise.
20719
20720         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
20721         -Wold-style-definition and -Wmissing-format-attribute.
20722
20723 2006-02-13  Robert Dewar  <dewar@adacore.com>
20724
20725         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
20726
20727         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
20728
20729 2006-02-13  Nicolas Roche  <roche@adacore.com>
20730
20731         * a-envvar.adb, a-envvar.ads: New files.
20732
20733 2006-02-13  Douglas Rupp  <rupp@adacore.com>
20734
20735         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
20736
20737         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
20738
20739 2006-02-13  Pat Rogers  <rogers@adacore.com>
20740
20741         * a-rttiev.adb, a-rttiev.ads: New files.
20742
20743 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
20744
20745         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
20746         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
20747
20748         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
20749
20750 2006-02-13  Robert Dewar  <dewar@adacore.com>
20751
20752         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
20753         sem_case.adb: Minor code reorganization (not Present should be No)
20754
20755 2006-02-13  Geert Bosch  <bosch@adacore.com>
20756             Gary Dismukes  <dismukes@adacore.com>
20757
20758         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
20759         0, since the lower bound of the actual string may be greater than one.
20760
20761         PR ada/20753
20762         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
20763         layout is requested.
20764
20765 2006-02-13  Vincent Celier  <celier@adacore.com>
20766
20767         * back_end.adb (Scan_Compiler_Arguments): Check if
20768         Search_Directory_Present is True and, if it is, add the argument in
20769         the source search directory path.
20770
20771         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
20772         Search_Directory_Present to True.
20773
20774 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
20775
20776         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
20777         volatile, to tell the compiler to preserve this variable at any level
20778         of optimization.
20779         (Gen_Versions_Ada): Temporarily work around codegen bug.
20780
20781 2006-02-13  Vincent Celier  <celier@adacore.com>
20782
20783         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
20784         gcc to link with option -shared-libgcc.
20785         (Gnatlink): Remove duplicate switches -shared-libgcc
20786
20787 2006-02-13  Robert Dewar  <dewar@adacore.com>
20788
20789         * gnatvsn.ads (Current_Year): New constant, used to easily update
20790         copyright on all GNAT tools.
20791
20792         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
20793         copyright notice.
20794
20795 2006-02-13  Robert Dewar  <dewar@adacore.com>
20796
20797         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
20798         after hyphen (small aesthetic change useful for a range of numbers
20799         using ^-^.
20800         Suppress range checks for a couple of assignments which otherwise
20801         cause validity checks with validity checking turned on.
20802
20803         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
20804         Improvement in error message for object.
20805         (Rep_Item_Too_Late): Remove '!' in warning message.
20806
20807 2006-02-13  Robert Dewar  <dewar@adacore.com>
20808             Eric Botcazou  <ebotcazou@adacore.com>
20809
20810         * err_vars.ads: Suppress range checks for a couple of assignments
20811         which otherwise cause validity checks with validity checking turned on.
20812         Update comments.
20813
20814         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
20815         Make message unconditional if it is a warning.
20816         (Error_Msg_NEL): Always output warning messages.
20817         Suppress range checks for a couple of assignments which otherwise
20818         cause validity checks with validity checking turned on.
20819
20820         * errout.ads (Message Insertion Characters): Document that '!' is
20821         implied by '?' in error messages.
20822
20823         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
20824         (Gnat1drv): Use a goto to end of main subprogram instead of
20825         Exit_Program (E_Success) so that finalization can occur normally.
20826
20827 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
20828
20829         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
20830         wrapped around.
20831
20832 2006-02-13  Vincent Celier  <celier@adacore.com>
20833
20834         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
20835         Unchecked_Conversion functions.
20836         (Modification_Time): Use direct conversion of OS_Time to Calendar time
20837         when OpenVMS returns False.
20838
20839         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
20840         a-dirval.adb (OpenVMS): New Boolean function
20841
20842 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20843             Thomas Quinot  <quinot@adacore.com>
20844
20845         * checks.adb (Build_Discriminant_Checks): If the expression being
20846         checks is an aggregate retrieve the values of its discriminants to
20847         generate the check, rather than creating a temporary and a reference
20848         to it.
20849         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
20850         (Install_Null_Excluding_Check): Ditto
20851         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
20852         not for the renamed object, so that the actual itype is attached in the
20853         proper context.
20854
20855 2006-02-13  Robert Dewar  <dewar@adacore.com>
20856             Vincent Celier  <celier@adacore.com>
20857
20858         * debug.adb: Eliminate numeric switches for binder/gnatmake
20859
20860         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
20861         switches for the compiler.
20862         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
20863         (Scan_Make_Switches): When failing with an illegal switch, output an
20864         error message with the full switch.
20865         Eliminate numeric switches for binder/gnatmake
20866
20867         * switch.ads, switch.adb (Bad_Switch): New procedure
20868
20869         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
20870         Remove 0-9 as debug flag character possibilities
20871         -d is now controlling the primary stack size when its value is a
20872         positive. Also add checks against invalid values, and support for kb,
20873         mb. Ditto for -D switch.
20874
20875 2006-02-13  Robert Dewar  <dewar@adacore.com>
20876             Serguei Rybin  <rybin@adacore.com>
20877
20878         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
20879         save/restore routines.
20880         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20881         were not always properly handled previously.
20882         Since we are changing the tree format anyway, also get rid of the
20883         junk obsolete Immediate_Errors flag.
20884         (Tree_Read): Change the way of reading Tree_Version_String - now we
20885         read the version string from the tree even if its length is not the
20886         same as the length of the version string computed from Gnatvsn.
20887         (Search_Directory_Present): New Boolean flag for the compiler.
20888         Define Tree_Version_String as a dynamic string.
20889         (Default_Stack_Size): new variable, used to handle switch -d.
20890
20891         * par-prag.adb:
20892         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
20893         only for main unit.
20894         Add pragma Ada_2005 (synonym for Ada_05)
20895         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
20896         were not always properly handled previously.
20897
20898         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
20899         explicit Ada_95 to Ada_2005.
20900
20901 2006-02-13  Javier Miranda  <miranda@adacore.com>
20902             Robert Dewar  <dewar@adacore.com>
20903             Ed Schonberg  <schonberg@adacore.com>
20904
20905         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
20906         against errors in the source program: a private types for which the
20907         corresponding full type declaration is missing and pragma CPP_Virtual
20908         is used.
20909         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
20910         (Is_Known_Null): New flag
20911         (Has_Pragma_Pure): New flag
20912         (No_Return): Present in all entities, set only for procedures
20913         (Is_Limited_Type): A type whose ancestor is an interface is limited if
20914         explicitly declared limited.
20915         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
20916         entities. Only used for component marked Is_Tag. If present it stores
20917         the Offset_To_Top function used to provide this value in tagged types
20918         whose ancestor has discriminants.
20919
20920         * exp_ch2.adb: Update status of new Is_Known_Null flag
20921
20922         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
20923
20924         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
20925         the categorization sense if Is_Pure was set by pragma Pure_Function.
20926
20927 2006-02-13  Quentin Ochem  <ochem@adacore.com>
20928             Olivier Hainque  <hainque@adacore.com>
20929
20930         * bindusg.adb: Updated documentation for -d and -D switches.
20931
20932         * raise.h (__gnat_set_globals): added new parameter for
20933         Default_Stack_Size.
20934
20935         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
20936         (__gnat_handle_vms_condition): Adjust context before raise.
20937         (__gnat_install_handler): Restore the global vector setup for GCC
20938         versions before 3.4, as the frame based circtuitry is not available
20939         in this case.
20940         (__gnat_set_globals): added a parameter default_stack_size
20941         (__gl_default_stack_size): new variable.
20942
20943 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
20944
20945         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
20946         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
20947         does not exist in the Ada RM.
20948         (Compatible_Int_Bounds): Determine whether two integer range bounds
20949         are of equal length and have the same start and end values.
20950         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
20951         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
20952         aggregate when it is part of an object declaration.
20953         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
20954         constrains discriminants of its parent, add explicitly the discriminant
20955         constraints of the ancestor by retrieving them from the
20956         stored_constraint of the parent.
20957
20958 2006-02-13  Robert Dewar  <dewar@adacore.com>
20959
20960         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
20961         attribute Mechanism_Code is applied to renamed subprogram, modify
20962         prefix to point to base subprogram.
20963         Max/Min attributes now violate Restriction No_Implicit_Conditionals
20964
20965         * sinfo.ads: Document that Mechanism_Code cannot be applied to
20966         renamed subprograms so that the front-end must replace the prefix
20967         appropriately.
20968
20969 2006-02-13  Javier Miranda  <miranda@adacore.com>
20970             Gary Dismukes  <dismukes@adacore.com>
20971
20972         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
20973         availability of RE_Interface_Tag.
20974         (Build_Initialization_Call): Fix wrong access to the discriminant value.
20975         (Freeze_Record_Type): Do not generate the tables associated with
20976         timed and conditional dispatching calls through synchronized
20977         interfaces if compiling under No_Dispatching_Calls restriction.
20978         When compiling for Ada 2005, for a nonabstract
20979         type with a null extension, call Make_Controlling_Function_Wrappers
20980         and insert the wrapper function declarations and bodies (the latter
20981         being appended as freeze actions).
20982         (Predefined_Primitive_Bodies): Do not generate the bodies of the
20983         predefined primitives associated with timed and conditional
20984         dispatching calls through synchronized interfaces if we are
20985         compiling under No_Dispatching_Calls.
20986         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
20987         service is available before generating a call.
20988         (Make_Controlling_Function_Wrappers): New procedure.
20989         (Expand_N_Full_Type_Declaration): Create a class-wide master for
20990         access-to-limited-interfaces because they can be used to reference
20991         tasks that implement such limited interface.
20992         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
20993         procedure spec and body of the Offset_To_Top function that is generated
20994         when the parent of a type with discriminants has secondary dispatch
20995         tables.
20996         (Init_Secondary_Tags): Handle the case in which the parent of the type
20997         containing secondary dispatch tables has discriminants to generate the
20998         correct arguments to call Set_Offset_To_Top.
20999         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
21000
21001         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
21002         Add Wide_[Wide_]Expanded_Name.
21003         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
21004         the same functionality of Get_Prim_Op_Address but applied to predefined
21005         primitive operations because the pointers to the predefined primitives
21006         are now saved in a separate table.
21007         (Parent_Size): Modified to get access to the separate table of primitive
21008         operations or the parent type.
21009         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
21010         functionality of Set_Prim_Op_Address but applied to predefined primitive
21011         operations.
21012         (Set_Signature): New subprogram used to store the signature of a DT.
21013         (Displace): If the Offset_To_Top value is not static then call the
21014         function generated by the expander to get such value; otherwise use
21015         the value stored in the table of interfaces.
21016         (Offset_To_Top): The type of the actual has been changed to Address to
21017         give the correct support to tagged types with discriminants. In this
21018         case this value is stored just immediately after the tag field.
21019         (Set_Offset_To_Top): Two new formals have been added to indicate if the
21020         offset_to_top value is static and hence pass this value to the run-time
21021         to store it in the table of interfaces, or else if this value is dynamic
21022         and then pass to the run-time the address of a function that is
21023         generated by the expander to provide this value for each object of the
21024         type.
21025
21026         * rtsfind.ads (Default_Prin_Op_Count): Removed.
21027         (Default_Prim_Op_Count): New entity
21028         (Get_Predefined_Prim_Op_Address): New entity
21029         (Set_Predefined_Prim_Op_Address): New entity
21030         (RE_Set_Signature): New entity
21031
21032 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21033             Ed Schonberg  <schonberg@adacore.com>
21034
21035         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
21036         Make_Adjust_Call done for a newly-allocated object.
21037
21038         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
21039         in a subprogram are wrapped in a cleanup block, indicate that the
21040         subprogram contains an inner block with an exception handler.
21041         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
21042         Adjust call is for a newly-allocated object. In that case we must not
21043         assume that the finalization list chain pointers are correct (since they
21044         come from a bit-for-bit copy of the original object's pointers) so if
21045         the attach level would otherwise be zero (no change), we set it to 4
21046         instead to cause the pointers to be reset to null.
21047
21048         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
21049         reset chain pointers to null.
21050
21051 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21052
21053         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
21054         string, and the context requires a loop for the assignment (e.g.
21055         because the left-hand side is packed), generate a unique name for the
21056         temporary that holds the string, to prevent spurious name clashes.
21057
21058 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21059             Javier Miranda  <miranda@adacore.com>
21060             Robert Dewar  <dewar@adacore.com>
21061             Gary Dismukes  <dismukes@adacore.com>
21062
21063         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
21064         return unconstrained arrays.
21065         Update comments.
21066         (Expand_Call):  An indirect call through an access parameter of a
21067         protected operation is not a protected call.
21068         Add circuit to raise CE in Ada 2005 mode following call
21069         to Raise_Exception.
21070         (Register_DT_Entry): Do nothing if
21071         the run-time does not give support to abstract interfaces.
21072         (Freeze_Subprogram): In case of dispatching operations, do not generate
21073         code to register the operation in the dispatch table if the source
21074         is compiled with No_Dispatching_Calls.
21075         (Register_Predefined_DT_Entry): Generate code that calls the new
21076         run-time subprogram Set_Predefined_Prim_Op_Address instead of
21077         Set_Prim_Op_Address.
21078
21079         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
21080         on array assignments if the right-hand side is a function call that has
21081         been inlined. Check is performed on the assignment in the block.
21082         (Process_Bounds): If bounds and range are overloaded, apply preference
21083         rule for root operations to disambiguate, and diagnose true ambiguity.
21084         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
21085         a tag-indeterminate right-hand side even when Expander_Active is True.
21086         Needed to ensure that dispatching calls to T'Input are allowed and
21087         get the tag of the target class-wide object.
21088
21089         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
21090         an inherited primitive operation that already overrides several
21091         abstract interface primitives. For transitivity, the new entity must
21092         also override all the abstract interface primitives covered by the
21093         inherited overriden primitive.
21094         Emit warning if new entity differs from homograph in same scope only in
21095         that one has an access parameter and the other one has a parameter of
21096         a general access type with the same designated type, at the same
21097         position in the signature.
21098         (Make_Inequality_Operator): Use source locations of parameters and
21099         subtype marks from corresponding equality operator when creating the
21100         tree structure for the implicit declaration of "/=". This does not
21101         change anything in behaviour except that the decoration of the
21102         components of the subtree created for "/=" allows ASIS to get the
21103         string images of the corresponding identifiers.
21104         (Analyze_Return_Statement): Remove '!' in warning message.
21105         (Check_Statement_Sequence): Likewise.
21106         (Analyze_Subprogram_Body): For an access parameter whose designated type
21107         is an incomplete type imported through a limited_with clause, use the
21108         type of the corresponding formal in the body.
21109         (Check_Returns): Implicit return in No_Return procedure now raises
21110         Program_Error with a compile time warning, instead of beging illegal.
21111         (Has_Single_Return):  Function returning unconstrained type cannot be
21112         inlined if expression in unique return statement is not an identifier.
21113         (Build_Body_To_Inline): It is possible to inline a function call that
21114         returns an unconstrained type if all return statements in the function
21115         return the same local variable. Subsidiary procedure Has_Single_Return
21116         verifies that the body conforms to this restriction.
21117
21118         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
21119         same type, and  one of them is of an anonymous access type, convert
21120         the other operand to it, so that this is a valid binary operation for
21121         gigi.
21122         (Resolve_Type_Conversion): Handle subtypes of protected types and
21123         task types when accessing to the corresponding record type.
21124         (Resolve_Allocator): Add '\' in 2-line warning message.
21125         Remove '!' in warning message.
21126         (Resolve_Call): Add '\' in 2-line warning message.
21127         (Valid_Conversion): Likewise.
21128         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
21129         resulting type may be an access type with an implicit dereference.
21130         Obtain the proper component from the designated type.
21131         (Make_Call_Into_Operator): Handle properly a call to predefined equality
21132         given by an expanded name with prefix Standard, when the operands are
21133         of an anonymous access type.
21134         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
21135         Explicit_Dereference and Resolve_Selected_Component, to verify that the
21136         prefix of the expression is not of an incomplete type. Allows full
21137         diagnoses of all semantic errors.
21138         (Resolve_Actuals): If the actual is an allocator whose directly
21139         designated type is a class-wide interface we build an anonymous
21140         access type to use it as the type of the allocator. Later, when
21141         the subprogram call is expanded, if the interface has a secondary
21142         dispatch table the expander will add a type conversion to force
21143         the displacement of the pointer.
21144         (Resolve_Call): If a function that returns an unconstrained type is
21145         marked Inlined_Always and inlined, the call will be inlined and does
21146         not require the creation of a transient scope.
21147         (Check_Direct_Boolean_Op): Removed
21148         (Resolve_Comparison_Op): Remove call to above
21149         (Resolve_Equality_Op): Remove call to above
21150         (Resolve_Logical_Op): Inline above, since this is only call.
21151         (Valid_Conversion): Handle properly conversions between arrays of
21152         convertible anonymous access types.
21153
21154         PR ada/25885
21155         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
21156         the literal in an unchecked conversion, because GCC 4.x needs a static
21157         value for a string bound.
21158
21159 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21160             Hristian Kirtchev  <kirtchev@adacore.com>
21161
21162         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
21163         components of the corresponding record, take into account component
21164         definitions that are access definitions.
21165         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
21166         procedure is not considered a dispatching call and will be expanded
21167         properly.
21168
21169 2006-02-13  Javier Miranda  <miranda@adacore.com>
21170
21171         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
21172         controlling argument of the dispatching call is an abstract interface
21173         class-wide type then we use it directly.
21174         Check No_Dispatching_Calls restriction.
21175         (Default_Prim_Op_Position): Remove the code that looks for the last
21176         entity in the list of aliased subprograms. This code was wrong in
21177         case of renamings.
21178         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
21179         when the source is compiled with the No_Dispatching_Calls restriction.
21180         (Init_Predefined_Interface_Primitives): No need to inherit primitives
21181         if we are compiling with restriction No_Dispatching_Calls.
21182         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
21183         subprograms if we are compiling under No_Dispatching_Calls restriction.
21184         (Make_DT): Generate a dispatch table with a single dummy entry if
21185         we are compiling with the No_Dispatching_Calls restriction. In
21186         addition, in this case we don't generate code that calls to the
21187         following run-time subprograms: Set_Type_Kind, Inherit_DT.
21188         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
21189         of this subprogram if compiling with the No_Dispatching_Calls
21190         restriction.
21191         (Expand_Type_Conversion): Instead of using the actual parameter,
21192         the argument passed as parameter to the conversion function was
21193         erroneously referenced by the expander.
21194         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
21195         Set_Predefined_Primitive_Op_Address and Set_Signature.
21196         (Expand_Dispatching_Call): Generate call to
21197         Get_Predefined_Prim_Op_Address for predefined primitives.
21198         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
21199         predefined primitives.
21200         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
21201         primitives we reserve one dummy entry to ensure that the tag does not
21202         point to some memory that is associated with some other object. In
21203         addition, remove all the old code that generated the assignments
21204         associated with the signature of the dispatch table and replace them
21205         by a call to the new subprogram Set_Signature.
21206         (Set_All_DT_Position): Change the algorithm because now we have a
21207         separate dispatch table associated with predefined primitive operations.
21208         (Expand_Interface_Conversion): In case of non-static offset_to_top
21209         add explicit dereference to get access to the object after the call
21210         to displace the pointer to the object.
21211         (Expand_Interface_Thunk): Modify the generation of the actual used
21212         in the calls to the run-time function Offset_To_Top to fulfil its
21213         new interface.
21214         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
21215
21216 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21217
21218         * exp_dist.adb (Copy_Specification): For access parameters, copy
21219         Null_Exclusion flag, which will have been set for stream subprograms
21220         in Ada2005 mode.
21221
21222 2006-02-13  Pascal Obry  <obry@adacore.com>
21223
21224         * expect.c (__gnat_expect_portable_execvp): New implementation. The
21225         previous implementation was using the C runtime spawnve routine but
21226         the corresponding wait was using directly the Win32 API. This was
21227         causing some times a lock when waiting for an event using
21228         WaitForSingleObject in __gnat_waitpid. This new implementation uses
21229         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
21230         API fixes this problem.
21231
21232 2006-02-13  Robert Dewar  <dewar@adacore.com>
21233
21234         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
21235         call.
21236
21237 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21238
21239         * exp_pakd.ads: Fix typos in comments.
21240
21241         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
21242         array reference that is an explicit dereference, mark the converted
21243         (packed) array reference as analyzed to prevent a forthcoming
21244         reanalysis from resetting its type to the original (non-packed) array
21245         type.
21246
21247 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21248             Javier Miranda  <miranda@adacore.com>
21249             Eric Botcazou  <ebotcazou@adacore.com>
21250
21251         * exp_util.ads, exp_util.adb (Find_Prim_Op,
21252         Is_Predefined_Primitive_Operation): When
21253         searching for the predefined equality operator, verify that operands
21254         have the same type.
21255         (Is_Predefined_Dispatching_Operation): Remove the code that looks
21256         for the last entity in the list of aliased subprograms. This code
21257         was wrong in case of renamings.
21258         (Set_Renamed_Subprogram): New procedure
21259         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
21260         Exp_Type constant computed when entering this subprogram.
21261         (Known_Null): New function
21262         (OK_To_Do_Constant_Replacement): New function
21263         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
21264         (Side_Effect_Free): An attribute reference 'Input is not free of
21265         side effect, unlike other attributes that are functions. (from code
21266         reading).
21267         (Remove_Side_Effects): Expressions that involve packed arrays or records
21268         are copied at the point of reference, and therefore must be marked as
21269         renamings of objects.
21270         (Is_Predefined_Dispatching_Operation): Return false if the operation is
21271         not a dispatching operation.
21272
21273         PR ada/18819
21274         (Remove_Side_Effects): Lift enclosing type conversion nodes for
21275         elementary types in all cases.
21276
21277 2006-02-13  Javier Miranda  <miranda@adacore.com>
21278
21279         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
21280         task types when accessing to the corresponding record type.
21281         Remove '!' in warning message.
21282
21283 2006-02-13  Olivier Hainque  <hainque@adacore.com>
21284
21285         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
21286         to avoid useless and space inefficient overalignments on targets where
21287         Max_Alignment is larger than 16.
21288
21289 2006-02-13  Pascal Obry  <obry@adacore.com>
21290
21291         * g-catiio.adb (Sec_Number): New type used to compute the number of
21292         seconds since 1-1-1970.
21293         (Image) [Natural]: The parameter was an Integer, as we can't deal with
21294         negative numbers (years, months...) it is better to have a Natural here.
21295         Code clean-up.
21296         (Image) [Number]: Change parameter from Long_Integer to Number.
21297         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
21298         overflow for dates past year 2038.
21299
21300 2006-02-13  Matthew Heaney  <heaney@adacore.com>
21301
21302         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
21303         Constraint_Error.
21304
21305 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
21306
21307         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
21308         native platforms.
21309         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
21310         finalization can occur normally.
21311
21312 2006-02-13  Vincent Celier  <celier@adacore.com>
21313
21314         * gnatcmd.adb (Rules_Switches): New table
21315         (Add_To_Rules_Switches): New procedure
21316         (GNATCmd): For command CHECK, put all options following "-rules" in the
21317         Rules_Switches table. Append these -rules switches after the -cargs
21318         switches.
21319
21320 2006-02-13  Robert Dewar  <dewar@adacore.com>
21321
21322         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
21323         These two cases were generating incorrect output, and if this unit
21324         was built with checks on, generated a discriminant mismatch constraint
21325         error.
21326
21327 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21328             Robert Dewar  <dewar@adacore.com>
21329
21330         * lib-xref.adb (Get_Type_Reference): For a private type whose full
21331         view is an array type, indicate the component type as well, for
21332         navigation purposes.
21333         (Generate_Reference): Don't consider array ref on LHS to be a case
21334         of violating pragma Unreferenced.
21335         Do not give Ada 2005 warning except on real reference.
21336
21337 2006-02-13  Vincent Celier  <celier@adacore.com>
21338
21339         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
21340         main source, add switch -mdebug-main=_ada_ so that the executable can
21341         be debugged by the standard VMS debugger.
21342         (Gnatmake): Set No_Main_Subprogram to True when there is no main
21343         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
21344         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
21345         of the last source, as the binding and linking phases are never
21346         performed.
21347         Set all executable obsolete when rebuilding a library.
21348
21349         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
21350         options.
21351
21352 2006-02-13  Javier Miranda  <miranda@adacore.com>
21353
21354         PR ada/23973
21355         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
21356         code to improve the error message reported when the program has
21357         declarations of abstract interface types and it is not compiled with
21358         the -gnat05 switch.
21359         (P_Access_Definition): Reorganize the code to improve the error
21360         message reported when the new Ada 2005 syntax for anonymous
21361         access types is used and the program is not compiled with the
21362         -gnat05 switch.
21363
21364 2006-02-13  Robert Dewar  <dewar@adacore.com>
21365
21366         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
21367         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
21368         (MODE_IN)
21369
21370 2006-02-13  Javier Miranda  <miranda@adacore.com>
21371
21372         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
21373         against source containing syntax errors.
21374
21375 2006-02-13  Vincent Celier  <celier@adacore.com>
21376
21377         * prj.adb (Reset): Initialize the first element of table Namings with
21378         the standard naming data.
21379
21380 2006-02-13  Vincent Celier  <celier@adacore.com>
21381
21382         * prj.ads (Error_Warning): New enumeration type
21383
21384         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
21385         unknown, use the location of the project to report the error.
21386         (When_No_Sources): New global variable
21387         (Report_No_Ada_Sources): New procedure
21388         (Check): New parameter When_No_Sources. Set value of global variable
21389         When_No_Sources,
21390         (Find_Sources): Call Report_No_Ada_Sources when appropriate
21391         (Get_Sources_From_File): Ditto
21392         (Warn_If_Not_Sources): Better warning messages indicating the unit name
21393         and the file name.
21394
21395         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
21396         Call Prj.Proc.Process with parameter When_No_Sources.
21397
21398         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
21399         Call Recursive_Check with parameter When_No_Sources.
21400         (Recursive_Check): New parameter When_No_Sources. Call itself and
21401         Prj.Nmsc.Check with parameter When_No_Sources.
21402         (Process): New parameter When_No_Sources. Call Check with parameter
21403         When_No_Sources.
21404         (Copy_Package_Declarations): New procedure to copy renamed parameters
21405         and setting the location of the declared attributes to the location
21406         of the renamed package.
21407         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
21408         packages.
21409
21410 2006-02-13  Vincent Celier  <celier@adacore.com>
21411
21412         * prj-makr.adb (Make): Preserve the comments from the original project
21413         file.
21414         When removing nodes (attributes Source_Dirs, Source_Files,
21415         Source_List_File and package Naming), save the comments and attach the
21416         saved comments to the newly created nodes.
21417         Do not add a with clause for the naming package if one already exists.
21418
21419 2006-02-13  Javier Miranda  <miranda@adacore.com>
21420             Gary Dismukes  <dismukes@adacore.com>
21421             Robert Dewar  <dewar@adacore.com>
21422
21423         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
21424
21425         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
21426         aliased entities to look for the overriden abstract interface
21427         subprogram.
21428         (Is_Interface_Subprogram): Complete documentation.
21429         (Check_Dispatching_Operation): Do not generate code to register the
21430         operation in the dispatch table if the source is compiled with
21431         restriction No_Dispatching_Calls.
21432         (Override_Dispatching_Operation): Check for illegal attempt to override
21433         No_Return procedure with procedure that is not No_Return
21434         (Check_Dispatching_Call): Suppress the check for an abstract operation
21435         when the original node of an actual is a tag-indeterminate attribute
21436         call, since the attribute, which must be 'Input, can never be abstract.
21437         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
21438         call to the Input attribute (even when rewritten).
21439         (Propagate_Tag): Augment comment to indicate the possibility of a call
21440         to an Input attribute.
21441
21442         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
21443         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
21444
21445         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
21446         No_Wide_Characters is no longer partition-wide
21447         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
21448         rather than GNAT
21449
21450 2006-02-13  Douglas Rupp  <rupp@adacore.com>
21451
21452         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
21453
21454 2006-02-13  Javier Miranda  <miranda@adacore.com>
21455
21456         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
21457         handles default-initialized components to keep separate the management
21458         of this feature but also avoid the unrequired resolution and
21459         expansion of components that do not have partially initialized
21460         values.
21461         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
21462         (Check_Bounds): Likewise.
21463         (Check_Length): Likewise.
21464
21465 2006-02-13  Javier Miranda  <miranda@adacore.com>
21466             Ed Schonberg  <schonberg@adacore.com>
21467
21468         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
21469         abstract interface type call analyze_and_resolve to expand the type
21470         conversion into the corresponding displacement of the
21471         reference to the base of the object.
21472         (Eval_Attribute, case Width): For systems where IEEE extended precision
21473         is supported, the maximum exponent occupies 4 decimal digits.
21474         (Accessibility_Message): Add '\' in 2-line warning message.
21475         (Resolve_Attribute): Likewise.
21476         (case Attribute_Access): Significantly revise checks
21477         for illegal access-to-subprogram Access attributes to properly enforce
21478         the rules of 3.10.2(32/2).
21479         Diagnose use of current instance with an illegal attribute.
21480
21481         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
21482         to a Node_Id.
21483         (Enclosing_Generic_Unit): New function to return a node's innermost
21484         enclosing generic declaration node.
21485         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
21486         (Type_Access_Level): The accessibility level of anonymous acccess types
21487         associated with discriminants is that of the current instance of the
21488         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
21489         (Compile_Time_Constraint_Error): Handle case of conditional expression.
21490         (Kill_Current_Values_For_Entity): New function
21491         (Enter_Name): Change formal type to Entity_Id
21492
21493 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
21494             Ed Schonberg  <schonberg@adacore.com>
21495             Gary Dismukes  <dismukes@adacore.com>
21496
21497         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
21498         Analyze_Compilation_Unit.
21499         Detect and warn on redundant with clauses detected in a package spec
21500         and/or body when -gnatwr is used.
21501         (Analyze_Context): Analyze config pragmas before other items
21502         (Install_Context_Items): Don't analyze config pragmas here
21503         (Install_Limited_Withed_Unit): Set limited entity of package in
21504         with_clause so that cross-reference information or warning messages on
21505         unused packages can be properly generated
21506         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
21507         has Error_Posted set. Prevent infinite loops in illegal programs.
21508         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
21509         to the point of the error test requiring the current unit to be private.
21510         This ensures that private with clauses are not exempted from the basic
21511         checking for being a descendant of the same library unit parent as a
21512         withed private descendant unit.
21513         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
21514         handle private with clauses properly, as well as to account for cases
21515         where the withed unit is a public descendant of a private ancestor
21516         (in which case the current unit must be a descendant of the private
21517         ancestor's parent). The spec comments were updated accordingly. Also,
21518         the old error message in this subprogram was replaced with error
21519         messages that mirror the errors tested and reported by
21520         Check_Private_Child_Unit.
21521         Parameter and variable names improved for readability.
21522         (Install_Limited_Context_Clauses): Remove test for a withed unit being
21523         private as the precondition for calling
21524         Check_Private_Limited_Withed_Unit since that subprogram has been
21525         revised to test public units as well as private units.
21526
21527 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21528             Robert Dewar  <dewar@adacore.com>
21529             Ed Schonberg  <schonberg@adacore.com>
21530             Javier Miranda  <miranda@adacore.com>
21531
21532         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
21533         that Scope_Stack.First = 1.
21534         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21535         were not always properly handled previously.
21536         (Formal_Entity): Complete rewrite, to handle properly some complex case
21537         with multiple levels of parametrization by formal packages.
21538         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
21539         to the corresponding derived type declaration for proper semantics.
21540
21541         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
21542         (Check_Component): Enforce restriction on components of
21543         unchecked_unions: a component in a variant cannot contain tasks or
21544         controlled types.
21545         (Unchecked_Union): Allow nested variants and multiple discriminants, to
21546         conform to AI-216.
21547         Add pragma Ada_2005 (synonym for Ada_05)
21548         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21549         were not always properly handled previously.
21550         Document that pragma Propagate_Exceptions has no effect
21551         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
21552         (Set_Convention_From_Pragma): Check that if a convention is
21553         specified for a dispatching operation, then it must be
21554         consistent with the existing convention for the operation.
21555         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
21556         longer required to specify an vtable-ptr component in the record. For
21557         compatibility reasons we leave the support for the previous definition.
21558         (Analyze_Pragma, case No_Return): Allow multiple arguments
21559
21560         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
21561         non-overrideen inherited operation with a controlling result as
21562         illegal only its implicit declaration comes from the derived type
21563         declaration of its result's type.
21564         (Check_Possible_Deferred_Completion): Relocate the object definition
21565         node of the subtype indication of a deferred constant completion rather
21566         than directly analyzing it. The analysis of the generated subtype will
21567         correctly decorate the GNAT tree.
21568         (Record_Type_Declaration): Check whether this is a declaration for a
21569         limited derived record before analyzing components.
21570         (Analyze_Component_Declaration): Diagnose record types  not explicitly
21571         declared limited when a component has a limited type.
21572         (Build_Derived_Record_Type): Code reorganization to check if some of
21573         the inherited subprograms of a tagged type cover interface primitives.
21574         This check was missing in case of a full-type associated with a private
21575         type declaration.
21576         (Constant_Redeclaration): Check that the subtypes of the partial and the
21577         full view of a constrained deferred constant statically match.
21578         (Mentions_T): A reference to the current type in an anonymous access
21579         component declaration  must be an entity name.
21580         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
21581         class_wide type to refer to full type, not to the incomplete one.
21582         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
21583         available. Required to give support to the certified run-time.
21584         (Analyze_Component_Declaration): In case of anonymous access components
21585         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
21586         (Process_Discriminants): For an access discriminant, use the
21587         discriminant specification as the associated_node_for_itype, to
21588         simplify accessibility checks.
21589
21590 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21591             Javier Miranda  <miranda@adacore.com>
21592
21593         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
21594         abstract interpretations on an operator, remove interpretations that
21595         yield Address or a type derived from it, if one of the operands is an
21596         integer literal.
21597         (Try_Object_Operation.Try_Primitive_Operation,
21598         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
21599         location when creating the new reference to a primitive or class-wide
21600         operation as a part of rewriting a subprogram call.
21601         (Try_Primitive_Operations): If context requires a function, collect all
21602         interpretations after the first match, because there may be primitive
21603         operations of the same type with the same profile and different return
21604         types. From code reading.
21605         (Try_Primitive_Operation): Use the node kind to choose the proper
21606         operation when a function and a procedure have the same parameter
21607         profile.
21608         (Complete_Object_Operation): If formal is an access parameter and prefix
21609         is an object, rewrite as an Access reference, to match signature of
21610         primitive operation.
21611         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
21612         by an expanded name with prefix Standard, when the operands are of an
21613         anonymous access type.
21614         (Remove_Abstract_Operations): If the operation is abstract because it is
21615         inherited by a user-defined type derived from Address, remove it as
21616         well from the set of candidate interpretations of an overloaded node.
21617         (Analyze_Membership_Op): Membership test not applicable to cpp-class
21618         types.
21619
21620 2006-02-13  Bob Duff  <duff@adacore.com>
21621
21622         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
21623         redundant use clauses.
21624         In particular, if the scope of two use clauses overlaps, but one is not
21625         entirely included in the other, we should not warn.  This can happen
21626         with nested packages.
21627         (Analyze_Subprogram_Renaming): Protect the compiler against previously
21628         reported errors. The bug was reported when the compiler was built
21629         with assertions enabled.
21630         (Find_Type): If the node is a 'Class reference and the prefix is a
21631         synchronized type without a corresponding record, return the type
21632         itself.
21633
21634 2006-02-13  Javier Miranda  <miranda@adacore.com>
21635
21636         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
21637         if this is the full-declaration associated with a private declaration
21638         that implement interfaces, then the private type declaration must be
21639         limited.
21640         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
21641         as aliased. The use of the 'access attribute is not available for such
21642         object (for this purpose the object should be explicitly marked as
21643         aliased, but being an anonymous type this is not possible).
21644
21645 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21646             Robert Dewar  <dewar@adacore.com>
21647
21648         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
21649         compilation unit is an elaboration scope.
21650         (Add_Task_Proc): Add '\' in 2-line warning message.
21651         (Activate_All_Desirable): Deal with case of unit with'ed by parent
21652
21653 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21654             Javier Miranda  <miranda@adacore.com>
21655
21656         * sem_type.adb (Write_Overloads): Improve display of candidate
21657         interpretations.
21658         (Add_One_Interp): Do not add to the list of interpretations aliased
21659         entities corresponding with an abstract interface type that is an
21660         immediate ancestor of a tagged type; otherwise we have a dummy
21661         conflict between this entity and the aliased entity.
21662         (Disambiguate): The predefined equality on universal_access is not
21663         usable if there is a user-defined equality with the proper signature,
21664         declared in the same declarative part as the designated type.
21665         (Find_Unique_Type): The universal_access equality operator defined under
21666         AI-230 does not cover pool specific access types.
21667         (Covers): If one of the types is a generic actual subtype, check whether
21668         it matches the partial view of the other type.
21669
21670 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21671
21672         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
21673         line. This is necessary to allow In_Extended_Main_Unit to provide
21674         correct results for itypes while writing out expanded source.
21675         (Close_File): No need to update the source_index_table here since it's
21676         now done for each line.
21677
21678 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21679             Robert Dewar  <dewar@adacore.com>
21680
21681         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
21682         preserve the source unit where the itype is declared, and prevent a
21683         backend abort.
21684         (Note_Implicit_Run_Time_Call): New procedure
21685         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
21686         E_Subprogram_Type)
21687
21688         * sprint.ads: Document use of $ for implicit run time routine call
21689
21690 2006-02-13  Quentin Ochem  <ochem@adacore.com>
21691
21692         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
21693         task name.
21694
21695 2006-02-13  Bob Duff  <duff@adacore.com>
21696
21697         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
21698         Scan_Unsigned, so we do not scan leading blanks and sign twice.
21699         Integer'Value("- 5") and Integer'Value("-+5") now correctly
21700         raise Constraint_Error.
21701
21702         * s-vallli.adb (Scan_Long_Long_Integer): Call
21703         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
21704         do not scan leading blanks and sign twice.
21705         Integer'Value("- 5") and Integer'Value("-+5") now correctly
21706         raise Constraint_Error.
21707
21708         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
21709         Scan_Long_Long_Unsigned): Split out most of the processing from
21710         Scan_Long_Long_Unsigned out into
21711         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
21712         This prevents scanning leading blanks and sign twice.
21713         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
21714         See RM-3.5(44).
21715
21716         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
21717         out most of the processing from Scan_Unsigned out into
21718         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
21719         This prevents scanning leading blanks and sign twice.
21720
21721         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
21722         use with Modular'Value attribute.
21723         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
21724         attribute.
21725
21726 2006-02-13  Robert Dewar  <dewar@adacore.com>
21727
21728         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
21729
21730 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
21731
21732         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
21733         (PPC VxWorks): Likewise.
21734         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
21735         (forced_callee): Make non-inlinable and non-pure.
21736         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
21737
21738 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
21739             Ben Brosgol  <brosgol@adacore.com>
21740             Robert Dewar  <dewar@adacore.com>
21741
21742         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
21743         support.
21744         Document that gnatbind -M option is for cross environments only.
21745         Added description of using gnatmem to trace gnat rtl allocs and deallocs
21746         Add note on use of $ to label implicit run time calls
21747         Add documentation for -gnatyI (check mode IN)
21748         Updated chapter on compatibility with HP Ada
21749         VMS-oriented edits.
21750         Ran spell and corrected errors
21751         Add documentation for gnatbind -d and rework documentation of -D
21752         at the same time.
21753         Add subprogram/data elimination section.
21754         Minor editing of annex A.
21755         Add section for gnatcheck.
21756         Add documentation for restriction No_Dispatching_Calls
21757         Add documentation for pragma Ada_2005
21758         Remove mention of obsolete pragma Propagate_Exceptions
21759         Document that pragma Unreferenced can appear after DO in ACCEPT
21760         Clarify Pure_Function for library level units
21761         Mention Max/Min in connection with No_Implicit_Conditionals
21762         No_Wide_Characters restriction is no longer partition-wide
21763         Add a nice example for Universal_Literal_String attribute
21764         Document that pragma No_Return can take multiple arguments
21765
21766         * ug_words: Added entry for gnatcheck
21767
21768         * g-ctrl_c.ads (Install_Handler): Enhance comments
21769
21770         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
21771
21772         * g-trasym.ads: Add documentation on how to do off line symbolic
21773         traceback computation.
21774
21775         * s-fatgen.adb: Add comments for Unaligned_Valid
21776
21777         * stand.ads: Fix typo in comment
21778
21779 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21780
21781         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
21782
21783 2006-02-06  Roger Sayle  <roger@eyesopen.com>
21784
21785         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
21786
21787 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21788
21789         PR target/25926
21790         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
21791         implementation that calls __main.
21792
21793 2006-01-25  Peter O'Gorman  <peter@pogma.com>
21794
21795         PR bootstrap/25859
21796         * Makefile.in (GCC_LINK): Remove quotes.
21797         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
21798         or $(GCC_LINK).
21799
21800         (powerpc-darwin): Pass -shared-libgcc when building shared library.
21801
21802 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21803
21804         PR ada/24533
21805         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
21806
21807 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21808
21809         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
21810
21811 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21812
21813         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
21814         needed.
21815
21816 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21817
21818         * Make-lang.in: Update dependencies
21819
21820 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21821
21822         * Make-lang.in: Add rule for ada/exp_sel.o
21823
21824 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
21825
21826         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
21827
21828 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
21829
21830         * gnatvsn.ads (Library_Version): Bump to version 4.2
21831         (ASIS_Version_Number): Bumped.
21832
21833 2005-12-09  Doug Rupp  <rupp@adacore.com>
21834
21835         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
21836         Ada bind file prefix on VMS from b$ to b__.
21837         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
21838         __init.
21839
21840         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
21841         Targparm.OpenVMS_On_Target.
21842         (Object_Suffix): Initialize with target object suffix.
21843         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
21844
21845         * butil.adb: Change some Hostparm.OpenVMS checks to
21846         Targparm.OpenVMS_On_Target.
21847
21848         * clean.adb: Change some Hostparm.OpenVMS checks to
21849         Targparm.OpenVMS_On_Target.
21850         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
21851         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
21852         Ada bind file prefix on VMS from b$ to b__.
21853
21854         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
21855         --GCC so that Get_Target_Parameters can find system.ads.
21856         (Gnatlink): Call Get_Target_Parameters in mainline.
21857         Initialize standard packages for Targparm.
21858         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
21859         (Process_Args): Also Check for object files with target object
21860         extension.
21861         (Make_Binder_File_Names): Create with target object extension.
21862         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
21863         to b__.
21864
21865         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
21866         Targparm.OpenVMS_On_Target.
21867         ({declaration},Build_Library,Check_Library): Change Ada bind file
21868         prefix on VMS from b$ to b__.
21869
21870         * osint-b.adb: Change some Hostparm.OpenVMS checks to
21871         Targparm.OpenVMS_On_Target.
21872         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
21873         b__.
21874
21875         * targext.c: New file.
21876
21877         * Makefile.in: add support for vxworks653 builds
21878         (../../vxaddr2line): gnatlink with targext.o.
21879         (TOOLS_LIBS): Move targext.o to precede libgnat.
21880         (init.o, initialize.o): Minor clean up in dependencies.
21881         (GNATLINK_OBJS): Add targparm.o, snames.o
21882         Add rules fo building targext.o and linking it explicitly with all
21883         tools.
21884         Also add targext.o to gnatlib.
21885
21886         * Make-lang.in: Add rules for building targext.o and linking it in
21887         with gnat1 and gnatbind.
21888         Add entry for exp_sel.o.
21889
21890         * osint.adb Change some Hostparm.OpenVMS checks to
21891         Targparm.OpenVMS_On_Target.
21892         (Object_File_Name): Use target object suffix.
21893
21894         * osint.ads (Object_Suffix): Remove, no longer used.
21895         (Target_Object_Suffix): Initialize with target object suffix.
21896
21897         * rident.ads: Add special exception to license.
21898
21899         * targparm.adb (Get_Target_Parameters): Set the value of
21900         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
21901         value.
21902         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
21903
21904         * targparm.ads: Add special exception to license.
21905
21906         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
21907         function.
21908         (Copy_File): Make sure from file is closed if error on to file
21909         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
21910
21911         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
21912         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
21913
21914         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
21915         target object suffix.
21916
21917 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
21918             Quentin Ochem  <ochem@adacore.com>
21919             Florian Villoing  <villoing@adacore.com>
21920
21921         * a-taster.ads, a-taster.adb: New files.
21922
21923         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
21924         link to the version that does nothing. This way the task termination
21925         routine is not executed twice for the environment task when finishing
21926         because of an unhandled exception.
21927
21928         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
21929         handler because of an unhandled exception.
21930
21931         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
21932         System.Tasking.Utilities instead of that in System.Tasking.Stages.
21933
21934         * s-finimp.adb (initialization code): Modify the soft link for the
21935         finalization of the global list instead of Adafinal.
21936
21937         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
21938         non-tasking version of the soft link for task termination. We do
21939         nothing since if we are using the non-tasking version it
21940         means that the task termination functionality is not used.
21941         (Null_Finalize_Global_List): Add this null version for the procedure
21942         in charge of finalizing the global list for controlled objects.
21943         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
21944         instead for handling run-time termination in a more flexible way.
21945         (Adafinal_NT): This new procedure will take care of finalizing the
21946         global list for controlled objects if needed, but no tasking
21947         finalization.
21948
21949         * s-tarest.adb (Task_Lock): Do not try to lock again the
21950         Global_Task_Lock if we already own it. Otherwise, we get blocked in
21951         some run-time operations.
21952         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
21953         until all nested locks have been released.
21954         (Task_Wrapper): Call the fall-back task termination handler. It
21955         applies to all tasks but the environment task.
21956         (Finalize_Global_Tasks): Add the call for the task termination
21957         procedure for the environment task.
21958         (Task_Wrapper): suppress warnings around declaration of
21959         Secondary_Stack_Address.
21960
21961         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
21962         moved to the Common_ATCB record.
21963         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
21964         Common_ATCB record.
21965         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
21966         Common_ATCB record.
21967
21968         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
21969         Fall_Back_Handler, and Specific_Handler.
21970
21971         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
21972         defined in Ada.Task_Termination, to avoid circular dependencies.
21973         (Termination_Handler): Redefine this type here, alredy defined in
21974         Ada.Task_Termination, for avoiding circular dependencies.
21975         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
21976         for storing task termination handlers. In addition,
21977         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
21978         Common_ATCB because it is used by both the regular and the restricted
21979         run times.
21980         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
21981         Common_ATCB because it is used by both the regular and the restricted
21982         run times.
21983         (Common_ATCB): Added a dynamic task analyzer field.
21984
21985         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
21986         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
21987         (Task_Wrapper): Call the task termination handler. It applies to all
21988         tasks but the environment task.
21989         (Finalize_Global_Tasks): Call the task termination procedure for the
21990         environment task. The call to Finalize_Global_List is now performed
21991         using the soft links mechanism.
21992         (Task_Wrapper): added dynamic stack analysis.
21993
21994         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
21995         potentially blocking operations has been moved from
21996         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
21997         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
21998         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
21999         this run-time check.
22000
22001         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
22002         of task termination procedure.
22003         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
22004         link for the task termination procedure.
22005
22006         * bindusg.adb: (Bindusg): Added documentation for -u option.
22007
22008         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
22009         (Get_Main_C): Add handling of dynamic stack analysis.
22010         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
22011
22012         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
22013         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
22014         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
22015
22016         * opt.ads: Added flags used by dynamic stack measurement.
22017         (Max_Line_Length): Remove (not used anymore)
22018
22019         * s-io.ads, s-io.adb (Standard_Error): new subprogram
22020         (Standart_Output): new subprogram
22021         (Set_Output): new subprogram
22022         (Put): now uses the value of Current_Out to know if the output has to be
22023         send to stderr or stdout.
22024
22025         * s-stausa.ads: Complete implementation.
22026
22027         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
22028
22029         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
22030         list of Ada 05 files.
22031         (GNAT Library Units): Add AltiVec files.
22032
22033         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
22034         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
22035         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
22036
22037 2005-12-09  Nicolas Setton  <setton@adacore.com>
22038
22039         * adaint.c (__gnat_locate_regular_file): Return immediately if
22040         file_name is empty.
22041
22042 2005-12-09  Javier Miranda  <miranda@adacore.com>
22043             Hristian Kirtchev  <kirtchev@adacore.com>
22044
22045         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
22046         to the specification because the frontend generates code that uses this
22047         subprogram.
22048         (Set_Interface_Table): Add missing assertion.
22049         Update documentation describing the run-time structure.
22050         (Displace): New subprogram that displaces the pointer to the object
22051         to reference one of its secondary dispatch tables.
22052         (IW_Membership): Modified to use the new table of interfaces.
22053         (Inherit_TSD): Modified to use the new table of interfaces.
22054         (Register_Interface_Tag): Use the additional formal to fill the
22055         contents of the new table of interfaces.
22056         (Set_Interface_Table): New subprogram that stores in the TSD the
22057         pointer to the table of interfaces.
22058         (Set_Offset_To_Top): Use the additional formal to save copy of
22059         the offset value in the table of interfaces.
22060         Update structure of GNAT Primary and Secondary dispatch table diagram.
22061         Add comment section on GNAT dispatch table prologue.
22062         (Offset_To_Signature): Update the constant value of the Signature field.
22063         (Dispatch_Table): Update comment on hidden fields in the prologue.
22064         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
22065         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
22066         the type of formal parameter T to Tag, introduce additional assertions.
22067         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
22068         conversion.
22069         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
22070
22071         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
22072         in all the calls to Expand_Interface_Thunk. Instead of referencing the
22073         record component containing the tag of the secondary dispatch table we
22074         have to use the Offset_To_Top run-time function to get this information;
22075         otherwise if the pointer to the base of the object has been displace
22076         we get a wrong value if we use the 'position attribute.
22077
22078         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
22079         all the calls to Expand_Interface_Thunk.
22080         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
22081         interfaces; hence the call to Set_Interface_Table was clearly wrong.
22082         (Collect_All_Interfaces): Modify the internal subprogram Collect to
22083         ensure that the interfaces implemented by the ancestors are placed
22084         at the header of the generated list.
22085         (Expand_Interface_Conversion): Handle the case in which the displacement
22086         associated with the interface conversion is not statically known. In
22087         this case we generate a call to the new run-time subprogram Displace.
22088         (Make_DT): Generate and fill the new table of interfaces.
22089         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
22090         Get_Tagged_Kind and Set_Tagged_Kind.
22091         (Tagged_Kind): New function that determines the tagged kind of a type
22092         with respect to limitedness and concurrency and returns a reference to
22093         RE_Tagged_Kind.
22094         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
22095         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
22096         primary dispatch table for a type.
22097         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
22098         secondary dispatch table respectively of a tagged type.
22099
22100         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
22101         (Expand_Interface_Conversion): New subprogram to indicate if the
22102         displacement of the type conversion is statically known.
22103         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
22104
22105         * rtsfind.ads (RE_Offset_To_Top): New entity
22106         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
22107         accessible to users.
22108         (Re_Displace): New entity
22109         (RE_Interface_Data): New entity
22110         (RE_Set_Interface_Data): New_Entity
22111         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
22112         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
22113         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
22114         RE_TK_Tagged, RE_TK_Task.
22115
22116         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
22117         Init_Secondary_Tags_Internal to allow its use with interface types and
22118         also to generate the code for the new additional actual required
22119         by Set_Offset_To_Top.
22120         (Build_Init_Statements): In case of components associated with abstract
22121         interface types there is no need to generate a call to its IP.
22122         (Freeze_Record_Type): Generate Select Specific Data tables only for
22123         concurrent types.
22124         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
22125         the bodies and specifications of the predefined primitive operations
22126         dealing with dispatching selects and abort, 'Callable, 'Terminated only
22127         for concurrent types.
22128
22129         * exp_sel.ads, exp_sel.adb: New files.
22130
22131         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
22132         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
22133         properly protected objects and attach handler in the case of the
22134         restricted profile.
22135         Move embeded package Select_Expansion_Utilities into a separate external
22136         package.
22137         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
22138         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
22139         (Build_K, Build_S_Assignment): New subprograms, part of the select
22140         expansion utilities.
22141         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
22142         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
22143         where the trigger is a dispatching procedure of a limited tagged type.
22144
22145 2005-12-09  Olivier Hainque  <hainque@adacore.com>
22146
22147         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
22148         pointer initialization values. Make a SAVE_EXPR instead. Add comments
22149         about the use and expansion of SAVE_EXPRs in the various possible
22150         renaming handling cases.
22151         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
22152         abusing DECL_FCONTEXT.
22153
22154 2005-12-09  Matthew Heaney  <heaney@adacore.com>
22155
22156         * a-convec.adb (Merge): Added assertions to check whether vector params
22157         are sorted.
22158
22159         * a-coinve.adb (Merge): Added assertions to check whether vector params
22160         are sorted.
22161
22162         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
22163         draft.
22164         (Cursor'Read): raises PE
22165
22166         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
22167         to its default value.
22168
22169         * a-cihama.adb: Manually check whether cursor's key and elem are
22170         non-null
22171
22172         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
22173         (Merge): Assert that target and source lists are in order
22174         (Swap): Declare non-const temporaries, to pass to Splice
22175
22176         * a-cdlili.ads: (Splice): Changed param name and param mode
22177
22178         * a-cdlili.adb: (Splice): Changed param name and param mode
22179         (Merge): Assert that target and source lists are in order
22180         (Swap): Declare non-const temporaries, to pass to Splice
22181
22182         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
22183         (Write): declare Stream param as not null
22184
22185         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
22186         an exception message.
22187
22188 2005-12-09  Thomas Quinot  <quinot@adacore.com>
22189             Robert Dewar  <dewar@adacore.com>
22190
22191         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
22192         which is the absolute maximum length we can support.
22193
22194         * frontend.adb: For the processing of configuration pragma files,
22195         remove references to Opt.Max_Line_Length, which is not checked anymore.
22196
22197         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
22198         length.
22199
22200         * scn.adb, scng.adb:
22201         Always check line length against the absolute supported maximum,
22202         Hostparm.Max_Line_Length.
22203
22204         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
22205         value for the maximum line length is Max_Line_Length (not
22206         Column_Number'Last).
22207         Minor error msg update
22208         (Set_Style_Check_Options): New interface returning error msg
22209         Minor code reorganization (processing for 'M' was out of alpha order)
22210
22211         * switch-c.adb: New interface for Set_Style_Check_Options
22212
22213         * stylesw.ads (Set_Style_Check_Options): New interface returning error
22214         msg.
22215
22216 2005-12-09  Javier Miranda  <miranda@adacore.com>
22217
22218         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
22219         with IP subprogram were only supported if there were limited types.
22220
22221         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
22222         records with IP subprogram were only supported if there were limited
22223         types.
22224
22225 2005-12-09  Olivier Hainque  <hainque@adacore.com>
22226             Eric Botcazou  <ebotcazou@adacore.com>
22227
22228         * trans.c (tree_transform, emit_check): Adjust calls to
22229         build_call_raise, passing the now expected GNAT_NODE argument.
22230
22231         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
22232         source line information than what the current global locus indicates
22233         when appropriate.
22234
22235         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
22236         field has overflowed.
22237         (build_call_raise): Add a GNAT_NODE argument to convey better source
22238         line information than what the current global locus indicates when
22239         appropriate.
22240         (build_component_ref): Adjust call to build_call_raise.
22241
22242 2005-12-09  Pascal Obry  <obry@adacore.com>
22243
22244         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
22245         the iterator is quitting iteration on parent directory.
22246
22247 2005-12-09  Javier Miranda  <miranda@adacore.com>
22248
22249         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
22250         and the assignment to a class-wide object, before the assignment we
22251         generate a run-time check to ensure that the tag of the Target is
22252         covered by the tag of the source.
22253
22254 2005-12-09  Robert Dewar  <dewar@adacore.com>
22255
22256         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
22257         parameter in call to Image_Wide_Character.
22258
22259         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
22260         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
22261         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
22262         annoying FFFE/FFFF inconsistency.
22263
22264 2005-12-09  Robert Dewar  <dewar@adacore.com>
22265             Javier Miranda  <miranda@adacore.com>
22266             Ed Schonberg  <schonberg@adacore.com>
22267
22268         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
22269         of type conversion.
22270         (Find_Interface): New subprogram that given a tagged type and one of its
22271         component associated with the secondary table of an abstract interface
22272         type, return the entity associated with such abstract interface type.
22273         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
22274         base type to create anonymous subtype, because entity may be a locally
22275         declared subtype or generic actual.
22276         (Find_Interface): New subprogram that given a tagged type and one of its
22277         component associated with the secondary table of an abstract interface
22278         type, return the entity associated with such abstract interface type.
22279
22280         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
22281         conversion cannot be handled at compile time. In this case we pass this
22282         information to the expander to generate the appropriate code.
22283
22284 2005-12-09  Robert Dewar  <dewar@adacore.com>
22285             Ed Schonberg  <schonberg@adacore.com>
22286             Gary Dismukes  <dismukes@adacore.com>
22287             Javier Miranda  <miranda@adacore.com>
22288             Hristian Kirtchev  <kirtchev@adacore.com>
22289
22290         * einfo.adb (Itype_Printed): New flag
22291         (Is_Limited_Type): Derived types do not inherit limitedness from
22292         interface progenitors.
22293         (Is_Return_By_Reference_Type): Predicate does not apply to limited
22294         interfaces.
22295
22296         * einfo.ads (Itype_Printed): New flag
22297         Move Is_Wrapper_Package to proper section
22298         Add missing Inline for Is_Volatile
22299
22300         * output.ads, output.adb (Write_Erase_Char): New procedure
22301         (Save/Restore_Output_Buffer): New procedures
22302         (Save/Restore_Output_Buffer): New procedures
22303
22304         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
22305         Add missing support for anonymous access type
22306         (Write_Id): Insert calls to Write_Itype
22307         (Write_Itype): New procedure to output itypes
22308
22309         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
22310         use of "limited" in declaration.
22311
22312         * sinfo.ads, sinfo.adb:
22313         Formal derived types can carry an explicit "limited" indication.
22314
22315         * sem_ch3.adb: Add with and use of Targparm.
22316         (Create_Component): If Frontend_Layout_On_Target is True and the
22317         copied component does not have a known static Esize, then reset
22318         the size and positional fields of the new component.
22319         (Analyze_Component_Declaration): A limited component is
22320         legal within a protected type that implements an interface.
22321         (Collect_Interfaces): Do not add to the list the interfaces that
22322         are implemented by the ancestors.
22323         (Derived_Type_Declaration): If the parent of the full-view is an
22324         interface perform a transformation of the tree to ensure that it has
22325         the same parent than the partial-view. This simplifies the job of the
22326         expander in order to generate the correct object layout, and it is
22327         needed because the list of interfaces of the full-view can be given in
22328         any order.
22329         (Process_Full_View): The parent of the full-view does not need to be
22330         a descendant of the parent of the partial view if both parents are
22331         interfaces.
22332         (Analyze_Private_Extension_Declaration): If declaration has an explicit
22333         "limited" the parent must be a limited type.
22334         (Build_Derived_Record_Type): A derived type that is explicitly limited
22335         must have limited ancestor and progenitors.
22336         (Build_Derived_Type): Ditto.
22337         (Process_Full_View): Verify that explicit uses of "limited" in partial
22338         and full declarations are consistent.
22339         (Find_Ancestor_Interface): Remove function.
22340         (Collect_Implemented_Interfaces): New procedure used to gather all
22341         implemented interfaces by a type.
22342         (Contain_Interface): New function used to check whether an interface is
22343         present in a list.
22344         (Find_Hidden_Interface): New function used to determine whether two
22345         lists of interfaces constitute a set equality. If not, the first
22346         differing interface is returned.
22347         (Process_Full_View): Improve the check for the "no hidden interface"
22348         rule as defined by AI-396.
22349
22350 2005-12-09  Robert Dewar  <dewar@adacore.com>
22351
22352         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
22353         types, not on record subtypes.
22354         (Freeze_Entity): Code cleanup. Add barrier to the loop
22355         that generates the references for primitive operations. This allows to
22356         remove an unnecessary exception handler.
22357         Code reformatting and comment clean ups.
22358
22359 2005-12-09  Vincent Celier  <celier@adacore.com>
22360
22361         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
22362         If GNAT CHECK is called with a project file, but with no
22363         source on the command line, call gnatcheck with all the compilable
22364         sources of the project.
22365         Take into account the new command Check, for gnatcheck. Treat as for
22366         other ASIS tools: take into account project, specific package Check and
22367         Compiler switches.
22368         For ASIS tools, add the switches in package Compiler for
22369         the invocation of the compiler.
22370
22371         * prj-attr.adb: Add package Check and its attributes
22372
22373         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
22374
22375         * vms_conv.adb (Initialize): Change Params of command Check to
22376         unlimited files.
22377         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
22378         Add data for new command Check
22379
22380         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
22381         ELIM.
22382         Add qualifiers for Check command options
22383         (Command_Type): New command Check
22384
22385 2005-12-09  Thomas Quinot  <quinot@adacore.com>
22386
22387         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
22388         command line switch overruns the output buffer.
22389
22390 2005-12-09  Robert Dewar  <dewar@adacore.com>
22391
22392         * sem_prag.adb: Processing for new pragma Complete_Representation
22393         (Analyze_Pragma, case Debug): Implement two argument form.
22394
22395         * par-prag.adb: Entry for new pragma Complete_Representation
22396         (Prag, case Debug): Recognize two argument form of pragma Debug
22397         New interface for Set_Style_Check_Options.
22398
22399         * sem_ch13.adb: Implement new pragma Complete_Representation.
22400
22401         * snames.adb, snames.ads, snames.h: Entry for new pragma
22402         Complete_Representation.
22403
22404 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
22405
22406         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
22407         available user-specified stream attributes on limited parameters to
22408         also test the type directly rather than only its underlying type (for
22409         Ada 95) and, in the case of Ada 2005, to check that the user-specified
22410         attributes are visible at the point of the subprogram declaration.
22411         For Ada 2005, the error message is modified to indicate that the
22412         type's stream attributes must be visible (again, only for -gnat05).
22413
22414 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
22415
22416         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
22417         anonymous access types.
22418
22419         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
22420         matching of anonymous access types and anonymous access to subprogram
22421         types. 'R'M 4.9.1 (2/2).
22422
22423 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
22424
22425         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
22426         rule prematurely when operands are universal, remaining ambiguities
22427         will be removed during resolution.
22428         Code cleanup.
22429
22430         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
22431         that are Ada 2005 functions.
22432         (Has_Abstract_Interpretation): Subsidiary to
22433         Remove_Conversions, to remove ambiguities caused by abstract operations
22434         on numeric types when operands are universal.
22435
22436 2005-12-09  Robert Dewar  <dewar@adacore.com>
22437
22438         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
22439         for case where spec is categorized.
22440
22441 2005-12-09  Javier Miranda  <miranda@adacore.com>
22442
22443         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
22444         types use the corresponding record type. This was not needed before
22445         the implementation of Ada 2005 synchronized types because
22446         concurrent types were never tagged types in Ada 95.
22447
22448 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
22449
22450         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
22451         first subtype of the type of the expression to verify that it is a
22452         legal Time type.
22453
22454 2005-12-09  Robert Dewar  <dewar@adacore.com>
22455
22456         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
22457         decoded names.
22458
22459 2005-12-09  Quentin Ochem  <ochem@adacore.com>
22460             Robert Dewar  <dewar@adacore.com>
22461             Ed Falis  <falis@adacore.com>
22462             Florian Villoing  <villoing@adacore.com>
22463             Thomas Quinot  <quinot@adacore.com>
22464             Arnaud Charlet  <charlet@adacore.com>
22465
22466         * gnat_ugn.texi: Created section "Stack Related Tools"
22467         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
22468         "Stack Related Tools"
22469         Added subsection "Static Stack Usage Analysis"
22470         Added subsection "Dynamic Stack Usage Analysis"
22471         Include documentation of itypes in sprint listing (-gnatG)
22472         Documented gnatbind -D switch (default sec stack size for fixed sec
22473         stacks).
22474         Added Interrupt_State and Persistent_BSS to list of configuration
22475         pragmas.
22476         Add missing doc for maximum value of nnn in -gnatyMnnn
22477
22478         * gnat_rm.texi: Document the AltiVec binding.
22479         Add documentation for pragma Complete_Representation
22480         Shortened an overly long line (> 79 chars)
22481         Clarify documentation of unchecked conversion in implementation
22482         defined cases.
22483         Document two argument form of pragma Debug
22484
22485         * types.ads (Column_Number): Update documentation.
22486
22487         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
22488         library level Finalize_Storage_Only objects (these are not attached to
22489         any finalization list).
22490
22491         * system-mingw.ads: (Underlying_Priorities): Update comment.
22492
22493 2005-12-09  Robert Dewar  <dewar@adacore.com>
22494
22495         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
22496         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
22497         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
22498         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
22499         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
22500         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
22501         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
22502         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
22503         reformatting.
22504
22505 2005-12-09  Robert Dewar  <dewar@adacore.com>
22506
22507         * s-vaflop-vms-alpha.adb: (Ne_F): New function
22508         (Ne_G): New function
22509
22510         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
22511         for tag assignment.
22512         (Rewrite_Comparison): Handle case where operation is not a comparison
22513         and ignore, and also handle type conversion case.
22514
22515 2005-12-09  Thomas Quinot  <quinot@adacore.com>
22516
22517         * exp_aggr.ads: Fix typo in comment.
22518         ???-mark Convert_Aggr_In_Assignment as needing documentation.
22519
22520 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
22521
22522         * layout.adb: Replace various uses of byte by storage unit throughout.
22523         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
22524         static size, convert to storage units before returning, to conform to
22525         spec.
22526
22527 2005-12-09  Matthew Gingell  <gingell@adacore.com>
22528
22529         * g-exctra.ads: Fix typo in comment.
22530
22531 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22532
22533         * utils.c: Minor reformatting.
22534
22535 2005-12-09  Robert Dewar  <dewar@adacore.com>
22536
22537         * g-soccon.ads:
22538         Further comment fixes to make the status of the default file clear
22539
22540         * s-bitops.adb: Clarify comment for Bits_Array
22541
22542 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
22543
22544         * Make-lang.in (ada.install-normal): Remove.
22545
22546 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
22547
22548         * Make-lang.in: Remove all dependencies on s-gtype.
22549
22550 2005-12-05  Richard Guenther  <rguenther@suse.de>
22551
22552         * utils.c (convert): Use fold_convert where appropriate.
22553
22554 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
22555
22556         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
22557         a period is meant.
22558
22559 2005-12-02  Richard Guenther  <rguenther@suse.de>
22560
22561         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
22562
22563 2005-12-01  Roger Sayle  <roger@eyesopen.com>
22564
22565         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
22566         nodes.
22567
22568 2005-11-23  Laurent Guerby  <laurent@guerby.net>
22569
22570         * mlib-prj.adb (Build_Library): Initialize Delete.
22571
22572 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
22573
22574         * socket.c: Add extern int h_errno for rtems since networking header
22575         files are not available at this point in a tool bootstrap. Newlib
22576         only has basic C library header files.
22577
22578 2005-11-19  Richard Guenther  <rguenther@suse.de>
22579         Roger Sayle  <roger@eyesopen.com>
22580
22581         PR ada/23717
22582         * misc.c (internal_error_function): Don't use vsprintf to format
22583         the error message text, instead use pp_format_text and the new
22584         pretty printer APIs.  This allows handling of %qs, %w, etc.
22585
22586 2005-11-18  Laurent Guerby  <laurent@guerby.net>
22587
22588         PR ada/24857
22589         * Makefile.in: Use s-auxdec-empty for RTEMS.
22590
22591 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22592
22593         PR ada/22333
22594         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
22595         a temporary if taking the address of something that is neither
22596         reference, declaration, or constant, since the gimplifier
22597         can't handle that case.
22598
22599 2005-11-17  Laurent Guerby  <laurent@guerby.net>
22600
22601         PR ada/24857
22602         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
22603
22604 2005-11-16  Richard Guenther  <rguenther@suse.de>
22605
22606         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
22607
22608 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
22609
22610         PR ada/24855
22611         * raise-gcc.c: Add missing stdarg.h include.
22612
22613 2005-11-16  Richard Guenther  <rguenther@suse.de>
22614
22615         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
22616         (ada/misc.o): Likewise.
22617
22618 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22619
22620         * g-soccon.ads: Minor reformatting. Update comments.
22621
22622         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
22623         gain visibility on the declaration of struct timeval.
22624
22625         * g-soccon-freebsd.ads,
22626         g-soccon-darwin.ads,
22627         g-soccon-tru64.ads,
22628         g-soccon-aix.ads,
22629         g-soccon-irix.ads,
22630         g-soccon-hpux.ads,
22631         g-soccon-solaris.ads,
22632         g-soccon-vms.ads,
22633         g-soccon-mingw.ads,
22634         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
22635
22636         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
22637         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
22638         g-soccon-linux-x86.ads: New files.
22639
22640         * g-socthi-mingw.adb:
22641         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
22642
22643         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
22644         (time_t, suseconds_t): New types constructed to match the tv_sec
22645         and tv_usec fields of C struct timeval.
22646         (Timeval): Construct structure in terms of the new types.
22647         (Host_Errno): New function (imported from socket.c), returns last hosts
22648         database error.
22649
22650         * g-socthi-vxworks.adb:  Add error handling circuitry.
22651
22652         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
22653         components of struct timeval.
22654         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
22655         (Check_Selector): In error conditions, clear internal socket sets to
22656         avoid a memory leak.
22657         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
22658         Send_Timeout, Receive_Timeout.
22659
22660         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
22661         the tv_sec and tv_usec fields of C struct timeval.
22662         (Timeval): Construct structure in terms of the new types.
22663         (Host_Errno): New function (imported from socket.c), returns last hosts
22664         database error.
22665
22666         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
22667         hosts database last error code.
22668
22669         * gen-soccon.c: Complete value expansion should not be performed on
22670         TARGET, as it has the form of a math expression, and some components
22671         may be platform-defined macros.
22672         For VxWorks, generate the OK and ERROR values.
22673         New constants giving the sizes of the components of C struct timeval.
22674
22675 2005-11-14  Robert Dewar  <dewar@adacore.com>
22676             Ed Schonberg  <schonberg@adacore.com>
22677
22678         PR ada/18434
22679         * types.ads: Include All_Checks in Suppress_Array
22680
22681         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
22682         not(a=b), since we no longer do this rewriting, and hence it is not
22683         needed.
22684         (Elaboration_Checks_Suppressed): Add special casing to
22685         deal with different cases of static and dynamic elaboration checks (all
22686         checks does not count in the first case, but does in the second).
22687         (Expr_Known_Valid): Do not assume that the result of any arbitrary
22688         function call is valid, since this is not the case.
22689         (Ensure_Valid): Do not apply validity check to a real literal
22690         in a universal or fixed context
22691
22692         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
22693         elementary types using the operator in standard. It is cleaner not to
22694         modify the programmers intent, especially in the case of floating-point.
22695         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
22696         it did not matter because we always rewrote a/=b to not(a=b).
22697         (Expand_Allocator_Expression): For an allocator expression whose nominal
22698         subtype is an unconstrained packed type, convert the expression to its
22699         actual constrained subtype.
22700         Implement warning for <= or >= where < or > not possible
22701         Fix to Vax_Float tests (too early in many routines, causing premature
22702         Vax_Float expansions.
22703
22704         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
22705         to be used with packages and generic packages as well as with
22706         subprograms.
22707         (Suppress): Set All_Checks, but not Elaboration_Check, for case
22708         of pragma Suppress (All_Checks)
22709         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
22710         a string literal for precise control over warnings.
22711         Avoid raise of pragma in case of unrecognized pragma and just return
22712         instead.
22713
22714         * sem_prag.ads: Minor reformatting
22715
22716         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
22717         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
22718         Switch. Do not handle any exception.
22719         Include -gnatwx as part of -gnatg (warn on redundant parens)
22720         Allow optional = after -gnatm
22721         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
22722         longer sets Elaboration_Checks.
22723         Code to set warning mode moved to Sem_Warn
22724         so that it can be shared by pragma processing.
22725
22726         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
22727         statement.
22728
22729         * s-taprop-solaris.adb:
22730         Change some <= to =, to avoid new warning
22731
22732         * a-exexda.adb, prj-proc.adb:
22733         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
22734         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
22735
22736 2005-11-14  Robert Dewar  <dewar@adacore.com>
22737
22738         * exp_vfpt.adb: Handle /= case
22739         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
22740         so that we do not get duplicate scaling for fixed point conversions.
22741
22742         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
22743
22744 2005-11-14  Matthew Gingell  <gingell@adacore.com>
22745
22746         * system-lynxos-ppc.ads, system-lynxos-x86.ads:
22747         Increase default priority on Lynx from 15 to 17, and meet the Ada
22748         requirement that Default_Priority be ((Priority'First +
22749         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
22750
22751 2005-11-14  Vincent Celier  <celier@adacore.com>
22752
22753         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
22754         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
22755         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
22756         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
22757         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
22758         mlib-tgt-lynxos.adb (DLL_Prefix): New function
22759
22760 2005-11-14  Doug Rupp  <rupp@adacore.com>
22761
22762         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
22763         private part.
22764
22765 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22766
22767         * s-traces-default.adb, s-trafor-default.ads,
22768         s-tratas-default.adb: Fix compilation errors.
22769
22770 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
22771
22772         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
22773         raising the exception so the memory used is freed.
22774
22775 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22776
22777         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
22778         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
22779         (convert_address): Update comments and list of platforms using this.
22780
22781         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
22782         no longer used.
22783
22784 2005-11-14  Pascal Obry  <obry@adacore.com>
22785             Vincent Celier  <celier@adacore.com>
22786
22787         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
22788         GNAT.Command_Line.
22789
22790         * memroot.adb: Remove redundant with/use clause on
22791         System.Storage_Elements.
22792
22793 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
22794
22795         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
22796         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
22797         related code to a-exexpr.adb
22798         (Save_Occurrence_And_Private): Move GCC EH related code to
22799         a-exexpr-gcc.adb
22800         (Raise_Current_Excep): Add new variable Id with pragma
22801         volatile, to ensure that the variable lives on stack.
22802
22803         * a-exexpr-gcc.adb, raise-gcc.c: New file.
22804
22805         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
22806         from a-except.adb.
22807         Move GCC EH related code to a-exexpr-gcc.adb
22808
22809         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
22810         64-bit Solaris
22811         Split the Linux version of g-soccon into separate variants for 32 and 64
22812         bit platforms.
22813         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
22814         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
22815         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
22816         of host variable $(RANLIB_FLAGS).
22817         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
22818         Code clean up: remove unused/obsolete targets.
22819         (EH_MECHANISM): New variable introduced to differenciate between the
22820         two EH mechanisms statically.
22821         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
22822         (LIBGNAT_OBJS): Add raise-gcc.o
22823         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
22824         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
22825         supports VxWorks 6 RTPs.
22826         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
22827         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
22828
22829         * raise.c: Move all GCC EH-related routines to raise-gcc.c
22830
22831 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
22832
22833         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
22834         deferral level, when abort is not allowed, to a later stage (the
22835         Task_Wrapper).
22836         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
22837         it will not get changed by the generated code. It was previously done
22838         in Create_Task.
22839
22840 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22841             Olivier Hainque  <hainque@adacore.com>
22842             Eric Botcazou  <ebotcazou@adacore.com>
22843
22844         * decl.c:
22845         Factor common code to build a storage type for an unconstrained object
22846         from a fat or thin pointer type and a constrained object type.
22847         (annotate_value): Handle BIT_AND_EXPR.
22848         (annotate_rep): Don't restrict the back annotation of inherited
22849         components to the type_annotate_only case.
22850         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
22851         we are not defining the type.
22852         <E_Record_Type>: Likewise.
22853         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
22854         to get advantage of the new maybe_stabilize_reference interface, to
22855         ensure that what we reference is indeed stabilized instead of relying
22856         on assumptions on what the stabilizer does.
22857         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
22858         type imported through a limited_with clause, use its non-limited view.
22859         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
22860         differentiation.
22861         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
22862         of #if sections + explicit comparisons of convention identifiers.
22863         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
22864         before early-returning for certain types when code generation is
22865         disabled.
22866         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
22867         nullification of gnu_expr we do for objects with address clause and
22868         that we are not defining.
22869         (elaborate_expression_1): Do not create constants when creating
22870         variables needed by the debug info: the dwarf2 writer considers that
22871         CONST_DECLs is used only to represent enumeration constants, and emits
22872         nothing for them.
22873         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
22874         object with an address clause into an indirect reference, drop the
22875         initializing expression.
22876         Include "expr.h".
22877         (STACK_CHECK_BUILTIN): Delete.
22878         (STACK_CHECK_PROBE_INTERVAL): Likewise.
22879         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
22880         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
22881         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
22882         corresponding to the renamed object as ignored for debugging purposes.
22883
22884         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
22885         related): For a prefix that is a dereference of a fat or thin pointer,
22886         if there is an actual subtype provided by the front-end, use that
22887         subtype to build an actual type with bounds template.
22888         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
22889         is provided by the front-end, use that subtype to compute the size of
22890         the deallocated object.
22891         (gnat_to_gnu): When adding a statement into an elaboration procedure,
22892         check for a potential violation of a No_Elaboration_Code restriction.
22893         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22894         with extra arguments to control whether to recurse through non-values
22895         and to let the caller know if the stabilization has succeeded.
22896         (gnat_stabilize_reference): Now a simple wrapper around
22897         maybe_stabilize, for common uses without restriction on lvalues and
22898         without need to check for the success indication.
22899         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
22900         pass false instead of 0 as the FORCE argument which is a bool.
22901         (Identifier_to_gnu): Remove checks ensuring that an renamed object
22902         attached to a renaming pointer has been properly stabilized, as no such
22903         object is attached otherwise.
22904         (call_to_gnu): Invoke create_var_decl to create the temporary when the
22905         function uses the "target pointer" return mechanism.
22906         Reinstate conversion of the actual to the type of the formal
22907         parameter before any other specific treatment based on the passing
22908         mechanism. This turns out to be necessary in order for PLACEHOLDER
22909         substitution to work properly when the latter type is unconstrained.
22910
22911         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
22912         common pattern.
22913         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
22914         with extra arguments to control whether to recurse through non-values
22915         and to let the caller know if the stabilization has succeeded.
22916
22917         * utils2.c (gnat_build_constructor): Only sort the fields for possible
22918         static output of record constructor if all the components are constant.
22919         (gnat_build_constructor): For a record type, sort the list of field
22920         initializers in increasing bit position order.
22921         Factor common code to build a storage type for an unconstrained object
22922         from a fat or thin pointer type and a constrained object type.
22923         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
22924         types variants, and process special cases of VIEW_CONVERT expressions
22925         as their NOP_EXPR counterpart to ensure we get to the
22926         CORRESPONDING_VARs associated with CONST_DECls.
22927         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
22928         on the right-hand side.
22929
22930         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
22931         a common pattern.
22932         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
22933         are converting back to its original type.
22934         (convert) <JM input>: Fallthrough regular conversion code instead of
22935         extracting the object if converting to a type variant.
22936         (create_var_decl): When a variable has an initializer requiring code
22937         generation and we are at the top level, check for a potential violation
22938         of a No_Elaboration_Code restriction.
22939         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
22940         SIZE and SIZE_UNIT which we need for later back-annotations.
22941         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
22942         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
22943         is an unchecked union.
22944         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
22945         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
22946         main variant, just replace the VIEW_CONVERT_EXPR.
22947         <UNION_TYPE>: Revert 2005-03-02 change.
22948
22949         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
22950
22951         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
22952
22953 2005-11-14  Matthew Heaney  <heaney@adacore.com>
22954
22955         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
22956         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
22957         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
22958         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
22959         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
22960         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
22961         Compiles against the spec for ordered maps described in sections
22962         A.18.6 of the most recent (August 2005) AI-302 draft.
22963
22964 2005-11-14  Olivier Hainque  <hainque@adacore.com>
22965
22966         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
22967         to ensure bias adjustments take place when need be and to prevent
22968         occurrences of intermediate overflows.
22969
22970 2005-11-14  Matthew Gingell  <gingell@adacore.com>
22971             Olivier Hainque  <hainque@adacore.com>
22972
22973         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
22974         ia64 HP-UX.
22975
22976         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
22977         tracebacks on ia64 HP-UX and provide explanatory comment.
22978         Enable backtraces on ia64 GNU/Linux.
22979         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
22980         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
22981
22982 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
22983             Javier Miranda  <miranda@adacore.com>
22984
22985         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
22986         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
22987         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
22988         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
22989
22990         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
22991         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
22992         assertions).
22993
22994         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
22995         subprogram that generates the external name associated with a
22996         secondary dispatch table.
22997         (Get_Secondary_DT_External_Name): New subprogram that generates the
22998         external name associated with a secondary dispatch table.
22999
23000 2005-11-14  Emmanuel Briot  <briot@adacore.com>
23001
23002         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
23003         line in the ALI file to include both an instantiation reference, and a
23004         returned value.
23005
23006 2005-11-14  Vincent Celier  <celier@adacore.com>
23007
23008         * clean.adb (Check_Project): Look for Ada code in extending project,
23009         even if Ada is not specified as a language.
23010         Use new function DLL_Prefix for DLL_Name
23011         (Clean_Interface_Copy_Directory): New procedure
23012         (Clean_Library_Directory): New procedure
23013         (Clean_Directory): Remove procedure, no longer used
23014         (Clean_Project): Do not delete any file in an externally built project
23015
23016         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
23017         directory of an extending project, even when there are no Ada source
23018         present.
23019         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
23020         (Set_Ada_Paths.Add.Recursive_Add): Ditto
23021
23022         * mlib-prj.adb (Check_Library): For all library projects, get the
23023         library file timestamp.
23024         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
23025         (Build_Library): Use new function DLL_Prefix for the DLL_Name
23026         (Clean): Remove procedure, no longer used
23027         (Ultimate_Extension_Of): New function
23028         (Build_Library): When cleaning the library directory, only remove an
23029         existing library file and any ALI file of a source of the project.
23030         When cleaning the interface copy directory, remove any source that
23031         could be a source of the project.
23032
23033         * prj.ads, prj.adb (Project_Empty): Add values of new components
23034         Library_TS and All_Imported_Projects.
23035         (Project_Empty): Add values for new components of Project_Data:
23036         Library_ALI_Dir and Display_Library_ALI_Dir
23037
23038         * prj-attr.adb: New project level attribute name Library_ALI_Dir
23039
23040         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
23041         attribute Library_ALI_Dir.
23042         (Check_Library_Attributes): The library directory cannot be the same as
23043         any source directory of the project tree.
23044         (Check_Stand_Alone_Library): The interface copy directory cannot be
23045         the same as any source directory of the project tree.
23046
23047         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
23048         all temporary files.
23049
23050 2005-11-14  Robert Dewar  <dewar@adacore.com>
23051             Ed Schonberg  <schonberg@adacore.com>
23052
23053         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23054         (Check_Elab_Call): A call within a protected body is never an
23055         elaboration call, and does not require checking.
23056         (Same_Elaboration_Scope): Take into account protected types for both
23057         entities.
23058         (Activate_Elaborate_All_Desirable): New procedure
23059
23060         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
23061         desirable
23062
23063         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
23064         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
23065
23066         * lib-writ.ads, lib-writ.adb:
23067         Implement new AD/ED for Elaborate_All/Elaborate desirable
23068         Use new Elaborate_All_Desirable flag in N_With_Clause node
23069
23070         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
23071         N_Free_Statement nodes.
23072         Define new class N_Subprogram_Instantiation
23073         Add Elaborate_Desirable flag to N_With_Clause node
23074         Add N_Delay_Statement (covering two kinds of delay)
23075
23076         * debug.adb: Introduce d.f flag for compiler
23077         Add -da switch for binder
23078
23079 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23080             Cyrille Comar  <comar@adacore.com>
23081
23082         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
23083         for task component, in the case of a limited aggregate. The enclosed
23084         object declaration will create it earlier. Otherwise, in the case of a
23085         nested aggregate, the object may appear in the wrong scope.
23086         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
23087         (Gen_Assign): If the component being assigned is an array type and the
23088         expression is itself an aggregate, wrap the assignment in a block to
23089         force finalization actions on the temporary created for each row of the
23090         enclosing object.
23091         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
23092         structures are initialized after all discriminants are set so that
23093         they can be accessed even when their offset is dynamic.
23094
23095 2005-11-14  Robert Dewar  <dewar@adacore.com>
23096             Hristian Kirtchev  <kirtchev@adacore.com>
23097
23098         * sem_attr.adb: Implement Machine_Rounding attribute
23099         (Analyze_Access_Attribute): The access attribute may appear within an
23100         aggregate that has been expanded into a loop.
23101         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
23102         'Terminated whenever the prefix is of a task interface class-wide type.
23103         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
23104         the prefix is of a task interface class-wide type.
23105
23106         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
23107         to avoid warnings.
23108
23109         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
23110         Remove pragma Inline for [Unaligned_]Valid.
23111         Add comments that Valid routines do not work for Vax_Float
23112
23113         * exp_attr.adb: Implement Machine_Rounding attribute
23114
23115         * snames.h: Add entry for Machine_Rounding attribute
23116
23117 2005-11-14  Javier Miranda  <miranda@adacore.com>
23118             Robert Dewar  <dewar@adacore.com>
23119             Hristian Kirtchev  <kirtchev@adacore.com>
23120
23121         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
23122         and related): For a prefix that is an explicit dereference of an
23123         access to unconstrained packed array type, annotate the dereference
23124         with an actual subtype so GIGI can make a correct size computation.
23125         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
23126         'Unrestricted_Access, if the designated type is an interface we
23127         add a type conversion to force the displacement of the pointer
23128         to the secondary dispatch table.
23129         Use Universal_Real instead of Long_Long_Float when we need a high
23130         precision float type for the generated code (prevents gratuitous
23131         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23132         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
23133         'Terminated for task interface class-wide objects. Generate a call to
23134         the predefined dispatching routine used to retrieve the _task_id from
23135         a task corresponding record.
23136         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
23137
23138         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23139         (Check_Dispatching_Operation): Protect the frontend againts
23140         previously detected errors.
23141
23142         * Makefile.rtl: Add new instantiations of system.fat_gen
23143
23144         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
23145         Change name of instantiated package for better consistency
23146         with newly added system.fat_gen instantiations.
23147
23148         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
23149         s-fvagfl.ads: New files.
23150
23151 2005-11-14  Cyrille Comar  <comar@adacore.com>
23152             Thomas Quinot  <quinot@adacore.com>
23153
23154         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
23155         assignment of a value of a tagged type that has been rewritten to a
23156         block statement, it is known by construction that no checks are
23157         necessary for the statements within the block: analyze it with checks
23158         suppressed.
23159         (Expand_N_If_Statement): When killing a dead then-branch in an
23160         if-statement that has elsif_parts, recompute the Current_Value node
23161         for any entity whose value is known from the condition of the first
23162         elsif_part.
23163         (Expand_N_Return_Statement): When returning a mutable record, convert
23164         the return value into its actual subtype in order to help the backend
23165         to return the actual size instead of the maximum. This is another
23166         aftermath of not returning mutable records on the sec-stack anymore.
23167
23168         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
23169         handling of error msg for suspicious reverse range iteration.
23170         (Check_Possible_Current_Value_Condition): Move declaration from body to
23171         spec, to allow this subprogram to be called from exp_ch5.
23172
23173 2005-11-14  Thomas Quinot  <quinot@adacore.com>
23174
23175         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
23176         generate a set of nested array aggregates instead of a single flat
23177         aggregate for multi-dimensional arrays.
23178
23179 2005-11-14  Pascal Obry  <obry@adacore.com>
23180
23181         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
23182         by spawnve is a process handle, no need to convert. Add a parameter
23183         close to control wether the process handle must be closed.
23184         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
23185         a process handle, not need to convert.
23186         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
23187
23188         * g-expect.adb: (Kill): Document the new close parameter.
23189         (Close): Do not release the process handle in the kill there as
23190         waitpid() is using it.
23191         (Send_Signal): Release the process handle.
23192
23193 2005-11-14  Robert Dewar  <dewar@adacore.com>
23194
23195         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
23196         need a high precision float type for the generated code (prevents
23197         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
23198         used).
23199
23200         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
23201         need a high precision float type for the generated code (prevents
23202         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
23203         used).
23204         (Expand_Width_Attribute): In configurable run-time, the attribute is not
23205         allowed on non-static enumeration subtypes. Force a load error to emit
23206         the correct diagnostic.
23207
23208 2005-11-14  Thomas Quinot  <quinot@adacore.com>
23209             Robert Dewar  <dewar@adacore.com>
23210             Ed Schonberg  <schonberg@adacore.com>
23211
23212         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
23213         subtype to compute the size of the designated object at run-time,
23214         create such a subtype and store it in the Actual_Designated_Subtype
23215         attribute of the N_Free_Statement.
23216         Generate itype for classwide designated object in both cases of
23217         user-specified storage pool: specific and class-wide, not only in the
23218         specific case.
23219         Raise CE when trying to set a not null access type object to null.
23220         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
23221         an explicit loop, because freeze nodes make its position variable.
23222
23223         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
23224         null object.
23225
23226 2005-11-14  Javier Miranda  <miranda@adacore.com>
23227
23228         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
23229         Build_Stream_Procedure): Add the null-excluding attribute to the first
23230         formal.
23231         This has no semantic meaning under Ada95 mode but it is a
23232         requirement under Ada05 mode.
23233
23234         * par-ch3.adb (P_Access_Definition): Addition of warning message if
23235         the null exclusion is used under Ada95 mode
23236         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
23237         (P_Access_Definition): Remove assertion that forbids the use of
23238         the null-exclusion feature in Ada95.
23239
23240 2005-11-14  Robert Dewar  <dewar@adacore.com>
23241
23242         * impunit.adb: Exclude container helper units not intended for use by
23243         users.
23244
23245 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23246
23247         * freeze.adb (Freeze_Entity): For an access formal that is an access
23248         to subprogram, freeze the anonymous subprogram type at the same time,
23249         to prevent later freezing in the wrong scope, such as the enclosing
23250         subprogram body.
23251         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
23252         subprogram whenever available.
23253
23254 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
23255
23256         PR ada/23732
23257         * gnatvsn.ads (Library_Version): Bump to 4.1
23258
23259 2005-11-14  Robert Dewar  <dewar@adacore.com>
23260
23261         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
23262         Storage_Offset to avoid wrap around causing invalid results.
23263
23264 2005-11-14  Pascal Obry  <obry@adacore.com>
23265
23266         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
23267         cross-compiler.
23268         (Scan_Bind_Arg): Fail with an error message if -M option is used
23269         on a native compiler.
23270
23271 2005-11-14  Robert Dewar  <dewar@adacore.com>
23272             Vincent Celier  <celier@adacore.com>
23273
23274         * gprep.adb: Implement -C switch to scan comments
23275
23276         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
23277
23278         * scans.ads: Comment updates (including new use of Tok_Comment in
23279         preprocessing)
23280
23281         * opt.ads: Add documentation for flags that are used by gprmake,
23282         currently and in the next version of gprmake.
23283         (Verbosity_Level): New variable
23284         Add Replace_In_Comments switch
23285
23286         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
23287         and -vm.
23288         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
23289
23290 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
23291
23292         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
23293         message, friendlier.
23294
23295 2005-11-14  Robert Dewar  <dewar@adacore.com>
23296
23297         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
23298
23299 2005-11-14  Doug Rupp  <rupp@adacore.com>
23300
23301         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
23302
23303 2005-11-14  Robert Dewar  <dewar@adacore.com>
23304
23305         * interfac.ads: Change declarations of IEEE float types so that we no
23306         longer need a separate version of this package for VMS.
23307
23308 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23309
23310         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
23311         internal entity created for the declaration of a child subprogram body
23312         with no spec as coming from source, to generate proper cross-reference
23313         information.
23314
23315 2005-11-14  Vincent Celier  <celier@adacore.com>
23316
23317         * make.adb (Compile_Sources): Change verbose message to minimum
23318         verbosity level High for "is in an Ada library", "is a read-only
23319         library" and "is an internal library",
23320         (Create_Binder_Mapping_File): Path name of ALI file for library project
23321         must include the library directory, not the object directory.
23322         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
23323         for new switches -vl, -vm and -vh.
23324         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
23325         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
23326         (Compile_Sources): Do not attempt to compile if an ALI file is missing
23327         in a project that is externally built.
23328         (Compute_All_Imported_Projects): New procedure
23329         (Gnatmake): Check if importing libraries should be regenerated because
23330         at least an imported library is more recent.
23331         (Initialize): For each project compute the list of the projects it
23332         imports directly or indirectly.
23333         (Add_Library_Search_Dir): New procedure, used in place of
23334         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
23335         put in the search paths.
23336         (Add_Source_Search_Dir): New procedure, used in place of
23337         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
23338         put in the search paths.
23339         (Mark_Directory): Resolve the absolute path the directory before marking
23340         it.
23341
23342         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
23343         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
23344         Switch. Do not handle any exception.
23345         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
23346         so that the switch is recognized as valid.
23347         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
23348
23349 2005-11-14  GNAT Script  <nobody@adacore.com>
23350
23351         * Make-lang.in: Makefile automatically updated
23352
23353 2005-11-14  Pascal Obry  <obry@adacore.com>
23354
23355         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
23356         used.
23357         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
23358         In both cases the last argument was dropped.
23359
23360 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
23361
23362         * namet.h: (Column_Numbe): New type.
23363         (Get_Column_Number): Define to sinput__get_column_number.
23364         (Instantiation): Define to sinput__instantiation.
23365         (Get_Column_Number): Declare.
23366         (Instantiation): Likewise.
23367
23368 2005-11-14  Robert Dewar  <dewar@adacore.com>
23369
23370         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
23371         syntax, which could cause compiler hangs.
23372
23373 2005-11-14  Vincent Celier  <celier@adacore.com>
23374
23375         * prj-ext.adb: Take into account new environment variable
23376         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
23377         are defined.
23378         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
23379         normalize its path name, making it absolute and resolving symbolic
23380         links, and replace the original if resolved path is different.
23381
23382 2005-11-14  Vincent Celier  <celier@adacore.com>
23383
23384         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
23385         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
23386
23387 2005-11-14  Emmanuel Briot  <briot@adacore.com>
23388
23389         * prj-pp.adb (Print): Do not output the with statement if the
23390         associated name is empty, which happens for virtual extending projects.
23391         (Print): Preserve the "extends all" attribute when printing the project.
23392
23393         * prj-tree.ads (String_Value_Of): Add comment about returned value for
23394         a virtual extending project.
23395
23396 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23397
23398         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
23399         rhs of an assignment even if the type is unconstrained, when the
23400         context is non-expanding.
23401         In an inlined body, if the context type is private,
23402         resolve with its full view, which must be a composite type.
23403
23404 2005-11-14  Robert Dewar  <dewar@adacore.com>
23405             Ed Schonberg  <schonberg@adacore.com>
23406
23407         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23408         Do not give obsolescent warning on with of subprogram (since we
23409         diagnose calls)
23410         (Analyze_With_Clause): Add test for obsolescent package
23411         (Install_Context_Clauses): If the unit is the body of a child unit, do
23412         not install twice the private declarations of the parents, to prevent
23413         circular lists of Use_Clauses in a parent.
23414         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
23415         compiling body of child unit.
23416         Use new class N_Subprogram_Instantiation
23417         (Expand_With_Clause): If this is a private with_clause for a child unit,
23418         appearing in the context of a package declaration, then the implicit
23419         with_clauses generated for parent units are private as well.
23420         (License_Check): Do not generate message if with'ed unit is internal
23421
23422 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
23423             Ed Schonberg  <schonberg@adacore.com>
23424             Thomas Quinot  <quinot@adacore.com>
23425
23426         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
23427         names are internal, because they will not have a corresponding partner
23428         in the actual package.
23429         (Analyze_Formal_Package): Move the setting of the formal package spec's
23430         Generic_Parent field so that it occurs prior to analyzing the package,
23431         to allow proper operation of Install_Parent_Private_Declarations.
23432         (Analyze_Package_Instantiation): Set the instantiated package entity's
23433         Package_Instantiation field.
23434         (Get_Package_Instantiation_Node): Move declaration to package spec.
23435         Retrieve the N_Package_Instantiation node when the Package_Instantiation
23436         field is present.
23437         (Check_Generic_Child_Unit): Within an inlined call, the only possible
23438         instantiation is Unchecked_Conversion, for which no parents are needed.
23439         (Inline_Instance_Body): Deinstall and record the use_clauses for all
23440         parent scopes of a scope being removed prior to inlining an instance
23441         body.
23442         (Analyze_Package_Instantiation): Do not perform front-end inlining when
23443         the current context is itself an instance within a non-instance child
23444         unit, to prevent scope stack errors.
23445         (Save_References): If the node is an aggregate that is an actual in a
23446         call, rewrite as a qualified expression to preserve some type
23447         information, to resolve possible ambiguities in the instance.
23448         (Instance_Parent_Unit): New global variable to record the ultimate
23449         parent unit associated with a generic child unit instance (associated
23450         with the existing Parent_Unit_Visible flag).
23451         (type Instance_Env): New component Instance_Parent_Unit for stacking
23452         parents recorded in the global Instance_Parent_Unit.
23453         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
23454         stack.
23455         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
23456         it's not a top-level unit, and only do this if Instance_Parent_Unit is
23457         not already set. Replace test of Is_Child_Unit with test of parent's
23458         scope against package Standard. Add comments and a ??? comment.
23459         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
23460         on a child instance parent to test that the parent equals
23461         Instance_Parent rather than simply checking that the unit is not a
23462         child unit.
23463         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
23464         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
23465         a formal interface are ancestors of the corresponding actual.
23466         (Validate_Formal_Interface_Type): Additional legality checks.
23467         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
23468         interface types with ancestors.
23469         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
23470         to diagnose attempts to use generic within its own declaration.
23471
23472 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23473             Javier Miranda  <miranda@adacore.com>
23474
23475         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
23476         discriminant.
23477         (Build_Private_Derived_Type): The entity of the created full view of the
23478         derived type does not come from source. If after installing the private
23479         declarations of the parent scope the parent is still private, use its
23480         full view to construct the full declaration of the derived type.
23481         (Build_Derived_Record_Type): Relax the condition that controls the
23482         execution of the check that verifies that the partial view and
23483         the full view agree in the set of implemented interfaces. In
23484         addition, this test now only takes into account the progenitors.
23485         (Derive_Interface_Subprograms): No need to derive subprograms
23486         of ancestors that are interfaces.
23487         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
23488         associated code.
23489         Change name Is_Package to Is_Package_Or_Generic_Package
23490         (Complete_Subprograms_Derivation): Handle the case in which the full
23491         view is a transitive derivation of the ancestor of the partial view.
23492         (Process_Full_View): Rename local subprogram Find_Interface_In_
23493         Descendant to Find_Ancestor_Interface to leave the code more clear.
23494         Remove wrong code that avoids the generation of an error message
23495         when the immediate ancestor of the partial view is an interface.
23496         In addition some minor reorganization of the code has been done to
23497         leave it more clear.
23498         (Analyze_Type_Declaration): If type has previous incomplete tagged
23499         partial view, inherit properly its primitive operations.
23500         (Collect_Interfaces): Make public, for analysis of formal
23501         interfaces.
23502         (Analyze_Interface_Declaration): New procedure for use for regular and
23503         formal interface declarations.
23504         (Build_Derived_Record_Type): Add support for private types to the code
23505         that checks if a tagged type implements abstract interfaces.
23506         (Check_Aliased_Component_Type): The test applies in the spec of an
23507         instance as well.
23508         (Access_Type_Declaration): Clean up declaration of malformed type
23509         declared as an access to its own classwide type, to prevent cascaded
23510         crash.
23511         (Collect_Interfaces): For private extensions and for derived task types
23512         and derived protected types, the parent may be an interface that must
23513         be included in the interface list.
23514         (Access_Definition): If the designated type is an interface that may
23515         contain tasks, create Master_Id for it before analyzing the expression
23516         of the declaration, which may be an allocator.
23517         (Record_Type_Declaration): Set properly the interface kind, for use
23518         in allocators, the creation of master id's for task interfaces, etc.
23519
23520 2005-11-14  Javier Miranda  <miranda@adacore.com>
23521             Ed Schonberg  <schonberg@adacore.com>
23522
23523         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
23524         omitted in case of stream attribute subprograms.
23525         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
23526         appear immediately after a subprogram body, when there is no previous
23527         subprogram declaration.
23528         Change name Is_Package to Is_Package_Or_Generic_Package
23529         (Process_Formals): A non null qualifier on a non null named access
23530         type is not an error, and is a warning only if Redundant_Constructs
23531         are flagged.
23532
23533 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
23534             Ed Schonberg  <schonberg@adacore.com>
23535
23536         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
23537         nested within Analyze_Package_Specification to install the private
23538         declarations and use clauses within each of the parent units of a
23539         package instance of a generic child package.
23540         (Analyze_Package_Specification): When entering a private part of a
23541         package associated with a generic instance or formal package, the
23542         private declarations of the parent must be installed (by calling new
23543         procedure Install_Parent_Private_Declarations).
23544         Change name Is_Package to Is_Package_Or_Generic_Package
23545         (Preserve_Full_Attributes): For a synchronized type, the corresponding
23546         record is absent in a generic context, which does not indicate a
23547         compiler error.
23548
23549 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23550
23551         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
23552         not try to rewrite a renamed stream attribute, because the operations
23553         on the type may not have been generated.
23554         Handle properly a renaming_as_body generated for a stream operation
23555         whose default is abstract because the object type itself is abstract.
23556         (Find_Type): If the type is incomplete and appears as the prefix of a
23557         'Class reference, it is tagged, and its list of primitive operations
23558         must be initialized properly.
23559         (Chain_Use_Clauses): When chaining the use clauses that appear in the
23560         private declaration of a parent unit, prior to compiling the private
23561         part of a child unit, find on the scope stack the proper parent entity
23562         on which to link the use clause.
23563         (Note_Redundant_Use): Emit a warning when a redundant use clause is
23564         detected.
23565         (Analyze_Object_Renaming): An attribute reference is not a legal object
23566         if it is not a function call.
23567
23568 2005-11-14  Robert Dewar  <dewar@adacore.com>
23569             Ed Schonberg  <schonberg@adacore.com>
23570
23571         * sem_eval.adb: Implement d.f flag
23572         (Subtype_Statically_Match): A generic actual type has unknown
23573         discriminants when the corresponding actual has a similar partial view.
23574         If the routine is called to validate the signature of an inherited
23575         operation in a child instance, the generic actual matches the full view,
23576
23577 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
23578             Ed Schonberg  <schonberg@adacore.com>
23579             Robert Dewar  <dewar@adacore.com>
23580             Thomas Quinot  <quinot@adacore.com>
23581
23582         * sem_res.adb (Resolve_Call): Provide a better error message whenever
23583         a procedure call is used as a select statement trigger and is not an
23584         entry renaming or a primitive of a limited interface.
23585         (Valid_Conversion): If the operand has a single interpretation do not
23586         remove address operations.
23587         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
23588         statement to inhibit warning.
23589         (Resolve_Unary_Op): Do not produce a warning when
23590         processing an expression of the form -(A mod B)
23591         Use Universal_Real instead of Long_Long_Float when we need a high
23592         precision float type for the generated code (prevents gratuitous
23593         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23594         (Resolve_Concatenation_Arg): Improve error message when argument is an
23595         ambiguous call to a function that returns an array.
23596         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
23597         there is an implicit operator in the given scope if we are within an
23598         instance: legality check has been performed on the generic.
23599         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
23600         after resolving operand, to avoid false warnings on overloaded calls.
23601
23602 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23603             Javier Miranda  <miranda@adacore.com>
23604
23605         PR ada/15604
23606         * sem_type.adb (Covers): In an inlined body, a composite type matches
23607         a private type whose full view is a composite type.
23608         (Interface_Present_In_Ancestor): Protect the frontend against
23609         previously detected errors to ensure that its compilation
23610         with assertions enabled gives the same output that its
23611         compilation without assertions.
23612         (Interface_Present_In_Ancestor): Add support for private types.
23613         Change name In_Actual to In_Generic_Actual (clean up)
23614         (Disambiguate): New predicate In_Actual, to recognize expressions that
23615         appear in the renaming declaration generated for generic actuals, and
23616         which must be resolved in the outer context.
23617
23618 2005-11-14  Robert Dewar  <dewar@adacore.com>
23619             Thomas Quinot  <quinot@adacore.com>
23620             Hristian Kirtchev  <kirtchev@adacore.com>
23621             Ed Schonberg  <schonberg@adacore.com>
23622
23623         * sem_util.ads, sem_util.adb: Change name Is_Package to
23624         Is_Package_Or_Generic_Package.
23625         (Check_Obsolescent): New procedure.
23626         (Set_Is_Public): Remove obsolete junk test.
23627         (Set_Public_Status): Do not set Is_Public on an object whose declaration
23628         occurs within a handled_sequence_of_statemets.
23629         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
23630         for a parameterless procedure.
23631         (Enter_Name): Recognize renaming declarations created for private
23632         component of a protected type within protected operations, so that
23633         the source name of the component can be used in the debugger.
23634
23635 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23636             Robert Dewar  <dewar@adacore.com>
23637
23638         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
23639         of a generic subprogram are not visible outside the body.
23640         (Set_Warning_Switch): New procedure (code to set warning mode moved
23641         here from Switch.C so that it can be shared by pragma processing.
23642         (Check_References): Special case warning for non-modified non-imported
23643         volatile objects.
23644         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
23645         form with a string literal argument
23646
23647 2005-11-14  Javier Miranda  <miranda@adacore.com>
23648
23649         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
23650         anonymous access.
23651         (Write): Addition of "not null" to the anonymous access.
23652         (Read): Addition of "not null" to the anonymous access.
23653         (Write): Addition of "not null" to the anonymous access.
23654
23655         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
23656         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
23657         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
23658         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
23659         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
23660         "not null" to the anonymous access.
23661
23662 2005-11-14  Robert Dewar  <dewar@adacore.com>
23663
23664         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
23665         offset values
23666
23667 2005-11-14  Vincent Celier  <celier@adacore.com>
23668
23669         * switch.adb (Bad_Switch): New procedure
23670         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
23671         message when in error.
23672
23673         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
23674         Too_Many_Output_Files): Remove declarations, no longer used.
23675         (Scan_Nat): New parameter Switch
23676         (Scan_Pos): Ditto
23677         (Bad_Switch): New procedure
23678
23679         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
23680         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
23681         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
23682         to Osint.Fail. Do not handle any exception.
23683
23684 2005-11-14  Vincent Celier  <celier@adacore.com>
23685
23686         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
23687         designates a non existent directory.
23688
23689 2005-11-14  Robert Dewar  <dewar@adacore.com>
23690
23691         * xgnatugn.adb: Replace invalid membership test by 'Valid
23692
23693 2005-11-14  Vincent Celier  <celier@adacore.com>
23694
23695         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
23696         there is no object directory.
23697
23698 2005-11-14  Robert Dewar  <dewar@adacore.com>
23699
23700         * usage.adb: Minor adjustment to output format, use nn instead of nnn
23701         (so that -gnateInnn does not run into next column)
23702
23703 2005-11-14  Ed Falis  <falis@adacore.com>
23704
23705         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
23706         "constrained"
23707
23708 2005-11-14  Cyrille Comar  <comar@adacore.com>
23709
23710         * s-chepoo.ads: Add comments on Dereference.
23711         Remove unnecessary inherited abstract primitives.
23712         Cosmetic cleanup.
23713
23714 2005-11-14  Robert Dewar  <dewar@adacore.com>
23715
23716         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
23717         node parameter, not needed, since it is available as Declaration_Node.
23718
23719 2005-11-14  Geert Bosch  <bosch@adacore.com>
23720
23721         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
23722         grammatically correct.
23723
23724 2005-11-14  Vincent Celier  <celier@adacore.com>
23725
23726         * s-fileio.ads: Correct spelling error in comment
23727
23728 2005-11-14  Cyrille Comar  <comar@adacore.com>
23729             Robert Dewar  <dewar@adacore.com>
23730             Vincent Celier  <celier@adacore.com>
23731             Ben Brosgol  <brosgol@adacore.com>
23732             Jose Ruiz  <ruiz@adacore.com>
23733             Pascal Obry  <obry@adacore.com>
23734
23735         * gnat_ugn.texi:
23736         Document that -fstack-check is needed for strict compliance with the
23737         Ada 95 Reference Manual.
23738         Correct reference to VAX systems to meet HP guidelines
23739         Add documentation for new gnatmake switches -vl, -vm and -vh
23740         Replace DEC Ada by HP Ada
23741         Replace DIGITAL by HP
23742         Remove empty section on tools in compatibility section
23743         Clarify the Windows convention semantics.
23744         Document the Win32 calling convention.
23745         The Stdcall, Win32 and DLL convention are synonyms.
23746         Add a note in -gnatR description about zero size record components
23747         Note on new >= and <= warnings for -gnatwc
23748         Document that equal sign after -gnatm is optional.
23749         Note that strip is working fine on DLL built with a Library
23750         Project. The restriction apply only to DLL built with gnatdll.
23751         Update section about the way to debug a DLL.
23752         Update information about the DLL convention.
23753         Document -C switch for gnatprep
23754         Document new attribute Library_ALI_Dir
23755         Update elaboration doc to include implicit Elaborate pragmas now
23756         generated for subprogram instantiations.
23757         Document limitation on executable names that include spaces for --GCC,
23758         --GNATBIND, and --GNATLINK switches.
23759         Document that -w causes -gnatws to be added at start of gcc switches
23760
23761         * gnat_rm.texi: Document that -mieee is needed for generating infinite
23762         and NaN values in case of overflow on machines that are not fully
23763         compliant with the IEEE floating-point standard.
23764         Create a section describing the set of compiler options needed for
23765         strict compliance with the Ada 95 Reference Manual.
23766         Add documentation for pragma Obsolescent applied to a package
23767         Clarify potential issues of mixed language programs related to the
23768         I/O buffering enabling in the elaboration of the GNAT runtime.
23769         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
23770         This documentation only patch adds extra documentsion for pragma
23771         Restrictions (No_Elaboration_Code), explaining why it is not possible
23772         to document this restriction in terms of allowed source constructs.
23773         Document string literal form of pragma Warnings
23774         Document new attribute Library_ALI_Dir
23775         Add documentation on stable attributes in project files that was missing
23776
23777         * gnat-style.texi: Indicate that paragraphs within a single comment
23778         should be separated by empty comment lines
23779
23780         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
23781         /05 respectively)
23782
23783         * bindusg.adb: Minor cleanup, put -m before -M for consistency
23784
23785 2005-11-14  Robert Dewar  <dewar@adacore.com>
23786
23787         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
23788         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
23789         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
23790         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
23791         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
23792         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
23793         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
23794         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
23795         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
23796         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
23797         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
23798         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
23799         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
23800         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
23801         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
23802         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
23803         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
23804         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
23805         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
23806         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
23807         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
23808         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
23809         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
23810         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
23811         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
23812         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
23813         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
23814         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
23815         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
23816         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
23817         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
23818         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
23819         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
23820         system-interix.ads, system-solaris-sparc.ads,
23821         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
23822         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
23823         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
23824         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
23825         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
23826         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
23827         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
23828         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23829         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23830         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
23831         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
23832         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
23833         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
23834         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
23835         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
23836         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23837         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
23838         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
23839         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
23840         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
23841         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
23842         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
23843         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
23844         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
23845         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
23846         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
23847         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23848         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
23849         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
23850         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
23851         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
23852         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
23853         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
23854         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
23855         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
23856         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
23857         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
23858         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
23859         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
23860         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
23861         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
23862         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
23863         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
23864         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
23865         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
23866         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
23867         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
23868         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
23869         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
23870         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
23871         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
23872         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
23873         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
23874         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
23875         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
23876         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
23877         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
23878         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
23879         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
23880         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
23881         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
23882         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
23883         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23884         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
23885         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
23886         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
23887         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
23888         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
23889         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
23890         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
23891         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23892         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
23893         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
23894         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
23895         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
23896         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23897         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
23898         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
23899         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
23900         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23901         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
23902         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
23903         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
23904         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23905         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
23906         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
23907         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
23908         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23909         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
23910         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
23911         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
23912         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23913         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
23914         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
23915         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
23916         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
23917         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
23918         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
23919         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
23920         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
23921         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
23922         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
23923         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
23924         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
23925         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
23926         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
23927         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
23928         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
23929         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
23930         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23931         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
23932         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
23933         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
23934         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
23935         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
23936         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
23937         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
23938         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
23939         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
23940         a-numaux-darwin.ads, a-numaux-darwin.adb,
23941         a-swuwha.ads, a-stunha.ads: Minor reformatting
23942
23943 2005-11-14  Robert Dewar  <dewar@adacore.com>
23944
23945         PR ada/18434
23946         * osint-m.adb: Add pragma Elaborate_All for Osint
23947
23948 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
23949
23950         PR ada/23995
23951         * trans.c (call_to_gnu): Restore statement lost in translation.
23952
23953 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
23954
23955         * init.c: Use the Linux-specific section for the IA-64/Linux target.
23956         (__gnat_adjust_context_for_raise): Add conditional code so that the
23957         IA-64 is also supported.
23958
23959 2005-11-03  James E Wilson  <wilson@specifix.com>
23960
23961         PR ada/23427
23962         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
23963         TREE_OVERFLOW check.
23964
23965 2005-09-21  Olivier Hainque  <hainque@adacore.com>
23966
23967         PR ada/22418
23968         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
23969         as we create them to store a size in bits.
23970
23971 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
23972
23973         PR ada/21937
23974         PR ada/22328
23975         PR ada/22381
23976         PR ada/22383
23977         PR ada/22419
23978         PR ada/22420
23979         * utils2.c (build_return_expr): New helper function.
23980         * gigi.h (build_return_expr): Declare it.
23981         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
23982         of manually building the RETURN_EXPR tree.
23983         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
23984         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
23985         build_binary_op for the "target pointer" case.  Use build_return_expr
23986         instead of manually building the RETURN_EXPR tree.
23987
23988 2005-09-16  Laurent Guerby  <laurent@guerby.net>
23989
23990         PR ada/23788
23991         * s-tpinop.ads: Make this unit Preelaborate.
23992
23993 2005-09-16  Andreas Jaeger  <aj@suse.de>
23994
23995         * socket.c: Add string.h for memcpy.
23996
23997 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
23998
23999         * dec-io.ads, dec-io.adb: Removed, no longer used.
24000
24001 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24002
24003         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
24004
24005         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
24006         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
24007         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
24008         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
24009         dependent units are Preelaborate.
24010         (Initialize): Call Interrupt_Managemeent.Initialize and
24011         OS_Primitives.Initialize to ensure proper initialization of this unit.
24012         Remove use of System.Soft_Links
24013         Make this unit Preelaborate.
24014
24015         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
24016         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
24017         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
24018         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
24019         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
24020         s-tratas.ads, s-tasinf.ads: Minor reformatting.
24021         Add pragma Preelaborate, since these packages are suitable for this
24022         categorization.
24023         Update comments.
24024
24025         * s-traent-vms.ads, s-intman-dummy.adb,
24026         s-taprop-dummy.adb: Make this unit Preelaborate.
24027
24028         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
24029         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
24030         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
24031         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
24032         s-intman-solaris.adb, s-intman-irix-athread.adb,
24033         s-intman-irix.adb: Mark this unit Preelaborate.
24034         (Initialize): New procedure.
24035         Update comments.
24036
24037         * s-taspri-linux.ads: Removed.
24038
24039         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
24040         as done by other implementations (e.g. posix).
24041
24042         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
24043         responsible for deferring abort.
24044         Mark this unit Preelaborate.
24045
24046         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
24047         proper initialization of the tasking run-time.
24048
24049         * s-tasdeb.ads: Mark this unit Preelaborate.
24050         (Known_Tasks): Add explicit default value to avoid elaboration code.
24051
24052         * s-inmaop-vms.adb (Elaboration code): Add call to
24053         Interrupt_Management.Initialize since the elaboration code depends on
24054         proper initialization of this package.
24055
24056         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
24057         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
24058         s-osprim-posix.adb: Make this unit Preelaborate.
24059
24060         * a-calend.adb: Add call to OS_Primitives.Initialize
24061
24062         * a-elchha.adb: Update use of Except.Id.Full_Name.
24063         Minor reformatting.
24064         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
24065
24066         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
24067         Move with clauses outside Warnings Off now that dependent units are
24068         Preelaborate.
24069         Use raise xxx with "..."; Ada 2005 form.
24070
24071         * a-taside.ads, a-taside.adb:
24072         Remove some dependencies, to make it easier to make this unit truly
24073         Preelaborate.
24074         Rewrite some code to be conformant with Preelaborate rules.
24075
24076         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
24077         marked Preelaborate in the future.
24078
24079         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
24080         these units Preelaborate.
24081
24082         * s-exctab.adb: Update use of Except.Id.Full_Name.
24083
24084         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
24085         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
24086         Set_Exc_Stack_Addr): Removed, no longer used.
24087         Remove reference to *Machine_State_Addr*, no longer needed.
24088
24089         * s-stalib.ads: Mark this unit as Preelaborate[_05].
24090         (Exception_Data): Full_Name is now a System.Address so that this unit
24091         can be made Preelaborate.
24092         Clean up/simplify code thanks to Full_Name being a System.Address.
24093         Remove obsolete pragma Suppress (All_Checks), no longer needed.
24094
24095         * s-taskin.ads, s-taskin.adb:
24096         Move with clauses outside Warnings Off now that dependent units are
24097         Preelaborate.
24098         Make this unit Preelaborate.
24099         (Initialize): New proceduure, replace elaboration code and makes the
24100         set up of the tasking run-time cleaner.
24101         (Detect_Blocking): Now a function instead of a deferred boolean, to
24102         obey Preelaborate rules.
24103
24104         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
24105         soft links, no longer used.
24106
24107         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
24108         packages are suitable for this categorization.
24109
24110         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
24111         since we compile run-time sources in Ada 2005 mode.
24112         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
24113         avoid having s-taprop*.adb depend on s-soflin and to avoid code
24114         duplication.
24115         Remove reference to *Machine_State_Addr*, no longer needed.
24116
24117 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24118
24119         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
24120         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
24121         Remove reference to System.Exceptions.
24122
24123         * s-mastop-x86.adb: Removed, no longer used.
24124
24125         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
24126
24127         * a-excach.adb: Minor reformatting.
24128
24129         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
24130         instead fix new warnings that were hidden by this change.
24131         (AAA, ZZZ): Removed, replaced by...
24132         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
24133         are used instead of constants, to help make Ada.Exception truly
24134         preelaborate.
24135         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
24136         Raise_Storage_Error): File is now a System.Address, to simplify code.
24137         (Elab code): Removed, no longer used.
24138         (Null_Occurrence): Remove Warnings Off and make this construct
24139         preelaborate.
24140         Remove code related to front-end zero cost exception handling, since
24141         it is no longer used.
24142         Remove -gnatL/-gnatZ switches.
24143
24144         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
24145         Update use of Except.Msg.
24146
24147         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
24148         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
24149         to front-end zero cost exception handling, since it is no longer used.
24150         Remove -gnatL/-gnatZ switches.
24151
24152         * lib-writ.ads: Minor reformatting
24153         Remove doc of UX
24154
24155         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
24156
24157         * Make-lang.in: Remove references to s-except.ads
24158
24159         * s-except.ads: Removed, no longer used.
24160
24161         * s-mastop.ads, s-mastop.adb:
24162         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
24163         Remove reference to System.Exceptions.
24164
24165         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
24166         switch-b.adb: Remove code related to front-end zero cost exception
24167         handling, since it is no longer used.
24168         Remove -gnatL/-gnatZ switches.
24169
24170 2005-09-01  Robert Dewar  <dewar@adacore.com>
24171             Gary Dismukes  <dismukes@adacore.com>
24172             Javier Miranda  <miranda@adacore.com>
24173
24174         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
24175         type by valid test and generate warning.
24176         (Tagged_Membership): Generate call to the run-time
24177         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
24178         Change formal name Subtype_Mark to Result_Definition in several calls to
24179         Make_Function_Specification.
24180         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
24181         check for proper accessibility of the operand of a class-wide allocator.
24182         The check can be left out if checks are suppressed or if the expression
24183         has a specific tagged type whose level is known to be safe.
24184
24185         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
24186         generates the run-time check associated with null-excluding entities.
24187         (Expand_N_Return_Statement): Add tests to determine if the accessibility
24188         check on the level of the return expression of a class-wide function
24189         can be elided. The check usually isn't needed if the expression has a
24190         specific type (unless it's a conversion or a formal parameter). Also
24191         add a test for whether accessibility checks are suppressed. Augment
24192         the comments to describe the conditions for performing the check.
24193
24194 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
24195             Javier Miranda  <miranda@adacore.com>
24196             Gary Dismukes  <dismukes@adacore.com>
24197             Ed Schonberg  <schonberg@adacore.com>
24198
24199         * a-tags.adb (IW_Membership): Give support to
24200         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
24201         subprogram has been extended to look for the tag in the ancestors tag
24202         table.
24203         Update the structure of the GNAT Dispatch Table to reflect the
24204         additional two tables used in dispatching selects.
24205         Introduce appropriate array types and record components in
24206         Type_Specific_Data to reflect the two tables.
24207         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
24208         the TSD of a tag, indexed by position.
24209         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
24210         operation kind in the TSD of a tag, indexed by position.
24211
24212         * a-tags.ads: Introduce an enumeration type to capture different
24213         primitive operation kinds. Define a constant reflecting the number of
24214         predefined primitive operations.
24215         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
24216         of an entry wrapper.
24217         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
24218         callable entity of a primitive operation.
24219
24220         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
24221         primitive operations used in dispatching selects for limited
24222         interfaces, limited tagged, task and protected types what implement a
24223         limited interface.
24224         (Freeze_Type): Generate the bodies of the primitive operations used in
24225         dispatching selects for limited tagged, task and protected types that
24226         implement a limited interface. Generate statements to populate the two
24227         auxiliary tables used for dispatching in select statements.
24228         (Freeze_Record_Type): Add call to initialize the dispatch table entries
24229         associated with predefined interface primitive operations.
24230         (Build_Dcheck_Function): Change Set_Subtype_Mark to
24231         Set_Result_Definition.
24232         (Build_Variant_Record_Equality): Change Subtype_Mark to
24233         Result_Definition.
24234         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
24235         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
24236         (Build_Assignment): Simplify the code that adds the run-time-check.
24237         (Expand_N_Object_Declaration): Code cleanup.
24238
24239         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
24240         entries when there is a protected type that implements a limited
24241         interface.
24242
24243         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
24244         common routines used in expansion of dispatching selects.
24245         (Add_Private_Declarations): Select the appropriate protection type when
24246         there is a protected type that implements a limited interface.
24247         (Build_Parameter_Block): Generate a wrapped parameter block.
24248         (Build_Protected_Subprogram_Body): Select the appropriate type for
24249         locking entries when there is a protected type that implements a
24250         limited interface.
24251         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
24252         classified as entry wrappers.
24253         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
24254         asynchronous selects.
24255         (Expand_N_Conditional_Entry_Call): Add support for expansion of
24256         dispatching conditional selects.
24257         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
24258         protection when there is a protected type that implements limited
24259         interfaces.
24260         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
24261         timed selects.
24262         (Extract_Dispatching_Call): Extract the entity of the name of a
24263         dispatching call, the object parameter, actual parameters and
24264         corresponding formals.
24265         (Make_Initialize_Protection): Correct logic of protection initialization
24266         when there is a protected type that implements a limited interface.
24267         (Parameter_Block_Pack): Populate a wrapped parameter block with the
24268         values of actual parameters.
24269         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
24270         block and assign them to the original actual parameters.
24271
24272         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
24273         (Build_Protected_Sub_Specification): Change the type and name of the
24274         last formal to account for the increased variety of protection modes.
24275
24276         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
24277         entities. Used to save the value of the Is_Hidden attribute when the
24278         limited-view is installed.
24279         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
24280         the attribute of procedures classified as entry wrappers.
24281         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
24282         entity of a primitive wrapper.
24283         (Write_Entity_Flags): Output the name and value of the
24284         Is_Primitive_Wrapper attribute.
24285         (Write_Field27_Name): Output the name and entity of the field Wrapped_
24286         Entity.
24287         (Underlying_Type): If we have an incomplete entity that comes from
24288         the limited view then we return the Underlying_Type of its non-limited
24289         view if it is already available.
24290         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
24291         including operators.
24292         (Write_Field26_Name): Add entry for Overridden_Operation
24293         (Overridden_Operation): New attribute of functions and procedures.
24294
24295         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
24296         predefined position in the dispatch table for the primitive operations
24297         used in dispatching selects.
24298         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
24299         predefined primitive operations and replace it with
24300         Default_Prim_Op_Count.
24301         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
24302         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
24303         the names of the generated primitive operations used in dispatching
24304         selects.
24305         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
24306         case of abstract interface types. They will be inherit by the objects
24307         implementing the interface.
24308         (Make_DT): There is no need to inherit the dispatch table of the
24309         ancestor interface for the elaboration of abstract interface types.
24310         The dispatch table will be inherited by the object implementing the
24311         interface.
24312         (Copy_Secondary_DTs): Add documentation.
24313         (Validate_Position): Improve this static check in case of
24314         aliased subprograms because aliased subprograms must have
24315         the same position.
24316         (Init_Predefined_Interface_Primitives): New subprogram that initializes
24317         the entries associated with predefined primitives of all the secondary
24318         dispatch tables.
24319         (Build_Anonymous_Access_Type): Removed.
24320         (Expand_Interface_Actuals): With the previous cleanup there is no need
24321         to build an anonymous access type. This allows further cleanup in the
24322         code generated by the expander.
24323         (Expand_Interface_Conversion): If the actual is an access type then
24324         build an internal function to handle the displacement. If the actual
24325         is null this function returns null because no displacement is
24326         required; otherwise performs a type conversion that will be
24327         expanded in the code that returns the value of the displaced actual.
24328         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
24329         conversions that have no effect in the generated code because no
24330         displacement is required. Code cleanup; use local variables to
24331         avoid repeated calls to the subprogram directly_designated_type().
24332
24333         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
24334         Classify the primitive operations used in dispatching selects as
24335         predefined.
24336         (Implements_Limited_Interface): Determine whether some type either
24337         directly implements a limited interface or extends a type that
24338         implements a limited interface.
24339         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
24340         (Expand_Subtype_From_Expr): Do not build actual subtype if the
24341         expression is limited.
24342         (Find_Interface_Tag): Add code to handle class-wide types and
24343         entities from the limited-view.
24344
24345         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
24346         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
24347         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
24348         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
24349         Set_Prim_Op_Kind.
24350
24351         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
24352         of procedure name or prefix that appears as a trigger in a triggering
24353         alternative.
24354
24355         * uintp.ads: Introduce constants Uint_11 and Uint_13.
24356
24357 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24358
24359         * s-tataat.adb, a-tasatt.adb:
24360         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
24361
24362         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
24363         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
24364         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
24365         longer used.
24366
24367 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24368             Jose Ruiz  <ruiz@adacore.com>
24369
24370         * s-taprop-vxworks.adb:
24371         Move with clauses outside Warnings Off now that dependent units are
24372         Preelaborate.
24373         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
24374         initialization of this unit.
24375         (Specific): Add new procedures Initialize and Delete so that this
24376         package can be used for VxWorks 5.x and 6.x
24377         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
24378         differences between VxWorks 5.x and 6.x
24379         Minor reformatting.
24380         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
24381         caller.
24382         Use only Preelaborate-compatible constructs.
24383
24384         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
24385         Primitives.Operations.
24386         (Delete, Initialize): New procedures.
24387
24388         * s-osinte-vxworks.adb: Body used to handle differences between
24389         VxWorks 5.x and 6.x
24390         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
24391
24392         * s-osinte-vxworks.ads: Minor reformatting.
24393         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
24394         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
24395         and 6.
24396         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
24397         between Vxworks 5 and 6.
24398         (taskLock, taskUnlock): Removeed, no longer used.
24399
24400         * adaint.c: The wait.h header is not located in the sys directory on
24401         VxWorks when using RTPs.
24402         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
24403         using RTPs.
24404         (__gnat_dup): dup is available on Vxworks when using RTPs.
24405         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
24406
24407         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
24408
24409         * expect.c: The wait.h header is not located in the sys directory on
24410         VxWorks when using RTPs.
24411
24412 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24413
24414         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
24415
24416         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
24417
24418         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
24419         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
24420         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
24421         g-soccon-freebsd.ads: Add new constants:
24422          IP_MULTICAST_IF
24423          SO_RCVTIMEO/SO_SNDTIMEO
24424          IOV_MAX
24425
24426         * gen-soccon.c:
24427         Move all target-specific file inclusions and macro definitions to
24428         gsocket.h, in order to ensure that any C code in socket.c will see a
24429         set of constants that is consistent with the contents of g-soccon.ads.
24430
24431         * gsocket.h: Code imported from gen-soccon.c:
24432         Move all target-specific file inclusions and macro definitions to
24433         gsocket.h, in order to ensure that any C code in socket.c will see a set
24434         of constants that is consistent with the contents of g-soccon.ads.
24435         This change also makes gen-soccon self-contained (removing dependencies
24436         upon GCC internal headers).
24437
24438         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
24439         iovecs at a time.
24440         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
24441
24442         * socket.c: Minor reformatting.
24443
24444 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24445             Thomas Quinot  <quinot@adacore.com>
24446
24447         * fname-sf.adb, mlib-tgt.ads,
24448         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
24449         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
24450         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
24451         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
24452         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
24453         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
24454         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
24455         makegpr.adb: Remove redundant use_clauses.
24456
24457 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24458
24459         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
24460         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
24461         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
24462         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
24463         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
24464         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
24465         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
24466         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
24467         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
24468         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
24469         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
24470         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
24471         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
24472         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
24473         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
24474         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
24475         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
24476         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
24477         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
24478         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
24479         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
24480         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
24481         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
24482         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
24483         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
24484         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
24485         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
24486         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
24487         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
24488         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
24489         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
24490         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
24491         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
24492         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
24493         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
24494         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
24495         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
24496         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
24497         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
24498         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
24499         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
24500         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
24501         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
24502         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
24503         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
24504         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
24505         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
24506         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
24507         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
24508         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
24509         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
24510         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
24511         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
24512         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
24513         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
24514         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
24515         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
24516         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
24517         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
24518         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
24519         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
24520         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
24521         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
24522         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
24523         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
24524         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
24525         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
24526         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
24527         and always use the no parameter form for consistency.
24528
24529         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
24530
24531 2005-09-01  Robert Dewar  <dewar@adacore.com>
24532
24533         * binde.adb: Minor reformatting
24534         (Find_Elab_Order): Output warning if -p used with static elab order
24535
24536 2005-09-01  Robert Dewar  <dewar@adacore.com>
24537
24538         * checks.adb (Check_Needed): New procedure, deals with removing checks
24539         based on analysis of short-circuited forms. Also generates warnings for
24540         improper use of non-short-circuited forms.
24541         Code clean ups.
24542
24543 2005-09-01  Robert Dewar  <dewar@adacore.com>
24544
24545         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
24546         with 'Valid tests.
24547
24548 2005-09-01  Robert Dewar  <dewar@adacore.com>
24549
24550         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
24551         spec.
24552         Implement new insertion char < (conditional warning)
24553         * errutil.adb, erroutc.adb: Implement new insertion char <
24554         (conditional warning).
24555         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
24556         (Error_Msg_Warn): New variable for < insertion char.
24557         * prj-nmsc.adb: Implement new errout insertion char < (conditional
24558         warning).
24559         (Check_For_Source): Change value of Source_Id only after the current
24560         source has been dealt with.
24561
24562 2005-09-01  Robert Dewar  <dewar@adacore.com>
24563             Doug Rupp  <rupp@adacore.com>
24564
24565         * exp_attr.adb: Handle vax fpt for 'Valid attribute
24566         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
24567         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
24568         (Valid_D, Valid_F, Valid_G): New functions
24569
24570 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24571             Hristian Kirtchev  <kirtchev@adacore.com>
24572             Javier Miranda  <miranda@adacore.com>
24573
24574         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
24575         from object notation, the original node is unanalyzed and carries no
24576         semantic information, so that accessiblity checks must be performed on
24577         the type of the actual itself.
24578         (Expand_N_Subprogram_Declaration): Change last actual parameter for
24579         compatibility with Build_Protected_Sub_Specification.
24580         (Check_Overriding_Inherited_Interfaces): Add suport to handle
24581         overloaded primitives.
24582         (Register_Interface_DT_Entry): Use the new name of the formal
24583         the the calls to Expand_Interface_Thunk
24584
24585         * exp_dbug.ads: Augment comments on encoding of protected types to
24586         include the generation of dispatching subprograms when the type
24587         implements at least one interface.
24588
24589         * lib.ads: Extend information in Load_Stack to include whether a given
24590         load comes from a Limited_With_Clause.
24591
24592         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
24593         whether a potential circularity is harmless, because it includes units
24594         loaded through a limited_with clause. Extends previous treatment which
24595         did not handle properly arbitrary combinations of limited and
24596         non-limited clauses.
24597
24598 2005-09-01  Nicolas Setton  <setton@adacore.com>
24599
24600         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
24601         to be encoded as typ___XBLU_lowerbound__upperbound instead of
24602         typ___XB_lowerbound__upperbound.
24603
24604 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24605
24606         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
24607         dummy access formal for RACW/RAS TypeCode TSS.
24608         (Build_TypeCode_Call): Do not generate dummy null access actual for
24609         calls to the TypeCode TSS.
24610
24611 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24612
24613         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
24614         fully qualified name, to distinguish instances with the same local name.
24615
24616         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
24617         fully qualified.
24618
24619 2005-09-01  Robert Dewar  <dewar@adacore.com>
24620
24621         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
24622         packed arrays.
24623
24624 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
24625
24626         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
24627         (Free): New deallocation procedure for filter elements
24628         (Close): Deallocate any existing filter for the concerned connection
24629
24630 2005-09-01  Laurent Pautet  <pautet@adacore.com>
24631
24632         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
24633         position set is provided, we compute one in order to reduce the maximum
24634         length of the keys.  This computation first selects a character
24635         position between 1 and the minimum length of the keys in order to
24636         avoid reducing one of the keys to an empty string.
24637         (Initialize, Compute): When the ratio V to K is too low, the algorithm
24638         does not converge. The initialization procedure now comes with a
24639         maximum number of iterations such that when exceeded, an exception is
24640         raised in Compute. The user can initialize this ratio to another value
24641         and try again
24642         Reformating and updated headers.
24643
24644 2005-09-01  Javier Miranda  <miranda@adacore.com>
24645
24646         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
24647         that given an entity T creates and returns an Itype that duplicates the
24648         contents of T. The returned Itype has the null-exclusion
24649         attribute set to True, and its Etype attribute references T
24650         to keep the association between the two entities.
24651         Update copyright notice
24652
24653         * sem_aggr.adb (Check_Can_Never_Be_Null,
24654         Aggregate_Constraint_Checks, Resolve_Aggregate,
24655         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
24656
24657         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
24658
24659 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
24660             Robert Dewar  <dewar@adacore.com>
24661             Hristian Kirtchev  <kirtchev@adacore.com>
24662
24663         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
24664         Result_Definition.
24665
24666         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
24667         function specs.
24668         Call Set_Result_Definition instead of Set_Subtype_Mark.
24669         (P_Subprogram_Specification): Add parsing of anonymous access result
24670         plus null exclusions. Call Set_Result_Definition instead of
24671         Set_Subtype_Mark.
24672
24673         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24674         (P_Access_Type_Definition): Add parsing for an anonymous access result
24675         subtype, plus parsing for null exclusions. Call Set_Result_Definition
24676         instead of Set_Subtype_Mark.
24677
24678         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24679         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
24680         (Result_Definition): New function for N_Function_Specifications.
24681         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
24682         N_Function_Specification.
24683         (Set_Null_Exclusion_Present): Allow this flag for
24684         N_Function_Specification.
24685         (Set_Result_Definition): New procedure for N_Function_Specifications.
24686         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
24687         and N_Function_Specification.
24688
24689         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
24690         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
24691         Add support for LIMITED NEW for Ada 2005 AI-419
24692         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
24693         syntax for anonymous access results.
24694         Replace Subtype_Mark field by Result_Definition in
24695         N_Function_Specification and N_Access_Definition specs.
24696         Add Null_Exclusion_Present to spec of N_Function_Specification.
24697         (Result_Definition): New function for N_Function_Specification and
24698         N_Access_Function_Definition.
24699         (Set_Result_Definition): New procedure for N_Function_Specification and
24700         N_Access_Function_Definition.
24701
24702         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
24703         Result_Definition for cases of N_Access_Function_Definition and
24704         N_Function_Specification.
24705         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
24706
24707 2005-09-01  Vincent Celier  <celier@adacore.com>
24708
24709         * lib-writ.adb: Update Copyright notice
24710         (Write_With_Lines): On platforms where file names are case-insensitive,
24711         record the file names in lower case.
24712         (Write_ALI): For D lines, on platforms where file names are
24713         case-insensitive, record the file names in lower case.
24714
24715 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24716             Emmanuel Briot  <briot@adacore.com>
24717
24718         * lib-xref.adb (Output_Overridden_Op): Display information on
24719         overridden operation.
24720
24721         * lib-xref.ads: Add documentation on overridden operations.
24722
24723         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
24724         information.
24725
24726         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
24727         overriding entity information.
24728
24729 2005-09-01  Vincent Celier  <celier@adacore.com>
24730
24731         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
24732         including those that are inherited.
24733
24734 2005-09-01  Robert Dewar  <dewar@adacore.com>
24735
24736         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
24737
24738         * par-prag.adb: Implement new pragma Debug_Policy
24739
24740         * sem_prag.adb Implement new pragma Debug_Policy
24741         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
24742         Component_Size attribute specification. Give warning for ignored pragma
24743         Pack.
24744
24745         * snames.h, snames.ads, snames.adb: Introduce entries in
24746         Preset_Names for Name_Disp_Asynchronous_Select,
24747         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
24748         Name_Disp_Timed_Select.
24749         New pragma Debug_Policy
24750
24751         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
24752         explicitly.
24753         Switch -gnata also sets Debug_Pragmas_Enabled
24754
24755         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
24756         handle an explicit -gnata when compiling predefined files.
24757
24758 2005-09-01  Vincent Celier  <celier@adacore.com>
24759
24760         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
24761         directories of projects that have no Ada sources.
24762
24763 2005-09-01  Robert Dewar  <dewar@adacore.com>
24764
24765         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
24766         (makes a difference for wide characters)
24767
24768         * widechar.adb, widechar.ads:
24769         Add Wide_Char_Byte_Count feature to count chars vs bytes
24770
24771 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24772             Ed Schonberg  <schonberg@adacore.com>
24773             Robert Dewar  <dewar@adacore.com>
24774
24775         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
24776         'Address attribute reference with an overloaded prefix, use the
24777         location of the prefix (not the location of the attribute reference) as
24778         the error location.
24779         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
24780         a function renaming thereof, is a valid prefix for 'Size (where it is
24781         intepreted as a function call).
24782         (Statically_Denotes_Entity): New predicate to determine whether the
24783         prefix of an array attribute can be considered static.
24784
24785         PR ada/9087
24786         (Eval_Attr): Fix failure to evaluate Component_Size for
24787         unconstrained arrays (resulted in wrong value in packed case, since
24788         back end cannot handle this case)
24789
24790 2005-09-01  Robert Dewar  <dewar@adacore.com>
24791
24792         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
24793         error msgs for most common cases.
24794         Use new errout insertion char < (conditional warning)
24795
24796 2005-09-01  Javier Miranda  <miranda@adacore.com>
24797             Ed Schonberg  <schonberg@adacore.com>
24798
24799         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
24800         become local to the whole package.
24801         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
24802         the package was already analyzed the new algorithm "replaces" the
24803         real entities by the shadow ones. This is required to ensure that
24804         the order of these entities in the homonym chains does not change;
24805         otherwise we can have undefined references at linking time because
24806         in case of conflicts the external name of the entities will have
24807         a suffix that depends on the order of the entities in the chain.
24808         (Remove_Limited_With_Clause): Complementary code that completes the
24809         new algorithm and replaces the shadow entities by the real ones.
24810         (Install_Limited_Withed_Unit): When unchaining entities before the
24811         installation of the shadow entities, only regular entities of the
24812         public part must be taken into account. This is required to
24813         keep this routine in synch with the work done by Remove_Limited_
24814         With_Clause
24815         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
24816         even if unit is analyzed, because the analysis of the unit is
24817         idempotent in any case, and the limited view of the unit may have to
24818         be installed for proper visibility.
24819         (Expand_Limited_With_Clause): Even if the unit in the implicit
24820         with_clause has been analyzed already, a limited view of the package
24821         must be built for the current context, if it does not exist yet.
24822
24823 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24824             Javier Miranda  <miranda@adacore.com>
24825             Gary Dismukes  <dismukes@adacore.com>
24826
24827         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
24828         defining entity for the instance body, make a new defining identifier
24829         rather than copying the entity of the spec, to prevent accidental
24830         sharing of the entity list.
24831         (Check_Private_View): When exchanging views of private types, build the
24832         list of exchanged views as a stack, to ensure that on exit the exchanges
24833         are undone in the proper order.
24834         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
24835         Restore the compilation environment in case of instantiation_error.
24836         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
24837         for an anonymous access result.
24838         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
24839         (Formal_Entity): Handle properly the case of a formal package that
24840         denotes a generic package renaming.
24841
24842 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24843
24844         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
24845         clause if the array aggregate is surrounded by parentheses.
24846
24847 2005-09-01  Cyrille Comar  <comar@adacore.com>
24848             Gary Dismukes  <dismukes@adacore.com>
24849             Ed Schonberg  <schonberg@adacore.com>
24850             Javier Miranda  <miranda@adacore.com>
24851
24852         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
24853         underlying type
24854         to check if a type is Constrained in cases related to code generation
24855         (rather than semantic checking) since otherwise we do not generate
24856         similar code for mutable private types depending if their
24857         discriminants are visible or not.
24858         (Check_Abstract_Overriding): Do not complain about failure to override
24859         the primitive operations used in dispatching selects since they will
24860         always be overriden at the freeze point of the type.
24861         (Access_Definition): Separate out handling for resetting the scope
24862         of an anonymous access function result type. Retrieve the scope
24863         of the associated function rather than using Current_Scope, which
24864         does not have a consistent value (depends on whether we're in the
24865         middle of analyzing formal parameters). Add ??? comment about
24866         finding a cleaner way to handle the special cases of scope setting.
24867         (Process_Incomplete_Dependents): A protected operation is never a
24868         dispatching operation (only its wrapper may be).
24869         (Build_Derived_Record_Type): In case of tagged private types that
24870         implement interfaces add derivation of predefined primitive
24871         operations.
24872         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
24873         by two parameters that are used in case of derivation from abstract
24874         interface types: No_Predefined_Prims is used to avoid the derivation
24875         of predefined primitives from the interface, and Predefined
24876         Prims_Only is used to complete the derivation predefined primitives
24877         in case of private tagged types implementing interfaces.
24878         Fix typo in comments
24879         (Find_Interface_In_Descendant): Protect the frontend against
24880         wrong code with large circularity chains.
24881         (Is_Private_Overriding): Add support for entities overriding interface
24882         subprograms. The test failed because Entities associated with overriden
24883         interface subprograms are always marked as hidden (and used to build
24884         the secondary dispatch table); in this case the overriden entity is
24885         available through the field abstract_interface_alias (cf. override_
24886         dispatching_operation)
24887         (Access_Definition): Set the scope of the type to Current_Scope for the
24888         case of a function with an anonymous access result type.
24889         (Access_Subprogram_Declaration): Handle creation of the type entity for
24890         an access-to-function type with an anonymous access result.
24891         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
24892         in handling for N_Access_Function_Definition.
24893         (Analyze_Subtype_Declaration): Modify the text of error message.
24894         (Derived_Type_Declaration): Modify the text of error message.
24895         (Process_Subtype): Modify the text of error message plus cleanup
24896         of one redundant error message.
24897         (Analyze_Component_Declaration): Code cleanup.
24898         (Analyze_Object_Declaration): Code cleanup.
24899         (Analyze_Subtype_Declaration): Propagate the null-exclusion
24900         attribute in case of access types. Code cleanup.
24901         (Array_Type_Declaration): Code cleanup.
24902         (Process_Discriminants): Create the new null-excluding itype
24903         if required. Code cleanup.
24904         (Process_Subtype): Create the new null-excluding itype if
24905         required. Code cleanup.
24906         (Build_Derived_Record_Type): Code cleanup to avoid calling
24907         twice the subprogram derive_subprograms in case of private
24908         types that implement interfaces. In this particular case the
24909         subprogram Complete_Subprograms_Derivation already does the
24910         job associated with the second call.
24911
24912         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
24913         conversion to the full view when generating an operation for a
24914         discriminant whose type may currently be private.
24915
24916 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24917             Javier Miranda  <miranda@adacore.com>
24918
24919         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
24920         V (Obj.F), the rewriting does not involve the indexed component, but
24921         only the selected component itself.
24922         Do not apply the transformation if the analyzed node is an actual of a
24923         call to another subprogram.
24924         (Complete_Object_Operation): Retain the entity of the
24925         dispatching operation in the selector of the rewritten node. The
24926         entity will be used in the expansion of dispatching selects.
24927         (Analyze_One_Call): Improve location of the error message associated
24928         with interface.
24929         (Analyze_Selected_Component): No need to resolve prefix when it is a
24930         function call, resolution is done when parent node is resolved, as
24931         usual.
24932         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
24933         when attempting to resolve a call transformed from its object notation.
24934         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
24935         of the argument list for each interpretation of the operation.
24936         (Try_Object_Operation): The designated type of an access parameter may
24937         be an incomplete type obtained through a limited_with clause, in which
24938         case the primitive operations of the type are retrieved from its full
24939         view.
24940         (Analyze_Call): If this is an indirect call, and the return type of the
24941         access_to_subprogram is incomplete, use its full view if available.
24942
24943 2005-09-01  Javier Miranda  <miranda@adacore.com>
24944             Gary Dismukes  <dismukes@adacore.com>
24945
24946         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
24947         access types the null-exclusion and access-to-constant attributes must
24948         also match.
24949         (Analyze_Return_Statement): When the result type is an anonymous access
24950         type, apply a conversion of the return expression to the access type
24951         to ensure that appropriate accessibility checks are performed.
24952         (Analyze_Return_Type): For the case of an anonymous access result type,
24953         generate the Itype and set Is_Local_Anonymous_Access on the type.
24954         Add ??? placeholder for check to disallow returning a limited object
24955         in Ada 2005 unless it's an aggregate or a result of a function call.
24956         Change calls from Subtype_Mark to Result_Definition.
24957         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
24958         Result_Definition in call to Make_Function_Specification.
24959         (Build_Body_To_Inline): Change Set_Subtype_Mark to
24960         Set_Result_Definition.
24961         (Make_Inequality_Operator): Change formal Subtype_Mark to
24962         Result_Definition in call to Make_Function_Specification.
24963         (Process_Formals): Create the new null-excluding itype if required.
24964         (New_Overloaded_Entity): For an entity overriding an interface primitive
24965         check if the entity also covers other abstract subprograms in the same
24966         scope. This is required to handle the general case, that is, overriding
24967         other interface primitives and overriding abstract subprograms inherited
24968         from some abstract ancestor type.
24969         (New_Overloaded_Entity): For an overriding entity that comes from
24970         source, note the operation that it overrides.
24971         (Check_Conformance, Type_Conformant): Addition of one new formal
24972         to skip controlling formals in the analysis. This is used to
24973         handle overloading of abstract interfaces.
24974         (Base_Types_Match): Add missing case for types imported from
24975         limited-with clauses
24976         (New_Overloaded_Entity): Add barrier to protect the use of
24977         the "alias" attribute.
24978
24979 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24980
24981         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
24982         verify that the procedure and the entry are mode conformant.
24983         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
24984         as a different operator, which is often a cut-and-paste error.
24985
24986 2005-09-01  Javier Miranda  <miranda@adacore.com>
24987             Ed Schonberg  <schonberg@adacore.com>
24988
24989         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
24990         used in controlling parameters exclude null because it is necessary to
24991         read the tag to dispatch, and null has no tag.
24992         (Override_Dispatching_Operation): If the previous operation is inherited
24993         from an interface, it becomes hidden  and does not participate in later
24994         name resolution.
24995
24996 2005-09-01  Javier Miranda  <miranda@adacore.com>
24997             Ed Schonberg  <schonberg@adacore.com>
24998             Gary Dismukes  <dismukes@adacore.com>
24999
25000         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
25001         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
25002         the expander will generate the corresponding run-time check to evaluate
25003         the expression.
25004         (Resolve_Call): Check for legal type of procedure name or prefix that
25005         appears as a trigger in a triggering alternative.
25006         (Valid_Conversion): If expression is ambiguous and the context involves
25007         an extension of System, remove System.Address interpretations.
25008         (Resolve_Qualified_Expression): Reject the case of a specific-type
25009         qualification applied to a class-wide argument. Enhance comment
25010         to explain checking of Original_Node.
25011         (Resolve_Type_Conversion): The location of the error message was not
25012         general enough to handle the general case and hence it has been removed.
25013         In addition, this patch improves the text of the message.
25014         (Resolve_Type_Conversion): Add missing support for access to interface
25015         types.
25016         (Resolve_Type_Conversion): If the target is a class-wide interface type,
25017         do not expand if the expression is the actual in a call, because proper
25018         expansion will take place when the call itself is expanded.
25019         (Resolve_Allocator): If the context is an unchecked conversion, the
25020         allocator inherits its storage pool, if any, from the target type of
25021         the conversion.
25022
25023 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
25024             Javier Miranda  <miranda@adacore.com>
25025
25026         * sem_type.adb (Add_One_Interp): If a candidate operation is an
25027         inherited interface operation that has an implementation, use the
25028         implementation to avoid spurious ambiguities.
25029         (Interface_Present_In_Ancestor): In case of concurrent types we can't
25030         use the Corresponding_Record_Typ attribute to look for the interface
25031         because it is set by the expander (and hence it is not always
25032         available). For this reason we traverse the list of interfaces
25033         (available in the parent of the concurrent type).
25034         (Interface_Present_In_Ancestor): Handle entities from the limited view
25035
25036 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
25037
25038         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
25039         from the list of required components.
25040         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
25041         primitive procedure of a limited interface with a controlling first
25042         parameter.
25043         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
25044         of an entry.
25045         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
25046         capture if it is generated in the second operand of a short-circuit
25047         operation.
25048         Do not capture values for variables with address clauses.
25049         (Is_Object_Reference): Treat a function call as an object reference only
25050         if its type is not Standard_Void_Type.
25051
25052 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
25053
25054         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
25055         to a variable that is statically known to be constant.
25056
25057 2005-09-01  Geert Bosch  <bosch@adacore.com>
25058             Robert Dewar  <dewar@adacore.com>
25059
25060         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
25061         (VAXGF_Safe_First): Idem.
25062
25063 2005-09-01  Robert Dewar  <dewar@adacore.com>
25064             Arnaud Charlet  <charlet@adacore.com>
25065
25066         * g-dirope.ads: Minor reformatting
25067         Document that bounds of result of Base_Name match the input index
25068         positions.
25069         Add documentation on environment variable syntax for Expand_Path
25070
25071         * gnat_ugn.texi: Update documentation to include mention of -m switches
25072         Document new treatment of wide characters in max line length
25073         style check.
25074         Remove -gnatL/-gnatZ switches, no longer used.
25075         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
25076         of -gnata switch.
25077
25078         * gnat_rm.texi: Add doc for two argument form of pragma
25079         Float_Representation.
25080         Add documentation for pragma No_Strict_Aliasing
25081         Add note that explicit component clause overrides pragma Pack.
25082         Add documentation of pragma Debug_Policy
25083
25084 2005-09-01  Matthew Heaney  <heaney@adacore.com>
25085
25086         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
25087         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
25088         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
25089         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
25090         draft (Draft 13, August 2005) of Ada Amendment 1.
25091
25092 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
25093
25094         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
25095         Note that the platform-specific version of g-soccon.ads for VMS is now
25096         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
25097         really is a package spec).
25098         Replace s-taspri-linux.ads by s-taspri-posix.ads
25099         Remove references to s-mastop-x86.adb
25100
25101         * system-vxworks-xscale.ads: Removed, no longer used.
25102         * s-vxwork-xscale.ads: Removed, no longer used.
25103
25104 2005-09-01  Robert Dewar  <dewar@adacore.com>
25105
25106         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
25107         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
25108         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
25109         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
25110         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
25111         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
25112         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
25113         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
25114         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
25115         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
25116         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
25117         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
25118         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
25119         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
25120         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
25121         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
25122         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
25123         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
25124         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
25125         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
25126         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
25127
25128 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
25129
25130         PR ada/23187
25131         * adaint.c
25132         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
25133
25134 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
25135             Doug Rupp  <rupp@adacore.com>
25136
25137         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
25138         when needed.
25139         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
25140         this code in the GNAT run-time.
25141
25142         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
25143
25144         PR ada/21053
25145         * init.c (__gnat_error_handler [many]): Mark "msg" as const
25146         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
25147
25148         (__gnat_inside_elab_final_code): Moved here from
25149         Standard_Library and only defined for the compiler.
25150         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
25151         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
25152         using RTPs because directly vectored Interrupt routines are not
25153         supported on this configuration.
25154         (getpid): Do not redefine this function on VxWorks when using RTPs
25155         because this primitive is well supported by the RTP libraries.
25156         (copy_msg): Correct the code that checks for buffer overflow.
25157         Discovered during code reading.
25158
25159 2005-08-29  Olivier Hainque  <hainque@adacore.com>
25160
25161         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
25162         a library level mutable variable with an initializer, tell
25163         build_allocator to ignore the initializer's size. It may not be large
25164         enough for all the values that might be assigned to the variable later
25165         on.
25166
25167 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
25168             Eric Botcazou  <ebotcazou@adacore.com>
25169
25170         * trans.c: Protect < in error msg with quote
25171         Replace GCC_ZCX by Back_End_Exceptions.
25172         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
25173         has been sufficiently aligned in the record.
25174
25175 2005-08-15  James E. Wilson  <wilson@specifix.com>
25176
25177         * system-linux-alpha.ads: Change ia64 to alpha.
25178
25179 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
25180
25181         * decl.c, utils.c: Fix comment typos.
25182
25183 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
25184
25185         * decl.c, init.c, initialize.c: Fix comment typos.
25186
25187 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
25188
25189         Make CONSTRUCTOR use VEC to store initializers.
25190         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
25191         CONSTRUCTOR_ELTS.
25192         * trans.c (extract_values): Likewise.
25193         * utils.c (convert, remove_conversions): Likewise.
25194         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
25195         gnat_build_constructor): Likewise.
25196
25197 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
25198
25199         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
25200         DECL_SECTION_NAME.
25201         (compare_field_bitpos): Likewise.
25202
25203 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
25204
25205         * utils.c (create_var_decl): Only set DECL_COMMON on
25206         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
25207         VAR_OR_FUNCTION_DECL_P.
25208
25209 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
25210
25211         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
25212         removed.
25213
25214 2005-07-07  Pascal Obry  <obry@adacore.com>
25215
25216         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
25217         returned type on Windows.
25218
25219         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
25220         routine.
25221
25222         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
25223         exception in this case.
25224         Simplify the code as "Image (Image'Range)" = "Image".
25225
25226 2005-07-07  Vincent Celier  <celier@adacore.com>
25227
25228         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
25229         the destructor/constructor attributes for <lib>final/<lib>init.
25230
25231         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
25232
25233 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
25234
25235         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
25236         type if the parameter is not passed by copy but reference by default.
25237
25238 2005-07-07  Javier Miranda  <miranda@adacore.com>
25239
25240         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
25241         Reimplementation of the support for abstract interface types in order
25242         to leave the code more clear and easy to maintain.
25243
25244         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
25245         abstract interface types in order to leave the code clearer and easier
25246         to maintain.
25247
25248         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
25249         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
25250         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
25251         appropriate entry of the secondary dispatch table.
25252         (Make_DT): Add code to inherit the secondary dispatch tables of
25253         the ancestors.
25254
25255         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
25256         implementing both functionalities by means of a common routine, each
25257         routine has its own code.
25258
25259 2005-07-07  Javier Miranda  <miranda@adacore.com>
25260
25261         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
25262
25263         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
25264         types:
25265         --
25266           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
25267         --
25268
25269         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
25270         use of tag incomplete types.
25271
25272         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
25273         give support to tagged incomplete types.
25274
25275         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
25276         expression is a discriminant reference and its type is private, as can
25277         happen within a stream operation for a mutable record, use the full
25278         view of the type to resolve the case alternatives.
25279         (Analyze_Assignment): Check wrong dereference of incomplete types.
25280
25281         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
25282         types.
25283
25284         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
25285         incomplete types.
25286
25287         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
25288         N_Incomplete_Type_Declaration nodes.
25289
25290         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
25291         Tag_Present to give support to tagged incomplete types:
25292         --
25293           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
25294         --
25295
25296 2005-07-07  Olivier Hainque  <hainque@adacore.com>
25297
25298         PR ada/22301
25299         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
25300         definitions for the Unwind wrappers in the compiler case.
25301
25302 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
25303             Javier Miranda  <miranda@adacore.com>
25304
25305         * par-load.adb (Load): If a child unit is loaded through a limited_with
25306         clause, each parent must be loaded as a limited unit as well.
25307
25308         * sem_ch10.adb (Previous_Withed_Unit): Better name for
25309         Check_Withed_Unit. Return true if there is a previous with_clause for
25310         this unit, whether limited or not.
25311         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
25312         the current unit.
25313         (Is_Visible_Through_Renamings): New local subprogram of install_limited
25314         _withed_unit that checks if some package installed through normal with
25315         clauses has a renaming declaration of package whose limited-view is
25316         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
25317         of the current Draft document for Ada 2005.
25318         (Analyze_Context): Complete the list of compilation units that
25319         are allowed to contain limited-with clauses. It also contains
25320         checks that were previously done by Install_Limited_Context_Clauses.
25321         This makes the code more clear and easy to maintain.
25322         (Expand_Limited_With_Clause) It is now a local subprogram of
25323         Install_Limited_Context_Clauses, and contains the code that adds
25324         the implicit limited-with clauses for parents of child units.
25325         This functionality was prevously done by Analyze_Context.
25326
25327         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
25328         incomplete type.
25329
25330         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
25331         been erroneously named in a limited-with clause of its own context.
25332         In this case the error has been previously notified by Analyze_Context.
25333
25334 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
25335
25336         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
25337         generic package that contains local declarations with the same name.
25338         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
25339
25340 2005-07-07  Bernard Banner  <banner@adacore.com>
25341
25342         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
25343         ia64 platform only on platforms that you the GCC unwind library
25344         rather than the system unwind library.
25345
25346 2005-07-07  Thomas Quinot  <quinot@adacore.com>
25347
25348         * expect.c: Minor reformatting
25349
25350 2005-07-07  Sergey Rybin  <rybin@adacore.com>
25351
25352         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
25353         --no-separate-is
25354
25355         * gnat_ugn.texi: Add description for new gnatpp option
25356         (--no-separate-is)
25357
25358 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25359
25360         * g-expect-vms.adb, g-expect.ads, g-expect.adb
25361         (Get_Command_Output): New subprogram to launch a process and get its
25362         standard output as a string.
25363
25364 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
25365             Olivier Hainque  <hainque@adacore.com>
25366
25367         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
25368         fetch a code-range descriptor associated with the machine state. On
25369         failure set the machine state's PC to 0; on success, pass the
25370         descriptor to exc_virtual_unwind.
25371
25372         * init.c (Tru64 section): New function __gnat_set_code_loc.
25373
25374 2005-07-04  Vincent Celier  <celier@adacore.com>
25375
25376         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25377         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25378         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
25379         Remove all auto-initialization code, as this is now done through the
25380         constructor mechanism.
25381
25382         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
25383         __gnat_sals_init_using_constructors): New functions.
25384
25385         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
25386         Linker_Constructor and Linker_Destructor when switch -a is used.
25387
25388         * bindusg.adb: Add line for new switch -a
25389
25390         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
25391         (Gnatbind): When switch -a is used, check if it is allowed
25392
25393         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
25394
25395 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
25396
25397         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
25398         This prevents us from hitting a limitation during the debug info
25399         generation when using stabs.
25400         (Prims_Ptr): Likewise.
25401
25402 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
25403             Ed Schonberg  <schonberg@adacore.com>
25404             Javier Miranda  <miranda@adacore.com>
25405
25406         * checks.adb (Null_Exclusion_Static_Checks): In the case of
25407         N_Object_Declaration, only perform the checks if the Object_Definition
25408         is not an Access_Definition.
25409
25410         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
25411         where the parent of an the access definition is an N_Object_Declaration
25412         when determining the Associated_Node_For_Itype and scope of an
25413         anonymous access-to-subprogram type.
25414
25415         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
25416         Corresponding_Spec on the body created for a null procedure. Add ???
25417         comment. Remove New_Copy_Tree call on body argument to
25418         Set_Body_To_Inline.
25419
25420         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
25421         discriminants, use the type of the actual as well, because the
25422         discriminants may be read by the called subprogram.
25423
25424         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
25425         access type we do not need to handle non-limited views.
25426         (Build_Derived_Record_Type): Additional check to check that in case of
25427         private types, interfaces are only allowed in private extensions.
25428
25429 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
25430
25431         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
25432         <Pragma_Linker_Destructor>: Likewise.
25433
25434         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
25435         Pragma_Linker_Destructor.
25436
25437         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
25438         ATTR_LINK_DESTRUCTOR.
25439         (static_ctors, static_dtors): New variables.
25440
25441         * misc.c (gnat_expand_body): Output current function as constructor
25442         and destructor if requested.
25443
25444         * par-prag.adb: Add processing for pragma Linker_Constructor and
25445         Linker_Destructor.
25446
25447         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
25448         extracted from Check_Interrupt_Or_Attach_Handler.
25449         (Check_Interrupt_Or_Attach_Handler): Invoke it.
25450         Implement pragma Linker_Constructor and Linker_Destructor with the
25451         help of Find_Unique_Parameterless_Procedure.
25452         Replace Name_Alias with Name_Target for pragma Linker_Alias.
25453
25454         * snames.h, snames.ads, snames.adb:
25455         Add Name_Linker_Constructor and Name_Linker_Destructor.
25456         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
25457         * snames.adb: Remove Name_Alias.
25458
25459         * trans.c: Include cgraph.h.
25460         (build_global_cdtor): New function.
25461         (Compilation_Unit_to_gnu): Build global constructor and destructor if
25462         needed.
25463         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
25464         of objects too.
25465         (addressable_p) <COMPONENT_REF>: Unconditionally test
25466         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
25467
25468         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
25469         variable if it is external.
25470
25471         (static_ctors, static_dtors): New global variables.
25472         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
25473         <ATTR_LINK_DESTRUCTOR>: Likewise.
25474         (end_subprog_body): Chain function as constructor and destructor
25475         if requested.
25476
25477         * exp_util.adb (Force_Evaluation): Unconditionally invoke
25478         Remove_Side_Effects with Variable_Ref set to true.
25479         (Remove_Side_Effects): Handle scalar types first. Use a renaming
25480         for non-scalar types even if Variable_Ref is true and for class-wide
25481         expressions.
25482
25483 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25484
25485         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
25486         to prevent spurious warnings.
25487
25488 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25489
25490         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
25491         Itypes. Itypes are really unexpected there.
25492         (Build_TypeCode_Function): Generalise special processing for Itypes to
25493         handle the case of numeric implicit base types as well as enumerated
25494         ones.
25495
25496 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25497
25498         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
25499         controlled, indicate the expected type of the dereference that is
25500         created for the call to Deep_Finalize, to prevent spurious errors when
25501         the designated type is private and completed with a derivation from
25502         another private type.
25503
25504 2005-07-04  Vincent Celier  <celier@adacore.com>
25505
25506         * make.adb (Change_To_Object_Directory): When unable to change the
25507         current dir to the object directory, output the full path of the
25508         directory.
25509
25510 2005-07-04  Matthew Gingell  <gingell@adacore.com>
25511
25512         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
25513
25514         * indepsw-linux.adb: Replace by...
25515
25516         * indepsw-gnu.adb: ...this new file
25517
25518 2005-07-04  Vincent Celier  <celier@adacore.com>
25519
25520         * mlib-prj.adb (Auto_Initialize): New constant String
25521         (SALs_Use_Constructors): New Boolean function
25522         (Build_Library): Call gnatbind with Auto_Initialize switch when
25523         SALs_Use_Constructors returns True.
25524
25525         * mlib-tgt.ads: Minor reformatting
25526
25527         * mlib-utl.ads: Minor reformatting
25528
25529         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
25530
25531 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25532
25533         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
25534         single protected declarations can have an interface list.
25535         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
25536         with seriously malformed entry declarations, and lead to compilation
25537         abandoned messages.
25538
25539 2005-07-04  Javier Miranda  <miranda@adacore.com>
25540
25541         * par-load.adb: Load the context items in two rounds.
25542
25543 2005-07-04  Robert Dewar  <dewar@adacore.com>
25544
25545         * scng.adb: Do not consider Mod used as an attribute to be a keyword
25546
25547 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25548             Javier Miranda  <miranda@adacore.com>
25549
25550         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
25551         type extension needs a limited view.
25552         Remove previous restriction on private types available through the
25553         limited-view (only tagged private types were previously allowed).
25554         (Install_Withed_Unit): In the code that implements the
25555         legality rule given in AI-377, exclude a child unit with the name
25556         Standard, because it is a homonym of the Standard environment package.
25557
25558 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25559
25560         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
25561         overloaded function call, carry interpretations from the original tree
25562         to the copy.
25563
25564 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25565
25566         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
25567         types check whether some designated type is a limited view, and use
25568         the non-limited view if available.
25569
25570 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
25571
25572         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
25573         constraint of full view of a private view T1 if present, when T2 is a
25574         discriminated full view.
25575
25576 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25577
25578         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
25579         actual that is a view conversion of a bit packed array reference.
25580
25581 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25582
25583         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
25584         present before checking whether an interface type covers a synchronized
25585         type.
25586
25587 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25588
25589         * sem_util.adb (Is_Object_Reference): An indexed or selected component
25590         whose prefix is an implicit dereference is an object reference. Removes
25591         spurious errors when compiling with -gnatc.
25592
25593 2005-07-04  Robert Dewar  <dewar@adacore.com>
25594
25595         PR ada/22039
25596         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
25597
25598 2005-07-04  Matthew Gingell  <gingell@adacore.com>
25599
25600         * tracebak.c: Enable tracebacks on ia64 platforms
25601
25602 2005-07-04  Vincent Celier  <celier@adacore.com>
25603
25604         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
25605         the GNAT BIND command, as gnatbind accepts multiples ALI files with
25606         the -L or -n switches.
25607
25608 2005-07-04  Vincent Celier  <celier@adacore.com>
25609
25610         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
25611         correctly computed and the main project data is not modified while
25612         doing so.
25613         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
25614         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
25615         c++linker as this does not work on some platforms.
25616
25617 2005-07-04  Matthew Heaney  <heaney@adacore.com>
25618
25619         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
25620         was changed.
25621         * a-coinve.adb: Perform constraint checks explicitly.
25622
25623 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25624             Thomas Quinot  <quinot@adacore.com>
25625
25626         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
25627         new target gen-soccon.
25628
25629 2005-07-04  Robert Dewar  <dewar@adacore.com>
25630
25631         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
25632
25633 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25634
25635         * g-socket.ads (Check_Selector): Minor rewording of comment.
25636
25637 2005-07-04  Vincent Celier  <celier@adacore.com>
25638
25639         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
25640
25641 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25642
25643         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
25644
25645 2005-07-04  Sergey Rybin  <rybin@adacore.com>
25646
25647         * gnat_ugn.texi: Add description of --eol gnatpp option
25648
25649 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
25650             Thomas Quinot  <quinot@adacore.com>
25651
25652         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
25653         if the user wants all calls of a subprogram to be flagged,
25654         independently of whether they are made from within the same unit or
25655         another unit.
25656         Mention restriction for pragma Linker_Alias on some platforms.
25657         Document pragma Linker_Constructor and Linker_Destructor.
25658         Rewrite documentation of Weak_External, Linker_Section and
25659         Linker_Alias pragmas.
25660
25661 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
25662
25663         * s-stausa.ads, s-stausa.adb: New files.
25664
25665 2005-06-30  Kelley Cook
25666
25667         * all files:  Update FSF address in copyright headers.
25668         * gen-soccon.co (main): Output new FSF address in generated files.
25669
25670 2005-06-28  Paul Brook  <paul@codesourcery.com>
25671
25672         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
25673
25674 2005-06-14  Olivier Hainque  <hainque@adacore.com>
25675             Eric Botcazou  <ebotcazou@adacore.com>
25676
25677         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
25678         exc_unwind, now that we are generating proper .debug_frame output for
25679         that target.
25680
25681         * tracebak.c: Remove the mips-irix section, as we are now using the
25682         s-mastop based unwinder again.
25683         Under SPARC/Solaris, take into account the stack bias to compute the
25684         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
25685         ABI.
25686
25687 2005-06-14  Doug Rupp  <rupp@adacore.com>
25688
25689         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
25690
25691         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
25692
25693 2005-06-14  Pascal Obry  <obry@adacore.com>
25694
25695         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
25696         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
25697         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
25698         package name).
25699
25700         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
25701         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
25702         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
25703         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
25704         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
25705         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
25706         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
25707         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
25708         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
25709         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
25710         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
25711         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
25712         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
25713         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
25714         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
25715         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
25716         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
25717         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
25718         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
25719         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
25720         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
25721         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
25722         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
25723         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
25724         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
25725         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
25726         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
25727         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
25728         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
25729         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
25730         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
25731         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
25732         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
25733         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
25734         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
25735         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
25736         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
25737         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
25738         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
25739         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
25740         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
25741         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
25742         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
25743         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
25744         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
25745         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
25746         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
25747         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
25748         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
25749         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
25750         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
25751         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
25752         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
25753         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
25754         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
25755         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
25756         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
25757         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
25758         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
25759         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
25760         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
25761         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
25762         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
25763         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
25764         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
25765         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
25766         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
25767         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
25768         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
25769         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
25770         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
25771         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
25772         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
25773         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
25774         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
25775         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
25776         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
25777         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
25778         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
25779         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
25780         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
25781         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
25782         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
25783         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
25784         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
25785         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
25786         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
25787         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
25788         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
25789         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
25790         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
25791         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
25792         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
25793         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
25794         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
25795         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
25796         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
25797         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
25798         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
25799         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
25800         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
25801         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
25802         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
25803         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
25804         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
25805         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
25806         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
25807         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
25808         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
25809         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
25810         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
25811         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
25812         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
25813         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
25814         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
25815         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
25816         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
25817         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
25818         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
25819         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
25820         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
25821         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
25822         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
25823         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
25824         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
25825         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
25826         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
25827         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
25828         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
25829         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
25830         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
25831         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
25832         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
25833
25834 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
25835             Arnaud Charlet  <charlet@adacore.com>
25836
25837         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
25838         longer protected objects. They have been replaced by lower-level
25839         suspension objects made up by a mutex and a condition variable (or
25840         their equivalent given a particular OS) plus some internal data to
25841         reflect the state of the suspension object.
25842         (Initialize, Finalize): Add this initialization procedure for
25843         Suspension_Object, which is a controlled type.
25844         (Finalize): Add the finalization procedure for Suspension_Object,
25845         which is a controlled type.
25846
25847         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
25848         Ada.Synchronous_Task_Control because there is no longer a need for a
25849         VxWorks specific version of this package. Target dependencies
25850         has been moved to System.Task_Primitives.Operations.
25851
25852         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
25853         longer needed.
25854         (InitializeCriticalSection, EnterCriticalSection,
25855         LeaveCriticalSection, DeleteCriticalSection): Replace the type
25856         pCriticalSection by an anonymous access type so that we avoid problems
25857         of accessibility to local objects.
25858
25859         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
25860         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
25861         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
25862         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
25863         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
25864         set the environment task mask here.
25865         (Current_State): Add this function that returns the state of the
25866         suspension object.
25867         (Set_False): Add this procedure that sets the state of the suspension
25868         object to False.
25869         (Set_True): Add this procedure that sets the state of the suspension
25870         object to True, releasing the task that was suspended, if any.
25871         (Suspend_Until_True): Add this procedure that blocks the calling task
25872         until the state of the object is True. Program_Error is raised if
25873         another task is already waiting on that suspension object.
25874         (Initialize): Add this procedure for initializing the suspension
25875         object. It initializes the mutex and the condition variable which are
25876         used for synchronization and queuing, and it sets the internal state
25877         to False.
25878         (Finalize): Add this procedure for finalizing the suspension object,
25879         destroying the mutex and the condition variable.
25880
25881         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
25882         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
25883         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
25884         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
25885         which provides a low-level abstraction (using operating system
25886         primitives) for Ada.Synchronous_Task_Control.
25887         This object is made up by a mutex (for ensuring mutual exclusion), a
25888         condition variable (for queuing threads until the condition is
25889         signaled), a Boolean (State) indicating whether the object is open,
25890         and a Boolean (Waiting) reflecting whether there is a task already
25891         suspended on this object.
25892
25893         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
25894         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
25895         s-intman-vms.ads, s-intman-mingw.adb,
25896         (Initialize_Interrupts): Removed, no longer used.
25897
25898         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
25899         (Setup_Interrupt_Mask): New procedure.
25900
25901         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
25902
25903         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
25904
25905         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
25906         this is no longer done in the body of s-taprop
25907         (Server_Task): Explicitely test for Pending_Action in case
25908         System.Parameters.No_Abort is True.
25909
25910         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
25911         is no longer done in the body of s-taprop
25912
25913 2005-06-14  Robert Dewar  <dewar@adacore.com>
25914
25915         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
25916         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
25917         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
25918         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
25919         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
25920         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
25921         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
25922         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
25923         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
25924         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
25925         system-linux-hppa.ads, system-vms_64.ads,
25926         system-vxworks-alpha.ads: Minor comment update for
25927         AI-362 (unit is Pure).
25928
25929         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
25930         Add pragma Pure_05 for AI-362
25931         Make remaining conversion functions obsolescent in Ada 95
25932
25933         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25934         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
25935         Add entries for a-wichun and a-zchuni
25936         Add a-widcha a-zchara for AI-395
25937         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
25938
25939         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
25940         Add entries for a-wichun.o and a-zchuni.o
25941         Entries for a-widcha.o and a-zchara.o
25942         Add entry for a-chacon.o
25943
25944         * a-ztenau.adb: Add with of Ada.Characters.Conversions
25945
25946         * a-chacon.ads, a-chacon.adb: New files.
25947
25948         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
25949         categorization violations.
25950
25951         * a-strmap.ads: Add pragma Pure_05 for AI-362
25952         * a-strmap.ads: Add note on implicit categorization for AI-362
25953
25954         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
25955
25956         * par-prag.adb: Dummy entry for pragma Persistent_BSS
25957         Set Ada_Version_Explicit, for implementation of AI-362
25958         Add processing for pragma Pure_05 and Preelaborate_05
25959         Add entry for Assertion_Policy pragma
25960
25961         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
25962         when needed for proper processing of categorization stuff
25963
25964         * sem_cat.adb:
25965         For several cases, make errors in preealborate units warnings,
25966         instead of errors, if GNAT_Mode is set. For AI-362.
25967
25968         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
25969         preelaborate unit is now warning if in GNAT mode
25970
25971         * s-stoele.ads: Document AI-362 for pragma preelaborate
25972
25973 2005-06-14  Doug Rupp  <rupp@adacore.com>
25974
25975         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
25976         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
25977         Default_Exception_Msg_Max_Length: new parameter.
25978
25979         * a-except.ads: (Exception_Msg_Max_Length): Set to
25980         System.Parameters.Default_Exception_Msg_Max_Length
25981         Add pragma Preelaborate_05 for AI-362
25982         Add warnings off to allow categorization violations for AI-362
25983
25984 2005-06-14  Vincent Celier  <celier@adacore.com>
25985
25986         * gnatsym.adb: Adapt to modification of package Symbols: procedure
25987         Process is now in package Processing.
25988
25989         * symbols.ads, symbols.adb:
25990         (Processing): New package, containing procedure Process
25991
25992         * symbols-vms-alpha.adb:
25993         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
25994
25995         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
25996         symbols-processing-vms-ia64.adb: New files.
25997
25998 2005-06-14  Pascal Obry  <obry@adacore.com>
25999
26000         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
26001         implementation. This new version generates the proper DllMain routine
26002         to initialize the SAL. The DllMain is generated in Ada and compiled
26003         before being added as option to the library build command.
26004
26005 2005-06-14  Doug Rupp  <rupp@adacore.com>
26006             Pascal Obry  <obry@adacore.com>
26007
26008         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
26009         call to decc$translate_vms.
26010         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
26011         need to remove those quotes before catenating the filename.
26012         (__gnat_locate_exec_on_path): improvements to the Win32 section:
26013         * avoid allocating the memory twice for better efficiency;
26014         * allocate 32K buffer for environment expansion as suggested by MSDN;
26015         * prepend ".;" to the path so that current directory is searched too.
26016
26017 2005-06-14  Robert Dewar  <dewar@adacore.com>
26018
26019         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
26020         instead of raising CE (AI-241)
26021         Add warnings off to allow categorization violations for AI-362
26022
26023 2005-06-14  Robert Dewar  <dewar@adacore.com>
26024
26025         * ali-util.adb, gnatbind.adb: Remove references to
26026         Force_RM_Elaboration_Order.
26027
26028         * switch-b.adb: Remove recognition of -f switch
26029
26030 2005-06-14  Pascal Obry  <obry@adacore.com>
26031
26032         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
26033         implementation which is slightly more efficient.
26034
26035 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26036             Javier Miranda  <miranda@adacore.com>
26037             Ed Schonberg  <schonberg@adacore.com>
26038             Hristian Kirtchev  <kirtchev@adacore.com>
26039
26040         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
26041         allocator's designated type is a class-wide type, and compiling for
26042         Ada 2005, emit a run-time check that the accessibility level of the
26043         type given in the allocator's expression is not deeper than the level
26044         of the allocator's access type.
26045
26046         (Tagged_Membership): Modified to gives support to abstract interface
26047         types.
26048
26049         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
26050         Access_Level.
26051         (Descendant_Tag): New predefined function
26052         (Is_Descendant_At_Same_Level): New predefined function
26053         (Get_Access_Level): New private function
26054         (Set_Access_Level): New private procedure
26055         (IW_Membership): New function. Given the tag of an object and the tag
26056         associated with an interface, evaluate if the object implements the
26057         interface.
26058         (Register_Interface_Tag): New procedure used to initialize the table of
26059         interfaces used by the IW_Membership function.
26060         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
26061         of the dispatch table.
26062         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
26063         table of interfaces of the parent.
26064         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
26065         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
26066         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
26067         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
26068         Ada 2005 semantics for the new predefined function.
26069
26070         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
26071         call to Descendant_Tag rather than Internal_Tag.
26072         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
26073         the accessibility level of the attribute's Item parameter is not deeper
26074         than the level of the attribute's prefix type. Tag_Error is raised if
26075         the check fails. The check is only emitted for Ada_05.
26076         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
26077         requested stream attribute, use it.
26078         (Expand_N_Attribute_Reference): If the designated type is an interface
26079         then rewrite the referenced object as a conversion to force the
26080         displacement of the pointer to the secondary dispatch table.
26081         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
26082         is a dereference of an object with a constrained partial view.
26083
26084         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
26085         type is a class-wide type, emit a run-time check that the accessibility
26086         level of the returned object is not deeper than the level of the
26087         function's master (only when compiling for Ada 2005).
26088
26089         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
26090         Action_Nb_Arg): Add entries for new Get_Access_Level and
26091         Set_Access_Level routines in these tables.
26092         (Make_DT): Generate a call to set the accessibility level of the
26093         tagged type in its TSD.
26094         (Make_DT): Code cleanup. The functionality of generating all the
26095         secondary dispatch tables has been moved to freeze_record_type.
26096         (Make_Abstract_Interface_DT): Minor code cleanup.
26097         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
26098         this subprogram implements a new algorithm that provides the
26099         same functionality and it is more clear in case of primitives
26100         associated with abstract interfaces.
26101         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
26102         clean up, the functionality of this subprogram is now provided
26103         by Set_All_DT_Position.
26104         (Write_DT): New subprogram: a debugging procedure designed to be called
26105         within gdb to display the dispatch tables associated with a tagged
26106         type.
26107         (Collect_All_Interfaces): New subprogram that collects the whole list
26108         of interfaces that are directly or indirectly implemented by a tagged
26109         type.
26110         (Default_Prim_Op_Position): New subprogram that returns the fixed
26111         position in the dispatch table of the default primitive operations.
26112         (Expand_Interface_Actuals): New subprogram to generate code that
26113         displaces all the actuals corresponding to class-wide interfaces to
26114         reference the interface tag of the actual object.
26115         (Expand_Interface_Conversion): New subprogram. Reference the base of
26116         the object to give access to the interface tag associated with the
26117         secondary dispatch table.
26118         (Expand_Interface_Thunk): New subprogram that generates the code of the
26119         thunk. This is required for compatibility with the C+ ABI.
26120         (Make_Abstract_Interface_DT): New subprogram that generate the
26121         declarations for the secondary dispatch tables associated with an
26122         abstract interface.
26123         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
26124         attribute for each primitive operation covering interface subprograms
26125         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
26126         These subprograms were upgraded to give support to abstract interfaces
26127
26128         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
26129         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
26130         RE_Set_Access_Level.
26131         (RE_Unit_Table): Add entries for new Ada.Tags operations.
26132         Add support to call the followig new run-time subprograms:
26133         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
26134
26135         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
26136         match its full declaration when both have an access definition with
26137         statically matching designated subtypes.
26138         (Analyze_Component_Declaration): Delete commented out code that was
26139         incorrectly setting the scope of an anonymous access component's type.
26140         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
26141         an access discriminant when the containing type is nonlimited.
26142         (Make_Incomplete_Type_Declaration): Create an incomplete type
26143         declaration for a record type that includes self-referential access
26144         components.
26145         (Check_Anonymous_Access_Types): Before full analysis of a record type
26146         declaration, create anonymous access types for each self-referential
26147         access component.
26148         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
26149         an access component in this context is a Local_Anonymous_Access, for
26150         proper accessibility checks.
26151         (Access_Definition): Set properly the scope of the anonymous access type
26152         created for a stand-alone access object.
26153         (Find_Type_Of_Object): An object declaration may be given with an access
26154         definition.
26155         (Complete_Subprograms_Derivation): New subprogram used to complete
26156         type derivation of private tagged types implementing interfaces.
26157         In this case some interface primitives may have been overriden
26158         with the partial-view and, instead of re-calculating them, they
26159         are included in the list of primitive operations of the full-view.
26160         (Build_Derived_Record_Type): Modified to give support to private
26161         types implemening interfaces.
26162         (Access_Definition): Reject ALL on anonymous access types.
26163         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
26164         type derivation to occur at a deeper accessibility level than the
26165         parent type.
26166         For the case of derivation within a generic body however, disallow the
26167         derivation if the derived type has an ancestor that is a formal type
26168         declared in the formal part of an enclosing generic.
26169         (Analyze_Object_Declaration): For protected objects, remove the check
26170         that they cannot contain interrupt handlers if not declared at library
26171         level.
26172         (Add_Interface_Tag_Components): New subprogram to add the tag components
26173         corresponding to all the abstract interface types implemented by a
26174         record type or a derived record type.
26175         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
26176         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
26177         Process_Full_View, Record_Type_Declaration): Modified to give
26178         support to abstract interface types
26179         (Collect_Interfaces): New subprogram that collects the list of
26180         interfaces that are not already implemented by the ancestors
26181         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
26182         when partial view has no discriminants and full view has defaults.
26183         (Constrain_Access): Reject a constraint on a general access type
26184         if the discriminants of the designated type have defaults.
26185         (Access_Subprogram_Declaration): Associate the Itype node with the inner
26186         full-type declaration or subprogram spec. This is required to handle
26187         nested anonymous declarations.
26188         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
26189         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
26190         Process_Full_View, Record_Type_Declaration): Modified to give
26191         support to abstract interface types
26192         (Derive_Subprograms): Addition of a new formal to indicate if
26193         we are in the case of an abstact-interface derivation
26194         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
26195         to the specification because it is requied to analyze all the
26196         identifiers found in a list of interfaces
26197
26198         * debug.adb: Complete documentation of flag "-gnatdZ"
26199
26200         * exp_ch3.adb: Implement config version of persistent_bss pragma
26201         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
26202         testing for TSS presence to properly enforce visibility rules.
26203         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
26204         Make_Abstract_Interfaces_DT to generate the secondary tables
26205         associated with abstract interfaces.
26206         (Build_Init_Procedure): Modified to initialize all the tags
26207         corresponding.
26208         (Component_Needs_Simple_Initialization): Similar to other tags,
26209         interface tags do not need initialization.
26210         (Freeze_Record_Type): Modified to give support to abstract interface
26211         types.
26212         (Expand_N_Object_Declaration): Do not generate an initialization for
26213         a scalar temporary marked as internal.
26214
26215         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
26216         in-out parameter that is a component in an initialization procedure,
26217         whose constraint might depend on discriminants, and that may be
26218         misaligned because of packing or representation clauses.
26219         (Is_Legal_Copy): New predicate to determine whether a possibly
26220         misaligned in-out actual can actually be passed by copy/return. This
26221         is an error in case the type is by_reference, and a warning if this is
26222         the consequence of a DEC import pragma on the subprogram.
26223         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
26224         interface types
26225         (Expand_Inlined_Call): Mark temporary generated for the return value as
26226         internal, so that no useless scalar normalization is generated for it.
26227         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
26228         null procedure can always be inlined.
26229         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
26230         procedure, generate an explicit empty body for it.
26231
26232         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
26233         Given a type implementing an interface, returns the corresponding
26234         access_disp_table value.
26235         (Find_Interface_Tag): New subprogram. Given a type implementing an
26236         interface, returns the record component containing the tag of the
26237         interface.
26238         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
26239         previous ones that return the corresponding tag and access_disp_table
26240         entities.
26241         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
26242         is a predefined primitive operation.
26243         (Expand_Subtype_From_Expr): If the expression is a selected component
26244         within an initialization procedure, compute its actual subtype, because
26245         the component may depend on the discriminants of the enclosing record.
26246
26247         * i-cpp.ads, i-cpp.adb:
26248         This package has been left available for compatibility with previous
26249         versions of the frontend. As part of the new layout this is now a
26250         dummy package that uses declarations available at a-tags.ads
26251
26252         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
26253         "constant access" and "aliased [constant] access" when not compiling
26254         with -gnat05.
26255         Suppress Ada 2005 keyword warning if -gnatwY used
26256         (P_Identifier_Declarations): Add support for object declarations with
26257         access definitions.
26258         (Private_Extension_Declaration): Complete the documentation
26259         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
26260         attribute in case of private extension declaration
26261         (P_Type_Declaration): Mark as "abstract" the type declarations
26262         corresponding with protected, synchronized and task interfaces
26263         (P_Declarative_Items): "not" and "overriding" are overriding indicators
26264         for a subprogram or instance declaration.
26265
26266         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
26267         instantiation that is a dispatching operation has controlling access
26268         parameters that are null excluding.
26269         Save and restore Ada_Version_Explicit, for implementation of AI-362
26270         (Validate_Derived_Type_Instance): Add check for abstract interface
26271         types.
26272         (Analyze_Formal_Package): Establish Instantiation source for the copy of
26273         the generic that is created to represent the formal package.
26274         (Analyze_Package_Instantiation): Instantiate body immediately if the
26275         package is a predefined unit that contains inlined subprograms, and
26276         we are compiling for a Configurable_Run_Time.
26277         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
26278         If the program has a null default, generate an empty body for it.
26279
26280         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
26281         error message condition, null procedures are correctly detected now.
26282         (New_Overloaded_Entity): Bypass trivial overriding indicator check
26283         for subprograms in the context of protected types. Instead, the
26284         indicator is examined in Sem_Ch9 while analysing the subprogram
26285         declaration.
26286         (Check_Overriding_Indicator): Check consistency of overriding indicator
26287         on subprogram stubs as well.
26288         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
26289         the library level.
26290         (Analize_Subprogram_Specification): When analyzing a subprogram in which
26291         the type of the first formal is a concurrent type, replace this type
26292         by the corresponding record type.
26293         (Analyze_Subprogram_Body): Undo the previous work.
26294         (Analyze_Procedure_Call): If the call has the form Object.Op, the
26295         analysis of the prefix ends up analyzing the call itself, after which
26296         we are done.
26297         (Has_Interface_Formals): New subprogram subsidiary to analyze
26298         subprogram_specification that returns true if some non
26299         class-wide interface subprogram is found
26300         (New_Overloaded_Entity): Modified to give support to abstract
26301         interface types
26302         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
26303         access to subprograms must be recursive.
26304         (Is_Unchecked_Conversion): Improve the test that recognizes
26305         instantiations of Unchecked_Conversion, and allows them in bodies that
26306         are to be inlined by the front-end. When the body comes from an
26307         instantiation, a reference to Unchecked_Conversion will be an
26308         Expanded_Name, even though the body has not been analyzed yet.
26309         Replace Is_Overriding and Not_Overriding in subprogram_indication with
26310         Must_Override and Must_Not_Override, to better express intent of AI.
26311         (Analyze_Subprogram_Body): If an overriding indicator is given, check
26312         that it is consistent with the overrinding status of the subprogram
26313         at this point.
26314         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
26315         always inlined.
26316         If the subprogram is a null procedure, indicate that it does not need
26317         a completion.
26318
26319         * sem_disp.adb (Check_Controlling_Type): Give support to entities
26320         available through limited-with clauses.
26321         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
26322         allowed as the last primitive of a tagged type if it has no previous
26323         spec.
26324         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
26325         to give support to abstract interface types
26326
26327         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
26328         in the case where the target type is an anonymous access type of an
26329         object or component (that is, when Is_Local_Anonymous_Access is true).
26330         Prevent the special checks for conversions of access discriminants in
26331         the case where the discriminant belongs to a nonlimited type, since
26332         such discriminants have their accessibility level defined in the same
26333         way as a normal component of an anonymous access type.
26334         (Resolve_Allocator): When an allocator's designated type is a class-wide
26335         type, check that the accessibility level of type given in the
26336         allocator's expression or subtype indication is not statically deeper
26337         than the level of the allocator's access type.
26338         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
26339         name in a discriminant constraint of a record component.
26340         (Resolve_Explicit_Dereference): Do not check whether the type is
26341         incomplete when the dereference is a use of an access discriminant in
26342         an initialization procedure.
26343         (Resolve_Type_Conversion): Handle conversions to abstract interface
26344         types.
26345         (Valid_Tagged_Conversion): The conversion of a tagged type to an
26346         abstract interface type is always valid.
26347         (Valid_Conversion): Modified to give support to abstract interface types
26348         (Resolve_Actuals): Enable full error reporting on view conversions
26349         between unrelated by_reference array types.
26350         The rule for view conversions of arrays with aliased components is
26351         weakened in Ada 2005.
26352         Call to obsolescent subprogram is now considered to be a violation of
26353         pragma Restrictions (No_Obsolescent_Features).
26354         (Check_Direct_Boolean_Operator): If the boolean operation has been
26355         constant-folded, there is nothing to check.
26356         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
26357         check on possible violation of restriction No_Direct_Boolean_Operators
26358         until after expansion of operands, to prevent spurious errors when
26359         operation is constant-folded.
26360
26361         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
26362         Has_Compatible_Type): Modified to give support to abstract interface
26363         types.
26364         (Interface_Present_In_Ancestor): New function to theck if some ancestor
26365         of a given type implements a given interface
26366
26367         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
26368         prefix is a parameterless function that returns an access_to_procedure.
26369         (Transform_Object_Operation): Handle properly function calls of the
26370         form Obj.Op (X), which prior to analysis appear as indexed components.
26371         (Analyze_One_Call): Complete the error notification to help new Ada
26372         2005 users.
26373         (Analyze_Allocator): For an allocator without an initial value, where
26374         the designated type has a constrained partial view, a discriminant
26375         constraint is illegal.
26376
26377 2005-06-14  Robert Dewar  <dewar@adacore.com>
26378
26379         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
26380         do with treatment of Set_Col when positioned at end of line character.
26381
26382 2005-06-14  Robert Dewar  <dewar@adacore.com>
26383
26384         * atree.adb: (Elist*): Protect against uninitialized field
26385
26386 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26387
26388         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
26389         for an attribute reference that returns an access type.
26390         (Apply_Discriminant_Check): No need for check if (designated) type has
26391         constrained partial view.
26392
26393         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
26394         both bound checks, rather than a conjunction.
26395         (Insert_Valid_Check): If the expression is an actual that is an indexed
26396         component of a bit-packed array, force expansion of the packed element
26397         reference, because it is specifically inhibited elsewhere.
26398
26399 2005-06-14  Vincent Celier  <celier@adacore.com>
26400
26401         * clean.adb (Clean_Project): Correctly delete executable specified as
26402         absolute path names.
26403
26404         * make.adb (Gnatmake): Allow relative executable path names with
26405         directory information even when project files are used.
26406         (Change_To_Object_Directory): Fail gracefully when unable to change
26407         current working directory to object directory of a project.
26408         (Gnatmake): Remove exception handler that could no longer be exercized
26409         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
26410         may be deallocated by Normalize_Arguments.
26411         (Collect_Arguments): Eliminate empty arguments
26412
26413         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
26414         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
26415         (Check_Project): Return False when Project is No_Project. Return True
26416         when All_Projects is True.
26417         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
26418         All_Projects to True.
26419         Minor reformatting
26420
26421 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26422             Javier Miranda  <miranda@adacore.com>
26423             Thomas Quinot  <quinot@adacore.com>
26424             Robert Dewar  <dewar@adacore.com>
26425             Hristian Kirtchev  <kirtchev@adacore.com>
26426             Gary Dismukes  <dismukes@adacore.com>
26427
26428         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
26429         anonymous access types, to indicate that the accessibility level of
26430         the type is determined by that of the enclosing declaration.
26431         (Has_Persistent_BSS): New flag
26432         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
26433         of this attribute with functions.
26434         (Is_Primitive_Wrapper): Remove the barrier.
26435         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
26436         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
26437         New subprograms.
26438         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
26439         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
26440         New subprograms.
26441         (Is_Pure_Unit_Access_Type): New flag
26442         (Abstract_Interfaces): Complete the assertion to cover all usages.
26443         (Set_Is_Interface): Complete the assertion to cover all usages.
26444         (Is_Primitive_Wrapper): New attribute.
26445         (Is_Obsolescent): Now applies to all entities (though it is only set
26446         for subprograms currently)
26447         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
26448         which solves various problems concerning access subtypes.
26449         (Has_Persistent_BSS): New flag
26450         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
26451         Remove these subprograms because this attribute is currently
26452         not used.
26453         New entity flags:
26454         Has_Specified_Stream_Input (Flag190)
26455         Has_Specified_Stream_Output (Flag191)
26456         Has_Specified_Stream_Read (Flag192)
26457         Has_Specified_Stream_Write (Flag193)
26458         Present in all type and subtype entities. Set for a given view if the
26459         corresponding stream-oriented attribute has been defined by an
26460         attribute definition clause. When such a clause occurs, a TSS is set
26461         on the underlying full view; the flags are used to track visibility of
26462         the attribute definition clause for partial or incomplete views.
26463         (Is_Pure_Unit_Access_Type): New flag
26464         Clarify use of Is_Internal.
26465         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
26466         internally generated to wrap the invocation of tasks and protected
26467         types that implement interfaces.
26468         (Implementation_Base_Type): Documentation correction
26469         (Is_Obsolescent): Now applies to all entities (though it is only set
26470         for subprograms currently)
26471         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
26472         which solves various problems concerning access subtypes.
26473
26474         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
26475         for examined parameters. Identify unequal parameter list lengths as
26476         non-conformant parameters.
26477         (Overriding_Possible): Do not check for "All" qualifier in declaration
26478         of controlling access parameter, following prescription of AI-404.
26479         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
26480         that build the procedure body that wraps an entry invocation
26481         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
26482         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
26483         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
26484         give support to abstract interface types
26485
26486         * freeze.adb (Freeze_Entity): Issue error message if
26487         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
26488         type has no storage pool (Ada 2005) AI-366.
26489         Also modified to give support to abstract interface types
26490         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
26491         Inline_Always pragma.
26492
26493         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
26494         now begin an entry declaration.
26495         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
26496         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
26497         a subprogram declaration preceded by an overriding indicator.
26498         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
26499         declarations or subprogram declarations preceded by reserved words
26500         "not" or "overriding".
26501         (P_Entry_Declaration): Update comment. Parse and check overriding
26502         indicator, set semantic flags of entry declarations.
26503         (P_Task): New error message in case of private applied
26504         to a task type declaration.
26505         (P_Protected): New error message in case of private applied
26506         to a task type declaration.
26507
26508         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
26509         in which the full view of a type implementing an interface is a
26510         concurrent type.
26511         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
26512         Declare_Inherited_Private_Subprograms): If an explicit operation
26513         overrides an operation that is inherited in the private part, mark the
26514         explicit one as overriding, to enable overriding indicator checks.
26515         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
26516         full view to partial view, to simplify handling in back-end.
26517
26518         * sprint.adb: Print interface lists where needed: derived types,
26519         protected types, task types.
26520         output "is null" for null procedures. Part of implementation of
26521
26522         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
26523         relaxation of rules for access types in pure, shared passive partitions.
26524
26525         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
26526         first read discriminants into temporary objects, performing checks on
26527         the read values, then possibly performing discriminant checks on the
26528         actual (if it is constrained), and only finally reading the components
26529         into a constrained temporary object.
26530         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
26531         case of reading discriminants of a mutable record type to recognize
26532         the new form of the code generated by
26533         Build_Mutable_Record_Read_Procedure.
26534
26535         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
26536         of a simple call to Make_TSS_Name.
26537         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
26538         buffer, in order for Is_TSS to work correctly on local TSS names.
26539
26540         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
26541         Is_Local_Anonymous_Access to check legaliy of attributes in the
26542         context of  access components and stand-alone access objects.
26543         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
26544         treated as available for a limited private type if there is an
26545         attribute_definition_clause that applies to its full view, but not in
26546         other cases where the attribute is available for the full view
26547         (specifically, the sole fact that the full view is non-limited does not
26548         make the attribute available for the partial view).
26549         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
26550         non-overloaded intrinsic subprogram.
26551         (Check_Stream_Attribute): Reject an attribute reference for an
26552         unavailable stream attribute even if the prefix is not a limited type
26553         (case of a 'Input attribute reference for an abstract, non-classwide
26554         type)
26555         (Stream_Attribute_Available): New function to determine whether a stream
26556         attribute is available at a place.
26557         (Check_Attribute): Use Stream_Attribute_Available instead of just
26558         testing for TSS presence on the implementation base type.
26559         (Analyze_Attribute): Modified to give support to task interfaces.
26560         (Analyze_Access_Attribute): Add error check for use of an Access (or
26561         Unrestricted_Access) attribute with a subprogram marked as
26562         Inline_Always.
26563         (Analyze_Attribute, case Attribute_Address): Add error check for use of
26564         an Address attribute with a subprogram marked as Inline_Always.
26565         Update Eval_Attribute to handle new value of Width from AI-395
26566
26567         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
26568         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
26569         Factor common code across the stream-oriented attribute circcuits into
26570         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
26571         processing is functionally identical to the previous duplicated one,
26572         except that an expression that denotes an abstract subprogram will now
26573         be rejected, as mandated by AI-195 item 5.
26574
26575         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
26576         Is_Local_Anonymous_Access to apply accessibility checks to access
26577         components and stand-alone access objects.
26578         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
26579         elsewhere.
26580         (Is_Potentially_Persistent_Type): New function
26581         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
26582         a heap-object whose type has a constrained partial view, the object is
26583         unconstrained and the component may depend on a discriminant, making its
26584         renaming illegal.
26585
26586         * sinfo.ads, sinfo.adb
26587         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
26588         (Must_Override): Flag applicable to N_Entry_Declaration.
26589         Indicate that interface_list can appear in single task and single
26590         protected declarations.
26591         Replace Is_Overriding and Not_Overriding with Must_Override and
26592         Must_Not_Override, to better express intent of AI.
26593         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
26594         of an overriding indicator in a subprogram or instance.
26595         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
26596         Add the overriding indicator [[not] overriding] construct to the
26597         following grammar productions:
26598          ENTRY_DECLARATION
26599          GENERIC_INSTANTIATION
26600          SUBPROGRAM_SPECIFICATION
26601
26602         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
26603         can start with an overriding indicator.
26604
26605         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
26606         flags accordingly on subrogram specifications or instances.
26607
26608         * sem_ch8.adb:
26609         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
26610         overriding_indicator, if present, is consistent with status of spec.
26611         Improve error message for null-excluding checks on controlling access
26612         parameters.
26613         (Check_In_Previous_With_Clause): Protect the frontend against
26614         previously reported critical errors in the context clauses.
26615         Save and restore Ada_Version_Explicit, for implementation of AI-362
26616         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
26617         operation verify that controlling formals of the renamed entity that
26618         are access parameters are explicitly non-null.
26619         (Find_Expanded_Name): Improve error message when prefix is an illegal
26620         reference to a private child unit.
26621
26622         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
26623         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
26624         Rewrite to correspond to new wide character names in AI-395
26625
26626         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
26627         default procedures.
26628
26629 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26630             Robert Dewar  <dewar@adacore.com>
26631
26632         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
26633         code, not on the bodies of predefined operations, to cut down on
26634         spurious noise.
26635
26636 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26637
26638         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
26639         be expanded in place. The size computation does not require a
26640         subtraction, which would raise an exception on a compiler built with
26641         assertions when the upper bound is Integer'first.
26642         (Flatten): For an array of composite components, take into account the
26643         size of the components to determine whether it is safe to expand the
26644         array into a purely positional representation.
26645
26646 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26647
26648         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
26649         denoting a formal parameter into account.
26650
26651 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26652
26653         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
26654         the entry_call alternative of a conditional entry call, wrap the
26655         conditional entry call itself.
26656
26657 2005-06-14  Nicolas Setton  <setton@adacore.com>
26658             Ed Schonberg  <schonberg@adacore.com>
26659
26660         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
26661         the "simple_choice" member in a variant record, in accordance with the
26662         description in the package spec: the information output for a constant
26663         should be "S number", not "SS number".
26664         (Get_Encoded_Name): Return at once if not generating code. Avoids name
26665         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
26666
26667 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26668
26669         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
26670         RACW without any primitives, do not generate the if statement for
26671         dispatching by name in the PolyORB/DSA case, as it would be malformed
26672         (it would have an Elsif_Parts list that is not No_List, but with a
26673         length of 0).
26674
26675 2005-06-14  Robert Dewar  <dewar@adacore.com>
26676
26677         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
26678
26679 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
26680
26681         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
26682         can determine whether pragma Suppress_Exception_Locations is in effect.
26683
26684         * utils2.c (build_call_raise): Do not pass the file name to the
26685         exception handler if pragma Suppress_Exception_Locations is in effect.
26686         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
26687
26688 2005-06-14  Emmanuel Briot  <briot@adacore.com>
26689
26690         * g-debpoo.adb (Deallocate, Dereference): Improve output.
26691
26692 2005-06-14  Nicolas Roche  <roche@adacore.com>
26693
26694         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
26695         to ""
26696         (Next_Level): Fix minor bug in handling of ../dir case
26697         (Read): Add dir separator to Directory name so that "" is understood as
26698          "/"
26699
26700 2005-06-14  Pascal Obry  <obry@adacore.com>
26701
26702         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
26703         releasing the items.
26704
26705 2005-06-14  Vincent Celier  <celier@adacore.com>
26706             Cyrille Comar  <comar@adacore.com>
26707
26708         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
26709         with output file descriptor and with output file name.
26710         (Dup, Dup2): Now global procedures as they are used by two subprograms
26711         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
26712
26713 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26714
26715         PR ada/6717
26716         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
26717         broadcast address.
26718         (Create_Selector): Bind listening socket used to create the signalling
26719         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
26720         Set listen backlog to 1 to ensure that we detect socket theft by a
26721         failure of our own connect(2) call.
26722         (Check_Selector): Improve documentation of the selector mechanism.
26723         (Broadcast_Inet_Addr): New constant.
26724
26725 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26726
26727         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
26728         type which turns out to be an incomplete and incorrect fix.
26729         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
26730         of the type is declared in a record (for determination of insertion
26731         type).
26732         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
26733         a private type and ensure that the primary entity is used for the type
26734         of the newly created function's V formal by taking the Etype of the
26735         view.
26736
26737 2005-06-14  Javier Miranda  <miranda@adacore.com>
26738             Jose Ruiz  <ruiz@adacore.com>
26739             Robert Dewar  <dewar@adacore.com>
26740             Ed Schonberg  <schonberg@adacore.com>
26741
26742         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
26743         that indicates if we are parsing a compilation unit found in a
26744         limited-with clause.
26745         It is use to avoid the circularity check.
26746
26747         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
26748         we are parsing a compilation unit found in a limited-with clause. This
26749         is use to avoid the circularity check.
26750
26751         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
26752         unit as a consequence of parsing a limited-with clause. This is used
26753         to avoid the circularity check.
26754
26755         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
26756         (Analyze_Context): Limited-with clauses are now allowed
26757         in more compilation units.
26758         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
26759         againts previously reported critical errors in context clauses
26760         (Install_Limited_Withed_Unit): Code cleanup plus static detection
26761         of two further errors: renamed subprograms and renamed packages
26762         are not allowed in limited with clauses.
26763         (Install_Siblings): Do not install private_with_clauses on the package
26764         declaration for a non-private child unit.
26765         (Re_Install_Parents): When a parent of the subunit is reinstalled,
26766         reset visibility of child units properly.
26767         (Install_Withed_Unit): When a child unit appears in a with_clause of its
26768         parent, it is immediately visible.
26769
26770 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26771             Emmanuel Briot  <briot@adacore.com>
26772
26773         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
26774         declared within an inlined body as referenced, to prevent spurious
26775         warnings.
26776         (Output_One_Ref): If an entity renames an array component, indicate in
26777         the ALI file that this aliases (renames) the array. Capture as well
26778         function renamings that rename predefined operations.
26779         Add information about generic parent for package and subprogram
26780         instances.
26781         (Get_Type_Reference): For a subtype that is the renaming of an actual in
26782         an instantiation, use the first_subtype to ensure that we don't generate
26783         cross-reference information for internal types.
26784         For objects and parameters of a generic private type, retain the '*'
26785         indicator to distinguish such an entity from its type.
26786
26787         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
26788         to store information about instantiated entities.
26789
26790         * ali.adb (Scan_ALI): Add support for parsing the reference to the
26791         generic parent
26792
26793         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
26794         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
26795         information.
26796
26797 2005-06-10  Doug Rupp  <rupp@adacore.com>
26798             Arnaud Charlet  <charlet@adacore.com>
26799             Olivier Hainque  <hainque@adacore.com>
26800             Jose Ruiz  <ruiz@adacore.com>
26801
26802         * Make-lang.in: Add initialize.o when needed.
26803         Remove obsolete references to RT_FLAGS.
26804         Add missing dependencies for sdefault.o
26805
26806         * initialize.c: New file.
26807
26808         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
26809         [VMS] cond_signal_table: Fix problem in declaration.
26810         [VMS] __gnat_error_handler: rewrite.
26811         Move all __gnat_initialize() routines to initialize.c
26812         Specialize the former "hpux" section to "hppa hpux", as this is what the
26813         section really is here for and we now have other hpux ports that need
26814         different contents.
26815         (__gnat_adjust_context_for_raise) i386-linux: First version of this
26816         function for this target. Adjust PC by one in the machine context. This
26817         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
26818         it is more reliable to do that in the signal handler itself.
26819         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
26820         flags, so that the handler is passed the context structure to adjust
26821         prior to the raise.
26822         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
26823         SA_SIGINFO sigaction should look like. Call
26824         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
26825         Machine_State_Operations stuff.
26826         Add conditional code so that the x86_64 is also supported.
26827
26828 2005-06-14  Pascal Obry  <obry@adacore.com>
26829
26830         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
26831         the library name.
26832
26833 2005-06-14  Robert Dewar  <dewar@adacore.com>
26834
26835         * opt.ads, opt.adb: New flags for persistent_bss mode
26836         Add Ada_Version_Explicit, for implementation of AI-362
26837         Add Assertions_Enabled_Config and associated handling
26838         Needed since setting can be changed with Assertion_Policy pragma
26839         Add new flag Warn_On_Ada_2005_Compatibility
26840
26841         * switch-c.adb: Recognize -gnatwy/Y
26842         Set Ada_Version_Explicit, for implementation of AI-362
26843         The -gnatg switch now includes -gnatyu
26844
26845         * usage.adb: Add -gnatwy/Y
26846         Remove wrong asterisk on -gnatwX line
26847         Add line for -gnatyu switch
26848
26849 2005-06-14  Vincent Celier  <celier@adacore.com>
26850
26851         * osint.adb (Add_Default_Search_Dirs): Put source and object
26852         directories of project files before directories coming from
26853         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
26854
26855 2005-06-14  Robert Dewar  <dewar@adacore.com>
26856
26857         PR ada/15613
26858         * par-ch2.adb (Scan_Pragma_Argument): New procedure
26859         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
26860
26861 2005-06-14  Vincent Celier  <celier@adacore.com>
26862
26863         * prep.adb (Preprocess): Ignore error when scanning the first token of
26864         a line.
26865
26866 2005-06-14  Vincent Celier  <celier@adacore.com>
26867
26868         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
26869         (Check_Stand_Alone_Library): If the specified reference symbol file does
26870         not exist, only issue a warning when the symbol policy is not
26871         Controlled. And, when symbol policy is Compliant, set the symbol
26872         policy to Autonomous.
26873
26874 2005-06-14  Vincent Celier  <celier@adacore.com>
26875
26876         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
26877         when the project file in a with clause is not the last one, that is the
26878         project file name is followed by a comma.
26879         * prj-pp.adb: (First_With_In_List): New Boolean global variable
26880         (Print): Issue list of project files separated by commas in with clauses
26881         according to the values returned by Is_Not_Last_In_List.
26882         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
26883         (Set_Is_Not_Last_In_List): New procedure
26884
26885 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
26886
26887         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
26888
26889 2005-06-14  Robert Dewar  <dewar@adacore.com>
26890
26891         * scng.adb: Add call to new Check_EOF routine
26892         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
26893         Add some comments regarding wide character handling
26894
26895         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
26896
26897         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
26898
26899         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
26900         characters are now considered graphic characters and hence yield false
26901         in this call.
26902
26903         * nmake.adt: Modify header so that xnmake does not generate output
26904         files with multiple blank lines.
26905
26906         * treeprs.adt: Remove a blank line so that output from xtreeprs does
26907         not have an extra blank line
26908
26909 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26910
26911         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
26912         expression when the component type is an anonymous access type to
26913         ensure that appropriate accessibility checks are done.
26914
26915         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
26916         expression of an assignment when the target object is of an anonymous
26917         access type. This ensures that required accessibility checks are done.
26918         (One_Bound): Move the check for type Universal_Integer to
26919         Process_Bounds.
26920         (Process_Bounds): Check whether the type of the preanalyzed range is
26921         Universal_Integer, and in that case set Typ to Integer_Type prior
26922         to setting the type of the original range and the calls to One_Bound.
26923
26924 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26925
26926         * sem_case.adb (Expand_Others_Choice): Improve warning.
26927
26928 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26929
26930         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
26931         constraint of full view if present, when other type is discriminated.
26932         (Eval_Relational_Op): Recognize tests of pointer values against Null,
26933         when the pointer is known to be non-null, and emit appropriate warning.
26934
26935 2005-06-14  Robert Dewar  <dewar@adacore.com>
26936             Ed Schonberg  <schonberg@adacore.com>
26937
26938         PR ada/10671
26939         * sem_prag.adb: Implement pragma Persistent_BSS
26940         Remove obsolete pragma Persistent_Data, Persistent_Object
26941         Set Ada_Version_Explicit, for implementation of AI-362
26942         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
26943         Add processing for pragma Pure_05 and Preelaborate_05
26944         Add processing for Assertion_Policy pragma
26945         Add pragma identifiers for Assert
26946         (Analyze_Pragma, case Assert): Check number of arguments
26947         (Process_Inline): Additional guard against an illegal program, where the
26948         argument of the pragma is undefined, and warnings on redundant
26949         constructs are enabled.
26950         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
26951         Ada_05 to this pragma, specifying that the pragma is only active in
26952         Ada_05 mode.
26953         (Check_Arg_Order): New procedure
26954         Add appropriate calls to this procedure throughout
26955         Also throughout, check entity name before doing any other checks
26956
26957         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
26958         Remove obsolete pragma Persistent_Data, Persistent_Object
26959         Add entries for pragma Pure_05 and Preelaborate_05
26960         Add entries for Assertion_Policy pragma and associated names
26961         Add some names for pragma argument processing
26962
26963         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
26964
26965 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26966
26967         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
26968         appears within a negation (either from source or as a rewriting of
26969         inequality) adjust text of warning accordingly.
26970
26971 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26972
26973         * s-strxdr.adb: Follow AI95-00132
26974
26975 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
26976
26977         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
26978
26979 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
26980             Jose Ruiz  <ruiz@adacore.com>
26981
26982         * s-tposen.adb, s-tpobop.adb
26983         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
26984         the exception id.
26985         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
26986         there is no violation of the Max_Entry_Queue_Length restriction (if it
26987         has been set); Program_Error is raised otherwise.
26988         (Requeue_Call): Before requeuing the task on the target entry queue we
26989         check that there is no violation of the Max_Entry_Queue_Length
26990         restriction (if it has been set); Program_Error is raised otherwise.
26991
26992 2005-06-14  Robert Dewar  <dewar@adacore.com>
26993
26994         * styleg.adb: Fix several remaining problems in -gnatyu switch
26995         Blank line count not reset at start
26996         Scanning outside source buffer in some cases
26997         Confusing message for blanks at end of file
26998         Non-empty blank lines not recognized
26999
27000         * nmake.adt: Modify header so that xnmake does not generate output
27001         files with multiple blank lines.
27002
27003         * treeprs.adt: Remove a blank line so that output from xtreeprs does
27004         not have an extra blank line
27005
27006 2005-06-14  Sergey Rybin  <rybin@adacore.com>
27007
27008         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
27009
27010 2005-06-14  Doug Rupp  <rupp@adacore.com>
27011             Vincent Celier  <celier@adacore.com>
27012
27013         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
27014         Update copyright.
27015
27016         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
27017         Remove "Library" command.
27018         Change keyword for style check -gnatyd from NOCRLF to
27019         DOS_LINE_ENDINGS.
27020         Remove useless second style check keyword NONE
27021         Remove help documentation for inexistent style check keyword
27022         RM_COLUMN_LAYOUT.
27023         Add help documentation for style check keywords DOS_LINE_ENDINGS,
27024         UNNECESSARY_BLANK_LINES and XTRA_PARENS
27025         Add UNNECESSARY_BLANK_LINES for -gnatyu
27026         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
27027
27028         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
27029
27030 2005-06-14  Vincent Celier  <celier@adacore.com>
27031
27032         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
27033         gprmake was invoked with -d.
27034         (Compile_Sources): If -d was used, output the "completed ..." message
27035         for each compilation.
27036         (Scan_Arg): Recognize new switch -d
27037         When -c and at least one main is specified, set
27038         Unique_Compile to True to guarantee that no other sources will be
27039         compiled.
27040
27041 2005-06-14  Matthew Heaney  <heaney@adacore.com>
27042
27043         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
27044         * a-swuwha.ads, a-swuwha.adb: New files
27045
27046         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
27047         * a-szuzha.ads, a-szuzha.adb: New files.
27048
27049         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
27050         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
27051         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
27052         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
27053         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
27054         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
27055         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
27056         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
27057         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
27058         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
27059         Ada 2005 RM.
27060
27061 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
27062             Olivier Hainque  <hainque@adacore.com>
27063             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27064             Pascal Obry  <obry@adacore.com>
27065
27066         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
27067
27068         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
27069         making a temporary around a procedure call because of non-addressable
27070         actual parameter.
27071         (process_freeze_entity): If entity is a private type, capture size
27072         information that may have been computed for the full view.
27073         (tree_transform, case N_Allocator): If have initializing expression,
27074         check type for Has_Constrained_Partial_View and pass that to
27075         build_allocator.
27076         (tree_transform, case N_Return_Statement): Pass extra arg to
27077         build_allocator.
27078
27079         * decl.c (annotate_value): Remove early return if -gnatR is not
27080         specified.
27081         (gnat_to_gnu_field): Don't make a packable type for a component clause
27082         if the position is byte aligned, the field is aliased, and the clause
27083         size isn't a multiple of the packable alignment. It serves no useful
27084         purpose packing-wise and would be rejected later on.
27085         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
27086
27087         PR ada/20515
27088         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
27089         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
27090         instead.
27091         (create_concat_name): Idem.
27092
27093 2005-06-10  Robert Dewar  <dewar@adacore.com>
27094             Eric Botcazou  <ebotcazou@adacore.com>
27095             Ben Brosgol  <brosgol@adacore.com>
27096             Cyrille Comar  <comar@adacore.com>
27097             Sergey Rybin  <rybin@adacore.com>
27098             Pascal Obry  <obry@adacore.com>
27099
27100         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
27101         Document second argument (Ada_05) of pragma Obsolescent
27102         Add note that call to subprogram marked with pragma Obsolescent
27103         is now considered to be a violation of program Restrictions
27104         (No_Obsolescent_Features).
27105         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
27106         that only machine-dependent attributes are supported.
27107
27108         * gnat_ugn.texi:
27109         Commented out menu lines and empty section for gnatclean examples
27110         Document -gnatwy/Y
27111         Fix some over long lines
27112         Clarify and enhance documentation of ADA_PROJECT_PATH.
27113         Rework section 2.11.2(3) about linking with a non-GNU compiler.
27114         Mention new switch -fcallgraph-info.
27115         Mention new switch -fstack-usage.
27116         For gnatpp, replace '-notab' with '-N' and add this option to Index
27117         Corrected VMS example.
27118         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
27119         Minor reformatting
27120         Add documentation for -gnatyu switch (unnecessary blank lines)
27121         Document new switch -U for GNAT PRETTY and GNAT METRIC
27122         Add note about Stdcall being handled as C convention on non Windows OS.
27123         Remove some junk typo in description of gnatbind -S switch
27124         Remove reference to Extensions_Allowed pragma
27125         Document the new order of the directories to be searched (source and
27126         object directories of project files before directories in ADA_*_PATH
27127         environment variables.
27128
27129         * g-trasym.ads: Document that IRIX is supported
27130
27131 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
27132
27133         * Makefile.in: Add initialize.o when needed.
27134         Adapt to new VMS package body Symbols and subunits
27135         No specialized version of a-sytaco is needed for VxWorks.
27136
27137         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
27138         * a-zchara.ads, a-widcha.ads: New files.
27139
27140         * system-hpux-ia64.ads: New file.
27141
27142         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
27143         is imported from the VxWorks kernel.
27144
27145 2005-06-14  Robert Dewar  <dewar@adacore.com>
27146
27147         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
27148         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
27149         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
27150         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
27151         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
27152         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
27153         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
27154         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
27155         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
27156         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
27157         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
27158         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
27159
27160 2005-06-14  Thomas Quinot  <quinot@adacore.com>
27161
27162         * xeinfo.adb: Fix typo in comment
27163
27164 2005-06-14  Javier Miranda  <miranda@adacore.com>
27165
27166         * repinfo.ads: Fix typo in comment
27167
27168 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
27169
27170         * s-finimp.adb (Parent_Tag): Delete this imported function (function
27171         Parent_Tag is now in the visible part of Ada.Tags).
27172         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
27173         using imported function.
27174
27175 2005-06-14  Bernard Banner  <banner@adacore.com>
27176
27177         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
27178         also apply for handling support for VxSim 653.
27179
27180 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27181
27182         * xsnames.adb: Add automatic generation of snames.h.
27183
27184 2005-06-14  Thomas Quinot  <quinot@adacore.com>
27185
27186         * gen-soccon.c: Add IP_MULTICAST_IF constant
27187         Minor reformatting and adjustments to prevent warnings.
27188
27189 2005-06-14  Pascal Obry  <obry@adacore.com>
27190
27191         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
27192
27193 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
27194
27195         * trans.c (gnat_gimplify_expr): Call
27196         recompute_tree_invarant_for_addr_expr when we change
27197         the operand of the ADDR_EXPR.
27198
27199 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27200
27201         * misc.c: Don't include errors.h.
27202
27203 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27204
27205         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
27206
27207 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
27208
27209         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
27210         comment typos.
27211         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
27212
27213 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
27214
27215         PR ada/20270
27216         * Makefile.in: Make TGT_LIB behave correctly.
27217
27218 2005-04-23  DJ Delorie  <dj@redhat.com>
27219
27220         * misc.c: Adjust warning() callers.
27221
27222 2005-04-16  Laurent Guerby  <laurent@guerby.net>
27223
27224         PR ada/18847
27225         * a-nudira.adb (Value): Check for valid string.
27226         * a-nuflra.adb (Value): Likewise.
27227
27228 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
27229
27230         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
27231
27232 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
27233
27234         * adaint.c, init.c, tracebak.c: Fix comment typos.
27235         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
27236
27237 2005-04-07  Laurent Guerby  <laurent@guerby.net>
27238             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27239
27240         * Makefile.in: Add make ifeq define for hppa linux tasking support.
27241         * system-hpux.ads: Define Signed_Zeros to be True.
27242         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
27243
27244 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
27245
27246         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
27247         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
27248         typos.
27249
27250 2005-03-30  Tom Tromey  <tromey@redhat.com>
27251
27252         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
27253
27254 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
27255
27256         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
27257
27258 2005-03-29  Robert Dewar  <dewar@adacore.com>
27259
27260         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
27261         fixed-point expression has value that is not a multiple of the Small
27262         value.
27263
27264         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
27265
27266         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
27267         nanoseconds.
27268
27269         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
27270
27271 2005-03-29  Vincent Celier  <celier@adacore.com>
27272
27273         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
27274         (Build_Dynamic_Library.Version_String): Return the empty string when
27275         Lib_Version is empty or when the symbol policy is not Autonomous.
27276
27277         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
27278         a symbol is not in the reference symbol file, increase the Major ID
27279         and set the Minor ID to 0.
27280         Use gsmatch=lequal instead of gsmatch=equal
27281
27282 2005-03-29  Doug Rupp  <rupp@adacore.com>
27283
27284         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
27285         name and translate.
27286
27287 2005-03-29  Javier Miranda  <miranda@adacore.com>
27288
27289         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
27290         (Inherit_DT): The first formal has been redefined as a Tag.
27291         This allows us the removal of the subprogram Get_TSD.
27292         (TSD): Replace the call to Get_TSD by the actual code.
27293
27294         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
27295         (Make_DT): Upgrade the call to Inherit_TSD according to the
27296         new interface: the first formal is now a Tag.
27297
27298         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
27299         redefined as a Tag.
27300         This change allows us to remove the subprogram Get_TSD.
27301         (CPP_Get_TSD): Subprogram removed.
27302         (TSD): Replace the call to CPP_Get_TSD by the actual code.
27303
27304         * rtsfind.ads: Remove support to call the run-time
27305         subprogram Get_TSD
27306
27307 2005-03-29  Robert Dewar  <dewar@adacore.com>
27308
27309         * errutil.adb, errout.adb:
27310         Minor comment updates on Line_Terminator references
27311
27312         * par-ch10.adb: Add ??? comment about line terminator
27313
27314         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
27315         (check dos line terminator).
27316         (Check_Line_Max_Length): New procedure, split off from the existing
27317         Check_Line_Terminator routine. Separating this out allows -gnatyf to
27318         be properly recognized.
27319
27320         * styleg.adb: Add ??? comment for line terminator reference
27321
27322         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
27323         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
27324
27325         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
27326         (check dos line terminator).
27327         (Check_Line_Max_Length): New procedure, split off from the existing
27328         Check_Line_Terminator routine. Separating this out allows -gnatyf to
27329         be properly recognized.
27330
27331         * stylesw.ads, stylesw.adb:
27332         Add handling for new -gnatyd switch (check dos line terminator)
27333
27334         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
27335         Recognize -gnatwb/-gnatwB switches
27336         Include Warn_On_Bad_Fixed_Value for -gnatg
27337
27338         * usage.adb:
27339         Add line for new -gnatyd switch (check dos line terminator)
27340
27341         * usage.adb: Add lines for -gnatwb/-gnatwB
27342
27343         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
27344
27345         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
27346
27347         * gnat_ugn.texi: Fix overlong lines
27348         Document new -gnatyd switch
27349         Document new -gnatwb/-gnatwB switches
27350
27351 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
27352
27353         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
27354         order to retrieve the component list of the type, before examining
27355         individual components.
27356
27357         * sem_type.adb (Covers): Types are compatible if one is the base type
27358         of the other, even though their base types might differ when private
27359         views are involved.
27360
27361 2005-03-29  Thomas Quinot  <quinot@adacore.com>
27362
27363         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
27364         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
27365         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
27366         analyzed if expansion is disabled (which could otherwise cause spurious
27367         error messages if expansion has been disabled due to previous
27368         (unrelated) errors).
27369
27370         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
27371         is disabled, the entity denoted by the argument is the access type
27372         itself, not an underlying record type, so there is no need to go back
27373         to the Corresponding_Remote_Type.
27374
27375 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
27376             Robert Dewar  <dewar@adacore.com>
27377
27378         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
27379         expand a call to an instance of
27380         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
27381         Constructor actual of the instance. A class-wide membership
27382         check is also generated, to ensure that the tag passed to the instance
27383         denotes a type in the class.
27384         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
27385         of Name_Generic_Dispatching_Constructor.
27386
27387         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
27388         05 unit for AI-260-02).
27389
27390         * a-tgdico.ads: New file.
27391
27392         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
27393         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
27394
27395         * snames.ads, snames.adb (Preset_Names): Add entry for
27396         Generic_Dispatching_Constructor.
27397
27398         PR ada/20300
27399         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
27400         character type cases.
27401         (Analyze_Subprogram_Renaming): Add special handling for
27402         the case of renaming of stream attributes when the renaming denotes a
27403         generic formal subprogram association for an abstract formal subprogram.
27404         Check that the attribute is a primitive stream attribute (and not
27405         a class-wide stream attribute) and then rewrite the attribute name
27406         as the name of the appropriate compiler-generated stream primitive.
27407
27408 2005-03-29  Robert Dewar  <dewar@adacore.com>
27409
27410         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
27411         recursive calls.
27412         (Is_Possibly_Unaligned_Object): Correct typo that
27413         resulted in inaccurate result for unaligned scalars within records.
27414
27415 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
27416
27417         * freeze.adb (Freeze_Record_Type): If the type of the component is an
27418         itype whose parent is controlled and not yet frozen, do not create a
27419         freeze node for the itype if expansion is disabled.
27420
27421 2005-03-29  Vincent Celier  <celier@adacore.com>
27422
27423         * make.adb (Gnatmake): Don't fail if the main project file is declared
27424         as having no Ada sources. Do not display message "no sources to
27425         compile" in quiet output.
27426
27427 2005-03-29  Doug Rupp  <rupp@adacore.com>
27428
27429         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
27430         extra tools.
27431
27432 2005-03-29  Robert Dewar  <dewar@adacore.com>
27433
27434         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
27435         child.
27436
27437 2005-03-29  Robert Dewar  <dewar@adacore.com>
27438
27439         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
27440         missing TYPE Improve the error message generated when compiling a
27441         limited interface in Ada83 or Ada95 mode.
27442
27443 2005-03-29  Robert Dewar  <dewar@adacore.com>
27444
27445         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
27446         rather than proceed ahead using a junk attribute name.
27447
27448 2005-03-29  Vincent Celier  <celier@adacore.com>
27449
27450         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
27451
27452         * prj-part.adb (Parse_Single_Project): Set the location of a project
27453         on its defining identifier, rather than on the reserved word "project".
27454
27455         * prj-proc.adb (Expression): Adapt to the fact that default of external
27456         references may be string expressions, not always literal strings.
27457         (Recursive_Process): Set Display_Name equal to Name
27458         when Location is No_Location, that is when there is no actual file.
27459         Get the Display_Name of the project from the source, when it is not a
27460         virtual project.
27461         (Process): Use the Display_Name in error messages
27462
27463         * prj-strt.adb (External_Reference): Allow default to be string
27464         expressions, not only literal strings.
27465
27466 2005-03-29  Vincent Celier  <celier@adacore.com>
27467
27468         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
27469         file and the reference symbol file to be the same file.
27470
27471 2005-03-29  Thomas Quinot  <quinot@adacore.com>
27472
27473         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
27474         forbid conversion of a local access-to-subprogram type to a remote one.
27475
27476         * sem_util.adb (Wrong_Type): For a record type that is the expanded
27477         equivalent type for a remote access-to-subprogram type, go back to the
27478         original RAS entity when displaying an error message, so the casing is
27479         the original source casing.
27480
27481 2005-03-29  Robert Dewar  <dewar@adacore.com>
27482
27483         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
27484         on param update.
27485
27486 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
27487
27488         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
27489         subtype if code is being pre-analyzed, to prevent un-expanded
27490         references to protected formals, among others.
27491         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
27492         interpretation that can be a call, include the result of the call as a
27493         possible interpretation of the dereference.
27494
27495         * sem_ch5.adb (Process_Bounds): Determine type of range by
27496         pre-analyzing a copy of the original range, and then analyze the range
27497         with the expected type.
27498
27499         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
27500         with an overloaded prefix where not all interpretations yield an
27501         access to subprogram, do not rewrite node as a call.
27502         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
27503         the node as a call once the context identifies the interpretation of
27504         the prefix whose call yields the context type.
27505         (Valid_Conversion): For the case of a conversion between
27506         local access-to-subprogram types, check subtype conformance using
27507         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
27508         detailed error message.
27509
27510 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
27511
27512         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
27513         indicator, indicate that the formal can never be null.
27514         (Process_Formals): If a formal has a non_null indicator, insert the
27515         resulting subtype immediately before the enclosing subprogram decl,
27516         and not at the beginning of the corresponding declarative part, to
27517         prevent access before elaboration (Ada2005).
27518
27519 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27520
27521         PR ada/19956
27522         * utils.c (finish_record_type): Use variable_size when setting sizes.
27523
27524 2005-03-29  Robert Dewar  <dewar@adacore.com>
27525
27526         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
27527         guarantee Unix style line terminators for the output files, even when
27528         running on windows.
27529
27530 2005-03-29  Robert Dewar  <dewar@adacore.com>
27531
27532         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
27533         buffer if an exception is raised.
27534
27535 2005-03-29  Ed Falis  <falis@adacore.com>
27536
27537         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
27538         VxWorks 653 1.4
27539
27540 2005-03-29  Robert Dewar  <dewar@adacore.com>
27541
27542         * sem_util.ads: Minor reformatting
27543         * gnat_rm.texi: Minor editing.
27544
27545 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
27546
27547         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
27548         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
27549
27550 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
27551
27552         * adaint.c (__gnat_portable_spawn): Adjust cast.
27553
27554 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
27555
27556         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
27557
27558 2005-03-17  Pascal Obry  <obry@adacore.com>
27559
27560         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
27561         used.
27562
27563         * expect.c (__gnat_waitpid): Moved here from adaint.c.
27564         Reimplement under Win32 using Win32 API.
27565
27566         (__gnat_kill) [Win32]: Properly close the process handle before leaving
27567         this routine.
27568
27569 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
27570
27571         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
27572         (DECL_RENAMED_OBJECT): New accessor macro.
27573         (SET_DECL_RENAMED_OBJECT): New setter macro.
27574
27575         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
27576         object in all cases.  Attach the renamed object to the VAR_DECL.
27577         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
27578         field is not prescribed.
27579
27580         * misc.c (gnat_handle_option): Handle -gnatO separately.
27581         (gnat_print_decl) <VAR_DECL>: New case.
27582         Print the DECL_RENAMED_OBJECT node.
27583
27584         * lang.opt:  Declare separate -gnatO option.
27585
27586         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
27587         pointer, replace it with the renamed object.
27588         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
27589         pointer type if the source is not a fat pointer type whose underlying
27590         array has the same non-zero alias set as that of the destination array.
27591
27592 2005-03-17  Javier Miranda  <miranda@adacore.com>
27593
27594         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
27595         (Get_Inheritance_Depth): Removed.
27596         (Set_Inheritance_Depth): Removed.
27597
27598         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
27599         subprogram Get_Expanded_Name because it is not referenced by the
27600         frontend.
27601
27602         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
27603         (CPP_Get_Inheritance_Depth): Removed.
27604         (CPP_Set_Inheritance_Depth): Removed.
27605
27606         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
27607
27608 2005-03-17  Robert Dewar  <dewar@adacore.com>
27609
27610         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
27611         3, since we now expect GCC 3 to do all the work.
27612
27613 2005-03-17  Javier Miranda  <miranda@adacore.com>
27614
27615         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
27616         of one barrier to avoid wrong usage of this attribute.
27617
27618         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
27619         First_Private_Entity.
27620
27621         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
27622         the subprogram against wrong usage.
27623         Adapt the code to traverse the entities in the
27624         scope of a record_type because in addition to its usage regarding
27625         packages, this subprogram is also called by Expand_N_Freeze_Entity
27626         to install the visible declarations of the enclosing scope of a
27627         record_type_with_private to establish the proper visibility before
27628         freezing the entity and related subprograms.
27629
27630 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
27631
27632         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
27633         entry formals.
27634
27635 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27636
27637         * exp_ch3.adb (Check_Attr): New subprogram.
27638         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
27639         into a new Check_Attr subprogram, in order to provide a more
27640         explanatory error message (including the name of the missing attribute).
27641         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
27642         subprogram determines whether a default implementation exists for a
27643         given stream attribute.
27644         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
27645         Determine whether to generate a default implementation for each stream
27646         attribute separately, as this depends on the specific attribute.
27647
27648         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
27649         limited extension where a stream attribute is missing for a limited
27650         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
27651         generate a bogus reference to the missing attribute to prevent
27652         cascaded errors. Instead, generate a null statement.
27653
27654         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
27655         available for a limited type if it has been specified for an ancestor
27656         of the type.
27657
27658 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
27659
27660         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
27661         entity is an operator.
27662
27663 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27664
27665         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27666         spec, to make this predicate available to other units.
27667
27668         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
27669         reimplementing it.
27670
27671         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
27672         when no distribution runtime library is available.
27673
27674         * sem_res.adb, sem_dist.adb: Disable expansion of remote
27675         access-to-subprogram types when no distribution runtime library is
27676         available.
27677         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
27678         predicate available to other units.
27679
27680         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27681         spec, to make this predicate available to other units.
27682
27683 2005-03-17  Vincent Celier  <celier@adacore.com>
27684
27685         * make.adb (Insert_Project_Sources): Make sure the Q is always
27686         initialized.
27687
27688         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
27689         the default for the tree, not the global default naming.
27690
27691         * prj-proc.adb (Recursive_Process): No need to put the default naming
27692         in the project data, it's already there.
27693
27694 2005-03-17  Doug Rupp  <rupp@adacore.com>
27695
27696         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
27697
27698         * 5xcrtl.ads: Renamed to...
27699         * s-crtl-vms64.ads: ...this new file
27700
27701 2005-03-17  Robert Dewar  <dewar@adacore.com>
27702
27703         PR ada/19519
27704         * namet.adb (Copy_One_Character): Set proper wide character encoding
27705         for upper half character if we have upper half encoding.
27706
27707 2005-03-17  Robert Dewar  <dewar@adacore.com>
27708
27709         * par.adb (Par): Improved msg for attempt to recompile predefined unit
27710
27711 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27712
27713         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
27714         tagged limited type, the TSS is a newly built renaming declaration:
27715         insert it using Set_TSS, not Copy_TSS.
27716
27717 2005-03-17  Javier Miranda  <miranda@adacore.com>
27718
27719         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
27720         Try_Object_Operation): Analyze the object that is accessible
27721         through the prefix of the subprogram call before we apply
27722         the transformation of the object-operation notation.
27723
27724 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
27725
27726         * s-taprob.adb (Initialize_Protection): Initialize the protected
27727         object's owner to Null_Task.
27728         (Lock): If pragma Detect_Blocking is in effect and the caller of this
27729         procedure is already the protected object's owner then Program_Error
27730         is raised. In addition the protected object's owner is updated.
27731         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
27732         of this procedure is already the protected object's owner then
27733         Program_Error is raised.
27734         In addition the protected object's owner is updated.
27735         (Unlock): Remove the ownership of the protected object.
27736
27737         * s-taprob.ads (Protection): Add the field Owner, used to store the
27738         protected object's owner.
27739         This component is needed for detecting one type of potentially blocking
27740         operations (external calls on a protected subprogram with the same
27741         target object as that of the protected action). Document the rest of
27742         the components.
27743
27744         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
27745         Initialize the protected object's owner to Null_Task.
27746         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
27747         caller of this procedure is already the protected object's owner then
27748         Program_Error is raised.
27749         Do not raise Program_Error when this procedure is called from a
27750         protected action.
27751         (Unlock_Entries): Remove the ownership of the protected object.
27752         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
27753         of this procedure is already the protected object's owner then
27754         Program_Error is raised.
27755         Do not raise Program_Error when this procedure is called from
27756         a protected action.
27757
27758         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
27759         used to store the protected object's owner.
27760
27761         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
27762         effect and this procedure (a potentially blocking operation) is called
27763         from whithin a protected action, Program_Error is raised.
27764         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
27765         and this procedure (a potentially blocking operation) is called from
27766         whithin a protected action, Program_Error is raised.
27767
27768 2005-03-17  Vincent Celier  <celier@adacore.com>
27769             Nicolas Setton  <setton@adacore.com>
27770
27771         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
27772         switch, not supported by the linker on Darwin. Add '_' before
27773         <library>init, as this character is added unconditionally by the
27774         compiler.
27775         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
27776         correct one ".dylib". This fixes detection of the archive files when
27777         building library projects.
27778
27779 2005-03-17  Vincent Celier  <celier@adacore.com>
27780
27781         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
27782         -gnat83, -gnat95 and -gnat05.
27783
27784 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
27785
27786         * gnat_ugn.texi: Document gnatmem restriction
27787
27788 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27789
27790         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
27791         cleanup
27792
27793 2005-03-17  Robert Dewar  <dewar@adacore.com>
27794
27795         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
27796         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
27797         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
27798
27799         * casing.adb: Comment improvements
27800
27801 2005-03-17  Pascal Obry  <obry@adacore.com>
27802
27803         * g-expect.adb: Minor reformatting.
27804
27805 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
27806
27807         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
27808         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
27809         to dependencies.
27810
27811 2005-03-15  Vincent Celier  <celier@adacore.com>
27812
27813         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
27814         Add new parameter In_Tree to specify the project tree: needed
27815         by the project manager. Adapt to changes in project manager
27816         using new parameter In_Tree.
27817
27818 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
27819
27820         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
27821         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
27822         ada/bldtools to avoid make -jN failures.
27823
27824 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27825
27826         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
27827         to NULL_TREE on entry.
27828
27829 2005-03-15  Robert Dewar  <dewar@adacore.com>
27830
27831         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
27832         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
27833         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
27834         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
27835         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
27836         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
27837         system-interix.ads, system-solaris-sparc.ads,
27838         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
27839         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
27840         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
27841         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
27842         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
27843         Compiler_System_Version to be False.
27844
27845         * opt.ads: Add new flag Opt.Address_Is_Private
27846
27847         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
27848         Add new parameter Compiler_System_Version to avoid checking for
27849         completeness of parameters when compiler is compiling itself.
27850         Allows old versions of GNAT to be compiled with new compiler.
27851
27852 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
27853
27854         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
27855         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
27856         calling thread.
27857         (Stack_Base_Available): New flag.
27858         (Get_Page_Size): New overloaded functions imported from C.
27859         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
27860         PROT_ON, PROT_OFF): New constants.
27861         (mprotect): New function imported from C.
27862         (pthread_teb_t): New record type.
27863
27864         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
27865         (Create_Task): Account for the Yellow Zone and the guard page.
27866
27867 2005-03-15  Vincent Celier  <celier@adacore.com>
27868
27869         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
27870         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
27871         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
27872         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
27873         Library_File_Name_For): Add new parameter In_Tree
27874         to specify the project tree: needed by the project manager.
27875         Adapt to changes in project manager using new parameter In_Tree.
27876         Remove local imports, use functions in System.CRTL.
27877
27878         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
27879         to use the project manager.
27880
27881         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
27882         In_Tree to designate the project tree. Adapt to changes in the project
27883         manager, using In_Tree.
27884
27885         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
27886         Copy_Interface_Sources): Add new parameter In_Tree to specify the
27887         project tree: needed by the project manager.
27888         (Build_Library): Check that Arg'Length >= 6 before checking if it
27889         contains "--RTS=...".
27890
27891         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
27892         Library_File_Name_For): Add new parameter In_Tree to specify the
27893         project tree: needed by the project manager.
27894
27895         * prj.ads, prj.adb: Major modifications to allow several project trees
27896         in memory at the same time.
27897         Change tables to dynamic tables and hash tables to dynamic hash
27898         tables. Move tables and hash tables from Prj.Com (in the visible part)
27899         and Prj.Env (in the private part). Move some constants from the visible
27900         part to the private part. Make other constants deferred.
27901         (Project_Empty): Make it a variable, not a function
27902         (Empty_Project): Add parameter Tree. Returns the data with the default
27903         naming data of the project tree Tree.
27904         (Initialize): After updating Std_Naming_Data, copy its value to the
27905         component Naming of Project Empty.
27906         (Register_Default_Naming_Scheme): Use and update the default naming
27907         component of the project tree, instead of the global variable
27908         Std_Naming_Data.
27909         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
27910         Tree is not defaulted, return the default naming data of the Tree.
27911         (Initial_Buffer_Size): Constant moved from private part
27912         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
27913         variables initialized in procedure Initialize.
27914         (Add_To_Buffer): Add two in out parameters to replace global variables
27915         Buffer and Buffer_Last.
27916         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
27917         functions.
27918         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
27919         hash tables.
27920         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27921         for the project tree.
27922         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
27923         constant at the beginning of the package spec, so that they cane be used
27924         in subprograms before their full declarations.
27925         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
27926         (Empty_Project): Add parameter of type Project_Node_Ref
27927         (Private_Project_Tree_Data): Add component Default_Naming of type
27928         Naming_Data.
27929         (Buffer, Buffer_Last): remove global variables
27930         (Add_To_Buffer): Add two in out parameters to replace global variables
27931         Buffer and Buffer_Last.
27932         (Current_Packages_To_Check): Remove global variable
27933         (Empty_Name): Move to private part
27934         (No-Symbols): Make it a constant
27935         (Private_Project_Tree_Data): New type for the private part of the
27936         project tree data.
27937         (Project_Tree_Data): New type for the data of a project tree
27938         (Project_Tree_Ref): New type to designate a project tree
27939         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
27940         for the project tree.
27941
27942         * prj-attr.ads: Add with Table; needed, as package Prj no longer
27943         imports package Table.
27944
27945         * prj-com.adb: Remove empty, no longer needed body
27946
27947         * prj-com.ads: Move most of the content of this package to package Prj.
27948
27949         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
27950         designate the project node tree and Packages_To_Check to replace
27951         global variable Current_Packages_To_Check.
27952         Add new parameters In_Tree and Packages_To_Check to local subprograms,
27953         when needed. Adapt to changes in project manager with project node tree
27954         In_Tree.
27955
27956         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
27957         project tree to most subprograms. Move tables and hash tables to
27958         private part of package Prj.
27959         Adapt to changes in project manager using project tree In_Tree.
27960
27961         * prj-makr.adb (Tree): New constant to designate the project node tree
27962         Adapt to change in project manager using project node tree Tree
27963
27964         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
27965         display the Library_Src_Dir and the Library_Dir.
27966         Add new parameter In_Tree to designate the project node tree to most
27967         subprograms. Adapt to changes in the project manager, using project tree
27968         In_Tree.
27969         (Check_Naming_Scheme): Do not alter the casing on platforms where
27970         the casing of file names is not significant.
27971         (Check): Add new parameter In_Tree to designate the
27972
27973         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
27974         designate the project tree.
27975         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
27976
27977         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
27978         to replace those that were in the private part of package Prj.
27979         Add new parameter In__Tree to designate the project node tree to most
27980         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
27981         (Post_Parse_Context_Clause): When specifying the project node of a with
27982         clause, indicate that it is a limited with only if there is "limited"
27983         in the with clause, not necessarily when In_Limited is True.
27984         (Parse): Add new parameter In_Tree to designate the project node tree
27985
27986         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
27987         designate the project node tree. Adapt to change in Prj.Tree with
27988         project node tree In_Tree.
27989
27990         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
27991         tree In_Tree in the call to function Empty_Process to give its initial
27992         value to the project data Processed_Data.
27993         Add new parameters In_Tree to designate the project tree and
27994         From_Project_Node_Tree to designate the project node tree to several
27995         subprograms. Adapt to change in project manager with project tree
27996         In_Tree and project node tree From_Project_Node_Tree.
27997
27998         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
27999         to replace those that were in the private part of package Prj.
28000         Add new parameter In_Tree to designate the project node tree to most
28001         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
28002
28003         * prj-tree.ads, prj-tree.adb: Add new parameter of type
28004         Project_Node_Tree_Ref to most subprograms.
28005         Use this new parameter to store project nodes in the designated project
28006         node tree.
28007         (Project_Node_Tree_Ref): New type to designate a project node tree
28008         (Tree_Private_Part): Change table to dynamic table and hash tables to
28009         dynamic hash tables.
28010
28011         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
28012         the project tree to most subprograms. Adapt to changes in project
28013         manager using project tree In_Tree.
28014
28015         * makegpr.adb (Project_Tree): New constant needed to use project
28016         manager.
28017
28018 2005-03-15  Olivier Hainque  <hainque@adacore.com>
28019
28020         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
28021         for sigactions with SA_SIGINFO set. Call
28022         __gnat_adjust_context_for_raise before raising, to perform the
28023         potentially required adjustments to the machine context for the GCC
28024         unwinder.
28025
28026         * raise.h (__gnat_adjust_context_for_raise): New prototype.
28027
28028         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
28029         Adjust PC by one in the provided machine context.
28030         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
28031         so that the handler is passed the context structure to adjust prior to
28032         the raise.
28033         (__gnat_error_handler) HPUX: Adjust the signature to match what an
28034         SA_SIGINFO sigaction should look like. Call
28035         __gnat_adjust_context_for_raise before actually raising.
28036         (__gnat_adjust_context_for_raise): Default noop to help PC
28037         adjustments before raise from signal handlers.
28038         (__gnat_error_handler): Indirectly call a predicate function to
28039         determine if a condition should be resignaled or not.
28040         (__gnat_set_resignal_predicate): User interface to modify the predicate.
28041         (__gnat_default_resignal_p): Default GNAT predicate.
28042
28043 2005-03-15  Doug Rupp  <rupp@adacore.com>
28044
28045         * adaint.c: Prefix #include of VMS system header files with vms/
28046         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
28047         Do not define a dummy function "convert_addresses" under Darwin,
28048         not needed.
28049
28050         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
28051         with vms/
28052
28053 2005-03-15  Nicolas Setton  <setton@adacore.com>
28054
28055         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
28056         PPC/AIX.
28057
28058 2005-03-15  Robert Dewar  <dewar@adacore.com>
28059
28060         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
28061         AI-386.
28062
28063         * a-retide.ads: Minor comment changes
28064
28065 2005-03-15  Robert Dewar  <dewar@adacore.com>
28066
28067         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
28068         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
28069         Realloc_For_Chunk to private part of package.
28070         New subprograms for AI-301
28071
28072         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
28073         Get_Line procedure.
28074         Avoid unnecessary use of Get/Set_Wide_String
28075
28076 2005-03-15  Robert Dewar  <dewar@adacore.com>
28077
28078         PR ada/13470
28079         * a-stunau.ads, a-stunau.adb:
28080         Change interface to allow efficient (and correct) implementation
28081         The previous changes to allow extra space in unbounded strings had
28082         left this interface a bit broken.
28083
28084         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
28085
28086         * g-spipat.ads, g-spipat.adb: New interface for Get_String
28087         Minor reformatting (function specs)
28088
28089         * g-spitbo.adb: New interface for Get_String
28090
28091         * g-spitbo.ads: Minor reformatting
28092
28093         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
28094
28095         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
28096
28097 2005-03-15  Javier Miranda  <miranda@adacore.com>
28098             Robert Dewar  <dewar@adacore.com>
28099             Thomas Quinot  <quinot@adacore.com>
28100             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28101
28102         * atree.ads, atree.adb: Add support for Elist24 field
28103
28104         * atree.h: Fix wrong definition of Field27
28105         Add support for Elist16 field
28106         Add support for Elist24 field
28107
28108         * einfo.ads, einfo.adb (Abstract_Interfaces,
28109         Set_Abstract_Interfaces): New subprograms.
28110         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
28111         subprograms.
28112         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
28113         entities rather than a single node.
28114         (Is_Interface, Set_Is_Interface): New subprogram
28115         (First_Tag_Component): New syntesized attribute
28116         (Next_Tag_Component): New synthesized attribute
28117         (Write_Entity_Flags): Upgraded to write Is_Interface
28118         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
28119         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
28120         (Task_Body_Procedure): New subprogram to read this attribute.
28121         (Set_Task_Body_Procedure): New subprogram to set this attribute.
28122         (Has_Controlled_Component): Now applies to all entities.
28123         This is only a documentation change, since it always worked to apply
28124         this to other than composite types (yielding false), but now this is
28125         official.
28126         Update documentation on Must_Be_Byte_Aligned for new spec
28127
28128         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
28129         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
28130         uses of the Access_Disp_Table attribute to reference the first dispatch
28131         table associated with a tagged type. As
28132         part of the implementation of abstract interface types,
28133         Access_Disp_Table has been redefined to contain a list of dispatch
28134         tables (rather than a single dispatch table).
28135         Similarly, upgrade all the references to Tag_Component by the
28136         new attribute First_Tag_Component.
28137         (Find_Inherited_TSS): Moved to exp_tss.
28138         Clean up test in Expand_N_Object_Declaration for cases
28139         where we need to do a separate assignment of the initial value.
28140         (Expand_N_Object_Declaration): If the expression in the
28141         declaration of a tagged type is an aggregate, no need to generate an
28142         additional tag assignment.
28143         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
28144         is to be deleted.
28145         Bit packed array ops are only called if operands are known to be
28146         aligned.
28147         (Component_Equality): When returning an N_Raise_Program_Error statement,
28148         ensure that its Etype is set to Empty to avoid confusing GIGI (which
28149         expects that only expressions have a bona fide type).
28150         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
28151         determine the amount of data to be copied.
28152
28153         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
28154         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
28155             INTERFACE_TYPE_DEFINITION ::=
28156               [limited | task | protected | synchronized] interface
28157                 [AND interface_list]
28158
28159         * par-ch3.adb (P_Type_Declaration): Modified to give support to
28160         interfaces.
28161         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
28162         interfaces.
28163         (P_Interface_Type_Definition): New subprogram that parses the new
28164         syntax rule of Ada 2005 interfaces
28165         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
28166         messages by the correct RENAMES (quotes removed).
28167
28168         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
28169         attribute First_Tag_Component.
28170
28171         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
28172         (Interface_List, Set_Interface_List): New subprograms.
28173         (Interface_Present, Set_Interface_Present): New subprograms.
28174         (Limited_Present, Set_Limited_Present): Available also in derived
28175         type definition nodes.
28176         (Protected_Present, Set_Protected_Present): Available also in
28177         record type definition and
28178         derived type definition nodes.
28179         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
28180         (Task_Present, Set_Task_Present): New subprogram.
28181         (Task_Body_Procedure): Removed.
28182         (Set_Task_Body_Procedure): Removed.
28183         These subprogram have been removed because the attribute
28184         Task_Body_Procedure has been moved to the corresponding task type
28185         or task subtype entity to leave a field free to store the list
28186         of interfaces implemented by a task (for AI-345)
28187         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
28188         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
28189         expression flag Do_Range_Check
28190         (Exception_Junk): Change to Flag7 to accomodate above change
28191         (Box_Present, Default_Name, Specification, Set_Box_Present,
28192         Set_Default_Name, Set_Specification): Expand the expression
28193         "X in N_Formal_Subprogram_Declaration" into the corresponding
28194         two comparisons. Required to use the csinfo tool.
28195
28196         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
28197         "with string" given.
28198
28199         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
28200         expression given.
28201
28202         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
28203         in 2005 mode
28204
28205         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
28206         attribute Task_Body_Procedure rather than the old semantic field that
28207         was available in the task_type_declaration node.
28208
28209         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
28210         interface type definitions.
28211         (P_Formal_Derived_Type_Definition): Modified to handle the list of
28212         interfaces.
28213
28214         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
28215         task type declaration.
28216         (P_Protected): Modified to handle the list of interfaces in a
28217         protected type declaration.
28218
28219 2005-03-15  Doug Rupp  <rupp@adacore.com>
28220             Vincent Celier  <celier@adacore.com>
28221
28222         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
28223         (Gen_Output_File_C): Likewise.
28224         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
28225
28226 2005-03-15  Thomas Quinot  <quinot@adacore.com>
28227
28228         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
28229         is an N_Raise_Constraint_Error node, create a new copy of it without
28230         going through a call to Duplicate_Subexpr.
28231
28232 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
28233             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28234             Nicolas Setton  <setton@adacore.com>
28235             Ed Schonberg  <schonberg@adacore.com>
28236
28237         PR ada/19900
28238         PR ada/19408
28239         PR ada/19140
28240         PR ada/20255
28241         * decl.c (gnat_to_gnu_field): Reject aliased components with a
28242         representation clause that prescribes a size not equal to the rounded
28243         size of their types.
28244         (gnat_to_gnu_entity, case E_Component): Always look at
28245         Original_Record_Component if Present and not the entity.
28246         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
28247         of tagged extension types by not making field for components that are
28248         inside the parent.
28249         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
28250         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
28251         expression to the type of the object when the object is constant.
28252         Reverse defer_debug_incomplete_list before traversing it, so that trees
28253         are processed in the order at which they were added to the list. This
28254         order is important when using the stabs debug format.
28255         If we are deferring the output of debug information, also defer this
28256         output for a function return type.
28257         When adding fields to a record, prevent emitting debug information
28258         for incomplete records, emit the information only when the record is
28259         complete.
28260         (components_to_record): New parameter defer_debug.
28261         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
28262         (gnat_to_gnu_field_decl): New function.
28263         (substitution_list, annotate_rep): Call it.
28264         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
28265         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
28266         No longer update discriminants to not be a COMPONENT_REF.
28267         (copy_alias_set): Strip padding from input type; also handle
28268         unconstrained arrays properly.
28269
28270         * gigi.h (write_record_type_debug_info): New function.
28271         Convert to use ANSI-style prototypes. Remove unused
28272         declarations for emit_stack_check, elab_all_gnat and
28273         set_second_error_entity.
28274         (gnat_to_gnu_field_decl): New decl.
28275
28276         * utils.c (write_record_type_debug_info): New function.
28277         (finish_record_type): Delegate generation of debug information to
28278         write_record_type_debug_info.
28279         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
28280         (update_pointer_to): Fix pasto.
28281         (convert) <UNION_TYPE>: Accept slight type variations when
28282         converting to an unchecked union type.
28283
28284         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
28285         replace the N_Freeze_Entity with a null statement.
28286
28287         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
28288         within a constrained subcomponent of an enclosing record, place the
28289         freeze nodes in the scope stack entry for the enclosing record.
28290         (Undelay_Type): New Subprogram.
28291         (Set_Small_Size): Pass T, the type to modify; all callers changed.
28292         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
28293         within records; allow them to have freeze nodes if their base types
28294         aren't frozen yet.
28295
28296         * exp_util.adb (Remove_Side_Effects): Properly test for
28297         Expansion_Delayed and handle case when it's inside an
28298         N_Qualified_Expression.
28299
28300         * sem_ch3.adb (Derived_Type_Declaration): New predicate
28301         Comes_From_Generic, to recognize accurately that the parent type in a
28302         derived type declaration can be traced back to a formal type, because
28303         it is one or is derived from one, or because its completion is derived
28304         from one.
28305         (Constrain_Component_Type): If component comes from source and has no
28306         explicit constraint, no need to constrain in in a subtype of the
28307         enclosing record.
28308         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
28309         Minor change to propagate Is_Ada_2005 flag
28310
28311         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
28312         Expansion_Delayed is False.
28313         (assoc_to_constructor): Ignore fields that have a
28314         Corresponding_Discriminant.
28315         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
28316         function returns "by target", dereference the target pointer using the
28317         type of the actual return value.
28318         <all>: Be prepared for a null gnu_result.
28319         (processed_inline_subprograms): Check flag_really_no_inline
28320         instead of flag_no_inline.
28321         (set_second_error_entity): Remove unused function.
28322         (gnat_to_gnu, case N_Selected_Component): Call
28323         gnat_to_gnu_field_decl.
28324         (assoc_to_constructor): Likewise.
28325
28326 2005-03-15  Robert Dewar  <dewar@adacore.com>
28327             Ed Schonberg  <schonberg@adacore.com>
28328             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28329
28330         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
28331         Must_Be_Byte_Aligned for cases where we do not need to use a
28332         System.Pack_nn unit.
28333
28334         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
28335         as procedures.
28336         Needed now that we do some processing for IN parameters as well. This
28337         may well fix some unrelated errors.
28338         (Expand_Call): Handle case of unaligned objects (in particular those
28339         that come from packed arrays).
28340         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
28341         renamed entity is an inherited operation, re-expand the call using the
28342         original operation, which is the one to call.
28343         Detect attempt to inline parameterless recursive subprogram.
28344         (Represented_As_Scalar): Fix to work properly with private types
28345         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
28346         accurate estimate. Yields True in far fewer cases than before,
28347         improving the quality of code that depends on this test.
28348
28349         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
28350         over both visible and private declarations to remove them from tree,
28351         and mark subprograms declared in package as eliminated, to prevent
28352         spurious use in subsequent compilation of generic units in the context.
28353
28354         * exp_util.ads: Minor cleanup in variable names
28355
28356         * sem_eval.ads, sem_eval.adb: Minor reformatting
28357         (Compile_Time_Known_Bounds): New function
28358
28359 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28360
28361         * exp_ch7.adb (Convert_View): Use base types of underlying types when
28362         determining whether an unchecked conversion is needed for the argument
28363         of an initialization call.
28364
28365 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28366
28367         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
28368         that appears in the instantiation rather than the internal subtype
28369         generated in the wrapper package, to avoid anomalies in gigi when the
28370         target is derived from a private type whose full view is an access type.
28371
28372 2005-03-15  Robert Dewar  <dewar@adacore.com>
28373
28374         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
28375         not needed.
28376         Add documentation to replace the use of this flag
28377         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
28378         the x86_64.
28379
28380 2005-03-15  Thomas Quinot  <quinot@adacore.com>
28381
28382         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
28383         here from exp_attr so it can be shared between exp_attr and exp_dist.
28384         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
28385         all TSS names, not a subset thereof, and the previous name introduced
28386         an unnecessarily confusion that a distinction might exist between
28387         "OK" TSS names and some "not OK" TSS names.
28388
28389 2005-03-15  Doug Rupp  <rupp@adacore.com>
28390
28391         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
28392         Command_Name.
28393
28394 2005-03-15  Pascal Obry  <obry@adacore.com>
28395             Eric Botcazou  <ebotcazou@adacore.com>
28396
28397         PR ada/20226
28398         PR ada/20344
28399         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
28400         when IN_RTS. This is to work around a bootstrap path problem.
28401
28402         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
28403         table and pass it to __gnat_install_SEH_handler().
28404         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
28405
28406         * lang.opt: Fix specification of -fRTS=.
28407
28408 2005-03-15  Doug Rupp  <rupp@adacore.com>
28409             Bernard Banner  <banner@adacore.com>
28410             Vincent Celier  <celier@adacore.com>
28411             Arnaud Charlet  <charlet@adacore.com>
28412
28413         PR ada/6852
28414         This change works fine when gnatlib is built from the gcc directory,
28415         but does not work when using the libada Makefile, since GCC_FOR_TARGET
28416         is not passed to ada/Makefile.in, so more work is needed by a
28417         Makefile/configure expert.
28418
28419         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
28420         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
28421         Setup gnatlink switch -M for x86_64 linux, as it is already setup
28422         for Linux x86.
28423         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
28424         Run ranlib on libgccprefix.a
28425         Define PREFIX_OBJS for Darwin, to build libgccprefix.
28426         (ADA_INCLUDE_SRCS): Split Ada packages.
28427
28428 2005-03-15  Robert Dewar  <dewar@adacore.com>
28429
28430         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
28431
28432         * impunit.adb: Add GNAT.UTF_32
28433
28434         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
28435
28436         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
28437         now uses GNAT.UTF_32).
28438
28439         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
28440         capabilities for categorizing characters using Unicode categories
28441
28442 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28443
28444         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
28445         instantiation that has been rewritten as a package body, retrieve spec
28446         to generate proper name for implicit_with_clause.
28447         (Install_Parents): Recognize a parent that is an instantiation but has
28448         been rewritten as a package declaration during analysis.
28449
28450 2005-03-15  Javier Miranda  <miranda@adacore.com>
28451             Ed Schonberg  <schonberg@adacore.com>
28452
28453         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
28454         parameter reported some error we immediately return. This improves the
28455         behaviour of the frontend in case of errors.
28456         (Install_Parent, Remove_Parent): Introduce new flag
28457         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
28458         ancestor of a generic child unit, when the child is being instantiated.
28459         (Inline_Instance_Body): If we are compiling the private
28460         part or the body of a child unit, restore the proper visibility of the
28461         parents after compiling the instance body.
28462
28463 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28464             Javier Miranda  <miranda@adacore.com>
28465
28466         PR ada/15608
28467         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
28468         of a private type, in which case it is underlying_type that denotes
28469         the proper task. Also modified to use the new entity attribute
28470         that is directly available in the task type and task subtype entities
28471         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
28472         arrays when other dimensions than the first are constrained by
28473         discriminants of an enclosing record.
28474         (Insert_Explicit_Dereference): If the prefix is an indexed component or
28475         a combination of indexed and selected components, find ultimate entity
28476         and generate the appropriate reference for it, to suppress spurious
28477         warnings.
28478         (Note_Possible_Modification): If an entity name has no entity, return.
28479         (Is_Variable): A function call never denotes a variable.
28480         (Requires_Transient_Scope): For record types, recurse only on
28481         components, not on internal subtypes that may have been generated for
28482         constrained components.
28483
28484 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28485
28486         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
28487         Eliminated as candidates for resolution. Both efficient, and avoids
28488         anomalies with operators declared in deleted code.
28489         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
28490         expansion is disabled (as when compiling a generic) to prevent spurious
28491         warnings on prefixes of selected components.
28492
28493 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28494
28495         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
28496         attached to a list before checking whether it appears in the private
28497         declarations of the current package.
28498         (Make_Inequality_Operator): Insert declaration in proper declarative
28499         list rather than just setting the Parent field, so that
28500         Is_Private_Declaration can handle it properly.
28501
28502 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28503
28504         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
28505         a renaming a body, check that the renamed subprogram in not intrinsic.
28506         (Find_Direct_Name): If several use_visible entities hide
28507         each other, and the context is a predefined file compiled through
28508         rtsfind, keep only the entity that comes from a predefined file.
28509
28510 2005-03-15  Geert Bosch  <bosch@adacore.com>
28511
28512         * s-fatgen.adb (Valid): Extend special exceptions to account for long
28513         long float padding to also cover AMD64 and IA64.
28514
28515 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
28516
28517         * s-imgwch.adb: Add with and use of Interfaces.
28518         (Img_Wide_Character): Change type of Val to Unsigned_16.
28519         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
28520
28521 2005-03-15  Matthew Gingell  <gingell@adacore.com>
28522
28523         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
28524
28525 2005-03-15  Robert Dewar  <dewar@adacore.com>
28526
28527         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
28528
28529         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
28530
28531         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
28532
28533 2005-03-15  Robert Dewar  <dewar@adacore.com>
28534
28535         * s-bitops.adb, s-bitops.ads,
28536         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
28537         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
28538         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
28539         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
28540         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
28541         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
28542         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
28543         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
28544         reformatting.
28545
28546 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
28547
28548         * utils2.c (build_binary_op): Fix typo.
28549
28550 2005-03-15  Doug Rupp  <rupp@adacore.com>
28551
28552         * s-crtl.ads (popen,pclose): New imports.
28553
28554 2005-03-15  Cyrille Comar  <comar@adacore.com>
28555
28556         * comperr.adb (Compiler_Abort): remove references to obsolete
28557         procedures in the bug boxes for various GNAT builds.
28558
28559 2005-03-15  Vincent Celier  <celier@adacore.com>
28560
28561         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
28562
28563 2005-03-15  Geert Bosch  <bosch@adacore.com>
28564             Arnaud Charlet  <charlet@adacore.com>
28565             Robert Dewar  <dewar@adacore.com>
28566             Cyrille Comar  <comar@adacore.com>
28567             Sergey Rybin  <rybin@adacore.com>
28568
28569         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
28570         too specific and long-winded to be appropriate for the GNAT User's
28571         Guide.
28572         Warn about use of GCC switches not documented in the GNAT User's Guide,
28573         as these may cause generated code to not conform to Ada semantics.
28574         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
28575         Add documentation for -gnat95 and -gnat05 switches
28576         Remove paragraph documenting obsolete way to refer to third party
28577         libraries.
28578         Add a few references to Ada_05 that were missing.
28579         Update documentation on -gnatZ/-gnatL.
28580         Document limitation when using -m64 under Solaris.
28581         Change the "Name Casing" subsection of the pretty-printer section
28582         according to the changes in the dictionary processing.
28583
28584         * gnat_rm.texi: Document the Ada_05 pragma.
28585         Section on record representation clauses describes the new more
28586         relaxed rules about placement of large packed bit array components.
28587         Add documentation of GNAT.UTF_32
28588
28589 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
28590
28591         * misc.c (gnat_post_options): Turn off structural
28592         aliasing for now.
28593
28594 2005-03-08  Laurent Guerby  <laurent@guerby.net>
28595
28596         * system-linux-sparc.ads: Fix typo in previous commit.
28597
28598 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
28599             Laurent Guerby  <laurent@guerby.net>
28600
28601         PR ada/20035
28602         * system-linux-sparc.ads: New.
28603         * Makefile.in: Add sparc linux entry.
28604
28605 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
28606
28607         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
28608         parameters as unused.
28609
28610 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
28611         Partial merge from libada-gnattools-branch:
28612
28613         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
28614         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
28615         into code in gnattools/Makefile.in.  Remove direct dependencies on
28616         stamp-tools by tools clauses.
28617         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
28618         * config-lang.in: Add gnattools to $lang_dirs.
28619
28620 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
28621
28622         PR ada/19942
28623         * utils.c (gnat_type_for_mode): Return null instead of ICE because
28624         we asked for an unknown mode.
28625
28626 2005-02-12  Richard Henderson  <rth@redhat.com>
28627
28628         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
28629         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
28630
28631 2005-02-10  Andreas Jaeger  <aj@suse.de>
28632
28633         * init.c (__gnat_initialize): Mark parameter as unused.
28634
28635 2005-02-09  Doug Rupp  <rupp@adacore.com>
28636
28637         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
28638         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
28639
28640 2005-02-09  Doug Rupp  <rupp@adacore.com>
28641
28642         * gnatchop.adb (dup, dup2),
28643         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
28644
28645         * gnatlbr.adb (mkdir),
28646         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
28647
28648         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
28649
28650 2005-02-09  Doug Rupp  <rupp@adacore.com>
28651
28652         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
28653
28654 2005-02-09  Robert Dewar  <dewar@adacore.com>
28655             Thomas Quinot  <quinot@adacore.com>
28656             Javier Miranda  <miranda@adacore.com>
28657             Pascal Obry  <obry@adacore.com>
28658             Ed Schonberg  <schonberg@adacore.com>
28659             Doug Rupp  <rupp@adacore.com>
28660             Gary Dismukes  <dismukes@adacore.com>
28661             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28662
28663         * g-zstspl.ads: New file.
28664
28665         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
28666
28667         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
28668         Ada 95 mode
28669         Add definition of Wide_Wide_Space for AI-285
28670
28671         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
28672         interface (to support Ada 95 and Ada 2005 units).
28673         Add Unbounded_IO files
28674         Add entries for Wide_Wide packages for AI-285
28675         Add list of containers packages to Ada 2005 unit list
28676
28677         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
28678         support new Unbounded_IO package cleanly.
28679
28680         * g-utf_32.ads, g-utf_32.adb: New files.
28681
28682         * Makefile.rtl: Add entry for g-utf_32
28683         Add new files for Unbounded_IO
28684         Adjust make file for new AI-285 wide wide packages
28685         Add AI-302 containers to the run time.
28686
28687         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
28688         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
28689         subprograms for AI-301.
28690
28691         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
28692
28693         * a-stunau.ads: Minor comment correction
28694
28695         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
28696         etc.
28697         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
28698         (Check_RPC): Update to match changes in expanded code.
28699         Clean up unused entity.
28700
28701         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
28702         was not taken into account.
28703         This includes proper initialization with Normalize_Scalars.
28704         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
28705         normalize scalars cases (particularly the latter) to do a better job
28706         of finding invalid representations.
28707
28708         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
28709
28710         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
28711         used
28712
28713         * exp_dist.adb: Add support for wide wide character type
28714         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
28715         private part, generate stub bodies at the end of the private part,
28716         not the visible part.
28717         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
28718         PolyORB support.
28719         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
28720         generic wrapper to execute final processing after completing the
28721         expansion of the RPC receiver for an RACW.
28722
28723         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
28724         packages and attributes.
28725         (Preset_Names): Addition of the new reserved words of Ada 2005,
28726         that is interface, overriding and synchronized.
28727         (Get_Pragma_Id): Give support to the use of the new reserved word
28728         "interface" as a pragma name.
28729         (Is_Pragma_Name): Give support to the use of the new reserved word
28730         "interface" as a pragma name.
28731         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
28732         attribute implementation.
28733
28734         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
28735         checks to entities that are output parameters of Asm operations.
28736         Handle the Stream_Size attribute.
28737         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
28738
28739         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
28740
28741         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
28742         for second parameter being 0.0.
28743         Add support for wide wide character type.
28744         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
28745
28746         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
28747         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
28748         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
28749         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
28750         for wide wide character cases.
28751
28752         * cstand.adb: Create entities for Wide_Wide_Character and
28753         Wide_Wide_String.
28754
28755         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
28756         accordance with AI-258.
28757         Add new declarations for 16/32 bit C character types (Part of AI285)
28758
28759         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
28760         (Obsolescent_Warning): New field
28761         (Rep_Clause): New local subprogram used to share code. Returns the rep
28762         clause for which the name is given in parameter.
28763         (Has_Stream_Size_Clause): New routine.
28764         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
28765         (Address_Clause): Implementation is now using Rep_Clause.
28766         (Alignment_Clause): Idem.
28767         (Size_Clause): Idem.
28768
28769         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
28770         entity in non-Ada 2005 mode and generate warning.
28771
28772         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
28773         (Prag): Code cleanup. Remove old gnat pragma "overriding"
28774
28775         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
28776         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
28777         on the named unit if the pragma is not in the current compilation unit,
28778         so that elaboration calls in the current unit can set up an elaboration
28779         dependency on the named unit, as needed.
28780         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
28781         subprogram as well as for subprograms declared within a package.
28782         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
28783         pragma overriding.
28784
28785         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
28786         to z) to avoid some instances of duplication for Wide_Wide packages.
28787
28788         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
28789         characters.
28790
28791         * scn.adb: Char_Literal_Value field is now a Uint
28792
28793         * scng.adb: Significant rewrite to handle new Ada 2005 features
28794         allowing wide and wide wide characters in program text, e.g. for
28795         identifiers, as described in AI-285.
28796         (Set_Reserved): New procedure, makes setting up keywords cleaner.
28797         (Initialize_Scanner): Register the new reserved words of Ada 2005.
28798         (Scan): Give support to the new reserved words.
28799
28800         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
28801         warning notifying that interface, overriding, and synchronized are
28802         new reserved words.
28803         (P_Pragma): Allow the use of the new reserved word "interface" as
28804         a pragma name.
28805
28806         * gnatls.adb, gnatbind.adb,
28807         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
28808         identifiers named "interface" to "SAL_Interface".
28809
28810         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
28811         (Structured Exception handling).
28812         (Gen_Main_C): Idem.
28813
28814         * bindgen.adb:
28815         (Gen_Main_Ada): Set the default exit code if specified.
28816         (Gen_Main_C): Likewise.
28817         Part of *DC20-006.
28818         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
28819         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
28820
28821         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
28822         new -Xnnn switch.
28823
28824         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
28825         has a collision with the new Ada 2005 "interface" reserved word.
28826
28827         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
28828         generate a warning notifying that interface, overriding, and
28829         synchronized are new reserved words.
28830
28831         * scans.ads (Token_Type): Addition of the tokens corresponding to the
28832         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
28833         and Tok_Synchronized.
28834
28835         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
28836         "dispatching" rather than "primitive" operations, since dispatching
28837         calls are now allowed to abstract formal subprograms (which are not
28838         primitive).
28839         Char_Literal_Value field is now a Uint
28840         (Resolve_Slice): If the prefix is an access to an unconstrained array,
28841         compute the actual subtype of the designated object to impose the proper
28842         index constraints.
28843         (Resolve_Selected_Component): Do not insert an access check if the
28844         prefix is an access type: such a node is expanded into an explicit
28845         dereference, on which the access check is performed anyway. Removes
28846         expensive duplicate checks.
28847         (Resolve_Call): Use new flag Is_Obsolescent and field
28848         Obsolescent_Warning so that pragma Obsolescent works on library
28849         subprograms.
28850         Add support for wide wide character type
28851         (Resolve_Allocator): Replace the error message on wrong null-exclusion
28852         value by a warning message.
28853         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
28854         as fixed-point, and one of the operands is non-static and universal, it
28855         can only be an illegal exponentiation operation, in which case there is
28856         no real value to retrieve.
28857
28858         * exp_strm.adb: Add support for wide wide character type
28859         (Build_Elementary_Input_Call): Compute the size of the stream element by
28860         querying the rep chain to find the Stream_Attribute attribute value.
28861         (Build_Elementary_Write_Call): Ditto.
28862
28863         * sem_aggr.adb: Char_Literal_Value field is now a Uint
28864         Add support for wide wide character type
28865         Replace the error messages on wrong null-exclusion value by warnings
28866         as described in Ada 2005.
28867         (Resolve_Extension_Aggregate): Document the fact that the error
28868         message on class-wide expressions in extensions aggregates.
28869
28870         * sem_case.adb: Add support for wide wide character type
28871
28872         * sem_ch13.adb: Add support for wide wide character type
28873         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
28874
28875         * sem_ch3.adb: Add support for wide wide character type
28876         (Process_Subtype): If constraint is illegal for the type, set Ekind of
28877         now-useless Itype, to prevent cascaded errors on a compiler built
28878         without -gnatp.
28879
28880         * sem_ch8.adb: Add with and use of Sem_Disp.
28881         (Analyze_Subprogram_Renaming): Replace unclean uses of
28882         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
28883         of Corresponding_Spec to Empty).
28884         (Attribute_Renaming): Replace use of Corresponding_Spec with
28885         Corresponding_ Formal_Spec and simplify condition.
28886         (Use_One_Package): Check that scope of homonym of identifier is defined,
28887         before checking whether it is a wrapper package.
28888         Add support for wide wide character type
28889
28890         * sem_eval.adb: Add support for wide wide character type.
28891         (Eval_Arithmetic_Op): Check for compile time known signed integer
28892         overflow in the non-static case.
28893         (Subtypes_Statically_Match): A formal scalar type and its base type do
28894         not statically match.
28895
28896         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
28897         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
28898         subtype).
28899         (Unit_Declaration_Node): Ditto.
28900         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
28901         has a packed array type, the prefix has been rewritten into a type
28902         conversion. Determine variable-ness from the converted expression.
28903         Handle wide wide character cases.
28904
28905         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
28906
28907         * stringt.ads, stringt.adb: Handle full UTF-32 range.
28908         Remove ["0A"] from comment, since it can look like a line terminator.
28909         Currently we don't permit this, but this is under discussion by the
28910         ARG, and it is easy enough to use a different example.
28911
28912         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
28913         handling UTF-32 encoding for wide wide character.
28914         Implement new brackets coding ["hhhhhhhh"]
28915         Add UTF-8 encodings for full UTF-32 range
28916
28917         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
28918
28919         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
28920         bit range Add full UTF-32 support.
28921         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
28922         notify that constraint error will be raised at run-time
28923         because a null value is assigned to a null-excluding object.
28924         Remove some obsolete declarations and make Char_Code
28925         unsigned.
28926
28927         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
28928         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
28929         Rcheck subprograms.
28930
28931         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
28932         wrong null-exclusion value by a warning message.
28933         (Enable_Range_Check): Do range check if the prefix is an
28934         explicit dereference whose designated object is an unconstrained array.
28935         Current algorithm for removing duplicate checks is over-eager in this
28936         case.
28937
28938         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
28939         null-exclusion value by a warning message
28940
28941         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
28942         completely. Add support for Uint2 field
28943
28944         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
28945         exp_prag.adb: Char_Literal_Value field is now a Uint.
28946
28947         * exp_util.adb (Insert_Actions): Replace
28948         N_Formal_Subprogram_Declaration by
28949         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
28950         Char_Literal_Value field is now a Uint.
28951
28952         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
28953         defined for subprogram renaming declarations. When set, the field
28954         indicates the defining entity of a corresponding formal subprogram
28955         when the renaming corresponds to a formal subprogram association in an
28956         instantiation.
28957         (Set_Corresponding_Formal_Spec): New procedure to return
28958         Corresponding_Formal_Spec field.
28959         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
28960         (which is now a subtype).
28961         Char_Literal_Value field is now a Uint
28962
28963         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
28964         pointer to the base of the dispatch table.
28965         Minor changes to comments.
28966         (Controlling_Type): New function for determining the tagged type
28967         associated with a tagged primitive subprogram.
28968         (Expand_Dispatching_Call): Add support for a controlling actual that is
28969         directly a value of type Ada.Tag rather than a tagged object.
28970
28971         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
28972         describing the new layout.
28973         (Dispatch_Table): The expander computes the actual array size, allocates
28974         the Dispatch_Table record accordingly, and generates code that displaces
28975         the base of the record after the Typeinfo_Ptr component. The access to
28976         these components is done by means of local functions.
28977         (Offset_To_Top): New function.
28978         (Typeinfo_Ptr): New function.
28979         (Get_TSD): Modified to access the new position of the TSD.
28980         (Set_TSD): Modified to save the TSD in its new position.
28981
28982         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
28983         case of formal abstract subprograms. Add check and message for -gnat05.
28984         Update comments.
28985
28986         * sem_ch12.adb: Add with and use for Sem_Disp.
28987         (Analyze_Associations): Minor change from "=" to "in" for use of
28988         N_Formal_Subtype_Declaration (which is now a subtype).
28989         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
28990         N_Formal_Subtype_Declaration (which is now a subtype).
28991         (Analyze_Formal_Subprogram): Add handling for
28992         N_Formal_Abstract_Subprogram, marking the formal as abstract and
28993         dispatching, setting the controlling status of the formal parameters
28994         and result, and issuing an error if there is no controlling type for
28995         the formal subprogram.
28996         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
28997         which is an unclean use of that field, we set the new field
28998         Corresponding_Formal_Spec to make the formal subprogram available to
28999         processing in Analyze_Subprogram_Declaration.
29000         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
29001         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
29002         Constrained, so that it is is does not statically match its anonymous
29003         base type.
29004
29005         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
29006         abstract formal subprograms in error check for functions returning
29007         abstract types. Set scope of new designator for
29008         a parameterless subprogram, so that it is available when checking the
29009         body for nested subprograms, before full analysis of said body.
29010         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
29011         subprogram only if inner one comes from source.
29012         (Analyze_Function_Call): If the call is given in object notation, the
29013         analysis of the name rewrites the node and analyzes it with the proper
29014         argument list. After analyzing the name, if the call has been rewritten
29015         and the result type is set, no further analysis is needed.
29016         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
29017         mark in function specification, in a context where the formals are
29018         visible and hide outer homographs.
29019
29020         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
29021         as the tagged type for the cases of abstract formal subprograms and
29022         renamings of those.  Clean up spec comments.
29023         (Check_Dispatching_Context): Add error message to indicate "abstract
29024         procedure", covering the case of a call to a formal abstract procedure
29025         that has statically tagged operands.
29026         (Check_Dispatching_Call): Check for the case of an actual given by
29027         a tag-indeterminate function call whose type is an ancestor of the
29028         containing call's associated tagged type. This situation can occur
29029         for inherited primitives with function defaults. In this case we
29030         use the tagged type's tag directly as the controlling argument for
29031         the calls.
29032         (Expand_Call): Name change on call to Expand_Dispatch_Call.
29033
29034         * sprint.adb (Sprint_Node_Actual): Split
29035         N_Formal_Subprogram_Declaration into two alternatives for the new
29036         cases N_Formal_Abstract_Subprogram_Declaration and
29037         N_Formal_Concrete_Subprogram_Declaration.
29038         Char_Literal_Value field is now a Uint.
29039
29040         * trans.c: Get rid of junk Uint2 reference.
29041         Char_Literal_Value field is now a Uint.
29042         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
29043         (gigi): Correct third arg to gimplify_body.
29044
29045         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
29046         (TYPE_LANG_FLAG_0): Check for record or union.
29047
29048         * treepr.adb: Char_Literal_Value field is now a Uint
29049
29050         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
29051         UI_From_CC.
29052
29053         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
29054         Add full UTF-32 support
29055         Char_Code is now 32 bits
29056
29057         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
29058         wide character UTF_32 line terminators.
29059         Initialize Main_Source_File to avoid error when no main
29060         source is loaded.
29061
29062         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
29063         (Main_Source_File) when no main source has been loaded, to avoid
29064         potential crash.
29065
29066 2005-02-09  Robert Dewar  <dewar@adacore.com>
29067
29068         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
29069         Fix name of Set routine
29070
29071         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
29072         fixed packages.
29073
29074         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
29075         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
29076         fixed packages
29077
29078         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
29079         forms of Get_Line subprograms for AI-301.
29080
29081         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
29082         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
29083         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
29084         a-stwima.ads: Minor reformatting.
29085
29086 2005-02-09  Doug Rupp  <rupp@adacore.com>
29087             Thomas Quinot  <quinot@adacore.com>
29088
29089         * adaint.c, adaint.h
29090         [VMS] (to_ptr32): New function.
29091         (MAYBE_TO_PTR32): New macro.
29092         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
29093         for pointer size.
29094         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
29095         [VMS] (#define fork()): Remove since unneccessary.
29096         (__gnat_set_close_on_exec): New routine to support
29097         GNAT.OS_Lib.Set_Close_On_Exec.
29098
29099         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
29100         the parent side as close-on-exec so that they are not inherited by the
29101         child.
29102
29103         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
29104         set or clear the FD_CLOEXEC flag on a file descriptor.
29105
29106 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
29107             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29108
29109         PR ada/19386
29110         * decl.c:
29111         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
29112         on the field if Pragma Component_Alignment (Storage_Unit).
29113         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
29114         side-effects as if it were a constant; also make SAVE_EXPR to protect
29115         side-effects.
29116         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
29117         UNION_TYPE.
29118         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
29119         (components_to_record): Test it.
29120         Fix improper usage of REFERENCE_CLASS_P.
29121
29122         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
29123         RECORD_TYPE.
29124
29125         * utils2.c: Minor reformatting.
29126
29127         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
29128         handle other cases like RECORD_TYPE.
29129
29130         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
29131
29132 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
29133
29134         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
29135         component of an array of arrays in an assignment context, and the
29136         aggregate has component associations that require sliding on
29137         assignment, force reanalysis of the aggregate to generate a temporary
29138         before the assignment.
29139         (Must_Slide): Make global to the package, for use in Gen_Assign.
29140
29141 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
29142
29143         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
29144         unchecked union with no inferable discriminants, return a
29145         Raise_Program_Error node, rather than inserting it at the point the
29146         type is frozen.
29147         (Expand_Record_Equality, Component_Equality): Handle properly the case
29148         where some subcomponent is an unchecked union whose generated equality
29149         code raises program error.
29150
29151 2005-02-09  Doug Rupp  <rupp@adacore.com>
29152
29153         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
29154         [VMS] (#define exit hack): Remove.
29155
29156 2005-02-09  Pascal Obry  <obry@adacore.com>
29157             Arnaud Charlet  <charlet@adacore.com>
29158
29159         * init.c (__gnat_initialize): Add a new parameter eh which contains the
29160         address of the exception registration. The Win32 version of this
29161         routine calls __gnat_install_SEH_handler() to initialize the SEH
29162         (Structured Exception Handling) handler.
29163         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
29164         SEH (Structured Exception Handling) now.
29165         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
29166         (__gnat_initialize for ppc-vxworks): Adjust comments and the
29167         preprocessor condition protecting the call to the extra eh setup
29168         subprogram, which is only available for the ppc target.
29169         (__gnat_clear_exception_count): replaced reference to
29170         variable taskIdCurrent by call to taskIdSelf(), cleaner.
29171
29172         * seh_init.c: New file.
29173
29174         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
29175         (GNATBIND_OBJS): Idem.
29176
29177         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
29178         routine takes a new parameter (a pointer to the exception registration
29179         for the SEH (Structured Exception Handling) support.
29180
29181         * raise.h: (__gnat_install_SEH_handler): New prototype.
29182         Update copyright notice.
29183
29184         * s-tassta.adb (Task_Wrapper): Declare the exception registration
29185         record and initialize it by calling __gnat_install_SEH_handler.
29186
29187 2005-02-09  Vincent Celier  <celier@adacore.com>
29188
29189         * make.adb (Gnatmake): Do not fail when the main project has no object
29190         directory.
29191
29192 2005-02-09  Doug Rupp  <rupp@adacore.com>
29193
29194         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
29195         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
29196         [VMS]: Add translations for g-enblsp.adb.
29197
29198         * s-asthan-vms.adb: Removed.
29199         * s-asthan-vms-alpha.adb: Added.
29200
29201 2005-02-09  Pascal Obry  <obry@adacore.com>
29202
29203         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
29204         (LIBGNAT_OBJS): Add seh_init.o.
29205
29206 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
29207
29208         PR ada/16592
29209         * Makefile.in: Link all gnat tools with -static-libgcc, since
29210         -shared-libgcc is now used by default on some systems (e.g. linux with
29211         recent binutils).
29212         Remove references to Makefile.prolog/generic, no longer used.
29213
29214 2005-02-09  Vincent Celier  <celier@adacore.com>
29215
29216         * prj-makr.adb (Process_Directory): Put file name in canonical case
29217         before matching against the patterns.
29218         If gnatname has been invoked as <prefix>-gnatname
29219         then invoke the compiler as <prefix>-gcc, not just "gcc".
29220
29221 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
29222
29223         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
29224         with expansion disabled. The actual subtype is needed among other
29225         places when the selected component appears in the context of a loop
29226         bound, and denotes a packed array.
29227         (Operator_Check): Always use the first subtype in the
29228         error message, to avoid the appearance of internal base types.
29229         (Transform_Object_Operation): Copy each actual in full
29230         to the parameter associations of the constructed call, rather than
29231         using the shallow copy mechanism of New_Copy_List. This ensures that
29232         the chaining of named associations is done properly.
29233         (Complete_Object_Operation): Rewrite node, rather than
29234         replacing it, so that we can trace back to the original selected
29235         component.
29236
29237         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
29238         and calls that use object notation, if the called function is not
29239         declared  in a withed unit, place the elaboration constraint on the
29240         unit in the context that makes the function accessible.
29241         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
29242         imposes an elaboration constraint between two packages.
29243
29244 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
29245
29246         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
29247         views of a private type after handling its private dependents, to
29248         maintain proper stack discipline between entry and exit from the
29249         package.
29250
29251 2005-02-09  Cyrille Comar  <comar@adacore.com>
29252
29253         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
29254         Minor reformatting.
29255
29256 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
29257
29258         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
29259         fields for foreign threads.
29260
29261 2005-02-09  Doug Rupp  <rupp@adacore.com>
29262
29263         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
29264         recursion warnings when compiled with -gnatdm.
29265
29266 2005-02-09  Robert Dewar  <dewar@adacore.com>
29267
29268         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
29269         Slight fix to documentation of -gnaty with no parameters
29270
29271         * xr_tabls.ads: Add ??? comment for missing overall comment
29272
29273         * xsinfo.adb: Make default file name be sinfo.h, since this is what
29274         we now use by default.
29275
29276         * xsnames.adb: Adjust end of file test to look for five space followed
29277         by '#' instead of six spaces. The format of xsnames.adb was modified
29278         in the last update.
29279
29280         * a-numeri.ads: Add reference to AI-388 for greek letter pi
29281         identifier.
29282
29283         * clean.adb: Minor reformatting.
29284
29285         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
29286         gnatname.adb: Minor reformatting
29287         Add 2005 to copyright output when utility is run
29288
29289         * csets.adb: Eliminate obsolete comment
29290
29291         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
29292         Update comments.
29293
29294         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
29295
29296 2005-02-09  Sergey Rybin  <rybin@adacore.com>
29297
29298         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
29299         the difference between compact and incompact layout and add the record
29300         representation clause to the example illustrating different layouts.
29301         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
29302         component clauses").
29303
29304 2005-02-09  Florian Villoing  <villoing@adacore.com>
29305
29306         * gnat_ugn.texi: Fix typos.
29307         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
29308         @file.
29309         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
29310         in the generated documentation.
29311
29312 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
29313
29314         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
29315         longer supported.
29316         Update linker wrapper when linking with non GNU C++.
29317
29318 2005-02-09  Pascal Obry  <obry@adacore.com>
29319
29320         * gnat_ugn.texi:
29321         Document the procedure to debug the DllMain routine on Windows.
29322         Add note about -funwind-tables and mixed Ada and C/C++ programming in
29323         ZCX mode.
29324         Document new BIND qualifer /RETURN_CODES=VMS.
29325
29326 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
29327
29328         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
29329         Edited gnatmetric chapter
29330
29331 2005-02-09  Robert Dewar  <dewar@adacore.com>
29332
29333         * gnat_rm.texi:
29334         Changes to document new wide wide character support
29335         For AI-285
29336         Update documentation on Normalize_Scalars and Initialize_Scalars
29337
29338 2005-02-09  Pascal Obry  <obry@adacore.com>
29339
29340         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
29341
29342 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
29343
29344         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
29345         from the VxWorks kernel) that is needed for getting the active
29346         priority of the different tasks.
29347
29348         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
29349         Use a pragma Elaborate_Body in the spec file instead.
29350         Noticed by code reading.
29351
29352 2005-02-09  Thomas Quinot  <quinot@adacore.com>
29353
29354         * exp_util.ads: Minor correction in comment.
29355
29356 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
29357
29358         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
29359         since this procedure is now too complex to be worth inlining.
29360
29361 2005-02-09  Richard Henderson  <rth@redhat.com>
29362
29363         * utils.c (gnat_define_builtin): Remove.
29364         (gnat_install_builtins): Use build_common_builtin_nodes.
29365
29366 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
29367
29368         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
29369         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
29370         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
29371         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
29372         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
29373         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
29374         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
29375         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
29376         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
29377         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
29378         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
29379         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
29380         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
29381         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
29382         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
29383         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
29384         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
29385         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
29386         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
29387         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
29388         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
29389         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
29390         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
29391         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
29392         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
29393         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
29394         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
29395         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
29396         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
29397         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
29398         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
29399         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
29400         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
29401         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
29402         library.
29403
29404 2005-01-27  Laurent Guerby  <laurent@guerby.net>
29405
29406         * Makefile.in: Fix a-intnam.ads from previous commit,
29407         add 2005 to copyright.
29408         * a-intman-rtems.ads: Renamed to...
29409         * a-intnam-rtems.ads:
29410
29411 2005-01-27  Laurent Guerby  <laurent@guerby.net>
29412
29413         * Makefile.in: Rename GNAT RTEMS specific files.
29414         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
29415         5rosinte.ads, 5rparame.adb: Replaced by files below.
29416         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
29417         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
29418
29419 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
29420             Laurent Guerby  <laurent@guerby.net>
29421
29422         PR ada/19488
29423         * 5rosinte.ads: Add No_Key constant.
29424         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
29425         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
29426
29427 2005-01-26  Laurent Guerby  <laurent@guerby.net>
29428
29429         PR ada/19414
29430         * i-cobol.adb (Valid_Numeric): Handle zero length case.
29431
29432 2005-01-20  Richard Henderson  <rth@redhat.com>
29433
29434         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
29435         a-intnam-linux.ads and system-linux-alpha.ads.
29436         * a-intnam-linux-alpha.ads: Remove file.
29437         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
29438         * system-linux-alpha.ads: New file.
29439
29440 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
29441
29442         PR ada/13470
29443         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
29444         set to the new string.
29445
29446 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
29447
29448         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
29449         to True.
29450
29451 2005-01-18  Richard Henderson  <rth@redhat.com>
29452
29453         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
29454         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
29455         for alpha-linux.
29456         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
29457
29458 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
29459
29460         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
29461         (GCC_ZCX_Support): Likewise.
29462
29463 2005-01-11  Bastian Blank  <waldi@debian.org>
29464
29465         * system-linux-s390.ads: Define Preallocated_Stacks.
29466         * system-linux-s390x.ads: Likewise.
29467
29468 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
29469
29470         * gnat_ugn.texi: Fix texi errors with null variables.
29471
29472 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29473
29474         * gen-soccon.c: New utility program to generate g-soccon.ads
29475         automatically.
29476
29477         * socket.c, gsocket.h: Split inclusion of system header files into a
29478         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
29479
29480         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
29481         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
29482         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
29483         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
29484         should not be edited by hand anymore, but should be regenerated using
29485         gen-soccon.
29486
29487 2005-01-03  Robert Dewar  <dewar@adacore.com>
29488             Ed Schonberg  <schonberg@adacore.com>
29489             Vincent Celier  <celier@adacore.com>
29490
29491         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
29492         on/off, since this is an obsolescent feature, for which we now generate
29493         a warning.
29494
29495         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
29496         warning mode is set and obsolescent usage of this attribute occurs.
29497         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
29498         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
29499         predates, and partly motivates, the adoption of the AI.
29500         Implement new Ada 2005 attribute Mod
29501
29502         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
29503         attribute Mod.
29504
29505         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
29506
29507         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
29508         pragma restrictions.
29509         New entry for Ada 2005 attribute Mod.
29510
29511         * par-prag.adb:
29512         Add recognition of new pragma Restrictions No_Dependence
29513         Recognize restriction No_Obsolescent_Features at parse time
29514
29515         * bcheck.adb: Add circuitry for checking for consistency of
29516         No_Dependence restrictions.
29517
29518         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
29519         restrictions.
29520
29521         * restrict.ads, restrict.adb: Add subprograms to deal with
29522         No_Dependence restrictions.
29523
29524         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
29525         restrictions.
29526
29527         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
29528         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
29529
29530         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
29531         dummy parameter to scng instantiation.
29532         Needed for new restriction No_Obsolescent_Features
29533
29534         * scn.adb: (Obsolescent_Check): New procedure
29535         Needed for new restriction No_Obsolescent_Features
29536
29537         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
29538         specified by AI-285, needed for implementation of AI-388 (adding greek
29539         pi to Ada.Numerics).
29540         Add new generic formal to scng, needed for new restriction
29541         No_Obsolescent_Features.
29542
29543         * s-rident.ads: Add new restriction No_Obsolescent_Features.
29544
29545         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
29546         restrictions lines.
29547         (Scan_ALI): When finding an unexpected character on an R line, raise
29548         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
29549         Ignore_Errors is True, default restrictions are set and scanning of the
29550         ALI file continues with the next line. Also, when Bad_R_Line is raised
29551         and Ignore_Errors is True, skip to the end of le line.
29552
29553         * sem_ch10.adb: Check that explicit with's do not violate
29554         No_Dependence restrictions.
29555         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
29556         illegal context clauses containing child units of instance.
29557
29558         * sem_prag.adb: Processing and checking for new No_Dependence
29559         restrictions.
29560         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
29561         analyze and check the External argument.
29562
29563         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
29564
29565 2005-01-03  Robert Dewar  <dewar@adacore.com>
29566
29567         * atree.adb: Add a fifth component to entities
29568         This allows us to add 32 flags and four new fields
29569
29570         * atree.ads: Add a fifth component to entities
29571         This allows us to add 32 flags and four new fields
29572
29573         * einfo.ads, einfo.adb: Document new fields and new flags now available
29574         Add routines for printing new fields
29575
29576         * treepr.adb: Call routines to print out additional fields if present
29577
29578 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29579
29580         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
29581         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
29582
29583         * Makefile.in: Add support to build shared Ada libraries on solaris x86
29584         Remove gpr2make, replaced by gprmake.
29585         Remove references to gnatmem and libaddr2line.
29586         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
29587         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
29588         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
29589         a-numaux-darwin.ads and a-numaux-darwin.adb
29590         Enable mlib-tgt-lynxos.adb on lynxos.
29591
29592         * Make-lang.in: Remove rules for gpr2make.
29593         When generating sdefault.adb, do not call Relocate_Path
29594         on S3 for function Target_Name, as it is not a path.
29595         Remove references to gnatmem and libaddr2line.
29596
29597         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
29598         files.
29599
29600 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
29601
29602         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
29603         address is incompatible with its base type alignment constraints when
29604         this can be decided statically.
29605
29606 2005-01-03  Olivier Hainque  <hainque@adacore.com>
29607
29608         * decl.c (compatible_signatures_p): New function. The intended purpose
29609         is to check if two function signatures for a call-site and a callee are
29610         compatible enough for the call to be valid. The underlying purpose is
29611         to check if a call to a mapped builtin is using the right interface.
29612         The current code actually does not check antyhing - this a placeholder
29613         for future refinements.
29614         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
29615         builtin calls for convention Intrinsic.
29616
29617         * gigi.h (builtin_decl_for): Declare (new function).
29618
29619         * utils.c (gnat_install_builtins): Install the target specific builtins.
29620         (builtin_decl_for): New function, provide a dummy body for now.
29621
29622 2005-01-03  Geert Bosch  <bosch@adacore.com>
29623
29624         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
29625         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
29626         (Pred): Implement in terms of Succ.
29627
29628         * trans.c (convert_with_check): Reimplement conversion of float to
29629         integer.
29630
29631 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29632             Vincent Celier  <celier@adacore.com>
29633
29634         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
29635         bounds can be negative, and must be declared Int, not Nat.
29636
29637         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
29638         array is checked after using the index in the array.
29639
29640         * makegpr.adb (Add_Switches): Check if there is a package for the
29641         processor. If there is no package, do not look for switches.
29642
29643 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29644
29645         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
29646         generation of predefined stream operations (specs and bodies) should
29647         proceed. Under various restrictions these subprograms must not be
29648         generated.
29649
29650 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29651
29652         * exp_dist.adb:
29653         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
29654         amount of PCS-specific code in RACW stubs generation.
29655         (Copy_Specification): Set Etype on copied formal parameter entities, as
29656         this information is needed for PolyORB stubs generation.
29657         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
29658         variable Dynamic_Async.
29659         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
29660         (Build_RPC_Receiver_Specification): Make generic again, as recent
29661         changes have allowed RPC receivers to have the same profile for both
29662         variants of the PCS.
29663         Reorganise RPC receiver generation to reduce differences between the
29664         structure of GARLIC and PolyORB RPC receivers.
29665         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
29666         PCS-specific.
29667         Simplify elaboration code for RCI packages.
29668
29669         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
29670         generation to reduce differences between the structure of GARLIC and
29671         PolyORB RPC receivers.
29672
29673         * s-stratt.adb: Fix typo in comment.
29674
29675 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29676
29677         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
29678         copied from Make_Init_Call).
29679
29680         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
29681         reads and assignments on a temporary variable declared with appropriate
29682         discriminants.
29683
29684 2005-01-03  Robert Dewar  <dewar@adacore.com>
29685
29686         * i-c.adb (To_C): Raise CE if string is null and Append_Null
29687
29688 2005-01-03  Robert Dewar  <dewar@adacore.com>
29689
29690         * i-cstrin.adb (Update): Do not append a null in form called with a
29691         String. This avoids unintended behavior.
29692
29693 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29694
29695         PR ada/17527
29696         * init.c: Fix warnings on Free BSD section.
29697
29698 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29699
29700         PR ada/16949
29701         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
29702         xsinfo.adb).
29703
29704 2005-01-03  Vincent Celier  <celier@adacore.com>
29705
29706         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
29707         libraries when Unique_Compile is True (-u switch).
29708         (Gnatmake): ditto.
29709
29710 2005-01-03  Robert Dewar  <dewar@adacore.com>
29711
29712         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
29713         upper case letter or underscore after W, as allowed by spec.
29714
29715 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29716
29717         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
29718         darwin port by using proper type definitions from header files.
29719         Use SIGTERM instead of SIGABRT for SIGADAABORT.
29720
29721 2005-01-03  Robert Dewar  <dewar@adacore.com>
29722
29723         * par.adb: Enhance error message handling for configuration file
29724         pragmas.
29725
29726 2005-01-03  Robert Dewar  <dewar@adacore.com>
29727
29728         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
29729         removed during the previous update (test properly for case of dividing
29730         largest negative number by -1, which generates overflow).
29731
29732 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29733             Sergey Rybin  <rybin@adacore.com>
29734
29735         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
29736         to use as the defining identifier for a formal package.
29737         (Remove_Parent): If the instance takes place within (an instance of)
29738         a sibling, preserve private declarations of common parent.
29739
29740 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29741
29742         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
29743         to determine whether one of the operands is a fixed-point type for
29744         which a user-defined multiplication or division operation might be
29745         defined.
29746
29747         * sem_res.adb (Valid_Conversion): The legality rules for conversions
29748         of access types are symmetric in Ada 2005: either designated type can
29749         be unconstrained.
29750
29751 2005-01-03  Vincent Celier  <celier@adacore.com>
29752
29753         * s-fileio.adb (Temp_File_Record): Change length of string component
29754         Name from L_tmpnam + 1 to max_path_len + 1.
29755
29756 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29757
29758         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
29759         Self_Id.Deferral_Level = 0.
29760         (Do_Pending_Action): Move this function to the spec.
29761
29762         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
29763         Do_Pending_Action explicitely when needed, in case we're using
29764         No_Abort restrictions.
29765
29766         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
29767         deferral level since it will not get changed by the generated code.
29768         Keeping a default value of 1 would prevent some operations (e.g.
29769         select or delay) to proceed successfully.
29770
29771 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
29772             Robert Dewar  <dewar@adacore.com>
29773             Cyrille Comar  <comar@adacore.com>
29774
29775         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
29776         porting guide chapter (vms version).
29777         Revised doc title (removed "for native platforms") and subtitle.
29778         Add discussion on warning flag for obsolescent features. First we
29779         note that it applies to obsolete GNAT features, which was previously
29780         omitted. Second we contrast the behavior with that of the new
29781         Ada 2005 AI-368 restriction No_Obsolescent_Features.
29782         Preliminary rewriting of GNAT & libraries chapter in order to take
29783         into account default project locations & new project manager
29784         capabilities.
29785
29786 2005-01-03  Robert Dewar  <dewar@adacore.com>
29787
29788         * cstand.adb (Create_Operators): Clean up format and documentation of
29789         unary and binary operator result tables. No change in code, just
29790         reformatting and addition of comments.
29791
29792         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
29793         sem_ch2.adb: Minor reformatting
29794
29795         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
29796         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
29797         comments for Tree_Read and Tree_Write.
29798
29799 2005-01-03  Pascal Obry  <obry@adacore.com>
29800
29801         * exp_attr.ads: Minor reformatting.
29802
29803 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
29804
29805         * comperr.adb (Compiler_Abort): Add specialized message for GAP
29806         versions.
29807
29808 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29809
29810         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
29811         whether the ancestor type is private, as may be the case with nested
29812         instantiations.
29813
29814 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
29815
29816         PR ada/19128
29817         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
29818
29819 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
29820
29821         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
29822         * utils2.c (build_unary_op): Likewise.
29823
29824 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29825
29826         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
29827
29828 2004-12-19  Richard Henderson  <rth@redhat.com>
29829
29830         * trans.c (gigi): Update gimplify_body call.
29831
29832 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
29833
29834         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
29835
29836 2004-12-07  Ed Falis  <falis@adacore.com>
29837
29838         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
29839         current task being suspended.
29840
29841         * init.c (__gnat_clear_exception): added to reset VxWorks exception
29842         count.
29843         (__gnat_map_signal): removed test for current task being suspended.
29844
29845 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
29846
29847         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
29848         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
29849         targets (such as AAMP).
29850
29851 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
29852
29853         * atree.adb (Visit_Itype): Create a new name for the generated itype,
29854         because the back-end may otherwise treat it as a redefinition of the
29855         old symbol.
29856
29857 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
29858
29859         * back_end.adb (Scan_Back_End_Switches): Accept --param.
29860
29861         * lang-specs.h: Accept --param.
29862
29863 2004-12-07  Vincent Celier  <celier@adacore.com>
29864
29865         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
29866         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
29867         Current_Body_Suffix => Ada_Body_Suffix).
29868         Take into account Externally_Built attribute.
29869
29870         * clean.adb (In_Extension_Chain): Always return False when one of the
29871         parameter is No_Project.
29872         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
29873         Ada_Language_Index).
29874         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
29875         Process_Languages for procedure Parse).
29876
29877         * gnatcmd.adb (Carg_Switches): New table.
29878         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
29879         Adapt to name changes in package Prj (Current_Spec_Suffix =>
29880         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
29881
29882         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
29883         Header_Num and function Hash are now declared in package Prj,
29884         not Prj.Com.
29885
29886         * prj.adb (Suffix_Of): New function.
29887         (Set (Suffix)): New procedure.
29888         (Hash): One function moved from Prj.Com
29889         (Is_Present, Language_Processing_Data_Of): New functions
29890         (Set): Two new procedures
29891         (Add_Language_Name, Display_Language_Name): New procedures
29892
29893         * prj.ads: (Suffix_Of): New function
29894         (Set (Suffix)): New procedure
29895         Add several types and tables for multi-language support.
29896         (Header_Num): Type moved from Prj.Com
29897         (Hash): Two functions moved from Prj.Com
29898         (Is_Present, Language_Processing_Data_Of): New functions
29899         (Set): Two new procedures
29900         (Add_Language_Name, Display_Language_Name): New procedures
29901         (Naming): Component name changes:
29902         Current_Spec_Suffix => Ada_Spec_Suffix,
29903         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
29904         Impl_Suffixes, Supp_Suffixes.
29905         (Project_Data): New components: Externally_Built, Supp_Languages,
29906         First_Language_Processing, Supp_Language_Processing, Default_Linker,
29907         Default_Linker_Path.
29908
29909         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
29910         new package Language_Processing with its attributes (Compiler_Driver,
29911         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
29912         Binder_Driver, Default_Linker).
29913
29914         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
29915         (Header_Num): Type moved to package Prj
29916
29917         * prj-env.adb: Adapt to name changes in package Prj
29918         (Current_Spec_Suffix => Ada_Spec_Suffix,
29919         Current_Body_Suffix => Ada_Body_Suffix).
29920
29921         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
29922         default to the project path, except the "-" is one of the directories
29923         in env var ADA_PROJECT_PATH.
29924         (Current_Project_Path): Global variable, replacing Project_Path
29925         that was in the body of Prj.Part.
29926         (Project_Path): New function
29927         (Set_Project_Path): New procedure
29928         Initialize Current_Project_Path during elaboration of the package
29929         Remove dependency on Prj.Com, no longer needed
29930
29931         * prj-ext.ads (Project_Path): New function
29932         (Set_Project_Path): New procedure
29933
29934         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
29935         suffix is defined for language <lang>.
29936         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
29937         accessing directly the components of Naming.
29938         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
29939         Reorganise of this package.
29940         Break procedure Check in several procedures.
29941
29942         * prj-nmsc.ads: Replace all procedures (Ada_Check,
29943         Other_Languages_Check and Language_Independent_Check) with a single
29944         procedure Check.
29945
29946         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
29947         Process_Languages, no longer needed.
29948
29949         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
29950         Current_Project_Path.
29951         Remove elaboration code, moved to the body of Prj.Ext
29952         Use new function Prj.Ext.Project_Path instead of old variable
29953         Project_Path.
29954         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
29955         When comparing with project paths on the stack, first put the resolved
29956         path in canonical case.
29957         (Parse_Single_Project): Set the path name of the project file in the
29958         tree to the normalized path.
29959
29960         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
29961         parameter Process_Languages, no longer needed.
29962         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
29963         Other_Languages_Check.
29964
29965         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
29966         to store the resolved canonical path of the project file.
29967         Remove dependency to Prj.Com, no longer needed
29968
29969         * prj-util.adb: Adapt to name changes in package Prj
29970         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
29971         Ada_Body_Suffix).
29972
29973         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
29974         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
29975         Externally_Built, Include_Option, Language_Processing.
29976
29977         * makegpr.adb: Numerous changes due to changes in packages
29978         Prj and Prj.Nmsc.
29979
29980         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
29981         default to the project path, except whe "-" is one of the directories
29982         in env var ADA_PROJECT_PATH.
29983         (Gnatls): In verbose mode, add the new section "Project Search Path:"
29984
29985 2004-12-07  Robert Dewar  <dewar@adacore.com>
29986
29987         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
29988
29989         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
29990         set -gnatR3m mode.
29991
29992         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
29993         flag. No longer needed now that we handle this in gnat1drv.adb.
29994
29995         * repinfo.ads: Minor reformatting
29996
29997 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29998             Olivier Hainque  <hainque@adacore.com>
29999             Eric Botcazou  <ebotcazou@adacore.com>
30000
30001         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
30002         TYPE_SIZE_UNIT of result type if SIZE is not specified.
30003         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
30004         of a bitfield, which we know is useless and causes trouble because of
30005         alignment implications.
30006
30007         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
30008         BSS sections.
30009         (process_attributes): Clear DECL_COMMON again when a section attribute
30010         is present.
30011         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
30012         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
30013         (create_field_decl): Special case ADDRESSABLE negative to mean
30014         "no bitfield creation", to be used by make_aligning_type. Don't
30015         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
30016         fields claimed addressable still have to be bitfields. Use
30017         value_factor_p instead of a raw binop construction to check for the
30018         position's alignment.
30019
30020 2004-12-07  Geert Bosch  <bosch@adacore.com>
30021
30022         * eval_fat.adb: Revert previous change.
30023
30024 2004-12-07  Thomas Quinot  <quinot@adacore.com>
30025             Ed Schonberg  <schonberg@adacore.com>
30026
30027         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
30028         with an implicit dereference as its prefix, use
30029         Insert_Explicit_Dereference instead of merely rewriting the prefix into
30030         an explicit dereference. This ensures that a reference to the original
30031         prefix is generated, if appropriate.
30032
30033         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
30034         dereference is rewritten to an explicit one, generate a reference to
30035         the entity denoted by its prefix using the original prefix node, so
30036         the dereference can be properly recorded as a read of the denoted
30037         access value, if appropriate.
30038
30039         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
30040         emitting 'assigned but never read' warning on a variable on the basis
30041         that it has an access type.
30042         (Check_References): Emit unreferenced warning when the scope is a
30043         subprogram body.
30044
30045 2004-12-07  Robert Dewar  <dewar@adacore.com>
30046             Ed Schonberg  <schonberg@adacore.com>
30047
30048         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
30049         intrinsic
30050
30051         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
30052         leaving call unchanged.
30053         This deals with the case where the pragma Import specified
30054         an external name, to be handled by the back end.
30055
30056         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
30057         subprogram which is Imported with convention Intrinsic if an
30058         External_Name argument is specified.
30059         (Process_Import_Or_Interface): Properly diagnose link name argument.
30060         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
30061         with Sem_Ch6.Cannot_Inline.
30062         (Process_Inline): Provide separate warning for inapplicable inline
30063         pragma.
30064         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
30065         treatment is uniform on different targets.
30066
30067 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
30068
30069         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
30070         construct is rewritten, preserve end label to permit source navigation.
30071
30072 2004-12-07  Thomas Quinot  <quinot@adacore.com>
30073
30074         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
30075         Specific_Build_Stub_Target): New subprograms.
30076         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
30077         the PCS implementation used, using the above PCS-customized subprograms.
30078         Minor reformatting.
30079         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
30080         for generation of DSA code targeted to the PolyORB PCS.
30081         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
30082         implementation of the partition communication subsystem in ancillary
30083         subprograms.
30084         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
30085         PolyORB_Support.Build_Stub_Type): New subrograms containing the
30086         PCS-specific part of Add_Stub_Type.
30087         (Insert_Partition_Check): Use runtime library function to perform
30088         E.4(19) check.
30089
30090         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
30091         (RE_Same_Partition): New entity, from s-parint.
30092
30093         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
30094
30095 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
30096
30097         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
30098         Output the copyright message on a separate line from the version
30099         message.
30100
30101 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
30102
30103         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
30104         compile-time warning.
30105
30106 2004-12-07  Robert Dewar  <dewar@adacore.com>
30107
30108         * g-regpat.adb: (Match): Change a misuse of or to or else
30109
30110 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
30111
30112         * lib-xref.adb:
30113         (Generate_Reference): Handle properly a reference to an entry formal,
30114          when an accept statement has a pragma Unreferenced for it.
30115
30116         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
30117         and the Has_Pragma_Unreferenced flag for each formal before analyzing
30118         the body, to ensure that warnings are properly emitted for each accept
30119         statement of a given task entry.
30120
30121 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
30122
30123         * Makefile.in: Add support for foreign threads on VMS.
30124
30125 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30126
30127         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
30128         Remove.
30129         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
30130
30131         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
30132
30133         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
30134         exception.
30135         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
30136
30137 2004-12-07  Robert Dewar  <dewar@adacore.com>
30138
30139         * nlists.adb (Prepend_Debug): Remove parameters and nest within
30140         Prepend.
30141         (Remove_Next_Debug): Same fix
30142
30143         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
30144         maintain back pointers now, though we did not used to, and comments
30145         were out of date).
30146         (Prepend): Remove pragma Inline.
30147         (Remove_Next): Same cleanup
30148
30149 2004-12-07  Thomas Quinot  <quinot@adacore.com>
30150
30151         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
30152         used to record an implicit dereference as a read operation on its
30153         prefix when operating under -gnatc. Necessary to avoid spurious
30154         'variable assigned but never read' warnings in that mode.
30155         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
30156         is a non-overloaded implicit dereference, call the above subprogram to
30157         ensure proper recording of references.
30158
30159 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
30160
30161         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
30162         to be resolved later as part of Analyze_Iteration_Scheme's call to
30163         Make_Index.
30164
30165 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
30166
30167         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
30168         prefix is not a scalar type, place error message on prefix, not on
30169         type entity.
30170
30171 2004-12-07  Bernard Banner  <banner@adacore.com>
30172
30173         * vxaddr2line.adb: Add support for x86 vxworks
30174
30175 2004-12-07  Thomas Quinot  <quinot@adacore.com>
30176
30177         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
30178         documentation of the behaviour of these functions when passed an IP
30179         address that has no record in the system hosts database and no reverse
30180         record in the DNS.
30181
30182         * cstand.adb, a-tags.ads: Fix typos in comment.
30183
30184 2004-12-07  Robert Dewar  <dewar@adacore.com>
30185
30186         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
30187         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
30188         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
30189         s-poosiz.ads: Minor reformatting
30190
30191         * make.adb: Minor reformatting
30192         Add some ??? comments asking for more comments
30193
30194         * s-poosiz.adb: Minor reformatting
30195         Add comments on alignment requirement
30196
30197         * sinfo.ads: Remove obsolete comment and fix typo.
30198
30199 2004-12-07  Vincent Celier  <celier@adacore.com>
30200             Sergey Rybin  <rybin@adacore.com>
30201
30202         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
30203         Files" with the new tool and package names.
30204         Reformatting to suppress most of the warnings for line too long
30205         Document the new section "Project Search Path:" in the output of
30206         gnatls -v.
30207         Add gnatmetric section
30208
30209 2004-12-07  Vincent Celier  <celier@adacore.com>
30210
30211         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
30212         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
30213         and -eit to -ept. Added qualifier
30214         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
30215
30216 2004-11-27  Andreas Schwab  <schwab@suse.de>
30217
30218         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
30219
30220 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
30221
30222         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
30223         internal implementation unit GNAT.Sockets.Thin,
30224         as their usage for sockets is non-portable (using the read and write
30225         functions from the system runtime library is fine on UNIX but won't
30226         work under Windows).
30227
30228         * mingw32.h: Update copyright notice.
30229
30230 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
30231
30232         * ada-tree.h: Minor reformatting of previous change to avoid lines
30233         longer than 79 characters.
30234
30235 2004-11-25  Olivier Hainque  <hainque@adacore.com>
30236
30237         * tb-gcc.c: GCC infrastructure based implementation of
30238         __gnat_backtrace.
30239
30240 2004-11-24  Steven Bosscher  <stevenb@suse.de>
30241
30242         * misc.c (gnat_post_options): Don't clear
30243         flag_inline_functions.
30244
30245 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
30246
30247         PR ada/17986
30248         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
30249         tree.
30250
30251 2004-11-21  Andreas Jaeger  <aj@suse.de>
30252
30253         * stylesw.adb: Change Style_Check_Subprogram_Order to
30254         Style_Check_Order_Subprograms.
30255
30256 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
30257
30258         * adaint.h, adaint.c
30259         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
30260         to avoid warnings.
30261         Add also a cast to kill another warning.
30262         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
30263         parameter with the priority class of the parent process instead of
30264         always using the NORMAL_PRIORITY_CLASS.
30265         (__gnat_dup): New function.
30266         (__gnat_dup2): New function.
30267         (__gnat_is_symbolic_link): Enable the effective body of this
30268         function when __APPLE__ is defined.
30269
30270         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
30271         Update comments.
30272
30273 2004-11-18  Olivier Hainque  <hainque@adacore.com>
30274
30275         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
30276         address of which may be used to represent "others" and "all others"
30277         choices in exception tables, instead of the current harcoded
30278         (void *)0 and (void *)1.
30279         (Setup_Exception): Do nothing in the GNAT SJLJ case.
30280
30281         * gigi.h (others_decl, all_others_decl): New decls representing the
30282         new Others_Value and All_Others_Value objects.
30283         (struct attrib): Rename "arg" component as "args", since GCC expects a
30284         list of arguments in there.
30285
30286         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
30287         corresponding objects exported by a-exexpr, instead of hardcoded dummy
30288         addresses.
30289
30290         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
30291         others_decl and all_others_decl instead of hardcoded dummy addresses
30292         to represent "others" and "all others" choices, which is cleaner and
30293         more flexible with respect to the possible eh pointer encoding policies.
30294
30295         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
30296         (process_attributes): Account for the naming change of the "args"
30297         attribute list entry component.
30298
30299         * decl.c (build_attr_list): Rename into prepend_attributes to allow
30300         cumulating attributes for different entities into a single list.
30301         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
30302         attributes for the current entity and propagate first subtype
30303         attributes to other subtypes.
30304         <E_Procedure>: Attribute arguments are attr->args and not
30305         attr->arg any more.
30306         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
30307         argument provided, as this is what GCC expects. Use NULL_TREE instead
30308         of 0 for trees.
30309
30310 2004-11-18  Robert Dewar  <dewar@adacore.com>
30311
30312         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
30313         Minor reformatting througout (including new function specs)
30314         Add ??? comments asking for clarification.
30315
30316 2004-11-18  Thomas Quinot  <quinot@adacore.com>
30317
30318         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
30319         incomplete duplicate implementation of this subprogram from butil.
30320
30321 2004-11-18  Thomas Quinot  <quinot@adacore.com>
30322
30323         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
30324         procedures factors the common processing for building an RPC receiver
30325         for an RCI package or an RACW type.
30326         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
30327         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
30328         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
30329         in use.
30330         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
30331         Add_RACW_Features.
30332         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
30333         Add_RAST_Features.
30334         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
30335         distribution subprogram identifiers that are either subprogram numbers
30336         or strings.
30337         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
30338         string distribution identifiers assigned to a given subprogram.
30339         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
30340         (Add_RAS_Dereference_TSS): Add comments.
30341         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
30342         is not referenced yet because it will be used by the PolyORB DSA
30343         implementation.
30344         (Insert_Partition_Check): Remove fossile code.
30345         (First_RCI_Subprogram_Id): Document this constant.
30346         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
30347         RAS_Access TSS.
30348         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
30349         replaced with calls to Get_Library_Unit_Name_String. Previously there
30350         were several instances of the same code in different locations in the
30351         compiler; this checkin completes the replacement of all of these
30352         instances with calls to a common subprogram.
30353         Minor reformatting.
30354
30355         * sem_dist.adb: Remove comment noting that RPC receiver generation
30356         should be disabled for RACWs that implement RASs.
30357         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
30358
30359         * sem_util.ads, sem_util.adb (Has_Stream): New function
30360         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
30361         qualified name of a library unit into the name buffer.
30362         (Note_Possible_Modification): Generate a reference only
30363         if the context comes from source.
30364
30365         * snames.ads (PCS_Names): New subtype corresponding to names of
30366         supported implementations of the Partition Communication Subsystem
30367         (PCS) (i.e. the runtime library support modules for the distributed
30368         systems annex).
30369
30370 2004-11-18  Robert Dewar  <dewar@adacore.com>
30371             Ed Schonberg  <schonberg@adacore.com>
30372
30373         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
30374         (Has_Rep_Pragma): New function
30375         (Has_Attribute_Definition_Clause): New function
30376         (Record_Rep_Pragma): Moved here from sem_ch13.adb
30377         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
30378
30379         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
30380
30381         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
30382         (Expand_Pragma_Psect_Object): New procedure
30383         These procedures contain the revised and cleaned up processing for
30384         these two pragmas. This processing was formerly in Sem_Prag, but
30385         is more appropriately moved here. The cleanup involves making sure
30386         that the pragmas are properly attached to the tree, and that no
30387         nodes are improperly shared.
30388
30389         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
30390         pragmas to Exp_Prag, which is more appropriate.
30391         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
30392         check for duplicates Remove use of Is_Psected flag, no longer needed.
30393         Use new Make_String_Literal function with string.
30394
30395         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
30396         that are functions return universal values, that have to be converted
30397         to the context type.
30398         Use new Make_String_Literal function with string.
30399         (Get_Stream_Convert_Pragma): New function, replaces the use of
30400         Get_Rep_Pragma, which had to be kludged to work in this case.
30401
30402         * freeze.adb: Use new Has_Rep_Pragma function
30403
30404         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
30405         function with string.
30406         Use new Has_Rep_Pragma function.
30407
30408         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
30409         string argument.
30410
30411 2004-11-18  Robert Dewar  <dewar@adacore.com>
30412
30413         * errout.ads, errout.adb: (First_Sloc): New function
30414
30415         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
30416         check (-gnatyx) instead of being included as a redundant construct
30417         warning.
30418
30419         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
30420         Style_Check_Order_Subprograms.
30421
30422         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
30423         stylesw.adb: Add Style_Check_Xtra_Parens
30424
30425         * usage.adb: Add line for -gnatyx (check extra parens)
30426
30427         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
30428
30429 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
30430             Robert Dewar  <dewar@adacore.com>
30431
30432         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
30433         discriminant of a constrained subtype, analyze the copy of the
30434         corresponding constraint, because in some cases it may be only
30435         partially analyzed.
30436         Removes long-lived ??? comments.
30437
30438         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
30439         handled controlled or secondary-stack expressions within the
30440         iteration_scheme of a loop.
30441
30442         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
30443         bounds that may contain functions calls, to prevent memory leaks when
30444         the bound contains a call to a function that uses the secondary stack.
30445         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
30446         generate temporaries for loop bounds that might contain function calls
30447         that require secondary stack and/or finalization actions.
30448
30449         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
30450         selected component and the selector is overloadable (not just a
30451         function) treat as function call, Analyze_Call will disambiguate if
30452         necessary.
30453         (Analyze_Selected_Component): Do not generate an actual subtype for the
30454         selected component if expansion is disabled. The actual subtype is only
30455         needed for constraint checks.
30456         (Analyze_Allocator): If restriction No_Streams is set, then do
30457         not permit objects to be declared of a stream type, or of a
30458         composite type containing a stream.
30459
30460         * restrict.ads: Remove the a-stream entry from Unit_Array, since
30461         No_Streams no longer prohibits with'ing this package.
30462
30463         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
30464         discriminants, but the parent base has unknown discriminants, there is
30465         no discriminant constraint to inherit. Such a discrepancy can arise
30466         when the actual for a formal type with unknown discriminants is a
30467         similar private type whose full view has discriminants.
30468         (Analyze_Object_Declaration): If restriction No_Streams is set, then
30469         do not permit objects to be declared of a stream type, or of a
30470         composite type containing a stream.
30471
30472 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
30473
30474         * exp_dbug.ads: Update documentation to reflect simpler encoding for
30475         protected operations.
30476
30477         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
30478         generated name, it complicates decoding in gdb and hinders debugging
30479         of protected operations.
30480         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
30481         flag for the protected entry barrier function.
30482         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
30483         flag for the protected entry function.
30484
30485 2004-11-18  Nicolas Setton  <setton@adacore.com>
30486
30487         * expect.c: Define __unix__ when __APPLE__ is defined.
30488
30489         * Makefile.in: Inform the value of the variable GMEM_LIB in the
30490         Darwin-specific section.
30491
30492         * lang-specs.h: Change the placement of the %1 marker.
30493         Works around the fact that gcc adds -fPIC by default under Darwin.
30494
30495 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
30496
30497         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
30498         type of the object with the packed array type, set the Analyzed flag
30499         on the object if it is an entity or simple indexed component, to avoid
30500         spurious type errors.
30501
30502 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
30503
30504         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
30505         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
30506         separate line from the version message.
30507
30508 2004-11-18  Ed Falis  <falis@adacore.com>
30509
30510         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
30511         vthreads.
30512         (init_float): Eliminate initialization of floating point status for
30513         AE653. The instructions have no effect for vThreads.
30514
30515 2004-11-18  Vincent Celier  <celier@adacore.com>
30516
30517         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
30518         gnatbind is invoked with -shared.
30519
30520 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
30521
30522         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
30523         for Detect_Blocking which is redundant with the check done within the
30524         procedure Protected_Single_Entry_Call.
30525         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
30526         Detect_Blocking which is redundant with the check done within the
30527         procedure Protected_Single_Entry_Call.
30528
30529 2004-11-18  Vincent Celier  <celier@adacore.com>
30530
30531         * makegpr.adb (Compile): Put the compiling switches (in package
30532         Compiler and on the command line) immediately after "-c", instead of
30533         at the end of the command line invocation of the compiler, when
30534         compiling a non-Ada file.
30535         (Build_Global_Archive): When there is no need to rebuild the archive,
30536         set Global_Archive_Exists, so that the archive is passed to the linker
30537         if one is needed.
30538
30539 2004-11-18  Robert Dewar  <dewar@adacore.com>
30540             Sergey Rybin  <rybin@adacore.com>
30541
30542         * gnat_ugn.texi:
30543         Remove extra paren check from list of checks for redundant constructs
30544         Add documentation of new -gnatyx style check (check extra parens)
30545         Remove paragraph about gnatelim debug options.
30546
30547         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
30548         objects rather than forbidding dependencies on the package Ada.Streams.
30549
30550         * sinfo.ads: Add ??? note that we should document pragmas passed to
30551         back end.
30552
30553         * g-expect.ads: Fix a few typos in the comments.
30554
30555 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
30556
30557         * misc.c (gnat_handle_option): Use %< and %> for quoting in
30558         warning message.
30559
30560 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30561
30562         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
30563
30564 2004-11-07  Andreas Schwab  <schwab@suse.de>
30565
30566         * Makefile.in (install-gnatlib): Remove spurious hyphen.
30567
30568 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
30569
30570         PR ada/18228
30571         * Makefile.in (darwin): Set soext to .dylib.
30572
30573 2004-10-26  Vincent Celier  <celier@gnat.com>
30574             Thomas Quinot   <quinot@act-europe.fr>
30575
30576         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
30577         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
30578         there is no use of GNAT.Sockets.Constants.
30579         Remove remaining pragma Import for C_Write
30580         Remove C_Read and C_Write from internal implementation unit
30581         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
30582         the read and write functions from the system runtime library is fine
30583         on UNIX but won't work under Windows).
30584
30585         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
30586         (Check_Selector): Use C_Recv instead of C_Read.
30587         Selectors are the GNAT.Sockets abstraction to perform a select()
30588         call on a set of descriptors. To allow abortion of an ongoing
30589         select operation, some data is written to a dedicated socket that
30590         is always monitored.
30591         Under Windows, the write and read library functions cannot operate
30592         on sockets, so we need to use send and recv instead, which is portable
30593         across all supported platforms.
30594
30595         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
30596         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
30597         (using the read and write functions from the system runtime library is
30598         fine on UNIX but won't work under Windows).
30599
30600 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
30601
30602         * mlib-tgt-darwin.adb: New file.
30603
30604         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30605         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30606         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
30607         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
30608         subprogram body.
30609
30610         * Makefile.in: Add support for building shared libraries under Darwin.
30611         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
30612         the low level EH init subprogram to be called from __gnat_initialize.
30613
30614         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
30615         indicates which options to pass to the archive indexer.
30616
30617         * mlib-utl.adb: Add support for calling ranlib with additional
30618         options. This is needed for instance under Mac OS X.
30619         (Ranlib_Options): New global variable, used to store the potential
30620         options to pass to ranlib.
30621         (Ar): Use Ranlib_Options when spawning ranlib.
30622         (Initialize): Set the value of ranlib option.
30623
30624 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
30625
30626         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
30627         instead of 8K, to reflect the real potential needs for stack-checking
30628         in the ZCX case.
30629
30630 2004-10-26  Pascal Obry  <obry@gnat.com>
30631
30632         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
30633
30634         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
30635         Windows only the initial thread stack size can be set so it is good to
30636         start we a low stack size.
30637         The OS will adjust the size as needed.
30638
30639 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
30640             Nicolas Setton  <setton@act-europe.fr>
30641
30642         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
30643         "__unix__" instead of "unix".
30644         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
30645         sections were just mistakenly ignored. The former is
30646         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
30647         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
30648         of hpux. This prevents an unwanted definition of the symbol
30649         convert_addresses in adaint.o.
30650
30651 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
30652
30653         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
30654         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
30655
30656 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
30657
30658         * a-filico.ads, a-filico.adb: fix incorrect header.
30659
30660 2004-10-26  Javier Miranda  <miranda@gnat.com>
30661
30662         * a-ststio.ads: Fix typo in identifier
30663
30664 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30665
30666         * sem_ch4.adb: Minor reformatting.
30667
30668 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30669
30670         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
30671         enabled, check the result of unary and binary operations when the
30672         expression is the right-hand side of an assignment.
30673
30674 2004-10-26  Vincent Celier  <celier@gnat.com>
30675
30676         * clean.adb (Delete): Do not output warnings when in quiet output and
30677         not in verbose mode.
30678         (Force_Deletions): New Boolean flag, defaulted to False
30679         (Delete): Only delete a file if it is writable, and when
30680         Force_Deletions is True.
30681         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
30682         (Usage): Line for new switch -f
30683         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
30684         own.
30685
30686 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
30687
30688         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
30689         JM type only if its size matches that of the wrapper.  When a size is
30690         prescribed and the field is not aliased, remove the wrapper of a JM
30691         type only if the size is not greater than that of the packed array.
30692         (gnat_to_gnu_entity): Change the extension of packed array wrappers
30693         from LJM to JM.
30694
30695 2004-10-26  Geert Bosch  <bosch@gnat.com>
30696
30697         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
30698         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
30699         (Pred): Implement in terms of Succ.
30700
30701 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30702
30703         * exp_aggr.adb (Safe_Component): An aggregate component that is an
30704         unchecked conversion is safe for in-place use if the expression of the
30705         conversion is safe.
30706         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
30707         be expandable in place even if the aggregate does not come from source.
30708         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
30709         designated object of an allocator in place, rather than building it
30710         first on the stack. The previous scheme forces a full copy of the array,
30711         and may be altogether unsusable if the size of the array is too large
30712         for stack allocation.
30713
30714 2004-10-26  Robert Dewar  <dewar@gnat.com>
30715
30716         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
30717         compares if the component is atomic.
30718
30719         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
30720         array assignment if the component type is atomic.
30721
30722 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30723             Eric Botcazou  <ebotcazou@act-europe.fr>
30724
30725         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
30726         is aliased and is a by_reference type, do not pass by copy.
30727         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
30728         detect whether the call is in the right side of an assignment or
30729         the expression of an object declaration.  Recurse on component
30730         association within aggregates.
30731         Call it in the condition that determines whether the temporary is
30732         necessary for correct stack-checking.
30733
30734 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30735
30736         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
30737         RACW_Type, used in the PolyORB version.
30738         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
30739         version and the GARLIC version.
30740
30741         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
30742         Rename RCI_Info to RCI_Locator for better consistency between the
30743         GARLIC and PolyORB versions of the distributed systems annex.
30744         (DSA_Implementation_Name): This enumeration lists the possible
30745         implementations of the Partition Communication Subsystem for the
30746         Distributed Systems Annex (DSA). The three available implementations
30747         are the dummy stub implementation (No_DSA), and two versions based on
30748         two different distribution runtime libraries: GARLIC and PolyORB. Both
30749         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
30750         technology.
30751         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
30752         that organization.
30753
30754         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
30755         between the GARLIC and PolyORB versions of the distributed systems
30756         annex.
30757         Remove RE_Unbounded_Reclaim_Pool since it is unused.
30758
30759 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
30760
30761         * gnat1drv.adb: Suppress calling the back end when
30762         Frontend_Layout_On_Target is true.
30763
30764 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30765
30766         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
30767         Set_Read_Only): New subprograms.
30768         These new routines allow the user to set or unset the Owner execute
30769         and Owner write permission flags on a file.
30770
30771         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
30772         GNAT.OS_Lib.Set_Executable instead of rolling our own.
30773
30774 2004-10-26  Matthew Gingell  <gingell@gnat.com>
30775
30776         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
30777
30778 2004-10-26  Pascal Obry  <obry@gnat.com>
30779
30780         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
30781         memory before the faulting page we properly test the process read
30782         access for this address using appropriate Win32 routine.
30783         (HPUX sections): guard with "__hpux__" instead of "hpux".
30784
30785 2004-10-26  Robert Dewar  <dewar@gnat.com>
30786
30787         * lib-xref.adb (Generate_Reference): Don't complain about reference to
30788         entry parameter if pragma Unreferenced set, since we do not properly
30789         handle the case of multiple parameters.
30790
30791 2004-10-26  Vincent Celier  <celier@gnat.com>
30792
30793         * prj-env.adb: (Contains_ALI_Files): New Boolean function
30794         (Ada_Objects_Path.Add): For a library project, add to the object path
30795         the library directory only if there is no object directory or if the
30796         library directory contains ALI files.
30797         (Set_Ada_Paths.Add.Recursive_Add): Ditto
30798
30799 2004-10-26  Vincent Celier  <celier@gnat.com>
30800
30801         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
30802         extension of library projects.
30803
30804         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
30805         path defaults to ".:<prefix>/lib/gnat".
30806         (Parse): For an extending all project, allow direct import of a project
30807         that is virtually extended.
30808
30809         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
30810         the specified name is directly imported, return its ID. Otherwise, if
30811         an extension of this project is imported, return the ID of the
30812         extension.
30813
30814 2004-10-26  Robert Dewar  <dewar@gnat.com>
30815
30816         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
30817         (Sub3): New procedure, used by Scaled_Divide
30818         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
30819         correct more than one instance of failure to propagate carries
30820         correctly.
30821         (Double_Divide): Handle overflow case of largest negative number
30822         divided by minus one.
30823
30824         * s-arit64.ads (Double_Divide): Document that overflow can occur in
30825         the case of a quotient value out of range.
30826         Fix comments.
30827
30828 2004-10-26  Robert Dewar  <dewar@gnat.com>
30829
30830         * s-bitops.adb (Bit_Eq): Remove redundant check.
30831
30832         * s-bitops.ads: Minor comment updates
30833         Change some occurrences of Address to System.Address
30834
30835         * s-carsi8.ads: Fix minor cut-and-paste error in comments
30836
30837 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30838
30839         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
30840         accessibility check to prefix that is a protected operation.
30841
30842 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30843
30844         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
30845         empty, post message on stub.
30846
30847 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30848             Javier Miranda  <miranda@gnat.com>
30849
30850         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
30851         current instance appears within a unit that is directly in the context
30852         of the main unit.
30853         Used to determine whether the body of the instance should be analyzed
30854         immediately after its spec, to make its subprogram bodies available
30855         for front-end inlining.
30856         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
30857         constraint is not allowed on the component type (AARM 12.5.3(3))
30858
30859 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
30860
30861         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
30862         'Storage_Pool): enhance, document & limit detection of non-sharable
30863         internal pools.
30864
30865         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
30866
30867         * s-pooglo.ads: Add more documentation now that this pool is properly
30868         documented.
30869
30870 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30871
30872         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
30873         or protected type with discriminants, do not constrain the
30874         corresponding record type if the subtype declaration has no
30875         discriminant constraints. This can be the case in source code, or in
30876         the subtype declaration created to rename an actual type within an
30877         instantiation.
30878
30879 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30880
30881         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
30882         different kind of stub (possibly wrong name for file), do not check
30883         for conformance.
30884         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
30885         includes call to some function that returns an unconstrained type, do
30886         not inline.
30887
30888 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30889
30890         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
30891         appear in the code for the main unit. Dependencies among units in the
30892         context of the main unit are established when those other units are
30893         compiled. Otherwise spurious elaboration constraints can generate
30894         incorrect elaboration circularities.
30895
30896 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30897             Ed Schonberg   <schonberg@gnat.com>
30898
30899         * sem_util.adb (Is_Aliased_View): Defend against the case where this
30900         subprogram is called with a parameter that is not an object name. This
30901         situation arises for some cases of illegal code, which is diagnosed
30902         later, and in this case it is wrong to call Is_Aliased, as that might
30903         cause a compiler crash.
30904         (Explain_Limited_Type): Refine previous fix to include
30905         inherited components of derived types, to provide complete information.
30906
30907         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
30908         is the prival for a protected object.
30909         It is necessary to mark this entity as a variable, in addition to
30910         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
30911         modified to avoid checking the Aliased flag on entities that are not
30912         objects. (Checking that flag for non-objects is erroneous and could
30913         lead to a compiler crash).
30914
30915 2004-10-26  Robert Dewar  <dewar@gnat.com>
30916
30917         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
30918         X_Frac = 0.5, then we know that the number X must be positive.
30919         (Succ): Remove the same redundant test, and also fix the primary test
30920         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
30921         Minor reformatting
30922         (Decompose): Add fuller comments to spec
30923
30924 2004-10-26  Pascal Obry  <obry@gnat.com>
30925
30926         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
30927         validity (process must have read access). Set to 0 in all other cases.
30928         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
30929         violation on Win32.
30930         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
30931         segmentation violation.
30932
30933 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
30934
30935         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
30936         whose type is a constructed subtype of an aliased object with an
30937         unconstrained nominal subtype, convert the actual to the constructed
30938         subtype before taking its address.
30939
30940 2004-10-26  Vincent Celier  <celier@gnat.com>
30941
30942         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
30943         (Is_Path_Name_Case_Sensitive): New function
30944
30945         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
30946         (Base_Name, Simple_Name, Current_Directory, Compose,
30947         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
30948         the result.
30949
30950 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
30951             Vasiliy Fofanov  <fofanov@act-europe.fr>
30952             Vincent Celier   <celier@gnat.com>
30953
30954         * gnat_ugn.texi: Generalize "finding memory problems" section into a
30955         "memory management issues" section and document some of the useful
30956         memory pools provided as part of the GNAT library.
30957         Remove "virtual" from declaration of A::method2 in
30958         the simple example of Ada/C++ mixed system.
30959         Library Projects may be virtually extended: their virtual extensions
30960         are not Library Projects.
30961         Added section on extending project hierarchies.
30962
30963 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
30964
30965         * adaint.c (__gnat_get_libraries_from_registry): Cast value
30966         to LPBYTE.
30967         (__gnat_portable_spawn): Remove const.
30968
30969         * mingw32.h (MAXPATHLEN): Check for previous definition.
30970
30971 2004-10-17  Matthias Klose  <doko@debian.org>
30972
30973         * gnatvsn.ads: Set gnat library version to 4.0.
30974
30975 2004-10-05  Vincent Celier  <celier@gnat.com>
30976
30977         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
30978
30979 2004-10-04  Laurent Guerby  <laurent@guerby.net>
30980
30981         PR ada/15156
30982         * Makefile.in: Define and use RANLIB_FLAGS.
30983
30984 2004-10-04  Pascal Obry  <obry@gnat.com>
30985
30986         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
30987         other x86 platforms).
30988
30989 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
30990
30991         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
30992         in general and triggers stack alignment adjustment for thread entry
30993         points on targets where this is necessary.
30994
30995 2004-10-04  Bernard Banner  <banner@gnat.com>
30996
30997         PR ada/13897
30998         * Makefile.in: Add section for powerpc linux
30999         Add variant i-vxwork-x86.ads
31000
31001         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
31002
31003 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
31004
31005         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
31006         table registration calls when need be. Ensures no reference to the crt
31007         ctors symbol are issued in the SJLJ case, which avoids possible
31008         undefined symbol errors in the case of modules to be statically linked
31009         with the kernel.
31010
31011 2004-10-04  Javier Miranda  <miranda@gnat.com>
31012
31013         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
31014         in-line the code corresponding to subprogram Analyze_Actuals. In
31015         addition, analyze the actuals only in case of subprogram call.
31016
31017 2004-10-04  Ed Falis  <falis@gnat.com>
31018
31019         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
31020
31021 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
31022
31023         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
31024         in the documentation.
31025
31026 2004-10-04  Robert Dewar  <dewar@gnat.com>
31027
31028         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
31029         IF and CASE.
31030         (Analyze_Block_Statement): Add circuitry to detect following dead code
31031         (Check_Unreachable_Code): Handle case of block exit
31032
31033 2004-10-04  Robert Dewar  <dewar@gnat.com>
31034
31035         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
31036         (XMatchD): Avoid warning for Logic_Error call
31037
31038 2004-10-04  Robert Dewar  <dewar@gnat.com>
31039
31040         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
31041         consider expressions buried within a procedure actual to be an actual.
31042         This caused some blowups with uses of packed slices within a procedure
31043         actual.
31044
31045 2004-10-04  Robert Dewar  <dewar@gnat.com>
31046
31047         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
31048         longer need to be initialized to zero.
31049         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
31050         initialized to zero.
31051
31052         * checks.adb (Expr_Known_Valid): Packed arrays are now always
31053         considered valid, even if the representation is modular. That's correct
31054         now that we no longer initialize packed modular arrays to zero.
31055
31056         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
31057         suffixes. These are now documented as the only cases in which the
31058         debugger ignores outer records.
31059         Previously, the spec allowed arbitrary suffixes for this purpose.
31060         Change name of LJM to JM for packed array pad records
31061         Create separate section on packed array handling, and add a whole new
31062         set of comments to this section describing the situation with packed
31063         modular types and justification requirements depending on endianness.
31064
31065 2004-10-04  Robert Dewar  <dewar@gnat.com>
31066
31067         * a-except.adb: Add a comment for last change
31068
31069         * einfo.ads: Minor spelling correction in comment
31070
31071         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
31072
31073         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
31074         messages.
31075
31076         * sem_util.ads: Minor comment update
31077
31078 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
31079
31080         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
31081         Inline_Always when in Configurable_Run_Time mode.
31082
31083         * sem_prag.adb (Process_Convention): If entity is an inherited
31084         subprogram, apply convention to parent subprogram if in same scope.
31085         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
31086         when in Configurable_Run_Time mode.
31087
31088 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
31089
31090         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
31091         class_wide type after component list has been inherited.
31092
31093 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
31094
31095         * sem_ch12.adb (Check_Generic_Actuals): New predicate
31096         Denotes_Previous_Actual, to handle properly the case of a private
31097         actual that is also the component type of a subsequent array actual.
31098         The visibility status of the first actual is not affected when the
31099         second is installed.
31100         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
31101         make fully recursive the treatment of formals of packages declared
31102         with a box.
31103         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
31104         the above on exit from an instantiation.
31105         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
31106         current instantiation which is now complete.
31107         (Analyze_Package_Instantiation): No instantiated body is needed if the
31108         main unit is generic. Efficient, and avoid anomalies when a instance
31109         appears in a package accessed through rtsfind.
31110
31111 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
31112
31113         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
31114         do not generate a declaration for a temporary if the call is part of a
31115         library-level instantiation.
31116
31117 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
31118
31119         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
31120         searching for a limited component to flag.
31121
31122         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
31123         expansion of Input, to account for the fact that the implicit call
31124         generated by the attribute reference must freeze the user-defined
31125         stream subprogram. This is only relevant to 'Input, because it can
31126         appear in an object declaration, prior to the body of the subprogram.
31127
31128         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
31129         expansion can proceed and further errors uncovered.
31130         (Minor clean up): Fix cases of using | instead of \ for continuation
31131         messages.
31132
31133 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31134
31135         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
31136
31137         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
31138         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
31139         Use gcc_assert and gcc_unreachable.
31140
31141         * decl.c (gnat_to_gnu_entity, case object): Check and process a
31142         specified alignment before validating size.
31143         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
31144         stripped-down declaration for the type of the inner field when making
31145         a JM type.
31146
31147         * utils.c (finish_record_type): Do not compute the size in units
31148         incrementally. Instead compute it once for the rep clause case.
31149         Use gcc_assert and gcc_unreachable.
31150
31151 2004-10-04  Vincent Celier  <celier@gnat.com>
31152
31153         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
31154         in file name.
31155         (Is_Valid_Path_Name): Take '/' as a directory separator.
31156
31157 2004-10-04  Vincent Celier  <celier@gnat.com>
31158
31159         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
31160         (Extended_Project) only if Extended_Project is defined, to avoid
31161         assertion error.
31162         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
31163         resolved path.
31164         (Parse_Single_Project): Ditto.
31165
31166         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
31167         Add_To_Project_Path for virtual projects.
31168
31169 2004-10-04  Vincent Celier  <celier@gnat.com>
31170
31171         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
31172         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
31173         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
31174         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
31175         parameter Options_2.
31176
31177         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
31178         Build_Dynamic_Library with an empty Options_2.
31179
31180         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
31181         default anymore.
31182
31183         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
31184         directory separator, if any.
31185         (Gprmake): Do not allow mains on the command line for library projects.
31186         Do not attempt to link when the project is a library project.
31187         (Library_Opts): New table to store Library_Options.
31188         (Build_Library): If Library_Options is specified, pass these options
31189         when building a shared library.
31190
31191 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
31192
31193         * s-tposen.adb (Service_Entry): The object must be always unlocked at
31194         the end of this procedure now that the unlock operation was inserted
31195         by the expander.
31196
31197 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
31198
31199         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
31200         corresponding to the Preallocated_Stacks flags in System.
31201         (Get_Target_Parameters): Including the processing for
31202         Preallocated_Stacks.
31203
31204         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
31205         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
31206         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
31207         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
31208         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
31209         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
31210         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
31211         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
31212         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
31213         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
31214         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
31215         used to signal whether the compiler creates the required stacks and
31216         descriptors for the different tasks (when True) or it is done by the
31217         underlying operating system at run time (when False).
31218         It is initially set to False in all targets.
31219
31220         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
31221         if it is supported by the target.
31222         (Make_Task_Create_Call): Pass the stack address if it has been
31223         previously created. Otherwise pass a Null_Address.
31224
31225         * snames.adb: Add _stack.
31226
31227         * snames.ads: Add Name_uStack. Required to allow the expander to
31228         statically allocated task stacks.
31229
31230         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
31231         Stack_Address argument.
31232         Check that its value is equal to Null_Address because this target does
31233         not support the static stack allocation.
31234
31235 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
31236
31237         * usage.adb: Change "pragma inline" to "pragma Inline" in information
31238         and error messages
31239
31240 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
31241
31242         * exp_dist.adb: Split declaration of asynchronous flag out of
31243         Add_RACW_Read_Attribute.
31244         Minor reformatting for better alignment with PolyORB version.
31245         Store the entity for the asynchronous flag of an RACW, rather than the
31246         expression, in the asynchronous flags table. This will allow this flag
31247         to be used in other subprograms beside Add_RACW_Read_Attribute.
31248
31249 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
31250
31251         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
31252         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
31253         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
31254         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
31255         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
31256         sockets constant MSG_NOSIGNAL (Linux-specific).
31257         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
31258         all Send operations.
31259         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
31260         from trigerring SIGPIPE.
31261         Rename components to avoid clash with Ada 2005 possible reserved
31262         word 'interface'.
31263         (Check_Selector): When the select system call returns with an error
31264         condition, propagate Socket_Error to the caller.
31265
31266 2004-10-01  Jan Hubicka  <jh@suse.cz>
31267
31268         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
31269
31270 2004-09-23  Robert Dewar  <dewar@gnat.com>
31271
31272         PR ada/17540
31273         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
31274         instead do this at freeze time (we won't do it if there is an address
31275         clause).
31276         Change "pragma inline" to "pragma Inline" in information and error
31277         messages.
31278         Minor reformatting.
31279
31280         * freeze.adb (Check_Address_Clause): Remove previous change, not the
31281         right way of doing things after all.
31282         (Freeze_Entity): For object, set Is_Public for imported entities
31283         unless there is an address clause present.
31284
31285 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
31286
31287         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
31288         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
31289         ensures proper handling of types with rep clauses, which might have
31290         their TYPE_SIZE set already.
31291
31292 2004-09-21  Robert Dewar  <dewar@gnat.com>
31293
31294         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
31295         packed array types in both little- and big-endian cases. This change
31296         ensures that we no longer count on the unused bits being initialized
31297         for such types (and in particular ensures that equality testing will
31298         only read the relevant bits).
31299         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
31300         These changes mean that we no longer need to initialize small packed
31301         arrays.
31302         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
31303         optimization to an LJM field as to its parent field.
31304
31305         * ada-tree.h, trans.c, utils.c, utils2.c:
31306         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
31307
31308 2004-09-20  Jan Hubicka  <jh@suse.cz>
31309
31310         * utils.c (gnat_finalize): Remove.
31311         (end_subprog_body): Directly call cgraph_finalize_function;
31312         do not lower the nested functions.
31313
31314 2004-09-20  Robert Dewar  <dewar@gnat.com>
31315
31316         PR ada/17540
31317         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
31318         if an address clause is present, since that means that the Import
31319         should be ignored.
31320
31321 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
31322
31323         * 5tsystem.ads: Removed, no longer used.
31324
31325 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
31326             Zack Weinberg  <zack@codesourcery.com>
31327
31328         * ada-tree.def: Use tree_code_class enumeration constants
31329         instead of code letters.
31330         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
31331         Update for new tree-class enumeration constants.
31332
31333 2004-09-17  Vincent Celier  <celier@gnat.com>
31334
31335         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
31336         capabilities of the general project manager.
31337
31338 2004-09-09  Vincent Celier  <celier@gnat.com>
31339
31340         * a-direct.ads: Add pragma Ada_05
31341         (Directory_Entry_Type): Give default value to component Kind to avoid
31342         not initialized warnings.
31343
31344         * a-direct.adb (Current_Directory): Remove directory separator at the
31345         end.
31346         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
31347         an existing directory.
31348         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
31349         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
31350         Convert the result to File_Size.
31351
31352         * prj.ads: (Project_Error): New exception
31353
31354         * prj-attr.adb: Except in procedure Initialize, Fail comes from
31355         Prj.Com, not from Osint.
31356         (Attrs, Package_Attributes): Tables moved to private part of spec
31357         (Add_Attribute, Add_Unknown_Package): Moved to new child package
31358         Prj.Attr.PM.
31359         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
31360         Prj.Project_Error after call to Fail.
31361         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
31362         Fail. Check that package name is not already in use.
31363
31364         * prj-attr.ads: Comment updates to indicate that all subprograms may be
31365         used by tools, not only by the project manager, and to indicate that
31366         exception Prj.Prj_Error may be raised in case of problem.
31367         (Add_Unknown_Package, Add_Attribute): Moved to new child package
31368         Prj.Attr.PM.
31369         (Attrs, Package_Attributes): Table instantiations moved from the body to
31370         the private part to be accessible from Prj.Attr.PM body.
31371
31372         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
31373         from new package Prj.Attr.PM.
31374         (Parse_Attribute_Declaration): Call Add_Attribute from new package
31375         Prj.Attr.PM.
31376
31377         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
31378
31379         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
31380         instead of Elaboration_Checks).
31381
31382         * a-calend.adb: Minor reformatting
31383
31384 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31385
31386         * gigi.h (maybe_pad_type): New declaration.
31387         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
31388
31389         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
31390
31391         * cuintp.c: Convert to use buildN.
31392
31393         * decl.c (maybe_pad_type): No longer static.
31394         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
31395         target pointer.
31396         Convert to use buildN.
31397
31398         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
31399         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
31400         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
31401         RHS.
31402         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
31403         (gnat_gimplify_expr, case ADDR_EXPR): New case.
31404         Convert to use buildN.
31405
31406         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
31407         TREE_READONLY for const.
31408         Convert to use buildN.
31409
31410         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
31411         (create_var_decl): Refine when TREE_STATIC is set.
31412         Convert to use buildN.
31413
31414 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
31415
31416         * gnat_ugn.texi: Delete text relating to checking of ali and object
31417         consistency.
31418
31419         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
31420         routines.
31421
31422 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
31423
31424         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
31425         pragmas recognized by GNAT.
31426
31427         * gnat_rm.texi: Document pragma Detect_Blocking.
31428
31429         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
31430         raise Program_Error if called from a protected operation.
31431
31432         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
31433         the protected action nesting level.
31434         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
31435         protected action nesting level.
31436         (Unlock): When pragma Detect_Blocking is active decrease the protected
31437         action nesting level.
31438
31439         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
31440         Protected_Action_Nesting.
31441
31442         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
31443         Common_ATCB record. It contains the dynamic level of protected action
31444         nesting for each task. It is needed for checking whether potentially
31445         blocking operations are called from protected operations.
31446         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
31447         Detect_Blocking is active or not in the partition.
31448
31449         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
31450         raise Program_Error if called from a protected operation.
31451         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
31452         Program_Error if called from a protected operation.
31453         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
31454         Program_Error if called from a protected operation.
31455
31456         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
31457         raise Program_Error if called from a protected operation.
31458
31459         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
31460         raise Program_Error if called from a protected operation, and increase
31461         the protected action nesting level.
31462         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
31463         Program_Error if called from a protected operation, and increase the
31464         protected action nesting level.
31465         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
31466         protected action nesting level.
31467
31468         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
31469         raise Program_Error if called from a protected operation, and increase
31470         the protected action nesting level.
31471         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
31472         Program_Error if called from a protected operation, and increase the
31473         protected action nesting level.
31474         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
31475         raise Program_Error if called from a protected operation.
31476         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
31477         active, raise Program_Error if called from a protected operation.
31478         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
31479         protected action nesting level.
31480
31481         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
31482         insertion of the statement raising Program_Error. The run time
31483         contains the required machinery for handling that.
31484
31485         * sem_util.ads: Change comment associated to procedure
31486         Check_Potentially_Blocking_Operation.
31487         This procedure does not insert a call for raising the exception because
31488         that is currently done by the run time.
31489
31490         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
31491
31492         * init.c: Add the global variable __gl_detect_blocking that indicates
31493         whether pragma Detect_Blocking is active (1) or not (0). Needed for
31494         making the pragma available at run time.
31495         (__gnat_set_globals): Pass and update the detect_blocking parameter.
31496
31497         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
31498         pragma Detect_Blocking is active.
31499
31500         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
31501
31502         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
31503         DB is found in the ali file. Any unit compiled with pragma
31504         Detect_Blocking active forces its effect in the whole partition.
31505
31506         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
31507         Detect_Blocking is active and delay is called from a protected
31508         operation.
31509
31510         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
31511         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
31512         Detect_Blocking is active (0 otherwise).
31513         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
31514         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
31515         otherwise).
31516
31517 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
31518
31519         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
31520         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
31521         package.
31522
31523         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
31524         (Register_Receiving_Stub): Add Subp_Info formal parameter.
31525         Update API in placeholder implemetation of s-parint to reflect changes
31526         in distribution runtime library.
31527
31528         * sem_ch3.adb (Expand_Derived_Record): Rename to
31529         Expand_Record_Extension.
31530
31531         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
31532         primitive operations of potentially distributed object types that have
31533         non-controlling anonymous access formals.
31534
31535         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
31536         subprogram.
31537         New implementation of expansion for remote access-to-subprogram types,
31538         based on the RACW infrastructure.
31539         This version of sem_dist is compatible with PolyORB/DSA as well as
31540         GLADE.
31541
31542         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
31543         Asynchrronous that applies to a remote access-to-subprogram type, mark
31544         the underlying RACW type as asynchronous.
31545
31546         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
31547          __gnat_using_gnu_linker to 1.
31548
31549         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
31550         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
31551         GNAT.Perfect_Hash_Generators, and remove the empty
31552         GNAT.Perfect_Hash package.
31553
31554         * atree.adb: Minor reformatting
31555
31556         * exp_ch3.adb (Expand_Derived_Record): Rename to
31557         Expand_Record_Extension.
31558         (Build_Record_Init_Proc.Build_Assignment): The default expression in
31559         a component declaration must remain attached at that point in the
31560         tree so New_Copy_Tree copies it if the enclosing record type is derived.
31561         It is therefore necessary to take a copy of the expression when building
31562         the corresponding assignment statement in the init proc.
31563         As a side effect, in the case of a derived record type, we now see the
31564         original expression, without any rewriting that could have occurred
31565         during expansion of the ancestor type's init proc, and we do not need
31566         to go back to Original_Node.
31567
31568         * exp_ch3.ads (Expand_Derived_Record): Rename to
31569         Expand_Record_Extension.
31570
31571         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
31572         Returns the RACW type used to implement a remote access-to-subprogram
31573         type.
31574         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
31575         New subprograms. Used to create a proxy tagged object for a remote
31576         subprogram. The proxy object is used as the designated object
31577         for RAS values on the same partition (unless All_Calls_Remote applies).
31578         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
31579         System.Partition_Interface.Get_Unique_Remote_Pointer.
31580         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
31581         Renamed from Add_RAS_*_Attribute.
31582         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
31583         subprograms.
31584         New implementation of expansion for remote access-to-subprogram types,
31585         based on the RACW infrastructure.
31586
31587         * exp_dist.ads (Copy_Specification): Update comment to note that this
31588         function can copy the specification from either a subprogram
31589         specification or an access-to-subprogram type definition.
31590
31591 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
31592
31593         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
31594         in an instance, between an explicit subprogram an one inherited from a
31595         type derived from an actual.
31596
31597         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
31598         add a polling call if the subprogram is to be inlined by the back-end,
31599         to avoid repeated calls with multiple inlinings.
31600
31601         * checks.adb (Apply_Alignment_Check): If the expression in the address
31602         clause is a call whose name is not a static entity (e.g. a dispatching
31603         call), treat as dynamic.
31604
31605 2004-09-09  Robert Dewar  <dewar@gnat.com>
31606
31607         * g-trasym.ads: Minor reformatting
31608
31609         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
31610         packed arrays, since unused bits are expected to be zero for a
31611         comparison.
31612
31613 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
31614
31615         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
31616         comment.
31617
31618 2004-09-09  Pascal Obry  <obry@gnat.com>
31619
31620         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
31621         enable map file generation. Add the right option to generate the map
31622         file if Map_File is set to True.
31623
31624         * gnatdll.adb (Gen_Map_File): New variable.
31625         (Syntax): Add info about new -m (Map_File) option.
31626         (Parse_Command_Line): Add support for -m option.
31627         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
31628         Minor reformatting.
31629
31630 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
31631
31632         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
31633         new gnatdist implementation.
31634         Define a subpackage isolating the output routines specific to this
31635         verbose mode.
31636
31637 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
31638
31639         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
31640
31641         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
31642
31643 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
31644
31645         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
31646         internal unit.
31647
31648         * opt.ads: Add Ada_Version_Runtime constant used to decide which
31649         version of the language is used to compile the run time.
31650
31651 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
31652
31653         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
31654         of variable length temporaries for function return now that the
31655         back-end and gigi support it.
31656
31657 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31658
31659         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
31660
31661         * trans.c (struct stmt_group): Delete field GLOBAL.
31662         (gnat_init_stmt_group): Do not initialize it.
31663         (call_to_gnu): Use save_expr, not protect_multiple_eval.
31664         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
31665         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
31666         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
31667         (start_stmt_group): Likewise.
31668         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
31669
31670         * utils2.c (ggc.h): Include.
31671         (build_call_raise): Call build_int_cst, not build_int_2.
31672
31673         * utils.c (gnat_init_decl_processing): Fix arg to
31674         build_common_tree_nodes.
31675         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
31676         (gnat_define_builtin): Set built_in_decls.
31677         (init_gigi_decls): Call build_int_cst, not build_int_2.
31678
31679         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
31680         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
31681         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
31682         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
31683         SET_TYPE_MODULE): Use them.
31684         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
31685         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
31686         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
31687         SET_TYPE_ADA_SIZE): Likewise.
31688         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
31689         (DECL_CONST_CORRESPONDING_VAR,
31690         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
31691         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
31692         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
31693         (TYPE_RM_SIZE_NUM): New macro.
31694         (TYPE_RM_SIZE): Modified to use above.
31695
31696         * cuintp.c: (build_cst_from_int): New function.
31697         (UI_To_gnu): Use it.
31698
31699         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
31700         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
31701         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
31702         MIN_EXPR for the size, copy it into new.
31703
31704 2004-09-01  Robert Dewar  <dewar@gnat.com>
31705
31706         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
31707         packed indexed component where array is an IN OUT formal. This
31708         generated garbage code previously.
31709
31710         * gnat_ugn.texi: Document -fverbose-asm
31711
31712         * gnat-style.texi: Minor updates (note that boolean constants and
31713         variables are joined with AND/OR rather than short circuit forms).
31714
31715 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
31716
31717         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
31718         it is an upward conversion of an untagged type with no representation
31719         change.
31720
31721 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
31722
31723         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
31724         System.Partition_Interface.
31725
31726         * checks.adb (Apply_Access_Checks): Do not generate checks when
31727         expander is not active (but check for unset reference to prefix of
31728         dereference).
31729
31730         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
31731         pragma Debug as an if statement with a constant condition, for
31732         consistent treatment of entity references contained within the
31733         enclosed procedure call.
31734
31735 2004-09-01  Vincent Celier  <celier@gnat.com>
31736
31737         * bindgen.adb: (Set_EA_Last): New procedure
31738         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
31739         Set_EA_Last.
31740         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
31741         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
31742         linked without errors.
31743         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
31744         ST and EA.
31745         (Gen_Exception_Table_C): Correct same bugs
31746
31747         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
31748
31749         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
31750         on Windows, make sure that the drive letter is in upper case.
31751
31752         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
31753         Windows, when the drive letter is added and Case_Sensitive is True, the
31754         drive letter is forced to upper case.
31755
31756         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
31757         to Options_2 for the call to MLib.Utl.Gcc.
31758
31759         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
31760         directory separator when defining BASE_DIR.
31761
31762 2004-09-01  Pascal Obry  <obry@gnat.com>
31763
31764         * gprcmd.adb (Extend): Do not output trailing directory separator. This
31765         is not needed and it confuses Windows GNU/make which does not report
31766         directory terminated by a slash as a directory.
31767         (gprcmd): Idem for "pwd" internal command.
31768
31769         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
31770         target names rewrite to fix regressions with recent version of
31771         GNU/make. Starting with GNU/make 3.80 the pipe character was not
31772         handled properly anymore.
31773
31774 2004-09-01  Andreas Schwab  <schwab@suse.de>
31775
31776         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
31777         * raise.c [!IN_RTS]: Undef abort.
31778
31779 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
31780
31781         * utils2.c (build_allocator): Use ssize_int.
31782
31783         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
31784
31785 2004-08-27  Andreas Schwab  <schwab@suse.de>
31786
31787         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
31788
31789 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
31790             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31791
31792         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
31793
31794 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
31795
31796         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
31797         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31798         * utils.c (init_gigi_decls): Likewise.
31799         * utils2.c (build_call_raise, build_allocator): Likewise.
31800
31801 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
31802
31803         * utils.c (gnat_init_decl_processing): Adjust
31804         build_common_tree_nodes call.
31805
31806 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
31807
31808         * utils2.c (build_allocator): Use build_int_cst for negative
31809         size types.
31810
31811 2004-08-18  Richard Henderson  <rth@redhat.com>
31812
31813         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
31814
31815 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
31816
31817         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
31818         call.s
31819         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
31820         (gnat_to_gnu): Likewise.
31821
31822 2004-08-16  Pascal Obry  <obry@gnat.com>
31823
31824         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
31825         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
31826         option and not mdll anymore. Update comment.
31827
31828 2004-08-16  Pascal Obry  <obry@gnat.com>
31829
31830         * bld.adb (Put_Include_Project): Properly handle directory separators
31831         on Windows.
31832
31833 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
31834
31835         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
31836         decreasing the number of allocated junk nodes while searching for the
31837         appropriate subprogram.
31838
31839 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
31840
31841         * cuintp.c (UI_To_gnu): Use build_int_cst..
31842         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
31843         * utils.c (init_gigi_decls): Likewise.
31844         * utils2.c (build_call_raise): Likewise.
31845
31846 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
31847
31848         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
31849         for a global aliased object with a variable size and an unconstrained
31850         nominal subtype, pretend there is no initializer if the one we have is
31851         incomplete, and avoid referencing an inexistant component in there. The
31852         part we have will be rebuilt anyway and the reference may confuse
31853         further operations.
31854
31855 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
31856
31857         * einfo.ads: Minor reformatting
31858
31859         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
31860         restrictions in the ALI if we only want to warn about violations.
31861
31862 2004-08-13  Vincent Celier  <celier@gnat.com>
31863
31864         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
31865         when creating a new Unit_Record in table Units.
31866
31867         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
31868         that are violated, if any.
31869
31870         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
31871         add directory separator if path already ends with a directory separator.
31872
31873 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
31874
31875         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
31876         unit, this is an attempt to inline a construct that is not available in
31877         the current restricted mode, so abort rather than trying to continue.
31878
31879         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
31880         discriminants that rename those of the parent, recover names of
31881         original discriminants for the constraint on the full view of the
31882         parent.
31883         (Complete_Private_Subtype): Do not create a subtype declaration if the
31884         subtype is an itype.
31885
31886         * gnat_rm.texi: Added section on implementation of discriminated
31887         records with default values for discriminants.
31888
31889 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
31890
31891         PR ada/15601
31892         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
31893         the second operand is overloaded.
31894
31895 2004-08-10  Richard Henderson  <rth@redhat.com>
31896
31897         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
31898         add __builtin_alloca.
31899
31900 2004-08-10  Richard Henderson  <rth@redhat.com>
31901
31902         * config-lang.in (boot_language): Yes.
31903
31904 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
31905
31906         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
31907         from complaining on potential uninitialized reference.
31908         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
31909         new specification and test explicitly for non-zero return value.
31910
31911         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
31912         returning C.int, to avoid using a derived boolean type.
31913
31914         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
31915         Duplicate_Subexpr_No_Checks in preference to direct use of
31916         Remove_Side_Effects and New_Copy_Tree.
31917         Clear Comes_From_Source on prefix of 'Size attribute reference.
31918
31919         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
31920         g-socthi-vxworks.adb: Change calls to
31921         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
31922         and test explicitly for non-zero return value.
31923
31924         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
31925         (Is_Socket_In_Set): Declare imported function as returning C.int, to
31926         avoid using a derived boolean type.
31927
31928 2004-08-09  Albert Lee  <lee@gnat.com>
31929
31930         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
31931
31932 2004-08-09  Pascal Obry  <obry@gnat.com>
31933
31934         * gnat_ugn.texi: Document new way to build DLLs on Windows using
31935         GCC's -shared option.
31936
31937         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
31938         Options_2 parameter (options put after object files).
31939
31940 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
31941
31942         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
31943         ignore overflows on low and high bounds of an index to also account for
31944         differences in signedness between sizetype and gnu_index_subtype.
31945         These are as legitimate as the ones caused by a lower TYPE_PRECISION
31946         on sizetype.
31947
31948 2004-08-09  Robert Dewar  <dewar@gnat.com>
31949
31950         * s-solita.ads, s-solita.adb: Minor reformatting
31951
31952         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
31953         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
31954         obsolescent section
31955         Add note that No_Implicit_Conditionals does not suppress
31956         run time constraint checks.
31957
31958         * vms_conv.ads: Minor reformatting
31959
31960         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
31961         and necessary for following change).
31962         (Mark): Return new format Mark_Id containing sec stack address
31963         (Release): Use sec stack address from Mark_Id avoiding Self call
31964
31965         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
31966         pointer (cleanup and necessary for following change).
31967         Define Mark_Id as record containing address of secondary stack, that way
31968         Release does not need to find the stack again, decreasing the number of
31969         calls to Self and improving efficiency.
31970
31971         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
31972
31973         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
31974         case variable into the individual case branches when possible.
31975
31976         * sem_ch11.adb: Minor reformatting
31977
31978         * prj.ads: Correct spelling of suffixs
31979
31980         * prj-nmsc.adb: Minor reformatting
31981         Correct spelling suffixs throughout (also in identifiers)
31982
31983         * freeze.adb: Minor spelling correction
31984
31985         * exp_ch2.adb: Cleanups to handling of Current_Value
31986         (no functional effect).
31987
31988         * bld.adb: Correct spelling of suffixs
31989
31990         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
31991
31992 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
31993
31994         PR ada/15408
31995         * sem_ch7.adb (Install_Private_Declarations): In the body of the
31996         package or of a child, private entities are both immediately_visible
31997         and not hidden.
31998
31999 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
32000
32001         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
32002         there are no range checks on the value of the literal.
32003
32004         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
32005         wrapped is the triggering alternative of an asynchronous select, action
32006         statements mustbe inserted before the select itself.
32007
32008         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
32009         case where the prefix is a protected function call.
32010         (Resolve_Attribute, case 'Access): The attribute reference on a
32011         subprogram is legal in a generic body if the subprogram is declared
32012         elsewhere.
32013
32014 2004-08-09  Vincent Celier  <celier@gnat.com>
32015
32016         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
32017         languages, otherwise building the library may fail with unresolved
32018         symbols.
32019         (Compile_Sources): Do not build libraries if -c switch is used
32020
32021         * gnatlink.adb (Process_Args): New switches -M and -Mmap
32022         (Write_Usage): If map file creation is supported, output new switches
32023         -M and -Mmap.
32024         (Gnatlink): When -M is specified, add the necessary switch(es) to the
32025         gcc call, when supported.
32026
32027         * Makefile.in: Added indepsw.o to the object list for gnatlink
32028         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
32029
32030         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
32031         indepsw.adb, indepsw.ads: New files.
32032
32033 2004-08-09  Bernard Banner  <banner@gnat.com>
32034
32035         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
32036
32037         * Makefile.in: add section for vxworks x86
32038
32039 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
32040
32041         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
32042         per-object constrained components where the discriminant is of an
32043         Access type.
32044         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
32045         the parent initialization procedure for derived Unchecked_Unions.
32046         Instead, derived Unchecked_Unions build their own initialization
32047         procedure.
32048         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
32049         Check the body of the subprogram for details.
32050         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
32051         functions for derived Unchecked_Union types by introducing a condition.
32052         Allow the creation of TSS equality functions for Unchecked_Unions.
32053         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
32054         Add formal parameter Discr to function signature. Discr is used to
32055         control the generated case statement for Unchecked_Union types.
32056         (Make_Eq_If): Rename formal parameter Node to E in function signature.
32057
32058         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
32059         Unchecked_Unions.
32060         Check the body of the subprogram for details.
32061         (Expand_Composite_Equality): Augment composite type equality to include
32062         correct handling of Unchecked_Union components.
32063         (Expand_N_In): Add condition to detect illegal membership tests when the
32064         subtype mark is a constrained Unchecked_Union and the expression lacks
32065         inferable discriminants, and build a Raise_Program_Error node.
32066         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
32067         to detect types that contain components of unconstrained Unchecked_Union
32068         subtype. Add condition to detect equality between types that have an
32069         unconstrained Unchecked_Union component, and build a Raise_Program_Error
32070         node. Add condition to detect equality between Unchecked_Union types
32071         that lack inferable discriminants, and build a Raise_Program_Error node.
32072         Otherwise build a TSS equality function call.
32073         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
32074         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
32075         with the operand lacking inferable discriminants, and build a Raise_
32076         Program_Error node.
32077         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
32078         composite equality.
32079         (Has_Inferable_Discriminants): Implement new predicate for objects and
32080         expressions of Unchecked_Union type. Check the body of subprogram for
32081         details.
32082         (Has_Unconstrained_UU_Components): Add function
32083         Component_Is_Unconstrained_UU. It is used to detect whether a single
32084         component is of an unconstrained Unchecked_Union subtype. Add function
32085         Variant_Is_Unconstrained_UU. It is used to detect whether a single
32086         component inside a variant is of an unconstrained Unchecked_Union type.
32087
32088         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
32089         inferred discriminant values. Add condition to generate a case
32090         statement with an inferred discriminant as the switch.
32091         (Make_Component_List_Assign): Introduce a Boolean flag that determines
32092         the behaviour of the subprogram in the presence of an Unchecked_Union.
32093         Add condition to trigger the usage of the inferred discriminant value
32094         as the generated case statement switch.
32095         (Make_Field_Assign): Introduce a Boolean flag that determines the
32096         behaviour of the subprogram in the presence of an Unchecked_Union. Add
32097         condition to trigger the usage of the inferred discriminant value as
32098         the right-hand side of the generated assignment.
32099
32100         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
32101         parameter generation when dealing with Unchecked_Unions.
32102
32103         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
32104         checks for Unchecked_Unions.
32105
32106         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
32107
32108         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
32109         Raise_Program_Error nodes for the execution of Read and Write
32110         attributes of Unchecked_Union types and the execution of Input and
32111         Output attributes of Unchecked_Union types that lack default
32112         discriminant values.
32113
32114         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
32115         Unchecked_Union. Add procedure Check_Component. It is used to inspect
32116         per-object constrained components of Unchecked_Unions for being
32117         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
32118         check individual components withing a variant.
32119
32120         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
32121         comparison of Unchecked_Unions.
32122         (Resolve_Equality_OP): Remove guard that prevents equality between
32123         Unchecked_Unions.
32124
32125         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
32126         of component subtypes for Unchecked_Union components.
32127         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
32128         since it is the actual subtype.
32129
32130         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
32131         pass of Unchecked_Union subtypes as generic actuals to formal types
32132         that lack known_discriminant_parts or that are derived Unchecked_Union
32133         types, and do nothing. In any other case, produce an error message.
32134
32135         * sem_ch3.adb (Analyze_Component_Declaration): Add function
32136         Contains_POC. It determines whether a constraint uses the discriminant
32137         of an enclosing record type.
32138         Add condition to detect per-object constrained component and set the
32139         appropriate flag.
32140         (Derived_Type_Declaration): Remove guard that prevents derivation from
32141         Unchecked_Union types.
32142         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
32143         Union subtypes.
32144
32145         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
32146         references to Unchecked_Union discriminants.
32147
32148         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
32149         formal generation when dealing with Unchecked_Unions.
32150         (Set_Actual_Subtypes): Add condition to prevent generation of actual
32151         subtypes for Unchecked_Unions.
32152
32153         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
32154         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
32155         completions of discriminated partial views by Unchecked_Unions and
32156         produce an error message.
32157
32158 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32159
32160         * trans.c (struct stmt_group): New field, GLOBAL.
32161         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
32162         (struct elab_info): New struct.
32163         (elab_info_list, gnu_elab_proc_stack): New variables.
32164         (Compilation_Unit_to_gnu): New procedure.
32165         (gigi): Call it and also handle elaboration procs we've saved.
32166         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
32167         global field from parent.
32168         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
32169         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
32170         (start_stmt_group): Initialize global field from parent.
32171         (add_decl_expr): Set to global for current statement group.
32172         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
32173         post.
32174
32175         * utils.c (global_bindings_p): True when no current_function_decl; no
32176         longer check current_binding_level.
32177
32178 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
32179
32180         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
32181         choice.
32182
32183         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
32184
32185 2004-08-06  Andreas Schwab  <schwab@suse.de>
32186
32187         * utils.c (gnat_define_builtin): Remove second parameter of
32188         make_decl_rtl.
32189         (begin_subprog_body): Likewise.
32190
32191 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
32192
32193         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
32194         optimization, not supported by the tree-ssa back-end.
32195
32196 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
32197
32198         * s-mastop-irix.adb: Update comments.
32199
32200         * a-except.adb (Exception_Information): Raise Constraint_Error if
32201         exception Id is Null_Id.
32202         This is required behavior, which is more reliably and clearly checked
32203         at the top level interface level.
32204
32205 2004-07-26  Javier Miranda  <miranda@gnat.com>
32206
32207         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
32208         call if a component has no default_expression and the box is used.
32209
32210         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
32211         default_expression and you use box, it behaves as if you had declared a
32212         stand-alone object.
32213         (Resolve_Record_Aggregate): If a component has no default_expression and
32214         you use box, it behaves as if you had declared a stand-alone object.
32215
32216         * sem_ch10.adb (Install_Siblings): Do not make visible the private
32217         entities of private-with siblings.
32218
32219 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
32220
32221         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
32222         for a component of an itype, set the parent pointer for analysis,
32223         there is no list in which to insert it.
32224
32225         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
32226         bona-fide renamings, not for inherited operations.
32227
32228         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
32229         actual for a formal that is an access parameter, create local
32230         finalization list even if the expression is not an aggregate.
32231
32232 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
32233
32234         PR ada/16213
32235         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
32236         Diagnose properly illegal subprogram renamings that are library units.
32237
32238 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
32239
32240         PR ada/15588
32241         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
32242         conversion rewritten as an unchecked conversion, check that original
32243         expression is a variable.
32244
32245         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
32246         unchecked_conversion, create new node rather than rewriting in place,
32247         to preserve original construct.
32248
32249 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32250
32251         * gigi.h (gnat_expand_body): Deleted.
32252
32253         * Make-lang.in: (trans.o): Depends on function.h.
32254
32255         * misc.c: (gnat_expand_body): Moved to here.
32256
32257         * trans.c (gnat_expand_body_1): Deleted.
32258         (gnat_expand_body): Moved from here.
32259         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
32260         (add_stmt): Check for marked visited with global_bindings_p.
32261         (gnat_gimplify_expr, case COMPONENT_REF): New case.
32262         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
32263
32264         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
32265         VIEW_CONVERT_EXPR if not operation type.
32266
32267         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
32268         fat pointer.
32269
32270         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
32271         changes: reformatting of negation operators, removing unneeded
32272         inequality comparison with zero, converting equality comparisons with
32273         zero to negations, changing int/0/1 to bool/false/true, replace calls
32274         to gigi_abort with abort, and various other similar changes.
32275
32276 2004-07-26  Vincent Celier  <celier@gnat.com>
32277
32278         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
32279         "setup".
32280
32281         * make.adb (Gnatmake): Fail when a library is not present and there is
32282         no object directory.
32283
32284         * mlib-prj.adb (Check_Library): No need to check if the library needs
32285         to be rebuilt if there is no object directory, hence no object files
32286         to build the library.
32287
32288         * opt.ads (Setup_Projects): New Boolean flag.
32289
32290         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
32291         Location.
32292         Create directory when Kind /= "" and in "gnat setup". Report error if
32293         directory cannot be created.
32294         (Ada_Check): Create library interface copy dir if it does not exist
32295         and we are in "gnat setup".
32296         (Find_Sources): No error if in "gnat setup" and no Ada sources were
32297         found.
32298         (Language_Independent_Check): Create object directory, exec directory
32299         and/or library directory if they do not exist and we are in
32300         "gnat setup".
32301
32302         * vms_conv.ads: (Command_Type): New command Setup.
32303
32304         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
32305
32306         * vms_data.ads: Add qualifiers/switches for new built-in command
32307         "setup".
32308
32309 2004-07-25  Richard Henderson  <rth@redhat.com>
32310
32311         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
32312         DECL_IGNORED_P on RESULT_DECL.
32313
32314 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
32315
32316         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
32317         allocation and potentially overflowing update with
32318         Tailored_Exception_Information. Use the sec-stack free procedural
32319         interface to output Exception_Information instead.
32320
32321         * a-except.adb (To_Stderr): New subprogram for character, and string
32322         version moved from a-exextr to be visible from other separate units.
32323         (Tailored_Exception_Information): Remove the procedural version,
32324         previously used by the default Last_Chance_Handler and not any more.
32325         Adjust various comments.
32326
32327         * a-exexda.adb: Generalize the exception information procedural
32328         interface, to minimize the use of secondary stack and the need for
32329         local buffers when the info is to be output to stderr:
32330         (Address_Image): Removed.
32331         (Append_Info_Character): New subprogram, checking for overflows and
32332         outputing to stderr if buffer to fill is of length 0.
32333         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
32334         (Append_Info_Address, Append_Info_Exception_Name,
32335         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
32336         Append_Info_Basic_Exception_Traceback,
32337         Append_Info_Exception_Information): New subprograms.
32338         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
32339         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
32340         Exception_Info_Maxlength, Exception_Name_Length,
32341         Exception_Message_Length): New subprograms.
32342         (Exception_Information): Use Append_Info_Exception_Information.
32343         (Tailored_Exception_Information): Use
32344         Append_Info_Basic_Exception_Information.
32345         Export services for the default Last_Chance_Handler.
32346
32347         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
32348         other separate units.
32349
32350 2004-07-20  Vincent Celier  <celier@gnat.com>
32351
32352         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
32353
32354 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
32355
32356         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
32357         emit itype references for the designated types of component types that
32358         are declared outside of the full record declaration, and that may
32359         denote a partial view of that record type.
32360
32361 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
32362
32363         PR ada/15607
32364         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
32365         which is the designated type in an access component declaration, to the
32366         list of incomplete dependents of the parent type, to avoid elaboration
32367         issues with out-of-scope subtypes.
32368         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
32369         full view of the parent.
32370
32371 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
32372
32373         PR ada/15610
32374         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
32375         entities that are hidden, such as references to generic actuals
32376         outside an instance.
32377
32378 2004-07-20  Javier Miranda  <miranda@gnat.com>
32379
32380         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
32381         support to the new notation.
32382         (Analyze_Selected_Component): Add call to Try_Object_Operation.
32383
32384 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
32385
32386         * s-taprob.adb: Adding the elaboration code required for initializing
32387         the tasking soft links that are common to the full and the restricted
32388         run times.
32389
32390         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
32391         restricted run time has been moved to the package
32392         System.Soft_Links.Tasking.
32393
32394         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
32395         restricted run time has been moved to the package
32396         System.Soft_Links.Tasking.
32397
32398         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
32399
32400         * s-solita.ads, s-solita.adb: New files.
32401
32402 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32403
32404         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
32405         Case_Statement_to_gnu): Split off from gnat_to_gnu.
32406         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
32407         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
32408         Exception_Handler_to_gnu_zcx): Likewise.
32409
32410 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
32411
32412         * gigi.h (builtin_function): Declare.
32413
32414 2004-07-15  Robert Dewar  <dewar@gnat.com>
32415
32416         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
32417         reformatting
32418
32419         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
32420         access values as an example of a warning.
32421
32422         * gnat_rm.texi: Document new attribute Has_Access_Values
32423
32424         * gnat-style.texi: Document that box comments belong on nested
32425         subprograms
32426
32427         * sem_util.ads (Has_Access_Values): Improved documentation
32428
32429         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
32430
32431         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
32432         (Process_Interface_Name): Call to this new procedure
32433         (Set_Extended_Import_Export_External_Name): Call to this new procedure
32434
32435         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
32436
32437         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
32438
32439         * einfo.ads: Minor comment typo fixed
32440
32441 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
32442
32443         * snames.adb: Add _atcb.
32444
32445         * snames.ads: Add Name_uATCB.
32446
32447         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
32448         (in the expanded code) when using the restricted run time.
32449
32450         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
32451         a in parameter in order to allow ATCBs to be preallocated (in the
32452         expanded code).
32453
32454         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
32455         order to allow ATCBs to be preallocated. In case of error, the ATCB is
32456         deallocated in System.Tasking.Stages.
32457
32458         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
32459         order to allow ATCBs to be preallocated.
32460
32461         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
32462         here. It was previously done in Initialize_ATCB.
32463
32464         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
32465
32466         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
32467         Restricted run time.
32468
32469         * exp_ch3.adb: When using the Restricted run time, pass the
32470         preallocated Ada_Task_Control_Block when creating a task.
32471
32472 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
32473
32474         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
32475         function call that is itself an actual in an enclosing call, diagnose
32476         problem here rather than assuming that resolution will catch it.
32477
32478         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
32479         the local copy of a generic unit for a formal package, and the generic
32480         is a child unit, install private part of ancestors before compiling
32481         private part of spec.
32482
32483         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
32484         use scope entities rather than tree structures, to handle properly
32485         parent units that are instances rewritten as bodies for inlining
32486         purposes.
32487
32488         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
32489         Remove_Parents): Handle properly a parent unit that is an
32490         instantiation, when the unit has been rewritten as a body for inlining
32491         purposes.
32492
32493         * par.adb (Goto_List): Global variable to collect goto statements in a
32494         given unit, for use in detecting natural loops.
32495
32496         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
32497         use in detecting natural loops.
32498
32499         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
32500         backwards goto's, and rewrite as a infinite loop, to improve locality
32501         of temporaries.
32502
32503         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
32504         subcomponent that includes an indexed reference, to prevent the
32505         generation of copies that would miscompile the desired assignment
32506         statement.
32507         (Build_Task_Image_Decls): Add a numeric suffix to
32508         generated name for string variable, to avoid spurious conflicts with
32509         the name of the type of a single protected object.
32510
32511         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
32512         loop with an explicit exit statement, to avoid generating an
32513         out-of-range value with 'Succ leading to spurious constraint_errors
32514         when compiling with -gnatVo.
32515
32516 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
32517
32518         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
32519         might not be analyzed yet, even if its Etype is already set (case of an
32520         unchecked conversion built using Unchecked_Convert_To, for example).
32521         If the prefix has already been analyzed, this will be a nop anyway.
32522
32523         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
32524         controller type, or an assignment of a record type with controlled
32525         components, copy only user data, and leave the finalization chain
32526         pointers untouched.
32527
32528 2004-07-15  Vincent Celier  <celier@gnat.com>
32529
32530         * make.adb (Collect_Arguments): Improve error message when attempting
32531         to compile a source not part of any project, when -x is not used.
32532
32533         * prj.ads: (Defined_Variable_Kind): New subtype
32534
32535         * prj-attr.adb (Register_New_Package): Two new procedures to register
32536         a package with or without its attributes.
32537         (Register_New_Attribute): Mew procedure to register a new attribute in a
32538         package.
32539         New attribute oriented subprograms: Attribute_Node_Id_Of,
32540         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32541         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32542         Next_Attribute.
32543         New package oriented subprograms: Package_Node_Id_Of,
32544         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32545
32546         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
32547         type.
32548         (Package_Node_Id): Now a private, self initialized type
32549         (Register_New_Package): New procedure to register a package with its
32550         attributes.
32551         New attribute oriented subprograms: Attribute_Node_Id_Of,
32552         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32553         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32554         Next_Attribute.
32555         New package oriented subprograms: Package_Node_Id_Of,
32556         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32557
32558         * prj-dect.adb (Parse_Attribute_Declaration,
32559         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
32560
32561         * prj-makr.adb (Make): Parse existing project file before creating
32562         other files. Fail if there was an error during parsing.
32563
32564         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
32565         new spec of Prj.Attr.
32566
32567         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
32568         to new spec of Prj.Attr.
32569
32570 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32571
32572         * utils2.c: Fix typo in comment.
32573
32574 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32575
32576         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
32577         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
32578
32579 2004-07-14  Andreas Schwab  <schwab@suse.de>
32580
32581         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
32582
32583 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32584
32585         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
32586         object type.
32587         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
32588         TYPE_STUB_DECL.
32589
32590         * misc.c (gnat_types_compatible_p): New function.
32591         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
32592         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
32593
32594         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
32595         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
32596         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
32597         (mark_visited): Don't mark dummy type.
32598         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
32599         parameter, we must remove any LJM building from GNU_NAME.
32600         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
32601         (pos_to_constructor): Use int_const_binop.
32602         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
32603         PARM_DECL.
32604
32605         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
32606         (gnat_pushlevel): Set TREE_USE on BLOCK node.
32607         (gnat_install_builtins): Add __builtin_memset.
32608
32609 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
32610
32611         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
32612         for a renaming, stabilize the initialization expression if we are at a
32613         local level.  At the local level, uses of the renaming may be performed
32614         by a direct dereference of the initializing expression, and we don't
32615         want possible variables there to be evaluated for every use.
32616
32617         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
32618         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
32619         them on the way.  Account for the fact that we may introduce side
32620         effects in the process.
32621
32622 2004-07-13  Richard Henderson  <rth@redhat.com>
32623
32624         * misc.c (default_pass_by_ref): Use pass_by_reference.
32625
32626 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
32627
32628         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
32629         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
32630
32631 2004-07-08  Richard Henderson  <rth@redhat.com>
32632
32633         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
32634         commentary.
32635
32636 2004-07-06  Vincent Celier  <celier@gnat.com>
32637
32638         * vms_conv.ads: Minor reformatting.
32639         Alphabetical order for enumerated values of type Command_Type, to have
32640         the command in alphabetical order for the usage.
32641
32642         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
32643         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
32644
32645         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
32646
32647         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
32648         (Add_Archive_Path): Only add the global archive if there is one.
32649         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
32650         or not any object file to put in the global archive, and don't build
32651         a global archive if there is none.
32652         (X_Switches): New table
32653         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
32654         in the X_Switches table, if any.
32655         (Initialize): Make sure the X_Switches table is empty
32656         (Scan_Arg): Record -X switches in table X_Switches
32657
32658         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
32659
32660         * make.adb: Minor comment fix
32661
32662         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
32663         invoked with directory information, add the directory in front of the
32664         path.
32665
32666         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
32667         invoked with directory information, add the directory in front of the
32668         path.
32669
32670         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
32671         when Keep_Temporary_Files is False.
32672         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
32673         directory information, add the directory in front of the path.
32674         When not on VMS, handle new switch -dn before the command to set
32675         Keep_Temporary_Files to True.
32676         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
32677         everywhere.
32678
32679         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
32680         invoked with directory information, add the directory in front of the
32681         path.
32682
32683 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
32684
32685         * snames.ads, snames.adb (Name_Stub): New name for the distributed
32686         systems annex.
32687
32688         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
32689         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
32690
32691         * g-socket.adb (To_Timeval): Fix incorrect conversion of
32692         Selector_Duration to Timeval for the case of 0.0.
32693
32694         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
32695         documentation from Evolve_And_Then.
32696
32697 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
32698
32699         * s-taprop-tru64.adb, s-taprop-os2.adb,
32700         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
32701
32702 2004-07-06  Robert Dewar  <dewar@gnat.com>
32703
32704         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
32705         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
32706         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
32707         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
32708         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
32709         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
32710         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
32711         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
32712         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
32713         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
32714         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
32715         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
32716         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
32717         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
32718         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
32719         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
32720         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
32721         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
32722         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
32723         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
32724         vms_data.ads: Minor reformatting,
32725         Fix bad box comment format.
32726
32727         * gnat_rm.texi: Fix minor grammatical error
32728
32729         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
32730
32731         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
32732         more cases of discriminated records to be recognized as not needing a
32733         secondary stack.
32734         (Has_Access_Values): New function.
32735
32736         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
32737
32738         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
32739         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
32740         with LRM terminology).
32741         Change terminology in comments primitive type => elementary type.
32742
32743 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32744
32745         PR ada/15602
32746         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
32747         parameters do not impose any requirements on the presence of a body.
32748
32749 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32750
32751         PR ada/15593
32752         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
32753         compilation unit and is in an open scope at the point of instantiation,
32754         assume that a body may be present later.
32755
32756 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
32757
32758         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
32759         Improve error message when specified size is not supported.
32760
32761         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
32762         is never a primitive operation.
32763
32764 2004-07-05  Andreas Schwab  <schwab@suse.de>
32765
32766         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
32767         RECORD_OR_UNION_CHECK.
32768         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
32769
32770 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
32771
32772         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
32773         dependency on xgnatugn, instead build it via a submake.
32774         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
32775
32776 2004-07-04  Richard Henderson  <rth@redhat.com>
32777
32778         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
32779
32780 2004-07-01  Richard Henderson  <rth@redhat.com>
32781
32782         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
32783         * utils.c (max_size): Likewise.
32784
32785 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32786
32787         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
32788         and rest_of_type_compilation; add arg to create_*_decl.
32789         (annotate_decl_with_node): Deleted.
32790         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
32791         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
32792         (get_current_block_context, gnat_pushdecl): New declarations.
32793         (gnat_init_stmt_group): Likewise.
32794         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
32795         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
32796         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
32797         (gnat_init): Call gnat_init_stmt_group.
32798         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
32799         (gnu_pending_elaboration_list): Deleted.
32800         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
32801         (gigi): Rearrange initialization calls and move some to last above.
32802         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
32803         Delete calls to add_decl_expr; add arg to create_*_decl.
32804         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
32805         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
32806         begin_subprog_body and call it.
32807         Don't push and pop ggc context.
32808         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
32809         (add_stmt): Remove handling of DECL_EXPR from here.
32810         If not in function, mark visited.
32811         (add_decl_expr): Put global at top level.
32812         Check for cases of DECL_INITIAL we have to handle here.
32813         (process_type): Add extra arg to create_type_decl.
32814         (build_unit_elab): Rework to just gimplify.
32815         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
32816         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
32817         (get_pending_elaborations, pending_elaborations_p): Likewise.
32818         (push_pending_elaborations, pop_pending_elaborations): Likewise.
32819         (get_elaboration_location, insert_elaboration_list): Likewise.
32820         (gnat_binding_level): Renamed from ada_binding_level.
32821         (init_gnat_to_gnu): Don't clear pending_elaborations.
32822         (global_bindings_p): Treat as global if no current_binding_level.
32823         (set_current_block_context): New function.
32824         (gnat_pushdecl): Renamed from pushdecl; major rework.
32825         All callers changed.
32826         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
32827         (finish_record_type): Call call pushdecl for stub decl.
32828         (function_nesting_depth): Deleted.
32829         (begin_subprog_body): Delete obsolete code.
32830         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
32831
32832 2004-06-28  Robert Dewar  <dewar@gnat.com>
32833
32834         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32835         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
32836         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
32837         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
32838         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
32839
32840         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
32841         deal with problem of inefficient slices on machines with strict
32842         alignment, when the slice is a component of a composite.
32843
32844         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
32845         machines, we need the check there as well.
32846
32847 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
32848
32849         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
32850         determine safe copying direction for overlapping slice assignments
32851         when component is controlled.
32852
32853         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
32854         formal derived type in the actual for a formal package are visible in
32855         the enclosing instance.
32856
32857 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
32858
32859         PR ada/15600
32860         * sem_util.adb (Trace_Components): Diagnose properly an illegal
32861         circularity involving a private type whose completion includes a
32862         self-referential component.
32863         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
32864         renaming or an instantiation from an implicit derived operation.
32865
32866 2004-06-28  Pascal Obry  <obry@gnat.com>
32867
32868         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
32869         DLL.
32870         (Library_File_Name_For): Idem.
32871
32872 2004-06-28  Matthew Gingell  <gingell@gnat.com>
32873
32874         * g-traceb.ads: Add explanatory note on the format of addresses
32875         expected by addr2line.
32876
32877 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
32878
32879         * Makefile.in: Force debugging information on s-tasdeb.adb,
32880         a-except.adb and s-assert.adb needed by the debugger.
32881
32882 2004-06-28  Vincent Celier  <celier@gnat.com>
32883
32884         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
32885         Need_To_Build_Lib.
32886         (Gnatmake): Ditto.
32887
32888         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
32889
32890         * prj.adb: Minor reformatting
32891         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
32892
32893         * prj.ads: Comment updates
32894         Minor reformatting
32895         (Project_Data): Change Flag1 to Need_To_Build_Lib.
32896         Remove Flag2: not used.
32897
32898         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
32899         declaration.
32900
32901         * gnat_ugn.texi: Put a "null;" declaration in one project file example
32902
32903         * gnat_rm.texi: Document Empty declarations "null;".
32904
32905         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
32906         front of the linker options.
32907         (Link_Foreign): Put the global archives and the libraries in front of
32908         the linker options.
32909
32910 2004-06-28  Javier Miranda  <miranda@gnat.com>
32911
32912         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
32913         (RTU_Loaded): Code cleanup
32914         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
32915         withed predefined units.
32916
32917         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
32918         explicitly withed predefined units.
32919         Fix typo in comment
32920
32921         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
32922         explicitly withed predefined units.
32923
32924 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32925
32926         * ada-tree.def (DECL_STMT): Deleted.
32927         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
32928         (DECL_STMT_VAR): Deleted.
32929         * decl.c: add_decl_stmt now add_decl_expr.
32930         * gigi.h: Likewise.
32931         * trans.c: Likewise.
32932         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
32933         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
32934         (add_stmt): Only handle padded type here.
32935         (add_stmt_with_node): Allow gnat_node to not be present.
32936         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
32937         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
32938         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
32939         make a SAVE_EXPR for the entire fat pointer.
32940         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
32941         (create_index_type): Make a DECL_EXPR.
32942         (end_subprog_body): Don't call allocate_struct_function here but
32943         do clear cfun.
32944
32945 2004-06-25  Pascal Obry  <obry@gnat.com>
32946
32947         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
32948         Relocatable from Build_Dynamic_Library call.
32949
32950         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
32951         Relocatable are now synonym.
32952
32953         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
32954
32955         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
32956         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
32957         call.
32958
32959         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
32960         Lib_Address and Relocatable.
32961         (Default_DLL_Address): Removed.
32962
32963         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
32964         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
32965         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
32966         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
32967         (Default_DLL_Address): Removed.
32968
32969         * mlib-tgt-mingw.adb: Ditto.
32970         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
32971
32972         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
32973         the initial thread stack size.
32974
32975         * a-strmap.ads: Move package L to private part as it is not used in
32976         the spec. Found while reading code.
32977
32978 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
32979
32980         * tracebak.c: Introduce support for a GCC infrastructure based
32981         implementation of __gnat_backtrace.
32982
32983         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
32984         any more. Use accessors instead. This eases maintenance and relaxes
32985         some alignment constraints.
32986         (_GNAT_Exception structure): Remove the Ada specific fields
32987         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
32988         a-exexpr.adb.
32989         (is_handled_by, __gnat_eh_personality): Replace component references to
32990         exception structure by use of the new accessors.
32991
32992         * init.c (__gnat_initialize): Adjust comments to match the just
32993         reverted meaning of the -static link-time option.
32994
32995         * adaint.c (convert_addresses): Arrange not to define a stub for
32996         mips-irix any more, as we now want to rely on a real version from a
32997         recent libaddr2line.
32998
32999         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
33000         the personality routine can use them and not have to rely on a C
33001         counterpart of the record anymore. This simplifies maintenance and
33002         relaxes the constraint of having Standard'Maximum_Alignment match
33003         BIGGEST_ALIGNMENT.
33004         Update comments, and add a section on the common header alignment issue.
33005
33006 2004-06-25  Geert Bosch  <bosch@gnat.com>
33007
33008         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
33009         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
33010
33011 2004-06-25  Robert Dewar  <dewar@gnat.com>
33012
33013         * gnat_rm.texi: Fix section on component clauses to indicate that the
33014         restriction on byte boundary placement still applies for bit packed
33015         arrays.
33016         Add comment on stack usage from Initialize_Scalars
33017
33018         * gnat_ugn.texi: Add documentation for -gnatyLnnn
33019
33020         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
33021         limiting nesting level.
33022
33023         * usage.adb: Add line for -gnatyLnnn switch
33024
33025         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
33026         sem_ch13.adb, exp_aggr.adb: Minor reformatting
33027
33028         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
33029         type as well as on the subtype. This corrects a problem in freeze in
33030         setting alignments of atomic types.
33031
33032         * sem_eval.ads: Minor comment typo fixed
33033
33034         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
33035         level.  Minor reformatting.
33036
33037         * fname.adb (Is_Predefined_File_Name): Require a letter after the
33038         minus sign. This means that file names like a--b.adb will not be
33039         considered predefined.
33040
33041         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
33042         record Test new flag and give diagnostic for bad component clause.
33043         (Freeze_Entity): Set alignment of array from component alignment in
33044         cases where this is safe to do.
33045
33046         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
33047         arrays.
33048
33049         * cstand.adb: (Create_Standard): Set alignment of String to 1
33050
33051         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
33052
33053         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
33054         code in the common constrained array cases.
33055
33056         * a-storio.adb: Change implementation to avoid possible alignment
33057         problems on machines requiring strict alignment (data should be moved
33058         as type Buffer, not type Elmt).
33059
33060         * checks.adb (Apply_Array_Size_Check): Improve these checks by
33061         killing the overflow checks which we really do not need (64-bits is
33062         enough).
33063
33064 2004-06-25  Vincent Celier  <celier@gnat.com>
33065
33066         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
33067         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
33068         inconditionally for the main project.
33069         (Recursive_Add_Archives.Add_Archive_Path): New procedure
33070         (Link_Executables.Check_Time_Stamps): New procedure
33071         (Link_Executables.Link_Foreign): New procedure
33072         Changes made to reduce nesting level of this package
33073         (Check): New procedure
33074         (Add_Switches): When not in quiet output, check that a switch is not
33075         the concatenation of several valid switches. If it is, issue a warning.
33076         (Build_Global_Archive): If the global archive is rebuilt, linking need
33077         to be done.
33078         (Compile_Sources): Rebuilding a library archive does not imply
33079         rebuilding the global archive.
33080         (Build_Global_Archive): New procedure
33081         (Build_Library): New name for Build_Archive, now only for library
33082         project
33083         (Check_Archive_Builder): New procedure
33084         (Create_Global_Archive_Dependency_File): New procedure
33085         (Gprmake): Call Build_Global_Archive before linking
33086         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
33087         throughout.
33088         (Scan_Arg): Display the Copyright notice when -v is used
33089
33090         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
33091         for gnatls.
33092
33093         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
33094         COMPILE.
33095         Add new GNAT LIST qualifier /FILES=
33096         Added qualifier /DIRECTORY= to GNAT METRIC
33097         Added qualifier /FILES= to GNAT METRIC
33098         Added qualifier /FILES to GNAT PRETTY
33099
33100         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
33101         to take into account both versions of the switch.
33102
33103         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
33104         always be the last switch to the gcc driver. Disable switch storing so
33105         that switches automatically added by the gcc driver are not put in the
33106         ALI file.
33107
33108         * prj.adb (Project_Empty): Take into account changes in components of
33109         Project_Data.
33110
33111         * prj.ads (Languages_Processed): New enumaration value All_Languages.
33112
33113         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
33114         used. Split Boolean component Ada_Sources_Present in two Boolean
33115         components Ada_Sources_Present and Other_Sources_Present.
33116         Minor reformatting
33117
33118         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
33119         instead of Sources_Present.
33120         (Set_Ada_Paths.Add.Recursive_Add): Ditto
33121
33122         * prj-nmsc.adb: Minor reformatting
33123         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
33124         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
33125         Check_Ada_Naming_Scheme.
33126         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
33127         throughout.
33128
33129         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
33130         In_Limited.
33131         Make sure that all cycles where there is at least one "limited with"
33132         are detected.
33133         (Parse_Single_Project): New Boolean parameter In_Limited
33134
33135         * prj-proc.adb (Recursive_Check): When Process_Languages is
33136         All_Languages, call first Prj.Nmsc.Ada_Check, then
33137         Prj.Nmsc.Other_Languages_Check.
33138
33139         * prj-proc.adb (Process): Use Ada_Sources_Present or
33140         Other_Sources_Present (instead of Sources_Present) depending on
33141         Process_Languages.
33142
33143         * lang-specs.h: Keep -g and -m switches in the same order, and as the
33144         last switches.
33145
33146         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
33147         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
33148         False.
33149         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
33150         False.
33151
33152         * lib.ads (Disable_Switch_Storing): New procedure.
33153
33154         * make.adb: Modifications to reduce nesting level of this package.
33155         (Check_Standard_Library): New procedure
33156         (Gnatmake.Check_Mains): New procedure
33157         (Gnatmake.Create_Binder_Mapping_File): New procedure
33158         (Compile_Sources.Compile): Add switch -gnatez as the last option
33159         (Display): Never display -gnatez
33160
33161         * Makefile.generic:
33162         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
33163
33164         * gnatcmd.adb (Check_Project): New function
33165         (Process_Link): New procedure to reduce nesting depth
33166         (Check_Files): New procedure to reduce the nesting depth.
33167         For GNAT METRIC, include the inherited sources in extending projects.
33168         (GNATCmd): When GNAT LS is invoked with a project file and no files,
33169         add the list of files from the sources of the project file. If this list
33170         is too long, put it in a temp text files and use switch -files=
33171         (Delete_Temp_Config_Files): Delete the temp text file that contains
33172         a list of source for gnatpp or gnatmetric, if one has been created.
33173         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
33174         in the project file is too large, create a temporary text file that
33175         list them and pass it to the tool with "-files=<temp text file>".
33176         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
33177
33178         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
33179         generated file is in not in Ada.
33180
33181         * gnatls.adb: Remove all parameters And_Save that are no longer used.
33182         (Scan_Ls_Arg): Add processing for -files=
33183         (Usage): Add line for -files=
33184
33185         * g-os_lib.adb (On_Windows): New global constant Boolean flag
33186         (Normalize_Pathname): When on Windows and the path starts with a
33187         directory separator, make sure that the resulting path will start with
33188         a drive letter.
33189
33190         * clean.adb (Clean_Archive): New procedure
33191         (Clean_Project): When there is non-Ada code, delete the global archive,
33192         the archive dependency files, the object files and their dependency
33193         files, if they exist.
33194         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
33195
33196 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
33197
33198         * sinfo.ads: Fix typo in comment.
33199
33200         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
33201         the TSS for remote access-to-subprogram types, since these TSS are
33202         always present once the type has been analyzed.
33203         (RAS_E_Dereference): Same.
33204
33205         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
33206         reference raises Bad_Attribute, mark the reference as analyzed so the
33207         node (and any children resulting from rewrites that could have occurred
33208         during the analysis that ultimately failed) is not analyzed again.
33209
33210         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
33211
33212         * exp_dist.adb: Minor comment fix.
33213
33214         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
33215         type is an anonymous access type, no unchecked deallocation of the
33216         allocated object can occur. If the object is controlled, attach it with
33217         a count of 1. This allows attachment to the Global_Final_List, if
33218         no other relevant list is available.
33219         (Get_Allocator_Final_List): For an anonymous access type that is
33220         the type of a discriminant or record component, the corresponding
33221         finalisation list is the one of the scope of the type.
33222
33223 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
33224
33225         * sem_ch3.adb (Replace_Type): When computing the signature of an
33226         inherited subprogram, use the first subtype if the derived type
33227         declaration has no constraint.
33228
33229         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
33230         before applying previous optimization. Minor code cleanup.
33231
33232         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
33233         placed at the beginning of an unpacked record without explicit
33234         alignment, a slice of it will be aligned and does not need a copy when
33235         used as an actual.
33236
33237 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
33238
33239         PR ada/15591
33240         PR ada/15592
33241         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
33242         reference is written with expressions mimicking parameters.
33243
33244 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
33245
33246         PR ada/15589
33247         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
33248         STEP 2a. The constraints of a full type declaration of a derived record
33249         type are checked for conformance with those declared in the
33250         corresponding private extension declaration. The message
33251         "not conformant with previous declaration" is emitted if an error is
33252         detected.
33253
33254 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
33255
33256         * g-traceb.ads: Document the need for -E binder switch in the spec.
33257
33258         * g-trasym.ads: Document the need for -E binder switch in the spec.
33259
33260 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
33261
33262         * sem_prag.adb: Add handling of pragma Detect_Blocking.
33263
33264         * snames.h, snames.ads, snames.adb: Add entry for pragma
33265         Detect_Blocking.
33266
33267         * s-rident.ads: Change reference to pragma Detect_Blocking.
33268
33269         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
33270         system.ads.
33271
33272         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
33273         to indicate whether pragma Detect_Blocking is active.
33274
33275         * par-prag.adb: Add entry for pragma Detect_Blocking.
33276
33277         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
33278         of not handling WITH.
33279         Note that this replaces the previous update which was incorrect.
33280
33281 2004-06-25  Javier Miranda  <miranda@gnat.com>
33282
33283         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
33284         use-clauses to have a clean environment.
33285
33286         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
33287         the installation of the use-clauses to stablish a clean environment in
33288         case of compilation of a separate unit; otherwise the call to
33289         use_one_package is protected by the barrier Applicable_Use.
33290
33291         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
33292         the installation of the use-clauses to stablish a clean environment in
33293         case of compilation of a separate unit.
33294         (End_Use_Clauses): Minor comment cleanup.
33295
33296 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
33297
33298         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
33299
33300 2004-06-23  Richard Henderson  <rth@redhat.com>
33301
33302         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
33303
33304 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33305
33306         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
33307         now bool instead of int.
33308         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
33309         * trans.c (gnu_switch_label_stack): New function.
33310         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
33311         elaboration of renamed entity returns.
33312         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
33313         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
33314         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
33315         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
33316         DECL_SIZE_UNIT and simplify variable-sized case.
33317         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
33318         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
33319         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
33320         (build_unit_elab): Disable for now.
33321         * utils.c (mark_visited): New function.
33322         (pushdecl): Walk tree to call it for global decl.
33323         (update_pointer_to): Update all variants of pointer and ref types.
33324         Add arg to COMPONENT_REF.
33325         (convert): Likewise.
33326         Move check for converting between variants lower down.
33327         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
33328         (build_allocator): Don't force type of MODIFY_EXPR.
33329         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
33330         put_var_into_stack.
33331
33332 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33333
33334         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
33335         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
33336         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
33337         subprograms.
33338         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
33339         all callers changed.
33340         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
33341         the way that EXIT_STMT finds the loop label.
33342         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
33343         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
33344         (add_stmt): Use annotate_with_locus insted of setting directly.
33345         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
33346         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
33347         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
33348         (build_vms_descriptor): Add extra args to ARRAY_REF.
33349         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
33350         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
33351         New cases.
33352         (build_binary_op): Don't make explicit CONVERT_EXPR.
33353         Add extra rgs to ARRAY_REF.
33354
33355 2004-06-14  Pascal Obry  <obry@gnat.com>
33356
33357         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
33358         Windows.  Fix minor typo.
33359
33360         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
33361         which is now supported on Windows. With this implementation using the
33362         Library Project feature is no different on Windows than on UNIX.
33363
33364 2004-06-14  Vincent Celier  <celier@gnat.com>
33365
33366         * makegpr.adb (Compile_Sources): Nothing to do when there are no
33367         non-Ada sources.
33368
33369         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
33370
33371         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
33372         found, show the project name and the path of the previously parsed
33373         project file.
33374
33375 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
33376
33377         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
33378         array, avoid copying the actual before the call.
33379
33380 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
33381
33382         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
33383         Instead, allocate memory on worst-case alignment assumptions, and then
33384         return an aligned address within the allocated zone.
33385
33386 2004-06-14  Robert Dewar  <dewar@gnat.com>
33387
33388         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
33389         elab entities in predefined units in No_Run_Time_Mode.
33390         (Gen_Adainit_C): Same fix
33391         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
33392         units in No_Run_Time_Mode
33393         (Gen_Elab_Calls_C): Same fix
33394
33395         * symbols-vms-alpha.adb: Minor reformatting
33396
33397         * g-debpoo.ads: Minor reformatting
33398
33399         * lib.adb (In_Same_Extended_Unit): Version working on node id's
33400
33401         * lib.ads (In_Same_Extended_Unit): Version working on node id's
33402
33403         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
33404         working on nodes.
33405
33406         * make.adb: Minor reformatting
33407
33408         * par-ch12.adb: Minor reformatting
33409
33410         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
33411
33412         * prj-strt.adb: Minor reformatting
33413
33414         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
33415         be more general.
33416
33417         * sem_attr.adb: Minor reformatting
33418
33419         * sem_ch7.adb: Minor reformatting
33420
33421         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
33422         for type in the same unit as the object declaration.
33423
33424         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
33425         static string expressions and not just string literals.
33426         Minor reformatting
33427         (Set_Warning): Reset restriction warning flag for restriction pragma
33428         Implement pragma Profile_Warnings
33429         Implement pragma Profile (Restricted)
33430         Give obolescent messages for old restrictions and pragmas
33431
33432         * snames.h, snames.ads, snames.adb: Add new entry for pragma
33433         Profile_Warnings.
33434
33435         * s-rident.ads: Add declarations for restrictions required by profile
33436         Restricted and profile Ravenscar.
33437
33438         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
33439
33440         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
33441         configuration pragmas.
33442
33443 2004-06-11  Vincent Celier  <celier@gnat.com>
33444
33445         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
33446         gnatsym, when symbol policy is Restricted.
33447
33448         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
33449         gnatsym, when symbol policy is Restricted.
33450
33451         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
33452         read the symbol file.
33453         (Finalize): Fail in symbol policy Restricted if a symbol in the original
33454         symbol file is not in the object files. Do not create a new symbol file
33455         when symbol policy is Restricted.
33456
33457         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
33458         in Scng.
33459
33460         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
33461         Restricted.
33462         (Usage): Line for new switch -R
33463
33464         * make.adb (Initialize): When the platform is not VMS, add the
33465         directory where gnatmake is invoked in the front of the path, if
33466         gnatmake is invoked with directory information.  Change the Scan_Args
33467         while loop to a for loop.
33468         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
33469         if Depth is equal or greater than the proposed depth, there is nothing
33470         to do.
33471         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
33472         instead of 0.
33473
33474         * prj.ads: Add new symbol policy Restricted.
33475
33476         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
33477         with the new parameters Check_All_Labels and Case_Location.
33478
33479         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
33480         (Library_Symbol_File needs to be defined).
33481
33482         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
33483         and Case_Location If Check_All_Labels is True, check that all values of
33484         the string type are used, and output warning(s) if they are not.
33485
33486         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
33487         and Case_Location.
33488
33489         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
33490
33491         * gnat_ugn.texi: Update documentation about the library directory in
33492         Library Projects.
33493
33494         * makegpr.adb (Display_Command): In verbose mode, also display the
33495         value of the CPATH env var, when the compiler is gcc.
33496         (Initialize): Change the Scan_Args while loop to a for loop
33497         (Compile_Individual_Sources): Change directory to object directory
33498         before compilations.
33499
33500         * symbols.ads: New symbol policy Restricted.
33501
33502 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
33503
33504         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
33505         is now taken care of internally in the Exception_Propagation package
33506         and does not require clients assistance any more.
33507
33508         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
33509         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
33510         functions. Helpers to maintain a predicate required in the handling of
33511         occurrence transfer between tasks.
33512         This is now handled internally and does not require clients assistance
33513         for the setup/propagate separation anymore.
33514         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
33515         allocation strategy, handle the Setup_And_Not_Propagated predicate and
33516         document.
33517
33518         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
33519         raise_after_setup, now that everything is handled internally within the
33520         setup/propagation engine.
33521
33522 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
33523
33524         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
33525         Add additional conditions for the case of an actual being a simple
33526         name or literal. Improve inlining by preventing the generation
33527         of temporaries with a short lifetime (one use).
33528
33529 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
33530
33531         PR ada/15587
33532         * einfo.ads: Minor comment updates for Has_Completion and
33533         E_Constant list of flags.
33534
33535         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
33536         and constant redeclarations now set the Has_Completion flag of their
33537         defining identifiers.
33538
33539         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
33540         Inspect_Deferred_Constant_Completion.
33541         Used to detect private deferred constants that have not been completed
33542         either by a constant redeclaration or pragma Import. Emits error message
33543         "constant declaration requires initialization expression".
33544
33545         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
33546         completes a deferred constant.
33547
33548 2004-06-11  Geert Bosch  <bosch@gnat.com>
33549
33550         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
33551
33552         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
33553         calculating exponent for scaling denormal numbers.
33554         (Leading_Part): Properly raise Constraint_Error for zero or negative
33555         Adjustment.
33556         (Remainder): Properly raise Constraint_Error for zero divisor.
33557
33558 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
33559
33560         * sem_util.adb: Minor reformatting.
33561
33562         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
33563         dereference when accessing the entry parameter record.
33564         (Check_Array_Type): Always check for possible implicit dereference.
33565         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33566         Abort if a pointer is still present (denoting that an implicit
33567         dereference was left in the tree by the front-end).
33568
33569         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
33570         dereference when accessing the entry parameter record.
33571         (Check_Array_Type): Always check for possible implicit dereference.
33572         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33573         Abort if a pointer is still present (denoting that an implicit
33574         dereference was left in the tree by the front-end).
33575
33576 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
33577
33578         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
33579         message, like the compiler itself does. Easier to parse the output.
33580
33581         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
33582
33583         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
33584         be base names, and not includes directories.
33585
33586 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
33587
33588         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
33589         so that dependencies are properly taken into account by make.
33590
33591 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
33592
33593         PR ada/15622
33594         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
33595         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
33596
33597 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
33598
33599         * Makefile.in (install-gnatlib): install target-specific run-time files.
33600
33601         * Make-lang.in: Remove obsolete targets.
33602
33603 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
33604
33605         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
33606         specification, to catch misuses of program unit names.
33607
33608         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
33609         superfluous conversions in an instance.
33610
33611 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
33612
33613         PR ada/15403
33614         * sem_ch12.adb (Save_References): If operator node has been folded to
33615         enumeration literal, associated_node must be discarded.
33616
33617 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
33618
33619         * s-stchop-vxworks.adb: Add required pragma Convention to
33620         Task_Descriptor because it is updated by a C function.
33621
33622 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
33623
33624         PR ada/15568
33625         * Makefile.in: Remove target specific SO_OPT on IRIX
33626
33627 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33628
33629         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
33630         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
33631         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
33632         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
33633         (STMT_STMT, USE_STMT): New statement codes.
33634         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
33635         * ada-tree.h: Reflect above changes.
33636         (struct tree_loop_id): Deleted.
33637         (union lang_tree_node, struct lang_decl, struct lang_type):
33638         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
33639         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
33640         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
33641         (IS_ADA_STMT): New macro.
33642         * decl.c (annotate_decl_with_node): New function.
33643         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
33644         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
33645         Call add_stmt_with_node to do needed assignments.
33646         Add call to update setjmp buffer directly, not via EXPR_STMT.
33647         (maybe_variable): Argment GNAT_NODE deleted.
33648         * gigi.h (maybe_variable): Likewise.
33649         (make_transform, add_stmt_with_node, set_block_for_group): New.
33650         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
33651         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
33652         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
33653         (set_lineno, set_lineno_from_sloc): Likewise.
33654         (record_code_position, insert_code_for): Likewise.
33655         (gnat_poplevel): Now returns void.
33656         (end_subprog_body): Now takes argument.
33657         * misc.c (cgraph.h, tree-inline.h): New includes.
33658         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
33659         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
33660         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
33661         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
33662         (gnat_parse_file): Don't set immediate_size_expand.
33663         Call cgraph functions.
33664         (gnat_expand_expr): Remove most cases.
33665         (record_code_position, insert_code_for): Remove from here.
33666         * trans.c (toplev.h, tree-gimple.h): Now included.
33667         (discard_file_names): Deleted.
33668         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
33669         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
33670         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
33671         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
33672         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
33673         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
33674         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
33675         (set_block_for_group, add_stmt_list): Likewise.
33676         (start_stmt_group): Renamed from start_block_stmt.
33677         (end_stmt_group): Likewise, from end_block_stmt.
33678         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
33679         (gigi): Don't set discard_file_names or call set_lineno.
33680         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
33681         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
33682         Numerous changes throughout to reflect new names and complete
33683         function-at-a-time implementation.
33684         (gnat_expand_stmt): Delete or comment out all cases.
33685         (process_inlined_subprograms): Use add_stmt.
33686         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
33687         call set_lineno; also remove unneeded block handling.
33688         (process_type): Remove unneeded block handling.
33689         (build_unit_elab): Remove calls to deleted functions.
33690         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
33691         (tree-dump.h): Likewise.
33692         (struct ada_binding_level): Add field jmpbuf_decl.
33693         (gnat_define_builtin, gnat_install_builtins): New.
33694         (gnat_gimplify_function, gnat_finalize): Likewise.
33695         (gnat_poplevel): No longer return BLOCK, set it instead.
33696         Remove code dealing with nested functions.
33697         (gnat_init_decl_processing): Also set size_type_node.
33698         Call gnat_install_builtins.
33699         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
33700         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
33701         Remove special-case for "main".
33702         (end_subprog_body): Add arg and rework for tree-ssa.
33703         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
33704         Add case for BOOLEAN_TYPE.
33705         * utils2.c (rtl.h): Now include.
33706         (build_call_raise): Test Debug_Flag_NN directly.
33707         (build_call_alloc_dealloc): Don't use local stack allocation for now.
33708         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
33709         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
33710
33711 2004-06-07  Robert Dewar  <dewar@gnat.com>
33712
33713         * a-direct.ads, einfo.ads: Minor comment updates
33714
33715         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
33716         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
33717         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
33718         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
33719         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
33720
33721         * s-interr-sigaction.adb: Remove unreferenced variable
33722         (Attached_Interrupts).  Minor reformatting.
33723         Avoid use of variable I (replace by J).
33724
33725         * par-ch10.adb: Fix text of one error message
33726
33727         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
33728         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
33729         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
33730         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
33731         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
33732         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
33733         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
33734         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
33735         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
33736         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
33737         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
33738         2005 support.
33739
33740 2004-06-07  Doug Rupp  <rupp@gnat.com>
33741
33742         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
33743
33744         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
33745
33746         * mlib-tgt-vms-ia64.adb: New file.
33747
33748         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
33749         Add mlib-tgt-vms-ia64.adb
33750         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
33751         Move to alpha specific ifeq section.
33752         Add VMS specific versions of symbols.adb
33753         Renaming of 5q vms files.
33754
33755         * 5qsystem.ads renamed to system-vms_64.ads.
33756
33757 2004-06-07  Vincent Celier  <celier@gnat.com>
33758
33759         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
33760         explain that when a time of day corresponding to the non existing hour
33761         on the day switching to DST is specified, Split may return a different
33762         value for Seconds.
33763
33764         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
33765         to GNAT PRETTY.
33766
33767         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
33768         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
33769
33770         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
33771         to False.
33772         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
33773         the linking options.
33774         (Build_Library.Check_Libs): On VMS, if there is a dependency on
33775         g-trasym.ads, set Gtrasymobj_Needed to True.
33776
33777         * prj-attr.adb: Add new package Metrics for gnatmetric
33778
33779         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
33780         canonical case to take into account files with upper case characters on
33781         Windows.
33782         (Ada_Check): Load the reference symbol file name in the name buffer to
33783         check it, not the symbol file name.
33784
33785         * snames.ads, snames.adb: Add standard name Metrics (name of project
33786         file package for gnatmetric).
33787
33788         * vms_conv.ads: Add Metric to Comment_Type
33789
33790         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
33791
33792         * vms_data.ads: Add qualifiers for GNAT METRIC
33793
33794         * makegpr.adb (Link_Executables): Take into account the switches
33795         specified in package Linker of the main project.
33796
33797 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
33798
33799         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
33800         the index of the last element is Units.Last, not Units.Table'Last
33801         (which is usually not a valid index within the actually allocated
33802         storage for the table).
33803
33804         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
33805         determines whether to generate a call to a checked storage pool
33806         Dereference action.
33807         Generate such a call only for a dereference that either comes from
33808         source, or is the result of rewriting a dereference that comes from
33809         source.
33810
33811 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
33812
33813         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
33814
33815 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
33816
33817         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
33818         file level, elaborate the stride for inner dimensions in alignment
33819         units, not bytes.
33820
33821         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
33822         in a comment.
33823
33824 2004-06-07  Javier Miranda  <miranda@gnat.com>
33825
33826         * exp_ch6.adb: Correct wrong modification in previous patch
33827
33828 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
33829
33830         * g-trasym.ads: Corrected comment to properly reflect level of support
33831         on VMS.
33832
33833 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
33834
33835         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
33836         includes case of a variable referenced on the left hand side of an
33837         assignment, therefore remove redundant code. Variables and prefixes of
33838         indexed or selected components are now marked as referenced on left
33839         hand side. Warnings are now properly emitted when variables or prefixes
33840         are assigned but not read.
33841
33842         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
33843         left hand side referenced variables. Private access types do not
33844         produce the warning "variable ... is assigned but never read".
33845         Add also additional checks to left hand side referenced variables.
33846         Aliased, renamed objects and access types do not produce the warning
33847         "variable ... is assigned but never read" since other entities may read
33848         the memory location.
33849
33850 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
33851
33852         * Makefile.in: In the powerpc/vxworks-specific section, restore
33853         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
33854         by mistake).
33855
33856 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
33857
33858         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
33859         predefined operators.
33860         Removes spurious type errors from g-trasym-vms.adb.
33861
33862         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
33863         distinct from the operator appearing in the source, call appropriate
33864         routine to insert conversions when needed, and complete resolution of
33865         node.
33866         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
33867         interpretations for rewritten right operand.
33868         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
33869         the other operand is overloaded and the context is a type conversion.
33870
33871 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33872
33873         * ada-tree.def (BLOCK_STMT): Now has two operands.
33874         (BREAK_STMT): New.
33875
33876         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
33877
33878         * gigi.h: (gnat_poplevel): Now returns a tree.
33879
33880         * trans.c (end_block_stmt): Add arg; all callers changed.
33881         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
33882         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
33883         (add_stmt): Set TREE_TYPE.
33884         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
33885         (gnat_expand_stmt, case BREAK_STMT): New case.
33886
33887         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
33888
33889 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
33890
33891         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
33892         procedure Set_Stack_Size that is not needed.
33893
33894 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
33895
33896         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
33897         used for gnatpp input file and for the files upon which it depends
33898
33899 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
33900
33901         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
33902
33903 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
33904
33905         * gnatvsn.ads: Bump version numbers appropriately.
33906         Add new build type.
33907
33908 2004-06-07  Pascal Obry  <obry@gnat.com>
33909
33910         * gnat_ugn.texi: Improve comments about imported names and link names
33911         on Windows. Add a note about the requirement to use -k gnatdll's option
33912         when working with a DLL which has stripped stdcall symbols (no @nn
33913         suffix).
33914
33915 2004-05-27  Vincent Celier  <celier@gnat.com>
33916
33917         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
33918         COMMENTS_LAYOUT=UNTOUCHED
33919
33920         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
33921         symbols-vms-alpha.adb
33922
33923 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
33924
33925         * sem.ads: Clarify documentation on checks suppression.
33926
33927         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
33928
33929 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
33930
33931         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
33932         the case of multiple derivations.
33933         (Is_Object_Reference): For a selected component, verify that the prefix
33934         is itself an object and not a value.
33935
33936         * sem_ch12.adb (Same_Instantiated_Constant): New name for
33937         Same_Instantiated_Entity.
33938         (Same_Instantiated_Variable): Subsidiary to
33939         Check_Formal_Package_Instance, to recognize actuals for in-out generic
33940         formals that are obtained from a previous formal package.
33941         (Instantiate_Subprogram_Body): Emit proper error when
33942         generating code and the proper body of a stub is missing.
33943
33944         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
33945         has a universal interpretation, do the disambiguation here.
33946
33947         * exp_ch4.adb (Expand_N_Type_Conversion,
33948         Expand_N_Unchecked_Type_Conversion): Special handling when target type
33949         is Address, to avoid typing anomalies when Address is a visible integer
33950         type.
33951
33952         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
33953         to determine whether a subprogram should not be marked Pure, even when
33954         declared in a pure package.
33955
33956 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
33957
33958         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
33959
33960         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
33961         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
33962         Update the documentation about the Ravenscar profile, following the
33963         definition found in AI-249.
33964
33965         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
33966         setting the Profile (Ravenscar). This must be done in addition to
33967         setting the required restrictions.
33968
33969         * rtsfind.ads: Add the set of operations defined in package
33970         Ada.Interrupts.
33971
33972         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
33973         restriction.
33974
33975 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
33976
33977         lang-specs.h: Always require -c or -S and always redirect to /dev/null
33978         if -gnatc or -gnats is passed.
33979
33980 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
33981
33982         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
33983         a significant reference. Warnings are now properly emitted when a
33984         discriminated type is not referenced.
33985
33986         * lib-xref.adb (Generate_Reference): A deferred constant completion,
33987         record representation clause or record type discriminant does not
33988         produce a reference to its corresponding entity. Warnings are now
33989         properly emitted when deferred constants and record types are not
33990         referenced.
33991
33992 2004-05-27  Geert Bosch  <bosch@gnat.com>
33993
33994         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
33995         Fixes ACATS Annex G tests.
33996
33997 2004-05-27  Robert Dewar  <dewar@gnat.com>
33998
33999         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
34000         handling WITH
34001
34002 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
34003
34004         * s-interr.adb (Server_Task): Take into account case of early return
34005         from sigwait under e.g. linux.
34006
34007 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
34008
34009         * gnat_ugn.texi: Add description for the new gnatpp options:
34010          -rnb - replace the original source without creating its backup copy
34011          -c0 - do not format comments
34012
34013 2004-05-24  Geert Bosch  <bosch@gnat.com>
34014
34015         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
34016         with 192 bits of precision, sufficient to reduce a double-extended
34017         arguments X with a maximum relative error of T'Machine_Epsilon, for X
34018         in -2.0**32 .. 2.0**32.
34019         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
34020         reduction by the processor, which only uses a 68-bit approximation of
34021         Pi.
34022         (Tan): Always reduce arguments and compute function either using
34023         the processor's fptan instruction, or by dividing sin and cos as needed.
34024
34025 2004-05-24  Doug Rupp  <rupp@gnat.com>
34026
34027         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
34028         gcc error on 32/64 bit VMS.
34029
34030 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
34031
34032         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
34033         since this is what we get for stack overflows although not documented
34034         as such.
34035         Document the issues which may require adjustments to our signal
34036         handlers.
34037
34038 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
34039
34040         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
34041         enclosing dynamic scope if the instantiation is within a generic unit.
34042
34043 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
34044
34045         * exp_dbug.ads: Fix typo.
34046
34047         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
34048         Rename it to its proper name: system-linux-ia64.ads
34049         (stamp-gnatlib1): Remove extra target specific run time files when
34050         setting up the rts directory.
34051
34052 2004-05-24  Javier Miranda  <miranda@gnat.com>
34053
34054         * einfo.ads, einfo.adb (Limited_Views): Removed.
34055         (Limited_View): New attribute that replaces the previous one. It is
34056         now a bona fide package with the limited-view list through the
34057         first_entity and first_private attributes.
34058
34059         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
34060         limited-private-with clause.
34061         (Install_Limited_Withed_Unit): Install the private declarations of a
34062         limited-private-withed package. Update the installation of the shadow
34063         entities according to the new structure (see Build_Limited_Views)
34064         (Build_Limited_Views): Replace the previous implementation of the
34065         limited view by a package entity that references the first shadow
34066         entity plus the first shadow private entity (required for limited-
34067         private-with clause)
34068         (New_Internal_Shadow_Entity): Code cleanup.
34069         (Remove_Limited_With_Clause): Update the implementation to undo the
34070         new work carried out by Build_Limited_Views.
34071         (Build_Chain): Complete documentation.
34072         Replace Ada0Y by Ada 0Y in comments
34073         Minor reformating
34074
34075         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
34076         types the level of accessibility depends on the enclosing type
34077         declaration.
34078
34079         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
34080         entities. Complete documentation of previous change.
34081
34082 2004-05-24  Robert Dewar  <dewar@gnat.com>
34083
34084         * namet.adb: Minor reformatting
34085         Avoid use of name I (replace by J)
34086         Minor code restructuring
34087
34088         * sem_ch6.adb: Minor reformatting
34089
34090         * lib-writ.adb: Do not set restriction as active if this is a
34091         Restriction_Warning case.
34092
34093         * sem_prag.adb: Reset restriction warning flag if real pragma
34094         restriction encountered.
34095
34096         * s-htable.adb: Minor reformatting
34097         Change rotate count to 3 in Hash (improves hash for small strings)
34098
34099         * 5qsystem.ads: Add comments for type Address (no literals allowed).
34100
34101         * gnat_ugn.texi: Add new section of documentation "Code Generation
34102         Control", which describes the use of -m switches.
34103
34104 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
34105
34106         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
34107         through the DECL_INITIAL for renamed variables.
34108
34109 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
34110
34111         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
34112
34113 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
34114
34115         * exp_dbug.ads: Correct comments concerning handling of overloading,
34116         since we no longer use $ anymore.
34117
34118 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
34119
34120         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
34121         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
34122         with illegal subunits.
34123
34124 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
34125
34126         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
34127         body with front-end inlining enabled, check whether an inline pragma
34128         appears immediately after the body and applies to it.
34129
34130         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
34131         enabled and the pragma appears after the body of the subprogram.
34132
34133 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34134
34135         Part of function-at-a-time conversion
34136
34137         * misc.c (adjust_decl_rtl): Deleted.
34138         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
34139         Define.
34140
34141         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
34142         (add_decl_stmt, add_stmt, block_has_vars): New functions.
34143         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
34144
34145         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
34146         when making a decl.
34147         (gnat_to_gnu_entity): Likewise.
34148         Use add_stmt to update setjmp buffer.
34149         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
34150         flush_addressof.
34151         No longer call adjust_decl_rtl.
34152         (DECL_INIT_BY_ASSIGN_P): New macro.
34153         (DECL_STMT_VAR): Likewise.
34154
34155         * trans.c (gigi): Call start_block_stmt to make the outermost
34156         BLOCK_STMT.
34157         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
34158         Call start_block_stmt and end_block_stmt temporarily.
34159         Use gnat_expand_stmt instead of expand_expr_stmt.
34160         (add_decl_stmt): New function.
34161         (tree_transform): Call it.
34162         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
34163         (end_block_stmt): Set type and NULL_STMT.
34164         (gnat_expand_stmt): Make recursize call instead of calling
34165         expand_expr_stmt.
34166         (gnat_expand_stmt, case DECL_STMT): New case.
34167         (set_lineno_from_sloc): Do nothing if global.
34168         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
34169         (start_block_stmt, add_stmt, end_block_stmt): New functions.
34170         (build_block_stmt): Call them.
34171         (gnat_to_code): Don't expand NULL_STMT.
34172         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
34173         args.
34174         (tree_transform): Likewise.
34175         (tree_transform, case N_Null_Statement): Return NULL_STMT.
34176         (gnat_expand_stmt, case NULL_STMT): New case.
34177         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
34178         IF_STMT_TRUE.
34179
34180         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
34181         TREE_ADDRESSABLE.
34182
34183         * utils.c (create_var_decl): Do not call expand_decl or
34184         expand_decl_init.
34185         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
34186         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
34187         here.
34188         (struct e_stack): Add chain_next to GTY.
34189         (struct binding_level): Deleted.
34190         (struct ada_binding_level): New struct.
34191         (free_block_chain): New.
34192         (global_binding_level, clear_binding_level): Deleted.
34193         (global_bindings_p): Rework to see if no chain.
34194         (kept_level_p, set_block): Deleted.
34195         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
34196         new data structure and work directly on BLOCK node.
34197         (gnat_poplevel): Similarly.
34198         (get_decls): Look at BLOCK_VARS.
34199         (insert_block): Work directly on BLOCK node.
34200         (block_has_var): New function.
34201         (pushdecl): Rework for new binding structures.
34202         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
34203         poplevel.
34204         (build_subprog_body): Likewise.
34205         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
34206
34207         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
34208
34209         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
34210         (DECL_STMT_VAR): Likewise.
34211
34212 2004-05-17  Robert Dewar  <dewar@gnat.com>
34213
34214         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
34215         procedure
34216
34217         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
34218         of restriction synonyums by using
34219         Restrict.Process_Restriction_Synonyms.
34220
34221         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
34222
34223         * s-restri.ads (Tasking_Allowed): Correct missing comment
34224
34225         * s-rident.ads: Add entries for restriction synonyms
34226
34227         * ali.adb: Fix some problems with badly formatted ALI files that can
34228         result in infinite loops.
34229
34230         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
34231         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
34232         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
34233         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
34234         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
34235         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
34236         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
34237         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
34238         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
34239         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
34240         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
34241         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
34242         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
34243         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
34244         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
34245         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
34246         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
34247         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
34248         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
34249         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
34250         to Task_Id (minor cleanup).
34251
34252 2004-05-17  Vincent Celier  <celier@gnat.com>
34253
34254         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
34255         directory separator.
34256
34257         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
34258         project being extended, if Languages is not declared in extending
34259         project.
34260
34261 2004-05-17  Javier Miranda  <miranda@gnat.com>
34262
34263         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
34264         limited view of a visible sibling.
34265
34266 2004-05-14  Robert Dewar  <dewar@gnat.com>
34267
34268         * gnat_ugn.texi: Minor change to -gnatS documentation
34269
34270         * sprint.adb: Remove some instances of Assert (False) and for this
34271         purpose replace them by output of a ??? string.
34272
34273         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
34274         Assert (False).
34275
34276         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
34277         flag processing. This was suppressing required dependencies in
34278         No_Run_Time mode and is not needed since the binder does not generate
34279         references for things in libgnat anyway.
34280
34281         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
34282         warning.
34283
34284 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
34285
34286         * gnat_ugn.texi: Document AIX-specific issue with initialization of
34287         resolver library.
34288
34289         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
34290         action for the case of an actual parameter in an init proc call.
34291
34292 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
34293
34294         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
34295         subtype, check visible entities in base type.
34296
34297         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
34298         actions if the object is a renaming.
34299
34300         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
34301         Check_Formal_Package_Instance, to determine more precisely when the
34302         formal and the actual denote the same entity.
34303
34304 2004-05-14  Javier Miranda  <miranda@gnat.com>
34305
34306         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
34307
34308         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
34309         corresponding to a private_with must be removed from visibility; it
34310         will be made visible later, just before we analyze the private part of
34311         the package.
34312         (Check_Private_Child_Unit): Allow private_with clauses in public
34313         siblings.
34314         (Install_Siblings): Make visible the private entities of private-withed
34315         siblings.
34316         (Install_Withed_Unit): Do not install the private withed unit if we
34317         are compiling a package declaration and the Private_With_OK flag was
34318         not set by the caller. These declarations will be installed later,
34319         just before we analyze the private part of the package.
34320
34321         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
34322         during the evaluation of the expression that initializes the object,
34323         decorate it with the expected type to avoid cascade errors.
34324         Code cleanup.
34325
34326         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
34327         subprogram we have to install the private_with clauses after its
34328         specification has been analyzed (as documented in AI-262.TXT).
34329
34330         * sem_ch8.adb (Has_Private_With): New function. Determines if the
34331         current compilation unit has a private with on a given entity.
34332         (Find_Direct_Name): Detect the Beaujolais problem described in
34333         AI-262.TXT
34334
34335         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
34336         provides the functionality of the function Is_Ancestor that was
34337         previously available in sem_ch10. It has been renamed to avoid
34338         overloading.
34339
34340         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
34341
34342 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34343
34344         * utils.c (build_vms_descriptor): Use SImode pointers.
34345
34346 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
34347
34348         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
34349
34350 2004-05-14  GNAT Script  <nobody@gnat.com>
34351
34352         * Make-lang.in: Makefile automatically updated
34353
34354 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
34355
34356         Renaming of target specific files for clarity
34357
34358         * Makefile.in: Rename GNAT target specific files.
34359
34360         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
34361         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
34362         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
34363         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
34364         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
34365         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
34366         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
34367         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
34368         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
34369         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
34370         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
34371         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
34372         51osinte.adb, 51osinte.ads, 51system.ads,
34373         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
34374         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
34375         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
34376         56tpopsp.adb, 57system.ads, 58system.ads,
34377         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
34378         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
34379         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
34380         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
34381         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
34382         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
34383         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
34384         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
34385         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
34386         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
34387         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
34388         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
34389         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
34390         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
34391         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
34392         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
34393         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
34394         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
34395         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
34396         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
34397         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
34398         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
34399         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
34400         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
34401         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
34402         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
34403         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
34404         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
34405         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
34406         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
34407         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
34408         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
34409         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
34410         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
34411         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
34412         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
34413         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
34414         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
34415         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
34416         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
34417
34418         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
34419         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
34420         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
34421         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
34422         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
34423         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
34424         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
34425         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
34426         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
34427         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
34428         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
34429         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
34430         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
34431         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
34432         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
34433         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
34434         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
34435         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
34436         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
34437         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
34438         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
34439         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
34440         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
34441         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
34442         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
34443         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
34444         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
34445         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
34446         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
34447         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
34448         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
34449         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
34450         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
34451         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
34452         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
34453         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
34454         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
34455         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
34456         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
34457         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
34458         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
34459         s-osinte-vms.ads, s-osinte-vxworks.adb,
34460         s-osinte-vxworks.ads, s-osprim-mingw.adb,
34461         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
34462         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
34463         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
34464         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
34465         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
34466         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
34467         s-stchop-vxworks.adb, s-taprop-dummy.adb,
34468         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
34469         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
34470         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
34471         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
34472         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
34473         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
34474         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
34475         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
34476         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
34477         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
34478         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
34479         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
34480         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
34481         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
34482         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
34483         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
34484         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
34485         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
34486         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
34487         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
34488         system-irix-o32.ads, system-linux-x86_64.ads,
34489         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
34490         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
34491         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
34492         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
34493         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
34494         system-vxworks-mips.ads, system-vxworks-ppc.ads,
34495         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
34496         above.
34497
34498 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
34499
34500         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
34501
34502 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
34503
34504         Merge from tree-ssa-20020619-branch.
34505
34506         * config-lang.in (boot_language, build_by_default): Set
34507         to no.
34508         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
34509         (max_size): Add static chain op for call_expr.
34510
34511 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
34512
34513         PR target/15331
34514         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
34515
34516 2004-05-11  Roger Sayle  <roger@eyesopen.com>
34517
34518         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
34519         COND_EXPR.
34520
34521 2004-05-10  Doug Rupp  <rupp@gnat.com>
34522
34523         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
34524         system.aux_dec.
34525
34526         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
34527
34528         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
34529
34530         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
34531         Fixes undefined symbols in IA64 gnatlib.
34532
34533         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
34534
34535         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
34536         Short_Address). This will be moved to system.auxdec.
34537
34538 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
34539
34540         * sem_util.adb: Replace test for presence of a node that is always
34541         present with a call to Discard_Node.
34542
34543         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
34544         Analyze on the library unit node after generation of distribution stub
34545         constructs.  The call was a no-op because Unit_Node has already been
34546         Analyzed, and the tree fragments for the distribution stubs are
34547         analyzed as they are inserted in Exp_Dist.
34548         Update comment regarding to distribution stubs to reflect that we
34549         do not generate stub in separate files anymore.
34550
34551         * einfo.ads: Clarify the fact that a tagged private type has the
34552         E_Record_Type_With_Private Ekind.
34553
34554         * erroutc.adb: Minor reformatting
34555
34556         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
34557         values if line length is increased using -gnatyM (noticed during code
34558         reading).
34559
34560         * eval_fat.adb: Minor reformatting
34561         Put spaces around exponentiation operator
34562
34563 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
34564
34565         PR ada/15005
34566         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
34567         has been rewritten as an explicit dereference, retrieve type of
34568         original node to check for possibly unconstrained record type.
34569
34570 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
34571
34572         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
34573         overriding, use the operation of the parent unconditionally.
34574
34575         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
34576         operation when either operand is a literal, to avoid further
34577         ambiguities.
34578
34579         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
34580         overridden by a previous explicit declaration, mark the previous entity
34581         as overriding.
34582
34583         * sem_disp.adb (Check_Dispatching_Operation): New predicate
34584         Is_Visibly_Controlled, to determine whether a declaration of a
34585         primitive control operation for a derived type overrides an inherited
34586         one. Add warning if the explicit declaration does not override.
34587
34588 2004-05-10  Vincent Celier  <celier@gnat.com>
34589
34590         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
34591         some cases when the sources are no longer present.
34592
34593         * make.adb (Collect_Arguments): Fail if an external source, not part
34594         of any project need to be compiled, when switch -x has not been
34595         specified.
34596
34597         * makeusg.adb: Document new switch -x
34598
34599         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
34600         defaulted to False.
34601
34602         * switch-m.adb (Scan_Make_Switches): New switch -x
34603
34604         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
34605         gnatmake switch -x.
34606
34607         * gnat_ugn.texi: Document new gnatmake switch -x
34608
34609 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
34610
34611         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
34612
34613         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
34614         (process_attributes): Likewise.
34615
34616 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
34617
34618         * s-inmaop.ads: Fix spelling mistake in one of the comments.
34619
34620 2004-05-10  Robert Dewar  <dewar@gnat.com>
34621
34622         * gnat_ugn.texi: Document that for config pragma files, the maximum
34623         line length is always 32767.
34624
34625         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
34626         literals is now allowed.
34627
34628         * gnat-style.texi: Remove statement about splitting long lines before
34629         an operator rather than after, since we do not follow this rule at all.
34630         Clarify rule (really lack of rule) for spaces around exponentiation
34631
34632         * sem_elim.adb: Allow concatenation of string literals as well as a
34633         single string literal for pragma arguments.
34634
34635         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
34636
34637         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
34638         written for append case.
34639
34640         * frontend.adb: Changes to avoid checking max line length in config
34641         pragma files.
34642
34643         * g-os_lib.ads: Minor reformatting
34644
34645         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
34646         wrong in any case. Instead use standard value. Noticed during code
34647         reading.
34648
34649         * opt.ads (Max_Line_Length): New field, used to implement removal of
34650         limitation on length of lines when scanning config pragma files.
34651
34652         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
34653         makeutl.ads, makeutl.adb: Minor reformatting
34654
34655         * scn.adb: Do not check line length while scanning config pragma files
34656         Do not check line length while scanning out license information
34657
34658         * scng.adb: Changes to avoid line length checks while parsing config
34659         pragma files.
34660
34661 2004-05-10  GNAT Script  <nobody@gnat.com>
34662
34663         * Make-lang.in: Makefile automatically updated
34664
34665 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
34666
34667         * osint.adb (Find_Program_Name): Fix handling of VMS version
34668         number.
34669
34670 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
34671
34672         * g-os_lib.ads (Invalid_Time): New constant
34673
34674         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
34675         return OS_Time instead of time_t to match what is imported by Ada.
34676         Now return -1 if the file doesn't exist, instead of a random value
34677
34678 2004-05-05  Robert Dewar  <dewar@gnat.com>
34679
34680         * usage.adb: Add line for -gnatR?s switch
34681
34682         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
34683
34684         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
34685         and for Match (Data_First, Data_last)
34686
34687         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
34688         written when we are dealing with multi-unit files.
34689
34690 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
34691
34692         * Makefile.in: Remove unused targets and variables.
34693
34694 2004-05-05  Vincent Celier  <celier@gnat.com>
34695
34696         * switch-m.adb: New gnatmake switch -eI
34697
34698         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
34699         of new gnatmake switch -eInnn.
34700
34701         * makegpr.adb: Take into account new parameters Index and Src_Index in
34702         Prj.Util.
34703
34704         * clean.adb: Implement support for multi-unit sources, including new
34705         switch -i.
34706
34707         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
34708         Src_Index.
34709
34710         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
34711         (Extract_From_Q): New out parameter Index
34712         (Mark, Is_Marked): Subprograms moved to Makeutl
34713         (Switches_Of): New parameter Source_Index
34714         (Add_Switch): New parameter Index
34715         (Check): New parameter Source_Index
34716         (Collect_Arguments): New parameter Source_Index
34717         (Collect_Arguments_And_Compile): New parameter Source_Index
34718         (Compile): New parameter Source_Index
34719         Put subprograms in alphabetical order
34720         Add support for multi-source sources, including in project files.
34721
34722         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
34723         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
34724         Make.
34725
34726         * makeusg.adb: New gnatmake switch -eInnn
34727
34728         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
34729         Prj.Util.Value_Of.
34730
34731         * opt.ads (Main_Index): New variable, defaulted to 0.
34732
34733         * osint.ads, osinte.adb (Add_File): New parameter Index
34734         (Current_Source_Index): New function
34735
34736         * prj.adb: Take into account new components Index and Src_Index
34737
34738         * prj.ads (String_Element): New component Index
34739         (Variable_Value): New component Index
34740         (Array_Element): New component Src_Index
34741
34742         * prj-attr.adb: Indicate that optional index may be specified for
34743         attributes Main, Executable, Spec, Body and some of Switches.
34744
34745         * prj-attr.ads (Attribute_Kind): New values for optional indexes
34746         (Attribute_Record): New component Optional_Index
34747
34748         * prj-com.ads (File_Name_Data): New component Index
34749
34750         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
34751
34752         * prj-env.adb (Put): Output optional index
34753
34754         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
34755         attributes Spec and Body.
34756
34757         * prj-nmsc.adb: Process optional indexes
34758
34759         * prj-pp.adb: Ouput "at" for optional indexes
34760
34761         * prj-proc.adb: Take into account optional indexes
34762
34763         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
34764         Optional_Index. For string literal,
34765         process optional index when Optional_Index is True.
34766         (Parse_Expresion): New Boolean parameter Optional_Index
34767
34768         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
34769         (Set_Source_Index_Of): New procedure
34770
34771         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
34772         index.
34773
34774         * prj-util.ads (Executable_Of): New parameter Index
34775         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
34776         New parameter Src_Index, defaulted to 0.
34777
34778 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
34779
34780         PR ada/15257
34781         * sem_ch3.adb (Access_Definition): If this is an access parameter
34782         whose designated type is imported through a limited_with clause, do
34783         not add the enclosing subprogram to the list of private dependents of
34784         the type.
34785
34786 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
34787
34788         PR ada/15258
34789         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
34790         a limited_with clause, and the other is its non-limited view.
34791
34792 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
34793
34794         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
34795
34796         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
34797         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
34798         Stand.Boolean_Literals to produce references to entities
34799         Standard_False and Standard_True from compile-time computed boolean
34800         values.
34801
34802         * stand.ads (Boolean_Literals): New variable, provides the entity
34803         values for False and True, for use by the expander.
34804
34805 2004-05-05  Doug Rupp  <rupp@gnat.com>
34806
34807         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
34808         5vinmaop.adb: Unchecked convert Short_Address vice Address
34809
34810         * adaint.c, raise.c: Caste CRTL function return value
34811         to avoid gcc error on 32/64 bit IVMS.
34812
34813         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
34814         target = IA64/VMS.
34815
34816         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
34817
34818         * 5qsystem.ads (Address): Declare as Long_Integer
34819         (Short_Address): Declare as 32 bit subtype of Address
34820         Declare  abstract address operations to avoid gratuitous ambiguities.
34821
34822 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
34823
34824         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
34825         instead of the old Boolean_Entry_Barriers.
34826         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
34827
34828 2004-05-05  GNAT Script  <nobody@gnat.com>
34829
34830         * Make-lang.in: Makefile automatically updated
34831
34832 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
34833
34834         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
34835
34836 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
34837
34838         PR ada/15152
34839         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
34840         alone. Replacing object references by literals is inappropriate in a
34841         so low level context.
34842
34843 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
34844
34845         * a-exexpr.adb: Add comments
34846
34847 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
34848
34849         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
34850         declare the Ancestor_Tags array in Type_Specific_Data with a small size
34851         without risking a bounds check error when accessing one of its
34852         components.
34853         (Type_Specific_Data): Define Ancestor_Tags as a small array.
34854         This prevents us from hitting a limitation during the debug info
34855         generation when using stabs.
34856
34857         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
34858         small array.
34859         This prevents us from hitting a limitation during the debug info
34860         generation when using stabs.
34861
34862 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
34863
34864         lang-specs.h: Remove -gnatz* from specs.
34865
34866 2004-05-03  Vincent Celier  <celier@gnat.com>
34867
34868         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
34869
34870         * Make-lang.in, Makefile.in: Add gprmake
34871
34872 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
34873
34874         * sem_aggr.adb: Fix typo in comment.
34875
34876 2004-05-03  Robert Dewar  <dewar@gnat.com>
34877
34878         * make.adb: Minor reformatting
34879
34880         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
34881
34882         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
34883         so that it works when address is not a private type.
34884
34885         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
34886         properly with rewritten unchecked conversions. This prevents
34887         order-of-elaboration issues that can otherwise arise.
34888         (Minimum_Size): Don't check size of access types under VMS
34889
34890         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
34891         interpretations of integer literals as type System.Address.
34892
34893         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
34894         (Is_Descendent_Of): New function
34895
34896 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
34897
34898         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34899         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
34900         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
34901
34902         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
34903         of the old Max_Entry_Queue_Depth.
34904
34905         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
34906         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
34907         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
34908
34909         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
34910         New entry for proper handling of Max_Entry_Queue_Depth.
34911         New entry for proper handling of No_Dynamic_Interrupts.
34912
34913         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
34914         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34915         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
34916         the GNAT specific restriction Max_Entry_Queue_Depth.
34917         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
34918         the GNAT specific restriction No_Dynamic_Interrupts.
34919
34920         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
34921         instead of the old Boolean_Entry_Barriers.
34922         Use the new restriction No_Dynamic_Attachment instead of the old
34923         No_Dynamic_Interrupts.
34924
34925         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
34926         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
34927
34928         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
34929         of the old Max_Entry_Queue_Depth.
34930
34931 2004-05-03  GNAT Script  <nobody@gnat.com>
34932
34933         * Make-lang.in: Makefile automatically updated
34934
34935 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
34936
34937         * checks.adb (Enable_Range_Check): If the prefix of an index component
34938         is an access to an unconstrained array, perform check unconditionally.
34939
34940 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34941
34942         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
34943         Component_Clause.
34944
34945 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
34946
34947         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
34948         alternate stack setting. There was no support for the tasking cases
34949         and the changes eventually caused a number of side-effect failures in
34950         the non-tasking case too.
34951
34952 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
34953
34954         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
34955         -gnats is passed.
34956
34957 2004-04-29  Vincent Celier  <celier@gnat.com>
34958
34959         * make.adb (Gnatmake): Increase max size of argument array for
34960         gnatbind for the potential addition of -F.
34961         If there are Stand-Alone Library projects, invoke gnatbind with -F to
34962         be sure that elaboration flags will be checked.
34963
34964         * switch-c.adb: Correct call to Scan_Pos for -gnateI
34965
34966 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
34967
34968         * sem_warn.adb (Check_References): Move '<access-variable> may be
34969         null' warning out of under Warn_On_No_Value_Assigned.
34970
34971 2004-04-29  Ed Falis  <falis@gnat.com>
34972
34973         * gnat_ugn.texi: Fixed texi error
34974
34975 2004-04-29  Robert Dewar  <dewar@gnat.com>
34976
34977         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
34978         abstract operations if they come from predefined files.
34979
34980         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
34981         Dynamic, not RM).
34982
34983         * s-addope.adb: Correct obvious error in mod function
34984
34985 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
34986
34987         * Makefile.in: Add target pairs for powerpc darwin*
34988         tasking support.
34989
34990         * a-intnam-darwin.ads, s-osinte-darwin.adb,
34991         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
34992
34993 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
34994
34995         * Makefile.in: Add target macro definitions for s390*-linux*.
34996         * system-linux-s390.ads: New file.
34997         * system-linux-s390x.ads: New file.
34998
34999 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
35000
35001         * gnat_ugn.texi: Correct argument to @setfilename.
35002
35003 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
35004
35005         * a-exexpr.adb (Unwind_Word): New data type.
35006         (Unwind_Exception): Use it as type of Private1 and Private2.
35007
35008         * raise.c (db_action_for): Fix debug printf.
35009
35010 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
35011
35012         * a-wtmoio.ads: Formal type must be a modular type, not a signed
35013         integer type.
35014
35015 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35016
35017         * decl.c (gnat_to_gnu_entity, case object): Call
35018         __builtin_update_setjmp_buf.
35019
35020         * gigi.h (update_setjmp_buf): Deleted.
35021         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
35022
35023         * misc.c: (update_setjmp_buf): Deleted.
35024
35025         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
35026         around block of RTL.
35027
35028         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
35029
35030 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
35031
35032         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
35033         subprogram for which no pragma All_Calls_Remote applies, store the
35034         address of the real subprogram in the underlying record type, so local
35035         dereferences do not go through the PCS.
35036
35037 2004-04-26  Robert Dewar  <dewar@gnat.com>
35038
35039         * i-c.ads: Add some type qualifications to avoid ambiguities when
35040         compiling with s-auxdec.ads and a non-private address type.
35041
35042 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
35043
35044         * Makefile.rtl: Fix error in previous check-in:
35045         Add s-addope.o to non tasking object list (rather than tasking object
35046         list).
35047
35048 2004-04-26  Javier Miranda  <miranda@gnat.com>
35049
35050         * sem_aggr.adb: Fix typo in comments
35051         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
35052         Required to check the null-exclusion attribute.
35053
35054         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
35055         case of anonymous access types in record and array components. For a
35056         component definition the level is the same of the enclosing composite
35057         type.
35058
35059         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
35060         that are anonymous access types the level of accessibility depends on
35061         the enclosing type declaration. In order to have this information, set
35062         the scope of the anonymous access type to the enclosing record type
35063         declaration.
35064         (Array_Type_Declaration): In case of components that are anonymous
35065         access types the level of accessibility depends on the enclosing type
35066         declaration. In order to have this information, set the scope of the
35067         anonymous access type to the enclosing array type declaration.
35068
35069         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
35070         access type.
35071
35072         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
35073         renaming of anonymous access-to-constant types allowed if and only if
35074         the renamed object is access-to-constant.
35075
35076         * sem_util.adb (Type_Access_Level): In case of anonymous access types
35077         that are component_definition or discriminants of a nonlimited type,
35078         the level is the same as that of the enclosing component type.
35079
35080 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
35081
35082         * sem_elim.adb: Some minor code reorganization from code reading. Fix
35083         misprint in the function name (File_Name_Match).
35084
35085 2004-04-23  Laurent Guerby  <laurent@guerby.net>
35086
35087         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
35088         install.
35089
35090 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
35091
35092         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
35093
35094 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
35095
35096         * adaint.c (__gnat_try_lock): No longer requires that the parent
35097         directory be writable, the directory itself is enough.
35098         (gnat_is_absolute_path): Change profile, so that the call from
35099         GNAT.OS_Lib can be made more efficient.
35100
35101         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
35102         from GNAT.OS_Lib can be made more efficient.
35103
35104         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
35105         one copy of the file name. Found by code reading.
35106
35107 2004-04-23  Vincent Celier  <celier@gnat.com>
35108
35109         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
35110         Correct documentation on gnatmake switches transmitted to the compiler
35111
35112         * ali.ads: Minor comment fix
35113
35114 2004-04-23  Javier Miranda  <miranda@gnat.com>
35115
35116         * sem_ch6.adb: (Confirming Types): Code cleanup
35117
35118         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
35119         subprogram types: E_Anonymous_Access_Subprogram_Type and
35120         E_Anonymous_Access_Protected_Subprogram_Type.
35121
35122 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
35123
35124         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
35125         whether a pragma All_Calls_Remote applies to the subprogram on which
35126         'Access is taken.
35127         No functional change is introduced by this revision; the new parameter
35128         will be used to allow calls to local RCI subprograms to be optimized
35129         to not use the PCS in the case where no pragma All_Calls_Remote applies,
35130         as is already done in the PolyORB implementation of the DSA.
35131
35132         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
35133         whether a pragma All_Calls_Remote applies to the subprogram on which
35134         'Access is taken.
35135         No functional change is introduced by this revision; the new parameter
35136         will be used to allow calls to local RCI subprograms to be optimized
35137         to not use the PCS in the case where no pragma All_Calls_Remote applies,
35138         as is already done in the PolyORB implementation of the DSA.
35139
35140 2004-04-23  Robert Dewar  <dewar@gnat.com>
35141
35142         * Makefile.rtl: Add entry for s-addope.o in run time library list
35143         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
35144         * s-addope.ads, s-addope.adb: New files.
35145
35146         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
35147         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
35148         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
35149         System.Address to be non-private and signed.
35150
35151         * sem_elim.adb: Minor reformatting (fairly extensive)
35152         Some minor code reorganization from code reading
35153         Add a couple of ??? comments
35154
35155 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35156
35157         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
35158         (tree_transform, case N_If_Statement): Remove non-determinism.
35159
35160         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
35161
35162 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
35163
35164         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
35165         Eliminate' section.
35166
35167         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
35168         no longer used as a parameter name for Eliminate pragma).
35169
35170 2004-04-22  Laurent Guerby  <laurent@guerby.net>
35171
35172         PR optimization/14984
35173         PR optimization/14985
35174         * trans.c (gigi): Fix non determinism leading to bootstrap
35175         comparison failures.
35176
35177 2004-04-21  Pascal Obry  <obry@gnat.com>
35178
35179         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
35180         passed to spawnvp() to properly handle program pathname with spaces on
35181         Win32.
35182
35183 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
35184
35185         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
35186         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
35187         unlocked in case of exceptions.
35188
35189 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
35190
35191         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
35192         This function does not exist anymore.
35193
35194 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
35195
35196         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
35197
35198         * link.c: Move variables to the __gnat name space.
35199
35200         * Makefile.in: list link.o explicitly when needed.
35201
35202         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
35203
35204 2004-04-21  Javier Miranda  <miranda@gnat.com>
35205
35206         * einfo.adb (Original_Access_Type): New subprogram
35207         (Set_Original_Access_Type): New subprogram
35208         (Write_Field21_Name): Write the name of the new field
35209
35210         * einfo.ads (Original_Access_Type): New field present in access to
35211         subprogram types.
35212         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
35213         E_Anonymous_Access_Protected_Subprogram_Type.
35214
35215         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
35216         subprogram types.
35217
35218         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
35219         to anonymous access to subprogram types.
35220
35221         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
35222         to subprogram types.
35223
35224         * sem_ch3.adb (Access_Definition): Complete decoration of entities
35225         corresponding to anonymous access to subprogram types.
35226         (Analyze_Component_Declaration): Add new actual to the call to
35227         subprogram replace_anonymous_access_to_protected_subprogram.
35228         (Array_Type_Declaration): Add new actual to the call to subprogram
35229         replace_anonymous_access_to_protected_subprogram.
35230         (Process_Discriminants): Add new actual to the call to subprogram
35231         replace_anonymous_access_to_protected_subprogram.
35232         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
35233
35234         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
35235         formal.
35236
35237         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
35238         access to subprogram types.
35239
35240         * sem_util.adb (Has_Declarations): Addition of package_specification
35241         nodes.
35242
35243 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
35244
35245         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
35246         inlined flags to renamed entity only if in current unit.
35247
35248 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
35249
35250         * s-parint.ads: Add DSA implementation marker.
35251
35252         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
35253         value of System.Partition_Interface.DSA_Implementation to determine
35254         what version of the distributed systems annex is available (no
35255         implementation, GLADE, or PolyORB).
35256
35257 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
35258
35259         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
35260
35261 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35262
35263         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
35264         with new type if alias sets differ.
35265         Fixes ACATS c41103b.
35266
35267 2004-04-21  Vincent Celier  <celier@gnat.com>
35268
35269         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
35270         Add array Lang_Args for the language specific compiling argument
35271         switches.
35272
35273         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
35274
35275 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
35276
35277         * gnat_rm.texi: Update the descripton of the Eliminate pragma
35278         according to the recent changes in the format of the parameters of the
35279         pragma (replacing Homonym_Number with Source_Location).
35280
35281 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
35282
35283         * 5isystem.ads: Removed, unused.
35284
35285         * gnat_rm.texi: Redo 1.13 change.
35286
35287 2004-04-19  Robert Dewar  <dewar@gnat.com>
35288
35289         * s-stoele.ads: Clean up definition of Storage_Offset (the new
35290         definition is cleaner, avoids the kludge of explicit Standard operator
35291         references, and also is consistent with a visible System.Address with
35292         no visible operations.
35293
35294         * s-geveop.adb: Add declarations to avoid assumption of visible
35295         operations on type System.Address (since these might not be available
35296         if Address is a non-private type for which the operations
35297         are made abstract).
35298
35299         * sem_eval.adb: Minor reformatting
35300
35301         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
35302         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
35303         reformatting (new function spec format).
35304
35305         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
35306         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
35307         s-caun64.adb: Add declarations to avoid assumption of visible
35308         operations on type System.Address (since these might not be available
35309         if Address is a non-private type for which the operations are made
35310         abstract).
35311
35312         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
35313
35314         * exp_intr.adb: Minor comment update
35315
35316         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
35317
35318         * 5omastop.adb: Add declarations to avoid assumption of visible
35319         operations on type System.Address (since these might not be available
35320         if Address is a non-private type for which the operations
35321         are made abstract).
35322
35323 2004-04-19  Vincent Celier  <celier@gnat.com>
35324
35325         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
35326
35327         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
35328         defaulted to Ada.
35329
35330         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
35331         defaulted to Ada.
35332         Call Check with Process_Languages.
35333         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
35334         with Process_Languages.
35335         (Recursive_Check): New Boolean parameter Process_Languages. Call
35336         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
35337         Process_Languages.
35338
35339         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
35340
35341         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
35342         parameter Ada_Main, defaulted to True.
35343         Check for Ada specific characteristics only when Ada_Main is True.
35344
35345         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
35346
35347         * prj.adb: (Project_Empty): Add new Project_Data components.
35348
35349         * prj.ads: New types and tables for non Ada languages.
35350         (Project_Data): New components Languages, Impl_Suffixes,
35351         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
35352         Include_Path, Include_Data_Set.
35353
35354         * prj-env.ads, prj-env.adb: Minor reformatting
35355
35356         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
35357         Put subprograms in alphabetical order
35358
35359         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
35360         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
35361         Opt.Follow_Links.
35362
35363         * mlib-prj.adb: Back out modification in last version, as they are
35364         incorrect.
35365         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
35366
35367         * make.adb: (Mains): Moved to package Makeutl
35368         (Linker_Opts): Moved to package Makeutl
35369         (Is_External_Assignment): Moved to package Makeutl
35370         (Test_If_Relative_Path): Moved to package Makeutl
35371         (Gnatmake): Move sorting of linker options to function
35372         Makeutl.Linker_Options_Switches.
35373
35374         * makeutl.ads, makeutl.adb: New files.
35375
35376         * Makefile.in: Add makeutl.o to the object files for gnatmake
35377
35378         * makeusg.adb: Add line for new switch -eL.
35379
35380         * gnatls.adb (Image): New function.
35381         (Output_Unit): If in verbose mode, output the list of restrictions
35382         specified by pragmas Restrictions.
35383
35384         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
35385         Text_IO.
35386
35387         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
35388         needed, to put it in the range 1970 (included) - 2026 (excluded).
35389         (Time_Of): Do not shift Unix_Min_Year (1970).
35390         Shift the date by multiple of 56 years, if needed, to put it in the
35391         range 1970 (included) - 2026 (excluded).
35392
35393         * adaint.h, adaint.c (__gnat_set_executable): New function.
35394
35395 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35396
35397         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
35398         and pop GC context.
35399         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
35400         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
35401         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
35402         (tree_transform, case N_Code_Statement): Likewise.
35403         (gnat_expand_stmt, case LABEL_STMT): Don't look at
35404         LABEL_STMT_FIRST_IN_EH.
35405         (gnat_expand_stmt, case ASM_STMT): New case.
35406
35407         * utils2.c (build_unary_op): Properly set TREE_READONLY of
35408         UNCONSTRAINED_ARRAY_REF.
35409
35410         * utils.c (poplevel): Temporarily push/pop GC context around inline
35411         function expansion.
35412
35413         * decl.c (maybe_variable): Properly set TREE_READONLY of
35414         UNCONSTRAINED_ARRAY_REF.
35415         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
35416
35417         * ada-tree.def: (ASM_STMT): New.
35418
35419         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
35420         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
35421         ASM_STMT_INPUT): New.
35422         (ASM_STMT_CLOBBER): Likewise.
35423
35424 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
35425
35426         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
35427         general rcheck mechanism to raise Program_Error for E.4(18), instead
35428         of a custom raiser in System.Partition_Interface.
35429         Part of general cleanup work before PolyORB integration.
35430
35431         * snames.ads, snames.adb: Add new runtime library entities and names
35432         for PolyORB DSA.
35433
35434         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35435         exp_dist.
35436         (Build_Subprogram_Id): New subprogram provided by exp_dist
35437         Code reorganisation in preparation for PolyORB integration.
35438
35439         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35440         exp_dist.
35441         (Build_Subprogram_Id): New subprogram provided by exp_dist
35442
35443         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
35444         actual parameter types for call to dereference of an
35445         access-to-subprogram type.
35446
35447         * rtsfind.ads: Add new runtime library entities and names for PolyORB
35448         DSA.
35449
35450         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
35451         instead, which has the same behaviour here since we never pass it a
35452         NULL pointer.
35453
35454         * link.c (run_path_option, Solaris case): Use -Wl, as for other
35455         platforms.
35456
35457         * Makefile.in: adjust object file lists for gnatlink and gnatmake
35458         to account for new dependency upon Interfaces.C.Strings + link.o
35459         For x86 FreeBSD, use 86numaux.
35460
35461         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
35462         from Mlib.Tgt to Mlib.
35463
35464         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
35465         target-independent.
35466
35467         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
35468         target-specific versions of this subprogram, now implemented as a
35469         target-independent function in Mlib.
35470
35471         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
35472         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
35473         (Linker_Library_Path_Option): Remove target-specific versions of this
35474         subprogram, now implemented as a target-independent function in Mlib.
35475
35476         * atree.adb: (Allocate_Initialize_Node): New subprogram.
35477         Factors out node table slots allocation.
35478         (Fix_Parents): New subprogram.
35479         Encapsulate the pattern of fixing up parent pointers for syntactic
35480         children of a rewritten node.
35481         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
35482         (Rewrite): Use New_Copy when creating saved copy of original node.
35483         (Replace): Use Copy_Node to copy nodes.
35484
35485 2004-04-19  Javier Miranda  <miranda@gnat.com>
35486
35487         * sprint.adb (Sprint_Node_Actual): Give support to the new
35488         Access_To_Subprogram node available in Access_Definition nodes. In
35489         addition, give support to the AI-231 node fields: null-exclusion,
35490         all-present, constant-present.
35491
35492         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
35493
35494         * sinfo.ads, sinfo.adb:
35495         New field Access_To_Subprogram_Definition in Access_Definition nodes
35496
35497         * sem_ch6.adb (Process_Formals): Move here the code that creates and
35498         decorates internal subtype declaration corresponding to the
35499         null-excluding formal. This code was previously in Set_Actual_Subtypes.
35500         In addition, carry out some code cleanup on this code. In case of
35501         access to protected subprogram call
35502         Replace_Anonymous_Access_To_Protected_Subprogram.
35503         (Set_Actual_Subtypes): Code cleanup.
35504
35505         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
35506         Find_Type in case of anonymous access renamings. Add warning in case of
35507         null-excluding attribute used in anonymous access renaming.
35508
35509         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
35510         subprogram
35511
35512         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
35513         subprogram.
35514         (Access_Definition): In case of anonymous access to subprograms call
35515         the corresponding semantic routine to decorate the node.
35516         (Access_Subprogram_Declaration): Addition of some comments indicating
35517         some code that probably should be added here. Detected by comparison
35518         with the access_definition subprogram.
35519         (Analyze_Component_Declaration): In case of access to protected
35520         subprogram call Replace_Anonymous_Access_To_Protected.
35521         (Array_Type_Declaration): In case of access to protected subprogram call
35522         Replace_Anonymous_Access_To_Protected_Subprogram.
35523         (Process_Discriminants): In case of access to protected subprogram call
35524         Replace_Anonymous_Access_To_Protected_Subprogram.
35525
35526         * par.adb (P_Access_Definition): New formal that indicates if the
35527         null-exclusion part was present.
35528         (P_Access_Type_Definition): New formal that indicates if the caller has
35529         already parsed the null-excluding part.
35530
35531         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
35532         (P_Identifier_Declarations): Code cleanup and give support to renamings
35533         of anonymous access to subprogram types.
35534         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
35535         (P_Array_Type_Definition): Give support to AI-254.
35536         (P_Component_Items): Give support to AI-254.
35537         (P_Access_Definition): New formal that indicates if the header was
35538         already parsed by the caller.
35539         (P_Access_Type_Definition): New formal that indicates if the caller has
35540         already parsed the null-excluding part.
35541
35542         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
35543         call to P_Access_Definition.
35544
35545 2004-04-19  Geert Bosch  <bosch@gnat.com>
35546
35547         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
35548         the delicate semantics of floating-point to integer conversion.
35549         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
35550
35551         * eval_fat.adb (Machine_Mantissa): Moved to spec.
35552         (Machine_Radix): New function.
35553
35554         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
35555         conversion checks.
35556         (Machine_Radix): New function also for use in conversion checks.
35557
35558 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
35559
35560         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
35561
35562         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
35563         to decorate the access-to-protected subprogram and the equivalent type.
35564
35565         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
35566         to anonymous access to subprogram types.
35567
35568         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
35569         constant-folding, for legality checks in contexts that require an RM
35570         static expression.
35571
35572         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
35573         temporary but stack checking is not enabled, increment serial number
35574         to so that symbol generation is consistent with and without stack
35575         checking.
35576
35577         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
35578         independent on whether stack checking is enabled, caller must check
35579         the corresponding flag.
35580
35581         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
35582         range checks.
35583         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
35584         parent if it has discriminants.
35585         (Build_Derived_Private_Type): Constructed full view does
35586         not come from source.
35587         (Process_Discriminants): Default discriminants on a tagged type are
35588         legal if this is the internal completion of a private untagged
35589         derivation.
35590
35591         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
35592         no constraint checks, because it corresponds to an existing object.
35593
35594         * sem_prag.adb (Process_Convention): Pragma applies
35595         only to subprograms in the same declarative part, i.e. the same unit,
35596         not the same scope.
35597
35598         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
35599         ignore type mismatch on a numeric conversion if expression comes from
35600         expansion.
35601
35602 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
35603
35604         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
35605         Homonym_Number parameter, add processing for Source_Location parameter
35606         corresponding.
35607         (Check_Eliminated): Remove the check for homonym numbers, add the check
35608         for source location traces.
35609
35610         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
35611         with Arg_Source_Location corresponding to the changes in the format of
35612         the pragma.
35613
35614         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
35615         Eliminate pragma corresponding to the changes in the format of the
35616         pragma: Homonym_Number is replaced with Source_Location, two ways of
35617         distinguishing homonyms are mutially-exclusive.
35618
35619 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
35620
35621         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
35622
35623         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
35624         No_Dollar_In_Label, no longer necessary, as it is always True.
35625         (Strip_Suffixes): Likewise.
35626
35627 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
35628
35629         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
35630         modulus for compatibility with size clause on targets with 16-bit
35631         Integer.
35632
35633         * layout.adb (Discrimify): In the case of private types, set Vtyp to
35634         full type to fix type mismatches on calls to size functions for
35635         discriminant-dependent array components.
35636
35637 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
35638
35639         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
35640         lib.
35641
35642 2004-04-19  Pascal Obry  <obry@gnat.com>
35643
35644         * mdll-utl.adb (Locate): New version is idempotent.
35645
35646 2004-04-17  Laurent Guerby  <laurent@guerby.net>
35647
35648         PR ada/14988 (partial)
35649         * impunit.adb: Fix typo.
35650
35651 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
35652
35653         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
35654         and install-rts-cert targets.  Remove all gnatlib and gnattools
35655         targets and all other rts-* targets (moved to libada).  Remove (now)
35656         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
35657         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
35658
35659 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35660
35661         * trans.c (tree_transform): Shortcut returning error_mark_node for
35662         statements in annotate_only_mode.
35663         (tree_transform, case N_Label, case N_Return_Statement,
35664         N_Goto_Statement): Make statement tree instead of generating code.
35665         (tree_transform, case N_Assignment_Statement): No longer check
35666         type_annotate_only.
35667         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
35668         RETURN_STMT): New.
35669         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
35670         New fcns.
35671         (gnat_to_gnu): Collect any RTL generated and deal with it.
35672         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
35673         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
35674         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
35675
35676         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
35677
35678         * ada-tree.def (EXPR_STMT): Fix typo in name.
35679         (BLOCK_STMT, IF_STMT): New nodes.
35680
35681         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
35682         LABEL_STMT_FIRST_IN_EH): New macros.
35683         (RETURN_STMT_EXPR): Likewise.
35684
35685         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
35686         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
35687
35688 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
35689
35690         * atree.ads: Correct documentation on extended nodes.
35691
35692         * link.c: Set run_path_option for FreeBSD.
35693
35694 2004-04-08  Vincent Celier  <celier@gnat.com>
35695
35696         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
35697         one of the ALI file, do not link with DEC lib.
35698
35699         * par.adb Remove the last two characters ("%s" or "%b") when checking
35700         if a language defined unit may be recompiled.
35701
35702 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
35703
35704         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
35705         removal of abstract operation leaves no possible interpretation for
35706         expression.
35707
35708         * sem_eval.adb (Eval_Qualified_Expression): Use
35709         Set_Raises_Constraint_Error on node when needed, so that it does not
35710         get optimized away by subsequent optimizations.
35711
35712         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
35713         operands even when they are not wrapped in a type conversion.
35714
35715 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
35716
35717         * sem_prag.adb (Set_Exported): Warn about making static as result of
35718         export only when the export is coming from source. This may be not
35719         be true e.g. on VMS where we expand export pragmas for exception codes
35720         together with imported or exported exceptions, and we don't want the
35721         user to be warned about something he didn't write.
35722
35723 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
35724
35725         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
35726         duplication between normal entities and those declared as renamings.
35727         No functional change.
35728
35729         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
35730         inline functions returning an unconstrained result.
35731
35732 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
35733
35734         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
35735         conform to what other front-ends do.
35736
35737 2004-04-08  Doug Rupp  <rupp@gnat.com>
35738
35739         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
35740         libraries.
35741
35742 2004-04-06  Pascal Obry  <obry@gnat.com>
35743
35744         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
35745
35746         * osint.adb (Program_Name): Do not look past a directory separator.
35747
35748 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
35749
35750         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
35751
35752         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
35753         requirement for preserving a copy of the original assignment node.
35754
35755         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
35756
35757 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
35758
35759         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
35760         when supported.
35761
35762 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
35763
35764         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
35765         operator calls in functional notation, and apply
35766         Universal_Interpretation to operands, not to their type.
35767
35768 2004-04-06  Robert Dewar  <dewar@gnat.com>
35769
35770         * 5wdirval.adb: Minor reformatting
35771
35772 2004-04-06  Ed Falis  <falis@gnat.com>
35773
35774         * gnat_rm.texi: Improve a reference to the GCC manual
35775
35776 2004-04-05  Vincent Celier  <celier@gnat.com>
35777
35778         * adaint.h, adaint.c: Add function __gnat_named_file_length
35779
35780         * impunit.adb: Add Ada.Directories to the list
35781
35782         * Makefile.in: Add VMS and Windows versions of
35783         Ada.Directories.Validity package body.
35784
35785         * Makefile.rtl: Add a-direct and a-dirval
35786
35787         * mlib-tgt.ads: Minor comment update.
35788
35789         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
35790         a-direct.ads, a-direct.adb: New files.
35791
35792 2004-04-05  Vincent Celier  <celier@gnat.com>
35793
35794         PR ada/13620
35795         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
35796         just to the compiler.
35797
35798 2004-04-05  Robert Dewar  <dewar@gnat.com>
35799
35800         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
35801         returned string is 1.
35802
35803         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
35804
35805         * eval_fat.ads: Minor reformatting
35806
35807         * g-curexc.ads: Document that lower bound of returned string values
35808         is always one.
35809
35810         * gnatlink.adb: Add ??? comment for previous change
35811         (need to document why this is VMS specific)
35812
35813         * s-stoele.ads: Minor reformatting
35814
35815         * tbuild.ads: Minor reformatting throughout (new function specs)
35816
35817         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
35818         after WITH.
35819
35820         * scng.adb: Minor reformatting
35821
35822 2004-04-05  Geert Bosch  <bosch@gnat.com>
35823
35824         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
35825         (Leading_Part): Still perform truncation to machine number if the
35826         specified radix_digits is greater or equal to machine_mantissa.
35827
35828 2004-04-05  Javier Miranda  <miranda@gnat.com>
35829
35830         * par-ch3.adb: Complete documentation of previous change
35831         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
35832         (aliased must appear before constant).
35833
35834         * par-ch4.adb: Complete documentation of previous change.
35835
35836         * par-ch6.adb: Complete documentation of previous change.
35837
35838         * sinfo.ads: Fix typo in commment.
35839
35840 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
35841
35842         * sem_ch3.adb (Inherit_Components): If derived type is private and has
35843         stored discriminants, use its discriminants to constrain parent type,
35844         as is done for non-private derived record types.
35845
35846         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
35847         Ada 2005 AI-310: an abstract non-dispatching operation is not a
35848         candidate interpretation in an overloaded call.
35849
35850         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
35851         expression is Null and target type is not an access type (e.g. a
35852         non-private address type).
35853
35854 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
35855
35856         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
35857         statement whose right-hand side is an inlined call, save a copy of the
35858         original assignment subtree to preserve enough consistency for
35859         Analyze_Assignment to proceed.
35860
35861         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
35862         complete assignment subtree which is now unnecessary, as the expansion
35863         of inlined call has been improved to preserve a consistent assignment
35864         tree.  Note_Possible_Modification must be called only
35865         after checks have been applied, or else unnecessary checks will
35866         be generated.
35867
35868         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
35869         of explicit dereferences that do not Come_From_Source:
35870          - be selective on cases where we must go back to the dereferenced
35871            pointer (an assignment to an implicit dereference must not be
35872            recorded as modifying the pointer);
35873          - do not rely on Original_Node being present (Analyze_Assignment
35874            calls Note_Possible_Modification on a copied tree).
35875
35876         * sem_warn.adb (Check_References): When an unset reference to a pointer
35877         that is never assigned is encountered, prefer '<pointer> may be null'
35878         warning over '<pointer> is never assigned a value'.
35879
35880 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
35881
35882         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
35883         the ABI.
35884
35885 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
35886
35887         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
35888         libexc. We currently don't reference anything in this library and
35889         linking it in triggers linker warnings we don't want to see.
35890
35891         * init.c: Update comments.
35892
35893 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35894
35895         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
35896         * utils.c (create_field_decl): Likewise.
35897         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
35898
35899 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
35900
35901         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
35902         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
35903         Add info directory entry and category.
35904
35905 2004-04-02  Jan Hubicka  <jh@suse.cz>
35906
35907         * utils.c: Include function.h
35908         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
35909
35910 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
35911
35912         PR ada/14150
35913         * Make-lang.in: Clean up generation of documentation
35914
35915         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
35916
35917         * xgnatug.adb: Removed, replaced by xgnatugn.adb
35918
35919         * xgnatugn.adb: Replaces xgnatug.adb
35920
35921         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
35922
35923         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
35924
35925         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
35926         gnat_ug_wnt.texi: Removed.
35927
35928 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
35929
35930         * utils2.c: Update copyright notice.
35931
35932 2004-04-01  Robert Dewar  <dewar@gnat.com>
35933
35934         * checks.adb: Minor reformatting throughout
35935         Note that prev checkin added RM reference to alignment warning
35936
35937 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
35938
35939         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
35940         non-static when building aggregate for bit-packed array.
35941
35942         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
35943         function call that is itself the actual in a procedure call, build
35944         temporary for it.
35945
35946         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
35947         a string literal, create a temporary for it, constant folding only
35948         handles scalars here.
35949
35950 2004-04-01  Vincent Celier  <celier@gnat.com>
35951
35952         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
35953         Error_Msg_SP): New empty procedures to instantiate the Scanner.
35954         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
35955         tokens.
35956         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
35957         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
35958         and get the checksum.
35959
35960         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
35961         already in the Q.
35962         Increase the Marking_Label at the end of the Multiple_Main_Loop,
35963         instead of at the beginning.
35964
35965         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
35966         directly.
35967         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
35968         on VMS.
35969
35970         * osint.ads (Multi_Unit_Index_Character): New Character global variable
35971
35972         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
35973         not '~' directly.
35974
35975         * par.adb: Remove test on file name to detect language defined units.
35976         Add test on unit name, after parsing, to detect language defined units
35977         that are not compiled with -gnatg (except System.RPC and its children)
35978
35979         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
35980         following units without style checking.
35981
35982         * switch-c.adb: Change -gnatC to -gnateI
35983
35984         * usage.adb: Document new switch -gnateInnn
35985
35986         * scng.adb (Accumulate_Token_Checksum): New procedure
35987         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
35988         word or literal number.
35989         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
35990         numbers.
35991
35992 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
35993
35994         * a-tasatt.adb,
35995         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
35996         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
35997         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
35998         5vtpopde.adb: Add missing 'constant' keywords.
35999
36000 2004-04-01  Javier Miranda  <miranda@gnat.com>
36001
36002         * par-ch4.adb: (P_Allocator): Code cleanup
36003
36004         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
36005         attribute.
36006
36007         * sinfo.ads: Complete documentation of previous change
36008
36009 2004-04-01  Pascal Obry  <obry@gnat.com>
36010
36011         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
36012         only on VMS.  This special handling was done because an old GNU/ld bug
36013         on Windows which has been fixed.
36014
36015 2004-04-01  GNAT Script  <nobody@gnat.com>
36016
36017         * Make-lang.in: Makefile automatically updated
36018
36019 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36020
36021         * decl.c (gnat_to_gnu_entity, make_type_from_size):
36022         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
36023         * trans.c (tree_transform, convert_with_check): Likewise.
36024         * utils.c (gnat_signed_or_unsigned_type): Likewise.
36025         (build_vms_descriptor, unchecked_convert): Likewise.
36026         * utils2.c (nonbinary_modular_operation): Likewise.
36027
36028 2004-03-29  Javier Miranda  <miranda@gnat.com>
36029
36030         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
36031         (Install_Null_Excluding_Check): Local subprogram that determines whether
36032         an access node requires a runtime access check and if so inserts the
36033         appropriate run-time check.
36034         (Apply_Access_Check): Call Install_Null_Excluding check if required
36035         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
36036
36037         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
36038
36039         * einfo.ads: Fix typo in comment
36040
36041         * exp_ch3.adb (Build_Assignment): Generate conversion to the
36042         null-excluding type to force the corresponding run-time check.
36043         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
36044         type to force the corresponding run-time check.
36045
36046         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
36047         the null-excluding type to force the corresponding run-time check.
36048
36049         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
36050         case of access types unless they have the null-excluding attribute.
36051
36052         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
36053         part.
36054
36055         * exp_util.ads: Fix typo in comment
36056
36057         * par.adb (P_Null_Exclusion): New subprogram
36058         (P_Subtype_Indication): New formal that indicates if the null-excluding
36059         part has been scanned-out and it was present
36060
36061         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
36062
36063         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
36064         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
36065         type to force the corresponding run-time check
36066         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
36067         components
36068         (Resolve_Array_Aggregate): Carry out some static checks
36069         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
36070
36071         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
36072         attribute must be set only if specified by means of the null-excluding
36073         part. In addition, we must also propagate the access-constant attribute
36074         if present.
36075         (Access_Subprogram_Declaration, Access_Type_Declaration,
36076         Analyze_Component_Declaration, Analyze_Object_Declaration,
36077         Array_Type_Declaration, Process_Discriminants,
36078         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
36079         and carry out some static checks.
36080         (Build_Derived_Access_Type): Set the null-excluding attribute
36081         (Derived_Type_Declaration, Process_Subtype): Carry out some static
36082         checks.
36083
36084         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
36085
36086         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
36087
36088         * sem_ch6.adb (Process_Formals): Carry out some static checks.
36089         (Set_Actual_Subtypes): Generate null-excluding subtype if the
36090         null-excluding part was present; it is not required to be done here in
36091         case of anonymous access types.
36092         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
36093         value.
36094
36095         * sem_res.adb (Resolve_Actuals): Carry out some static check
36096         (Resolve_Null): Allow null in anonymous access
36097
36098         * sinfo.adb: New subprogram Null_Exclusion_Present
36099         All_Present and Constant_Present available on access_definition nodes
36100
36101         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
36102         object_declaration, derived_type_definition, component_definition,
36103         discriminant_specification, access_to_object_definition,
36104         access_function_definition, allocator, access_procedure_definition,
36105         access_definition, parameter_specification, All_Present and
36106         Constant_Present flags available on access_definition nodes.
36107
36108 2004-03-29  Robert Dewar  <dewar@gnat.com>
36109
36110         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
36111         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
36112         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
36113         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
36114         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
36115         sem_prag.adb: Updates to handle multiple units/file
36116
36117         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
36118
36119         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
36120         sem_util.adb: Minor reformatting
36121
36122         * sem_ch12.adb: Add comment for previous change
36123
36124 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
36125
36126         * osint.adb (Executable_Prefix): Set Exec_Name to the current
36127         executable name when not initialized. Otherwise, use its current value.
36128
36129         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
36130         initialize it to another executable name than the current one. This
36131         allows to configure paths for an executable name (gnatmake) different
36132         from the current one (gnatdist).
36133
36134 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
36135
36136         * exp_ch6.adb (Expand_Call): A call to a function declared in the
36137         current unit cannot be inlined if it appears in the body of a withed
36138         unit, to avoid order of elaboration problems in gigi.
36139
36140         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
36141         information for protected (wrapper) operation as well, to simplify gdb
36142         use.
36143
36144         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
36145         protected body, indicate that the entity for the generated spec comes
36146         from source, to ensure that references are properly generated for it.
36147         (Build_Body_To_Inline): Do not inline a function that returns a
36148         controlled type.
36149
36150         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
36151         apply convention to homonyms that are declared explicitly.
36152
36153         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
36154         that renames an equality operator and the operands are overloaded,
36155         resolve them with the declared formal types, before rewriting as an
36156         operator.
36157
36158 2004-03-29  GNAT Script  <nobody@gnat.com>
36159
36160         * Make-lang.in: Makefile automatically updated
36161
36162 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
36163
36164         * memtrack.adb: Log realloc calls, which are treated as free followed
36165         by alloc.
36166
36167 2004-03-25  Vincent Celier  <celier@gnat.com>
36168
36169         * prj-makr.adb (Process_Directories): Detect when a file contains
36170         several units. Do not include such files in the config pragmas or
36171         in the naming scheme.
36172
36173         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
36174         Resolve links only when not in Trusted_Mode.
36175         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
36176         Do not resolve links for the display names.
36177
36178         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
36179         resolve links when computing the display names.
36180
36181 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
36182
36183         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
36184         attribute reference does not denote a subtype, it can be any
36185         expression that has a classwide type, potentially after an implicit
36186         dereference.  In particular, the prefix can be a view conversion for
36187         a classwide type (for which Is_Object_Reference holds), but it can
36188         also be a value conversion for an access-to-classwide type. In the
36189         latter case, there is an implicit dereference, and the original node
36190         for the prefix does not verify Is_Object_Reference.
36191
36192         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
36193         conversion of a discriminant-dependent component of a mutable object
36194         is one itself.
36195
36196 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
36197
36198         * freeze.adb (Freeze_Entity): When an inherited subprogram is
36199         inherited, has convention C, and has unconstrained array parameters,
36200         place the corresponding warning on the derived type declaration rather
36201         than the original subprogram.
36202
36203         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
36204         indication on renaming declaration, if formal has a box and actual
36205         is absent.
36206
36207         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
36208         determine whether to generate an implicit or explicit reference to
36209         the renamed entity.
36210
36211         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
36212         subprogram renaming comes from a defaulted formal subprogram in an
36213         instance.
36214
36215 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
36216
36217         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
36218         value expressions to ensure that calls within a component definition
36219         will be checked (since those are evaluated during the record type's
36220         elaboration).
36221
36222 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
36223
36224         * s-tpobop.adb: Code clean up:
36225         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
36226         code.
36227         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
36228
36229 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
36230
36231         * Makefile.in: Clean up in the ravenscar run time.
36232
36233 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36234
36235         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
36236         of No_Strict_Aliasing to build_pointer_type_for_mode.
36237         * utils.c (update_pointer_to): Walk pointer and ref chains.
36238
36239 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
36240
36241         * ali.ads: Fix Comment about Dynamic_Elab.
36242
36243         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
36244         Has_RACW, Is_Generic, etc.)
36245         (Output_Object, Gnatls): Take into account ALI files not attached to
36246         an object.
36247
36248 2004-03-22  Vincent Celier  <celier@gnat.com>
36249
36250         * gprep.adb: Change all String_Access to Name_Id
36251         (Is_ASCII_Letter): new function
36252         (Double_File_Name_Buffer): New procedure
36253         (Preprocess_Infile_Name): New procedure
36254         (Process_Files): New procedure
36255         (Gnatprep): Check if output and input are existing directories.
36256         Call Process_Files to do the real job.
36257
36258 2004-03-22  Robert Dewar  <dewar@gnat.com>
36259
36260         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
36261         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
36262
36263 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
36264
36265         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
36266         case when the source contains only comments.
36267
36268 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
36269
36270         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
36271         declaration for a child subprogram body that acts as a spec, indicate
36272         that the entity in the declaration needs debugging information.
36273
36274         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
36275         full view if the subtype is created for a constrained record component;
36276         gigi has enough information to construct the record, and there is no
36277         place in the tree for the declaration.
36278
36279         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
36280         serial number for the dummy body that is built for analysis, to avoid
36281         inconsistencies in the generation of internal names when compiling
36282         with -gnatN.
36283
36284 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
36285
36286         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
36287         object.
36288
36289 2004-03-22  GNAT Script  <nobody@gnat.com>
36290
36291         * Make-lang.in: Makefile automatically updated
36292
36293 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36294
36295         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
36296         * trans.c (tree_transform, emit_index_check): Likewise.
36297         * utils.c (build_template): Likewise.
36298         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
36299         (maybe_unconstrained_array, unchecked_convert): Likewise.
36300         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
36301         (build_unary_op): Likewise.
36302         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
36303         (fill_vms_descriptor): Likewise.
36304         (build_call_alloc_dealloc): Likewise.
36305         ALIGN is unsigned.
36306         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
36307
36308 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
36309
36310         PR other/14630
36311         * gnat_ug.texi: Add info directory category and entry.
36312         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
36313         gnat_ug_wnt.texi: Regenerate.
36314
36315 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
36316
36317         * ada-tree.h: Update copyright notice.
36318         Minor reformatting.
36319
36320 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
36321
36322         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
36323         as regular exception objects and not as mere integers representing the
36324         condition code.  The latter approach required some dynamics to mask off
36325         severity bits, which did not fit well into the GCC table based model.
36326         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
36327         exception data objects. We don't it and it would conflict with the other
36328         external symbol we have to generate for such exceptions.
36329
36330         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
36331         the special code for VMS exceptions, since these are now represented
36332         as regular exceptions objects.
36333
36334 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36335
36336         * decl.c (debug_no_type_hash): Remove.
36337         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
36338         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
36339
36340 2004-03-19  Laurent Guerby  <laurent@guerby.net>
36341
36342         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
36343         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
36344
36345 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36346
36347         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
36348         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
36349         (TYPE_RM_SIZE_INT): Directly use type.values.
36350         (TREE_LOOP_ID): Clean up check.
36351         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
36352         TYPE_VALUES, not TYPE_FIELDS.
36353         * trans.c (convert_with_check): Delay access of bounds of basetype
36354         until sure is numeric.
36355
36356 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
36357
36358         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
36359
36360         Code clean up:
36361         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
36362         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
36363         Specific.Set instead of direct call to e.g pthread_setspecific.
36364
36365 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
36366
36367         * adaint.c: Update comments.
36368
36369         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
36370         GNATLIB_SHARED for FreeBSD.
36371
36372 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
36373
36374         * init.c [VxWorks]: Do not fix the stack size for the environment task.
36375         When needed (stack checking) the stack size is retrieved
36376         from the VxWorks kernel.
36377
36378         * Makefile.in: Flag -nostdinc is required when building the run time
36379         for avoiding looking for files in the base compiler.
36380         Add the VxWorks specific version of the package body for
36381         System.Stack_checking.Operations (5zstchop.adb).
36382
36383         * Make-lang.in: Add the object file for
36384         System.Stack_Checking.Operations.
36385
36386         * Makefile.rtl: Add object file for the package
36387         System.Stack_Checking.Operations.
36388
36389         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
36390
36391         * s-stache.ads, s-stache.adb: Move the operations related to stack
36392         checking from this package to package System.Stack_Checking.Operations.
36393         This way, stack checking operations are only linked in the final
36394         executable when using the -fstack-check flag.
36395
36396 2004-03-18  Doug Rupp  <rupp@gnat.com>
36397
36398         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
36399         Reorganize ifeq's.
36400
36401         * 5qsystem.ads, 5xcrtl.ads: New files.
36402
36403 2004-03-18  Vincent Celier  <celier@gnat.com>
36404
36405         * prj.adb (Reset): Reset hash table Files_Htable
36406
36407         * prj-env.adb (Source_Paths, Object_Paths): New tables.
36408         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
36409         the procedures Add_To_Path_File.
36410         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
36411         making sure that each directory is present only once and, for object
36412         dirs, when a directory already present is added, the duplicate is
36413         removed and the directory is always put as the last in the table.
36414         Write the path files at the end of these accumulations.
36415
36416         * prj-nmsc.adb (Record_Source): Add source file name in hash table
36417         Files_Htable for all sources.
36418
36419         * prj-proc.adb (Process): Remove restrictions between not directly
36420         related extending projects.
36421
36422 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
36423
36424         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
36425         (Find_Sources): Minor speed optimization.
36426
36427         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
36428         parameter Trusted_Mode.
36429
36430 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
36431
36432         * scn.adb (Determine_License): Take into account a degenerated case
36433         when the source contains only comments.
36434
36435 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
36436
36437         * sem_warn.adb (Check_References): For a warning on a selected
36438         component that does not come from source, locate an uninitialized
36439         component of the record type to produce a more precise error message.
36440
36441 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
36442
36443         * 3zsoccon.ads: Fix multicast options.
36444
36445         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
36446         in the spec.
36447
36448 2004-03-15  Robert Dewar  <dewar@gnat.com>
36449
36450         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
36451         pragma used for a private type.
36452
36453         * lib-xref.adb (Generate_Reference): Do not generate warning if
36454         reference is in a different unit from the pragma Unreferenced.
36455
36456         * 5vtpopde.adb: Minor reformatting
36457         Fix casing of To_Task_ID
36458
36459         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
36460         flag if we have an unchecked conversion to an access type in the same
36461         unit.
36462
36463 2004-03-15  Geert Bosch  <bosch@gnat.com>
36464
36465         * a-ngcoty.adb (Modulus): In alternate formula for large real or
36466         imaginary parts, use Double precision throughout.
36467
36468         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
36469         we want to be able to compile run-time with -gnata for testing, but
36470         this may also be instantiated in user code that is compiled with -gnata.
36471
36472 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
36473
36474         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
36475         codes. Having a separate type for this is useful to enforce consistency
36476         throughout the various run-time units.
36477         (Exception_Data): Use Exception_Code for Import_Code.
36478
36479         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
36480         Natural and Integer in various places.
36481         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
36482         with the severity bits masked off.
36483         (Register_VMS_Exception): Handle the additional exception data pointer
36484         argument.
36485
36486         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
36487         component, now reflected by an exported accessor.
36488         (is_handled_by): New routine to compute whether the propagated
36489         occurrence matches some handler choice specification. Extracted out of
36490         get_action_description_for, and expanded to take care of the VMS
36491         specifities.
36492         (get_action_description_for): Use is_handled_by instead of an explicit
36493         complex condition to decide if the current choice at hand catches the
36494         propagated occurrence.
36495
36496         * raise.h (Exception_Code): New type for C.
36497
36498         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
36499         System.Standard_Library.Exception_Code, to allow references from the
36500         pragma import/export expander.
36501
36502         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
36503         New accessors to allow easy access to GNAT exception data
36504         characteristics.
36505         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
36506         redundant Handled_By_Others component, helper for the personality
36507         routine which will now be able to call the appropriate exception data
36508         accessor instead.
36509
36510         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
36511         component of Standard_Exception_Type to be the closest possible to
36512         Exception_Code in System.Standard_Library, that we cannot get at this
36513         point. Expand a ??? comment to notify that this type node should
36514         probably be rewritten later on.
36515
36516         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
36517         registration call to include a pointer to the exception object in the
36518         arguments.
36519
36520         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
36521         instead of int and explicit bitmasks.
36522
36523 2004-03-15  Vincent Celier  <celier@gnat.com>
36524
36525         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
36526         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
36527
36528         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
36529         longer needed now that it is in the spec of
36530         System.Tasking.Task_Attributes.
36531
36532         * adaint.h, adaint.c: (__gnat_create_output_file): New function
36533
36534         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
36535
36536         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
36537
36538         * make.adb (Gnatmake): Do not check the executable suffix; it is being
36539         taken care of in Scan_Make_Arg.
36540         (Scan_Make_Arg): Add the executable suffix only if the argument
36541         following -o, in canonical case, does not end with the executable
36542         suffix.  When in verbose mode and executable file name does not end
36543         with executable suffix, output the executable name, in canonical case.
36544
36545         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
36546         to avoid warnings when instantiating Ada.Task_Attributes.
36547         Minor reformating.
36548
36549         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
36550         in the correct order.
36551
36552         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
36553         redirect standard output and error to a file for the invocation of the
36554         compiler, then read the file.
36555
36556         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
36557         directory, instead of the Value.
36558         (Find_Source_Dirs): Remove useless code & comments.
36559
36560 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
36561
36562         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
36563         tagged type is inherited, and the parent operation is not frozen yet,
36564         force generation of a freeze node for the inherited operation, so the
36565         corresponding dispatch entry is properly initialized.
36566         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
36567         when looking for user-defined equality operation.
36568
36569         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
36570         boolean when locating primitive equality of tagged component.
36571
36572         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
36573         bit-aligned field and the right-hand side a string literal, introduce
36574         a temporary before expanding assignment into a loop.
36575
36576         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
36577         priority in full, to ensure that any expanded subepxressions of it are
36578         elaborated in the scope of the init_proc.
36579
36580         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
36581         after object declaration, skipping over code that may have been
36582         generated for validity checks.
36583
36584         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
36585         discriminants, ignore the known discriminants of its full view, if
36586         any, to check legality.
36587
36588         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
36589         component if type has unknown discriminants.
36590         (Analyze_Private_Extension_Declaration): Discriminant constraint is
36591         null if type has unknown discriminants.
36592
36593         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
36594         for end label when present.
36595
36596         * s-fileio.adb (Open): When called with a C_Stream, use given name for
36597         temporary file, rather than an empty string.
36598
36599 2004-03-15  Ed Falis  <falis@gnat.com>
36600
36601         * s-thread.adb: Removed, no longer used.
36602
36603 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36604
36605         * decl.c (target.h): Now include.
36606         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
36607         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
36608         (validate_size): For POINTER_TYPE, get smallest size permitted on
36609         machine.
36610
36611         * fe.h: Sort Einfo decls and add Set_Mechanism.
36612
36613         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
36614         (ada/decl.o): Depends on target.h.
36615
36616         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
36617         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
36618
36619 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
36620
36621         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
36622
36623         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
36624         Insert_Dereference_Action when rewriting an implicit dereference into
36625         an explicit one, this will be taken care of during expansion of the
36626         explicit dereference.
36627         (Expand_N_Slice): Same. Always do the rewriting, even for the case
36628         of non-packed slices, since the dereference action generated by
36629         expansion of the explicit dereference is needed in any case.
36630         (Expand_N_Selected_Component): When rewriting an implicit dereference,
36631         analyze and resolve the rewritten explicit dereference so it is seen
36632         by the expander.
36633         (Insert_Dereference_Action): This procedure is now called only for the
36634         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
36635         dereferences that do not come from source (including explicit
36636         dereferences resulting from rewriting implicit ones), but do not
36637         recursively insert a check for the dereference nodes contained within
36638         the check.
36639         (Insert_Dereference_Action): Clarify and correct comment.
36640
36641 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
36642
36643         PR ada/14131
36644         Move language detection to the top level.
36645         * config-lang.in: Build by default.
36646
36647 2004-03-05  Robert Dewar  <dewar@gnat.com>
36648
36649         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
36650
36651         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
36652         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
36653         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
36654         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
36655         unchecked conversion to spec to avoid warnings.
36656
36657         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
36658         to Task_ID
36659
36660         * 7stpopsp.adb: Correct casing in To_Task_ID call
36661
36662         * a-strsea.ads, a-strsea.adb: Minor reformatting
36663
36664         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
36665
36666         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
36667         Adjust Max_Msg_Length to be clearly large enough.
36668
36669         * fe.h: Define In_Same_Source_Unit
36670
36671         * osint.adb: Add pragma Warnings Off to suppress warnings
36672         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
36673         aliasing warnings.
36674
36675         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
36676
36677         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
36678
36679         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
36680
36681         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
36682
36683         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
36684
36685         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
36686         node. We now do generate them for gcc back end.
36687
36688         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
36689         warning.
36690
36691         * sinput-c.adb: Fix bad name in header.
36692         Add pragma Warnings Off to suppress aliasing warning.
36693
36694         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
36695
36696         * snames.h, snames.ads, snames.adb: Add entry for pragma
36697         No_Strict_Aliasing.
36698
36699 2004-03-05  Vincent Celier  <celier@gnat.com>
36700
36701         * prj-com.ads: Add hash table Files_Htable to check when a file name
36702         is already a source of another project.
36703
36704         * prj-nmsc.adb (Record_Source): Before recording a new source, check
36705         if its file name is not already a source of another project. Report an
36706         error if it is.
36707
36708         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
36709         source file name, call gnatpp with all the sources of the main project.
36710
36711         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
36712         of file names.
36713
36714         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
36715         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
36716         /RUNTIME_SYSTEM=, converted to --RTS=
36717         /NOTABS, converted to -notabs
36718
36719 2004-03-05  Pascal Obry  <obry@gnat.com>
36720
36721         * make.adb: Minor reformatting.
36722
36723 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
36724
36725         Part of implemention of AI-262.
36726         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
36727
36728         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
36729         procedure.
36730
36731         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
36732         when component type is a partially constrained class-wide subtype.
36733         (Constrain_Discriminated_Type): If parent type has unknown
36734         discriminants, a constraint is illegal, even if full view has
36735         discriminants.
36736         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
36737         with unknown discriminants whose full view is a discriminated record.
36738
36739         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
36740         flag, to handle properly derivations of tagged types with unknown
36741         discriminants.
36742         (Analyze_Package_Spec, Analyze_Package_Body): Install
36743         Private_With_Clauses before analyzing private part or body.
36744
36745         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
36746         Has_Discriminants can be true for a given type (documentation).
36747
36748 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
36749
36750         * s-restri.ads: Fix license (GPL->GMGPL).
36751
36752         * s-tassta.adb: Minor reformatting.
36753
36754         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36755         by calls to Exit_One_ATC_Level, since additional clean up is performed
36756         by this function.
36757
36758         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
36759         by calls to Exit_One_ATC_Level, since additional clean up is performed
36760         by this function.
36761
36762 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36763
36764         * trans.c: Reflect GCC changes to fix bootstrap problem.
36765         Add warning for suspicious aliasing unchecked conversion.
36766
36767 2004-03-05  GNAT Script  <nobody@gnat.com>
36768
36769         * Make-lang.in: Makefile automatically updated
36770
36771 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
36772
36773         * ali.adb (Read_Instantiation_Instance): Do not modify the
36774         current_file_num when reading information about instantiations, since
36775         this corrupts files in later references.
36776
36777 2004-03-02  Vincent Celier  <celier@gnat.com>
36778
36779         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
36780         before checking if it is read-only.
36781
36782         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
36783         of SRC_DIRS and eliminate duplicates.
36784
36785         * gprcmd.adb: Replace command "path" with command "path_sep" to return
36786         the path separator.
36787         (Usage): Document path_sep
36788
36789         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
36790         C++ compiler. No need for a script.
36791         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
36792         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
36793         subst.
36794
36795         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
36796         where there are Ada sources.
36797         (Set_Ada_Paths): Only add to the include path the source dirs of project
36798         with Ada sources.
36799         (Add_To_Path): Add the Display_Values of the directories, not their
36800         Values.
36801
36802         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
36803         data.
36804
36805         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
36806         is not No_Name.
36807         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
36808         Value is canonicalized.
36809         (Language_Independent_Check): Do not copy Value to Display_Value when
36810         canonicalizing Value.
36811
36812         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
36813         path to find limited with cycles.
36814         (Parse_Single_Project): Use canonical cased path to find the end of a
36815         with cycle.
36816
36817 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
36818
36819         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
36820         and not a child unit.
36821
36822         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
36823         appear in a with_clause.
36824
36825         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
36826         only happen in type_annotate mode, do not try to elaborate it.
36827
36828         * exp_util.adb (Force_Evaluation): If expression is a selected
36829         component on the left of an assignment, use a renaming rather than a
36830         temporary to remove side effects.
36831
36832         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
36833         inlined instance body, which is analyzed before the end of the
36834         enclosing scope.
36835
36836 2004-03-02  Robert Dewar  <dewar@gnat.com>
36837
36838         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
36839         sem_ch4.adb: Use new feature for substitution of keywords in VMS
36840
36841         * errout.ads, errout.adb: Implement new circuit for substitution of
36842         keywords in VMS.
36843
36844         * sem_case.adb (Analyze_Choices): Place message properly when case is
36845         a subtype reference rather than an explicit range.
36846
36847         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
36848
36849 2004-03-02  Doug Rupp  <rupp@gnat.com>
36850
36851         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
36852
36853 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
36854
36855         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
36856
36857 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36858
36859         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
36860         BLKmode bitfield.
36861
36862 2004-02-25  Robert Dewar  <dewar@gnat.com>
36863
36864         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
36865         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
36866         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
36867         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
36868         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
36869         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
36870         the defining instance of the type to avoid aliasing problems.
36871         Fix copyright header.  Fix bad comments in package header.
36872
36873         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
36874
36875 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
36876
36877         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
36878         rewritten as references when aliased through an address clause.
36879
36880         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
36881         whether call can be interpreted as an indirect call to the result of a
36882         parameterless function call returning an access subprogram.
36883
36884 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
36885
36886         Code clean up:
36887         * exp_ch7.adb (Make_Clean): Remove generation of calls to
36888         Unlock[_Entries], since this is now done by Service_Entries directly.
36889
36890         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
36891
36892         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
36893         Requeue_Call for better code readability. Change spec and update calls:
36894         PO_Service_Entries now unlock the PO on exit.
36895         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
36896         PO_Service_Entries.
36897
36898         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
36899
36900         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
36901
36902 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
36903
36904         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
36905         protected subprogram call and analyzing the result of such expanding
36906         in case when the called protected subprogram is eliminated.
36907
36908         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
36909         names.
36910
36911 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
36912
36913         * Makefile.in: Clean ups.
36914
36915 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
36916
36917         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
36918         protected operations if original subprogram is flagged as eliminated.
36919         (Expand_N_Subprogram_Body): For a protected operation, create
36920         discriminals for next operation before checking whether the operation
36921         is eliminated.
36922
36923         * exp_ch9.adb (Expand_N_Protected_Body,
36924         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
36925         for internal protected operations if the original subprogram is
36926         eliminated.
36927
36928         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
36929         declared in a single protected object.
36930
36931 2004-02-23  Vincent Celier  <celier@gnat.com>
36932
36933         * prj-attr.adb: Make attribute Builder'Executable an associative array,
36934         case insensitive if file names are case insensitive, instead of a
36935         standard associative array.
36936
36937         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
36938         them as case insensitive on platforms where the file names are case
36939         sensitive.
36940
36941         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
36942         project file has already been parsed that canonical path are compared.
36943
36944 2004-02-23  Robert Dewar  <dewar@gnat.com>
36945
36946         * sinput-c.ads: Correct bad unit title in header
36947
36948         * freeze.adb: Minor reformatting
36949
36950 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36951
36952         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
36953         nonaddressable COMPONENT_REF that is removing padding that we are
36954         taking the address of, take the address of the padded record instead
36955         if item is variable size.
36956
36957 2004-02-20  Robert Dewar  <dewar@gnat.com>
36958
36959         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
36960
36961 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
36962
36963         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
36964         itype references for the constrained designated type of a component
36965         whose base type is already frozen.
36966
36967 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
36968
36969         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
36970         avoid GCC warnings.
36971
36972 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
36973
36974         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
36975         identifier for a phantom package that rewrites the formal package
36976         declaration with a box. The Add semantic decorations for the defining
36977         identifier from the original node (that represents the formal package).
36978
36979 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
36980
36981         * Make-lang.in (ada/stamp-sdefault): Use the top level
36982         move-if-change.
36983
36984 2004-02-19  Richard Henderson  <rth@redhat.com>
36985
36986         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
36987
36988 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
36989
36990         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
36991         Scan_ALI can be used for multiple ALI files without reinitializing
36992         between calls.
36993
36994 2004-02-18  Robert Dewar  <dewar@gnat.com>
36995
36996         * debug.adb: Minor reformatting.
36997
36998 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36999
37000         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
37001         to zero if there is an address clause.
37002
37003 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
37004
37005         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
37006
37007 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
37008
37009         * layout.adb (Layout_Component_List): Revise generation of call to
37010         discriminant-checking function to pass selections of all of the type's
37011         discriminants rather than just the variant-controlling discriminant.
37012
37013 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
37014
37015         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
37016         fail in the current setup and triggers spurious system error messages.
37017         Pretend it occurred and failed instead.
37018
37019 2004-02-18  Vincent Celier  <celier@gnat.com>
37020
37021         * bld.adb: Mark FLDFLAGS as saved
37022         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
37023         it is not the root project.  Put each directory to be
37024         extended between double quotes to prevent it to be expanded on Windows.
37025         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
37026         the project file. Set them back to their initial values if they have not
37027         been set in the project file.
37028
37029         * gprcmd.adb: (Gprdebug, Debug): New global variables
37030         (Display_Command): New procedure
37031         (Usage): Document new command "linkopts"
37032         Call Display_Command when env var GPRDEBUG has the value "TRUE"
37033         Implement new command "linkopts"
37034         Remove quotes that may be around arguments for "extend"
37035         Always call Normalize_Pathname with arguments formatted for the platform
37036
37037         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
37038         Change @echo to @$(display) in target clean to be able to clean silently
37039
37040         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
37041
37042         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
37043         canonical case.
37044
37045         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
37046         = Extending_All when current project is an extending all project.
37047
37048         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
37049         set to True only for LINK command, after Unix switch -o.
37050         (Process_Arguments): Set Output_File_Expected to True for LINK command
37051         after Unix switch -o. When Output_File_Expected is True, never add an
37052         extension to a file name.
37053
37054         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
37055         option file name, only to the --for-linker= switch.
37056         (Option_File_Name): If option file name do not end with ".opt", append
37057         "/OPTIONS".
37058
37059 2004-02-18  GNAT Script  <nobody@gnat.com>
37060
37061         * Make-lang.in: Makefile automatically updated
37062
37063 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
37064
37065         * Make-lang.in (stamp-sdefault): Do not depend on
37066         move-if-change.
37067
37068 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
37069
37070         * config-lang.in: Disable Ada by default until probe logic for
37071         a bootstrap Ada compiler can be moved to the top level configure
37072         script.
37073
37074 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
37075
37076         * decl.c (components_to_record): Don't claim that the internal fields
37077         we make to hold the variant parts are semantically addressable, because
37078         they are not.
37079
37080         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
37081         adjust the comment describing the modular type form when we can use it.
37082         (Install_PAT): Account for the Esiz renaming.
37083
37084         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
37085         sc_onstack context indication before raising the exception to which
37086         the signal is mapped. Allows better handling of later signals possibly
37087         triggered by the resumed user code if the exception is handled.
37088
37089 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
37090
37091         * 5zinit.adb: Removed, no longer used.
37092
37093 2004-02-12  Robert Dewar  <dewar@gnat.com>
37094
37095         * ali.adb: Remove separating space between parameters on R line. Makes
37096         format consistent with format used by the binder for Set_Globals call.
37097
37098         * atree.ads, atree.adb: Minor reformatting (new function header format)
37099
37100         * bindgen.adb: Add Run-Time Globals documentation section containing
37101         detailed documentation of the globals passed from the binder file to
37102         the run time.
37103
37104         * gnatls.adb: Minor reformatting
37105
37106         * init.c (__gnat_set_globals): Add note pointing to documentation in
37107         bindgen.
37108
37109         * lib-writ.ads, lib-writ.adb: Remove separating space between
37110         parameters on R line.
37111         Makes format consistent with format used by the binder for Set_Globals
37112         call.
37113
37114         * osint.ads: Add 2004 to copyright notice
37115         Minor reformatting
37116
37117         * snames.ads: Correct capitalization of FIFO_Within_Priorities
37118         Noticed during code reading, documentation issue only
37119
37120         * usage.adb: Remove junk line for obsolete C switch
37121         Noticed during code reading
37122
37123 2004-02-12  Vincent Celier  <celier@gnat.com>
37124
37125         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
37126         extend for each directory, so that multiple /** directories are
37127         extended individually.
37128         (Recursive_Process): Set the default for LANGUAGES to ada
37129
37130         * gprcmd.adb: Define new command "ignore", to do nothing.
37131         Implement new comment "path".
37132
37133         * Makefile.generic: Suppress output when SILENT is set
37134         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
37135         used, so that the correct compiler is invoked.
37136         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
37137         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
37138
37139 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
37140
37141         * Makefile.in: Clean ups and remove obsolete targets.
37142
37143 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
37144
37145         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
37146         predicate declared in exp_util.
37147
37148         * exp_util.adb: Add comments.
37149
37150         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
37151         visibility before compiling context of the subunit.
37152
37153         * sem_res.adb (Check_Parameterless_Call): If the context expects a
37154         value but the name is a procedure, do not attempt to analyze as a call,
37155         in order to obtain more telling diagnostics.
37156
37157         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
37158         'Access on parameterless function calls.
37159         (Normalize_Actuals): For a parameterless function call with missing
37160         actuals, defer diagnostic until resolution of enclosing call.
37161
37162         * sem_util.adb (Wrong_Type): If the context type is an access to
37163         subprogram and the expression is a procedure name, suggest a missing
37164         'attribute.
37165
37166 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
37167             Nathanael Nerode  <neroden@gcc.gnu.org>
37168
37169         PR ada/6637
37170         PR ada/5911
37171         Merge with libada-branch:
37172         * config-lang.in: Build libada only when ada is built.
37173
37174 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
37175
37176         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
37177         for a tagged type, verify that both formals have the same type.
37178
37179         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
37180         temporary when the formal is an in-parameter and the actual a possibly
37181         unaligned slice.
37182
37183         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
37184         when expansion is disabled, to ensure proper name capture with
37185         overloaded literals.  Condition can be of any boolean type, resolve
37186         accordingly.
37187
37188         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
37189         renaming is for a formal subprogram with a default operator name, and
37190         there is a usable operator that is visible at the point of
37191         instantiation.
37192
37193 2004-02-09  Robert Dewar  <dewar@gnat.com>
37194
37195         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
37196         rewrite to ignore errors in ali files, intended to allow tools downward
37197         compatibility with new versions of ali files.
37198
37199         * ali.ads: Add new parameter Ignore_Errors
37200
37201         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
37202         duplicating the error message giving the file with restrictions.
37203
37204         * debug.adb: Add debug flag I for gnatbind
37205
37206         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
37207         operators for the case where the operator is a defining operator.
37208
37209         * exp_ch3.adb: Minor reformatting (new function spec format).
37210
37211         * exp_ch4.adb: Add comment for previous change, and make minor
37212         adjustment to loop to always check for improper loop termination.
37213         Minor reformatting throughout (new function spec format).
37214
37215         * gnatbind.adb: Implement -di debug flag for gnatbind
37216
37217         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
37218
37219         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
37220
37221         * lib-load.adb: Fix bad assertion.
37222         Found by testing and code reading.
37223         Minor reformatting.
37224
37225         * lib-load.ads: Minor reformatting.
37226
37227         * lib-writ.adb: There is only one R line now.
37228
37229         * lib-writ.ads: Add documentation on making downward compatible changes
37230         to ali files so old tools work with new ali files.
37231         There is only one R line now.
37232         Add documentation on format incompatibilities (with special GPS note)
37233
37234         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
37235
37236         * par-load.adb: Minor reformatting
37237
37238         * sem_ch8.adb: Fix to error message from last update
37239         Minor reformatting and restructuring of code from last update
37240
37241         * par-prag.adb, snames.adb, snames.ads, snames.h,
37242         sem_prag.adb: Implement pragma Profile.
37243
37244         * stylesw.adb: Implement -gnatyN switch to turn off all style check
37245         options.
37246
37247         * usage.adb: Add line for -gnatyN switch
37248
37249         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
37250
37251 2004-02-09  Albert Lee  <lee@gnat.com>
37252
37253         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
37254
37255 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
37256
37257         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
37258         slices.
37259
37260         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
37261         is nested in an instance that is not frozen yet, to avoid
37262         order-of-elaboration problems in gigi.
37263
37264         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
37265         body the attribute is legal.
37266
37267 2004-02-09  Robert Dewar  <dewar@gnat.com>
37268
37269         * s-rident.ads: Minor comment correction
37270
37271         * targparm.adb: Remove dependence on uintp completely. There was
37272         always a bug in Make in that it called Targparm before initializing
37273         the Uint package. The old code appeared to get away with this, but
37274         the new code did not! This caused an assertion error in gnatmake.
37275
37276         * targparm.ads: Fix bad comment, restriction pragmas with parameters
37277         are indeed fully supported.
37278
37279 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
37280
37281         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
37282
37283 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
37284
37285         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
37286         with targetm.calls.promote_prototypes.
37287
37288 2004-02-04  Robert Dewar  <dewar@gnat.com>
37289
37290         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
37291         ali.ads, gprcmd.adb: Minor reformatting
37292
37293         * bindgen.adb: Output restrictions string for new style restrictions
37294         handling
37295
37296         * impunit.adb: Add s-rident.ads (System.Rident) and
37297         s-restri (System.Restrictions)
37298
37299         * lib-writ.adb: Fix bug in writing restrictions string (last few
37300         entries wrong)
37301
37302         * s-restri.ads, s-restri.adb: Change name Restrictions to
37303         Run_Time_Restrictions to avoid conflict with package name.
37304         Add circuit to read and acquire run time restrictions.
37305
37306 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
37307
37308         * restrict.ads, restrict.adb: Use the new restriction
37309         No_Task_Attributes_Package instead of the old No_Task_Attributes.
37310
37311         * sem_prag.adb: No_Task_Attributes is a synonym of
37312         No_Task_Attributes_Package.
37313
37314         * snames.ads, snames.adb: New entry for proper handling of
37315         No_Task_Attributes.
37316
37317         * s-rident.ads: Adding restriction No_Task_Attributes_Package
37318         (AI-00249) that supersedes the GNAT specific restriction
37319         No_Task_Attributes.
37320
37321 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
37322
37323         * sem_prag.adb:
37324         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
37325          body, an identifier may be wrapped in an unchecked conversion.
37326
37327 2004-02-04  Vincent Celier  <celier@gnat.com>
37328
37329         * lib-writ.ads: Comment update for the W lines
37330
37331         * bld.adb: (Expression): An empty string list is static
37332
37333         * fname-uf.adb: Minor comment update
37334
37335         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
37336
37337         * gnatbind.adb: Initialize Cumulative_Restrictions with the
37338         restrictions on the target.
37339
37340 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
37341
37342         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
37343         gen_rtx.
37344
37345 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
37346
37347         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
37348
37349 2004-02-02  Vincent Celier  <celier@gnat.com>
37350
37351         * gprcmd.adb (Check_Args): If condition is false, print the invoked
37352         comment before the usage.
37353         Gprcmd: Fail when command is not recognized.
37354         (Usage): Document command "prefix"
37355
37356         * g-md5.adb (Digest): Process last block.
37357         (Update): Do not process last block. Store remaining characters and
37358         length in Context.
37359
37360         * g-md5.ads (Update): Document that several call to update are
37361         equivalent to one call with the concatenated string.
37362         (Context): Add fields to allow new Update behaviour.
37363
37364         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
37365         defaulted to False.
37366         When May_Fail is True and no existing file can be found, return No_File.
37367
37368         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
37369         functions.
37370
37371         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
37372         spec file name instead on the W line.
37373
37374 2004-02-02  Robert Dewar  <dewar@gnat.com>
37375
37376         * ali.adb: Read and acquire info from new format restrictions lines
37377
37378         * bcheck.adb: Add circuits for checking restrictions with parameters
37379
37380         * bindgen.adb: Output dummy restrictions data
37381         To be changed later
37382
37383         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
37384         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
37385         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
37386         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
37387         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
37388
37389         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
37390         the warning message on access to possibly uninitialized variable S)
37391         Minor changes for new restrictions handling.
37392
37393         * gnatbind.adb: Minor reformatting
37394         Minor changes for new restrictions handling
37395         Move circuit for -r processing here from bcheck (cleaner)
37396
37397         * gnatcmd.adb, gnatlink.adb: Minor reformatting
37398
37399         * lib-writ.adb: Output new format restrictions lines
37400
37401         * lib-writ.ads: Document new R format lines for new restrictions
37402         handling.
37403
37404         * s-restri.ads/adb: New files
37405
37406         * Makefile.rtl: Add entry for s-restri.ads/adb
37407
37408         * par-ch3.adb: Fix bad error messages starting with upper case letter
37409         Minor reformatting
37410
37411         * restrict.adb: Major rewrite throughout for new restrictions handling
37412         Major point is to handle restrictions with parameters
37413
37414         * restrict.ads: Major changes in interface to handle restrictions with
37415         parameters. Also generally simplifies setting of restrictions.
37416
37417         * snames.ads/adb: New entry for proper handling of No_Requeue
37418
37419         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
37420         restriction counting.
37421         Other minor changes for new restrictions handling
37422
37423         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
37424         Restriction_Warnings now allows full parameter notation
37425         Major rewrite of Restrictions for new restrictions handling
37426
37427 2004-02-02  Javier Miranda  <miranda@gnat.com>
37428
37429         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
37430         syntax rule for object renaming declarations.
37431         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
37432         component definitions.
37433
37434         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
37435         components.
37436         (Array_Type_Declaration): Give support to access components. In addition
37437         it was also modified to reflect the name of the object in anonymous
37438         array types. The old code did not take into account that it is possible
37439         to have an unconstrained anonymous array with an initial value.
37440         (Check_Or_Process_Discriminants): Allow access discriminant in
37441         non-limited types.
37442         (Process_Discriminants): Allow access discriminant in non-limited types
37443         Initialize the new Access_Definition field in N_Object_Renaming_Decl
37444         node.  Change Ada0Y to Ada 0Y in comments
37445
37446         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
37447         equality operators.
37448         Change Ada0Y to Ada 0Y in comments
37449
37450         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
37451         renamings Change Ada0Y to Ada 0Y in comments
37452
37453         * sem_type.adb (Find_Unique_Type): Give support to the equality
37454         operators for universal access types
37455         Change Ada0Y to Ada 0Y in comments
37456
37457         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
37458
37459         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
37460         field.
37461         (N_Object_Renaming_Declaration): Addition of Access_Definition field
37462         Change Ada0Y to Ada 0Y in comments
37463
37464         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
37465         component definition and object renaming nodes
37466         Change Ada0Y to Ada 0Y in comments
37467
37468 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
37469
37470         * restrict.adb: Use the new restriction identifier
37471         No_Requeue_Statements instead of the old No_Requeue for defining the
37472         restricted profile.
37473
37474         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
37475         No_Requeue_Statements.
37476
37477         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
37478         that supersedes the GNAT specific restriction No_Requeue. The later is
37479         kept for backward compatibility.
37480
37481 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
37482
37483         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
37484         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
37485         pragma and fix incorrect ones.
37486
37487         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
37488         warning if the pragma is redundant.
37489
37490 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
37491
37492         * 5staprop.adb: Add missing 'constant' keywords.
37493
37494         * Makefile.in: use consistent value for SYMLIB on
37495         platforms where libaddr2line is supported.
37496
37497 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37498
37499         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
37500         annotating types.
37501
37502 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
37503
37504         * init.c (__gnat_install_handler): Setup an alternate stack for signal
37505         handlers in the environment thread. This allows proper propagation of
37506         an exception on stack overflows in this thread even when the builtin
37507         ABI stack-checking scheme is used without support for a stack reserve
37508         region.
37509
37510         * utils.c (create_field_decl): Augment the head comment about bitfield
37511         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
37512         here, because the former is not accurate enough at this point.
37513         Let finish_record_type decide instead.
37514         Don't make a bitfield if the field is to be addressable.
37515         Always set a size for the field if the record is packed, to ensure the
37516         checks for bitfield creation are triggered.
37517         (finish_record_type): During last pass over the fields, clear
37518         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
37519         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
37520         from DECL_BIT_FIELD.
37521
37522 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
37523
37524         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
37525         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
37526         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
37527
37528 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37529
37530         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
37531
37532         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
37533         (ZCX_By_Default): Likewise.
37534         (Front_End_ZCX_Support): Likewise.
37535
37536         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
37537         (Initialize_Lock): Mark Level unreferenced.
37538         (Sleep): Mark Reason unreferenced.
37539         (Timed_Sleep): Likewise.
37540         (Wakeup): Likewise.
37541         (Exit_Task): Use Result.
37542         (Check_No_Locks): Mark Self_ID unreferenced.
37543
37544         * 5gtasinf.adb (New_Sproc): Make Attr constant.
37545         (Bound_Thread_Attributes): Make Sproc constant.
37546         (New_Bound_Thread_Attributes): Likewise.
37547
37548 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
37549
37550         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
37551         one-dimensional array an slice assignments, when component type is
37552         controlled.
37553
37554         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
37555         component type is controlled, and control_actions are in effect, use
37556         TSS procedure rather than generating inline code.
37557
37558         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
37559         arrays with controlled components.
37560
37561 2004-01-26  Vincent Celier  <celier@gnat.com>
37562
37563         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
37564         command line for the non VMS case.
37565
37566         * gnatlink.adb (Process_Binder_File): When building object file, if
37567         GNU linker is used, put all object paths between quotes, to prevent ld
37568         error when there are unusual characters (such as '!') in the paths.
37569
37570         * Makefile.generic: When there are sources in Ada and the main is in
37571         C/C++, invoke gnatmake with -B, instead of -z.
37572
37573         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
37574         from VMS_Conversion.
37575         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
37576         specification of argument file on the command line.
37577
37578 2004-01-26  Bernard Banner  <banner@gnat.com>
37579
37580         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
37581
37582 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
37583
37584         * snames.adb: Update copyright notice.
37585         Add info on slice assignment for controlled arrays.
37586
37587 2004-01-23  Robert Dewar  <dewar@gnat.com>
37588
37589         * exp_aggr.adb: Minor reformatting
37590
37591         * exp_ch9.adb: Minor code clean up
37592         Minor reformatting
37593         Fix bad character in comment
37594
37595         PR ada/13471
37596         * targparm.adb (Get_Target_Parameters): Give clean abort error on
37597         unexpected end of file, along with more detailed message.
37598
37599 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37600
37601         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
37602         PAT.
37603
37604         * decl.c (copy_alias_set): New function.
37605         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
37606
37607 2004-01-23  Doug Rupp  <rupp@gnat.com>
37608
37609         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
37610         lib$${file} in case subsequent character is not a separator.
37611
37612 2004-01-23  Vincent Celier  <celier@gnat.com>
37613
37614         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
37615         when the GCC version is at least 3.
37616
37617         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
37618         Remove all "Opt.", to prepare for opt split
37619
37620         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
37621         Extends_All. Set to True when the project parsed is an extending all
37622         project. Fails for importing an extending all project only when the
37623         imported project is an extending all project.
37624         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
37625         depending on the value of Extends_All returned.
37626
37627         * prj-proc.adb (Process): Check that no project shares its object
37628         directory with a project that extends it, directly or indirectly,
37629         including a virtual project.
37630         Check that no project extended by another project shares its object
37631         directory with another also extended project.
37632
37633         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
37634         Kind = N_With_Clause
37635
37636         * prj-tree.ads: Minor reformatting
37637         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
37638
37639 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
37640
37641         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
37642         applies to a type with an incomplete view, use full view in Name of
37643         clause, for consistency with uses of Get_Attribute_Definition_Clause.
37644
37645 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
37646
37647         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
37648         SCHED_RR, since other values are not supported by this policy.
37649         (Initialize): Move initialization of mutex attribute to package
37650         elaboration, to prevent early access to this variable.
37651
37652         * Makefile.in: Remove mention of Makefile.adalib, unused.
37653
37654         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
37655         1ssecsta.ads: Removed, unused.
37656
37657 2004-01-21  Javier Miranda  <miranda@gnat.com>
37658
37659         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
37660         entity if already built in the current scope.
37661
37662         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
37663         reminder in internal scopes. Required for nested limited aggregates.
37664
37665 2004-01-21  Doug Rupp  <rupp@gnat.com>
37666
37667         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
37668         VMS. Replace all occurences of libgnat- and libgnarl- with
37669         libgnat$(hyphen) and libgnarl$(hyphen).
37670         Fixed shared library build problem on VMS.
37671
37672 2004-01-21  Robert Dewar  <dewar@gnat.com>
37673
37674         * mlib-prj.adb: Minor reformatting
37675
37676 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
37677
37678         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
37679         'constant' keywords for declaration of pointers that are not modified.
37680
37681         * exp_pakd.adb: Fix English in comment.
37682
37683 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
37684
37685         PR ada/10889
37686         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
37687         copy all attributes of the parent, including the foreign language
37688         convention.
37689
37690 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
37691
37692         PR ada/10565
37693         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
37694         for 'delay until' statement.
37695
37696 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
37697
37698         * Make-lang.in: Replace $(docdir) with doc.
37699         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
37700         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
37701         to use consistent MAKEINFO rule.
37702         (ada.man, ada.srcman): Dummy entry.
37703         (ADA_INFOFILES): Define.
37704         (ada.info, ada.srcinfo): New rules.
37705
37706 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
37707
37708         * utils.c: Update copyright notice, missed in previous change.
37709
37710 2004-01-19  Vincent Celier  <celier@gnat.com>
37711
37712         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
37713         args if Bind is True. Set First_ALI, if not already done.
37714         (Build_Library): For Stand Alone Libraries, extract from one ALI file
37715         an eventual --RTS switch, for gnatbind, and all backend switches +
37716         --RTS, for linking.
37717
37718 2004-01-19  Robert Dewar  <dewar@gnat.com>
37719
37720         * sem_attr.adb, memtrack.adb: Minor reformatting
37721
37722 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
37723
37724         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
37725         that rename enumeration literals. This is properly done in sem_eval.
37726
37727         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
37728         to functions that rename enumeration literals.
37729
37730         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
37731         functions that rename enumeration literals.
37732
37733 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
37734
37735         * Make-lang.in (utils.o): Depend on target.h.
37736         * utils.c: Include target.h.
37737         (process_attributes): Use targetm.have_named_sections instead
37738         of ASM_OUTPUT_SECTION_NAME.
37739
37740 2004-01-16  Andreas Jaeger  <aj@suse.de>
37741
37742         * Makefile.in: Add $(DESTDIR).
37743
37744 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
37745
37746         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
37747         also when not defining if a Size clause applies. That information is
37748         not to be ignored.
37749
37750 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
37751
37752         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
37753         symbolic links for the shared gnat run time when needed.
37754
37755 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
37756
37757         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
37758         for writing, and terminate with an error message if not.
37759
37760 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
37761
37762         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
37763         warning on an access to subprogram in an instance, when the target
37764         type is declared in the same generic unit.
37765         (Eval_Attribute): If 'access is known to fail accessibility check,
37766         rewrite as a raise statement.
37767
37768 2004-01-15  GNAT Script  <nobody@gnat.com>
37769
37770         * Make-lang.in: Makefile automatically updated
37771
37772 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
37773
37774         * Make-lang.in (ada.srcextra): Dummy entry.
37775
37776 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
37777
37778         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
37779
37780 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
37781
37782         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
37783         components that are initialized with aggregates.
37784
37785 2004-01-13  Vincent Celier  <celier@gnat.com>
37786
37787         * gnatlink.adb (Process_Binder_File): To find directory of shared
37788         libgcc, if "gcc-lib" is not a subdirectory, look for the last
37789         subdirectory "lib" in the path of the shared libgnat or libgnarl.
37790
37791         * make.adb (Gnatmake): If GCC version is at least 3, link with
37792         -shared-libgcc, when there is at least one shared library project.
37793
37794         * opt.ads (GCC_Version): New integer constant.
37795
37796         * adaint.c (get_gcc_version): New function.
37797
37798 2004-01-13  Robert Dewar  <dewar@gnat.com>
37799
37800         * sem_dist.adb, sem_res.adb, sem_util.adb,
37801         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
37802         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
37803
37804 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
37805
37806         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
37807         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
37808         declarations.
37809
37810 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
37811
37812         * misc.c: Remove trailing spaces.
37813         Update copyright notice missed in previous change.
37814
37815         PR ada/13572
37816         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
37817         prefix/share/make
37818
37819         * Makefile.generic: Update copyright.
37820         Add license notice.
37821
37822         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
37823         of prefix/share/make.
37824
37825         * Makefile.prolog: Update copyright.
37826         Add license notice.
37827
37828 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
37829
37830         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
37831         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
37832         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
37833         instead of String.
37834
37835         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
37836         signature.
37837
37838 2004-01-12  Javier Miranda  <miranda@gnat.com>
37839
37840         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
37841         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
37842         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
37843         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
37844         Component_Definition node.
37845
37846 2004-01-12  Ed Falis  <falis@gnat.com>
37847
37848         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
37849
37850 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
37851
37852         * link.c: Change default libgnat kind to STATIC for FreeBSD.
37853
37854 2004-01-12  Bernard Banner  <banner@gnat.com>
37855
37856         * Makefile.in: map 86numaux to a-numaux for x86_64
37857
37858 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
37859
37860         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
37861         generated to rename a generic actual, go to the actual itself, the
37862         subtype is not a user-visible entity.
37863
37864         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
37865         part is a private subtype, reset the visibility of its full view, if
37866         any, to be consistent.
37867
37868         PR ada/13417
37869         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
37870         to use a generic package G as a formal package for another generic
37871         declared within G.
37872
37873 2004-01-12  Robert Dewar  <dewar@gnat.com>
37874
37875         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
37876
37877         * usage.adb: Remove mention of obsolete -gnatwb switch
37878         Noticed during code reading
37879
37880 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
37881
37882         * 1ssecsta.adb: Minor changes for -gnatwa warnings
37883
37884 2004-01-12  GNAT Script  <nobody@gnat.com>
37885
37886         * Make-lang.in: Makefile automatically updated
37887
37888 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
37889
37890         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
37891
37892 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37893
37894         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
37895
37896 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
37897
37898         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
37899         Update comment and copyright date.
37900         * stamp-xgnatug: Delete.
37901
37902 2004-01-05  Robert Dewar  <dewar@gnat.com>
37903
37904         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
37905         be modified by the binder generated main program if the -D switch is
37906         used.
37907
37908         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
37909         imported functions (since now we expect this to be done for imported
37910         functions)
37911
37912         * 5vtaprop.adb: Add several ??? for sections requiring more comments
37913         Minor reformatting throughout
37914
37915         * 5zinit.adb: Minor reformatting
37916         Add 2004 to copyright date
37917         Minor changes to avoid -gnatwa warnings
37918         Correct some instances of using OR instead of OR ELSE (noted while
37919         doing reformatting)
37920
37921         * sprint.adb: Minor updates to avoid -gnatwa warnings
37922
37923         * s-secsta.ads, s-secsta.adb:
37924         (SS_Get_Max): New function to obtain high water mark for ss stack
37925         Default_Secondary_Stack is not a constant since it may be modified by
37926         the binder generated main program if the -D switch is used.
37927
37928         * switch-b.adb: New -Dnnn switch for binder
37929
37930         * switch-c.adb:
37931         Make -gnatg imply all warnings currently in -gnatwa
37932
37933         * vms_conv.adb: Minor reformatting
37934         Add 2004 to copyright notice
37935         Add 2004 to printed copyright notice
37936
37937         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
37938         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
37939         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
37940         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
37941         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
37942         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
37943         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
37944         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
37945         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
37946         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
37947         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
37948         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
37949         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
37950         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
37951         checks.adb, clean.adb, cstand.adb, einfo.ads,
37952         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
37953         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
37954         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
37955         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
37956         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
37957         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
37958         Minor reformatting and code clean ups.
37959         Minor changes to prevent -gnatwa warnings
37960
37961         * ali.adb: Minor reformatting and cleanup of code
37962         Acquire new SS indication of secondary stack use from ali files
37963
37964         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
37965         (since now we expect this to be done for imported functions)
37966
37967         * bindgen.adb: Generate call to modify default secondary stack size if
37968         -Dnnn switch given
37969
37970         * bindusg.adb: Add line for new -D switch
37971
37972         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
37973         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
37974         Add circuitry for both records and arrays to avoid gigi
37975         processing if the type involved has non-bit-aligned components
37976
37977         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
37978         N_String_Literal node always references an E_String_Literal_Subtype
37979         entity. This may not be true in the future.
37980         (Possible_Bit_Aligned_Component): Move processing of
37981         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
37982
37983         * exp_ch6.adb (Expand_Thread_Body): Pick up
37984         Default_Secondary_Stack_Size as variable so that we get value modified
37985         by possible -Dnnn binder parameter.
37986
37987         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
37988         (Type_May_Have_Bit_Aligned_Components): New function.
37989
37990         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
37991         (Type_May_Have_Bit_Aligned_Components): New function.
37992
37993         * fe.h: (Set_Identifier_Casing): Fix prototype.
37994         Add declaration for Sem_Elim.Eliminate_Error_Msg.
37995         Minor reformatting.
37996
37997         * freeze.adb (Freeze_Entity): Add RM reference to error message about
37998         importing constant atomic/volatile objects.
37999         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
38000         unless explicit Pure_Function pragma given, to avoid insidious bug of
38001         call to non-pure imported function getting eliminated.
38002
38003         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
38004         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
38005         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
38006         Add 2004 to printed copyright notice
38007
38008         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
38009         stack used.
38010
38011         * Makefile.rtl: Add entry for g-sestin.o
38012         g-sestin.ads: New file.
38013
38014         * mdll.adb: Minor changes to avoid -gnatwa warnings
38015
38016         * mlib-tgt.adb: Minor reformatting
38017
38018         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
38019         New switch Sec_Stack_Used (GNAT, GNATBIND)
38020         Make Default_Secondary_Stack_Size a variable instead of a constant,
38021         so that it can be modified by the new -Dnnn bind switch.
38022
38023         * rtsfind.adb (Load_Fail): Give full error message in configurable
38024         run-time mode if all_errors mode is set. This was not done in the case
38025         of a file not found, which was an oversight.
38026         Note if secondary stack unit is used by compiler.
38027
38028         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
38029         ineffective elaborate all pragmas on non-visible packages (this
38030         happened when a renamed subprogram was called). Now the elaborate all
38031         always goes on the package containing the renaming rather than the one
38032         containing the renamed subprogram.
38033
38034         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
38035         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
38036
38037         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
38038         has an Etype that references an E_String_Literal.
38039         (Eval_String_Literal): Avoid assumption that N_String_Literal node
38040         always references an E_String_Literal_Subtype entity. This may not
38041         be true in the future.
38042
38043         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
38044         pragma location.
38045
38046         * sem_res.adb (Resolve): Specialize msg for function name used in proc
38047         call.
38048
38049 2004-01-05  Ed Falis  <falis@gnat.com>
38050
38051         * g-debuti.adb: Replaced direct boolean operator with short-circuit
38052         form.
38053
38054 2004-01-05  Vincent Celier  <celier@gnat.com>
38055
38056         * bld.adb: Minor comment updates
38057         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
38058         of Item_Name).
38059
38060         * make.adb (Gnatmake): Special process for files to compile/check when
38061         -B is specified. Fail when there are only foreign mains in attribute
38062         Main of the project file and -B is not specified. Do not skip bind/link
38063         steps when -B is specified.
38064
38065         * makeusg.adb: Document new switch -B
38066
38067         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
38068
38069         * switch-m.adb: (Scan_Make_Switches): Process -B switch
38070
38071         * vms_data.ads: Add new GNAT PRETTY qualifier
38072         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
38073
38074 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38075
38076         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
38077         case.
38078
38079         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
38080         Set_Identifier_Casing.
38081
38082         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
38083         has size that overflows.
38084
38085 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
38086
38087         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
38088         -gnatwa warning on static condition.
38089
38090 2004-01-05  Doug Rupp  <rupp@gnat.com>
38091
38092         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
38093
38094 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
38095
38096         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
38097         all attributes, including read-only attribute.
38098
38099 2004-01-05  Pascal Obry  <obry@gnat.com>
38100
38101         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
38102         library naming scheme.
38103
38104         * mlib-prj.adb (Build_Library): Generate different names for the static
38105         or dynamic version of the GNAT runtime. This is needed to support the
38106         new shared library naming scheme.
38107         (Process_Binder_File): Add detection of shared library in binder file
38108         based on the new naming scheme.
38109
38110         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
38111         scheme for the shared runtime libraries.
38112
38113         * Makefile.in:
38114         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
38115         scheme.
38116         (install-gnatlib): Do not create symlinks for shared libraries.
38117         (gnatlib-shared-default): Idem.
38118         (gnatlib-shared-dual-win32): New target. Not used for now as the
38119         auto-import feature does not support arrays/records.
38120         (gnatlib-shared-win32): Do not create copy for the shared libraries.
38121         (gnatlib-shared-vms): Fix shared runtime libraries names.
38122
38123         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
38124         dependent runtime shared library name.
38125
38126 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
38127
38128         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
38129         than the object.
38130
38131 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
38132
38133         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
38134         protected objects when allocator has a subtype indication, not a
38135         qualified expression. Note that qualified expressions may have to be
38136         checked when limited aggregates are implemented.
38137
38138         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
38139         pure, emit warning.
38140         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
38141         subprogram is imported, remove warning.
38142
38143 2004-01-05  Geert Bosch  <bosch@gnat.com>
38144
38145         * s-poosiz.adb: Update copyright notice.
38146         (Allocate): Use Task_Lock to protect against concurrent access.
38147         (Deallocate): Likewise.
38148
38149 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
38150
38151         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
38152         comment.
38153
38154 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
38155
38156         * gnat_ug.texi: Force a CVS commit by updating copyright.
38157         * gnat_ug_vxw.texi: Regenerate.
38158         * gnat_ug_wnt.texi: Regenerate.
38159         * gnat_ug_vms.texi: Regenerate.
38160         * gnat_ug_unx.texi: Regenerate.
38161
38162 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
38163
38164         * trans.c: Remove uses of "register" specifier in
38165         declarations of local variables.
38166
38167 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
38168
38169         * stamp-xgnatug: New stamp file.
38170         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
38171         (ada/doctools/xgnatug): Add $(build_exeext).
38172         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
38173         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
38174
38175 2003-12-17  Ed Falis  <falis@gnat.com>
38176
38177         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
38178         eliminate warning.
38179
38180         * a-exextr.adb: Add context clause for
38181         Ada.Exceptions.Last_Chance_Handler.
38182
38183 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
38184
38185         * cstand.adb (Create_Standard): Change the way how the declaration of
38186         the Duration type is created (making it the same way as it is for all
38187         the other standard types).
38188
38189 2003-12-17  Robert Dewar  <dewar@gnat.com>
38190
38191         * s-crtl.ads: Fix header format
38192         Change Pure to Preelaborate
38193
38194 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
38195
38196         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
38197         the expression type only if it is declared in the current unit.
38198
38199         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
38200         are universal and already analyzed, as can occur in constrained
38201         subcomponents that depend on discriminants, when one constraint is a
38202         subtype mark.
38203
38204         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
38205         type Any_Fixed is legal as the argument of a conversion, if only one
38206         fixed-point type is in context.
38207
38208 2003-12-17  GNAT Script  <nobody@gnat.com>
38209
38210         * Make-lang.in: Makefile automatically updated
38211
38212 2003-12-15  Robert Dewar  <dewar@gnat.com>
38213
38214         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
38215         sec stack size.
38216
38217 2003-12-15  Vincent Celier  <celier@gnat.com>
38218
38219         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
38220         (Gnatchop): Do not set failure status when reporting the number of
38221         warnings.
38222
38223 2003-12-15  Doug Rupp  <rupp@gnat.com>
38224
38225         * s-ctrl.ads: New file.
38226
38227         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
38228
38229         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
38230         (GNATBIND_OBJS): Add ada/s-crtl.o.
38231
38232         * Makefile.in [VMS]: Clean up ifeq rules.
38233
38234         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
38235         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
38236         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
38237         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
38238         s-tasdeb.adb: Update copyright.
38239         Import System.CRTL.
38240         Make minor modifications to use System.CRTL declared functions instead
38241         of importing locally.
38242
38243 2003-12-15  GNAT Script  <nobody@gnat.com>
38244
38245         * Make-lang.in: Makefile automatically updated
38246
38247 2003-12-11  Ed Falis  <falis@gnat.com>
38248
38249         * 5zinit.adb: Clean up.
38250
38251         * 5zintman.adb (Notify_Exception): replaced case statement with a call
38252         to __gnat_map_signal, imported from init.c to support
38253         signal -> exception mappings that depend on the vxWorks version.
38254
38255         * init.c:
38256         Created and exported __gnat_map_signal to support signal -> exception
38257         mapping that is dependent on the VxWorks version.
38258         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
38259
38260 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
38261
38262         * 5wosinte.ads: Link with -mthreads switch.
38263
38264 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
38265
38266         * init.c (__gnat_install_handler [NetBSD]): Set
38267         __gnat_handler_installed, as done on all other platforms.
38268         Remove duplicated code.
38269
38270 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
38271
38272         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
38273
38274 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
38275
38276         * sinfo.ads: Fix inconsistent example code in comment.
38277
38278 2003-12-11  Robert Dewar  <dewar@gnat.com>
38279
38280         * a-tiinau.adb: Add a couple of comments
38281
38282         * sem_ch3.adb: Minor reformatting
38283
38284         * sem_prag.adb:
38285         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
38286         Minor reformatting throughout
38287
38288 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
38289
38290         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
38291         bounds of a loop, create a separate block in order to generate proper
38292         cleanup actions to prevent memory leaks.
38293
38294         * sem_res.adb (Resolve_Call): After a call to
38295         Establish_Transient_Scope, the call may be rewritten and relocated, in
38296         which case no further processing is needed.
38297
38298         * sem_util.adb: (Wrong_Type): Refine previous fix.
38299          Fixes ACATS regressions.
38300
38301         PR ada/13353
38302         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
38303         be inlined.
38304
38305 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
38306
38307         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
38308         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
38309         obsolete files.
38310
38311         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
38312         (rts-zfp): Ditto.
38313
38314 2003-12-08  Robert Dewar  <dewar@gnat.com>
38315
38316         * 7sintman.adb: Minor reformatting
38317
38318         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
38319         standard linker options to get standard libraries linked. We now plan
38320         to provide dummy versions of these libraries to match the appropriate
38321         configurable run-time (e.g. if a library is not needed at all, provide
38322         a dummy empty library).
38323
38324         * targparm.ads: Configurable_Run_Time mode no longer affects linker
38325         options (-L parameters and standard libraries). What we plan to do is
38326         to provide dummy libraries where the libraries are not required.
38327
38328         * gnatbind.adb: Minor comment improvement
38329
38330 2003-12-08  Javier Miranda  <miranda@gnat.com>
38331
38332         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
38333         aggregate in the parent. Otherwise constants with limited aggregates
38334         are not supported. Add new formal to pass the component type (Ctype).
38335         It is required to call the corresponding IP subprogram in case of
38336         default initialized components.
38337         (Gen_Assign): In case of default-initialized component, generate a
38338         call to the IP subprogram associated with the component.
38339         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
38340         of aggregate with default initialized components.
38341         (Has_Default_Init_Comps): Improve implementation to recursively check
38342         all the present expressions.
38343
38344         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
38345         to indicate that the initialization call corresponds to a
38346         default-initialized component of an aggregate.
38347         In case of default initialized aggregate with tasks this parameter is
38348         used to generate a null string (this is just a workaround that must be
38349         improved later). In case of discriminants, this parameter is used to
38350         generate a selected component node that gives access to the discriminant
38351         value.
38352
38353         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
38354         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
38355         allocated aggregates with default-initialized components.
38356
38357         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
38358         the box notation is used in positional aggregates.
38359
38360 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
38361
38362         * lib.ads: Fix typo in comment
38363
38364 2003-12-08  Vincent Celier  <celier@gnat.com>
38365
38366         * prj.adb (Project_Empty): New component Unkept_Comments
38367         (Scan): Remove procedure; moved to Prj.Err.
38368
38369         * prj.ads (Project_Data): New Boolean component Unkept_Comments
38370         (Scan): Remove procedure; moved to Prj.Err.
38371
38372         * prj-dect.adb: Manage comments for the different declarations.
38373
38374         * prj-part.adb (With_Record): New component Node
38375         (Parse): New Boolean parameter Store_Comments, defaulted to False.
38376         Set the scanner to return ends of line and comments as tokens, if
38377         Store_Comments is True.
38378         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
38379         comments are associated with these nodes. Store the node IDs in the
38380         With_Records.
38381         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
38382         With_Records.
38383         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
38384         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
38385         current project. Call Tree.Restore afterwards. Set the various nodes
38386         for comment storage (Next_End, End_Of_Line, Previous_Line,
38387         Previous_End).
38388
38389         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
38390         defaulted to False.
38391
38392         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
38393         to False. When Truncated is True, truncate the string, never go to the
38394         next line.
38395         (Write_End_Of_Line_Comment): New procedure
38396         (Print): Process comments for nodes N_With_Clause,
38397         N_Package_Declaration, N_String_Type_Declaration,
38398         N_Attribute_Declaration, N_Typed_Variable_Declaration,
38399         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
38400         Process nodes N_Comment.
38401
38402         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
38403         without comments and there are some comments, set the flag
38404         Unkept_Comments to True.
38405         (Scan): If there are comments, set the flag Unkept_Comments to True and
38406         clear the comments.
38407         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
38408         (Next_End_Nodes: New table
38409         (Comment_Zones_Of): New function
38410         (Scan): New procedure; moved from Prj. Accumulate comments in the
38411         Comments table and set end of line comments, comments after, after end
38412         and before end.
38413         (Add_Comments): New procedure
38414         (Save, Restore, Seset_State): New procedures
38415         (There_Are_Unkept_Comments): New function
38416         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
38417         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
38418         procedures.
38419         (First_Comment_After, First_Comment_After_End): New functions
38420         (First_Comment_Before, First_Comment_Before_End): New functions
38421         (Next_Comment): New function
38422         (End_Of_Line_Comment, Follows_Empty_Line,
38423         Is_Followed_By_Empty_Line): New functions
38424         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
38425         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
38426         (Set_Next_Comment): New procedure
38427         (Default_Project_Node): Associate comment before if the node can store
38428         comments.
38429
38430         * scans.ads (Token_Type): New enumeration value Tok_Comment
38431         (Comment_Id): New global variable
38432
38433         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
38434         defaulted to False.
38435         (Scan): Store position of start of comment. If comments are tokens, set
38436         Comment_Id and set Token to Tok_Comment when scanning a comment.
38437         (Set_Comment_As_Token): New procedure
38438
38439         * sinput-p.adb: Update Copyright notice
38440         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
38441         that no longer exists.
38442
38443 2003-12-08  Javier Miranda  <miranda@gnat.com>
38444
38445         * sem_aggr.adb: Add dependence on Exp_Tss package
38446         Correct typo in comment
38447         (Resolve_Aggregate): In case of array aggregates set the estimated
38448         type of the aggregate before calling resolve. This is needed to know
38449         the name of the corresponding IP in case of limited array aggregates.
38450         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
38451         in case of default initialized array components.
38452
38453         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
38454         types. Required to give support to limited aggregates in generic
38455         formals.
38456
38457 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
38458
38459         * sem_ch3.adb (Check_Initialization): For legality purposes, an
38460         inlined body functions like an instantiation.
38461         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
38462         until bounds are analyzed, to diagnose premature use of type.
38463
38464         * sem_util.adb (Wrong_Type): Improve error message when the type of
38465         the expression is used prematurely.
38466
38467 2003-12-08  GNAT Script  <nobody@gnat.com>
38468
38469         * Make-lang.in: Makefile automatically updated
38470
38471 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
38472
38473         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
38474         they are automatically generated by Make-lang.in and cause nothing but
38475         maintenance troubles.
38476
38477 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
38478
38479         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
38480         version of this unit).
38481
38482 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
38483
38484         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
38485         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
38486         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
38487         the body of System.Interrupt_Management common to several targets.
38488         Update copyright notice when appropriate.
38489
38490         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
38491         constant.
38492
38493         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
38494         to ensure that the kernel fills in the interrupted context structure
38495         before calling a signal handler, which is necessary to be able to
38496         unwind past it. Update the copyright notice.
38497
38498 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
38499
38500         * a-elchha.ads: New file.
38501
38502         * a-elchha.adb: New default last chance handler. Contents taken from
38503         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
38504
38505         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
38506         is moved to a-elchha.adb to provide a target-independent default last
38507         chance handler.
38508
38509         * Makefile.rtl: Add a-elchha.o
38510
38511         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
38512
38513 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
38514
38515         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
38516         declared in an instance, do not inline the call if the instance is not
38517         frozen yet, to prevent order of elaboration problems.
38518
38519         * sem_prag.adb: Add comments for previous fix.
38520
38521 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
38522
38523         * g-table.adb: Use the right variable in Set_Item.
38524         Update copyright notice.
38525
38526 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
38527
38528         * Makefile.in: Remove unused rules.
38529
38530 2003-12-05  Vincent Celier  <celier@gnat.com>
38531
38532         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
38533         -nostdlib. Not needed here after all.
38534
38535 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
38536
38537         PR ada/11724
38538         * adaint.h, adaint.c, g-os_lib.ads:
38539         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
38540         on some platforms (including FreeBSD), it is a 64 bit value.
38541         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
38542
38543 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
38544
38545         * gnatvsn.ads (Library_Version): Now contain only the relevant
38546         version info.
38547         (Verbose_Library_Version): New constant.
38548
38549         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
38550         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
38551         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
38552
38553         * gnatlbr.adb: Clean up: replace Library_Version by
38554         Verbose_Library_Version.
38555
38556         * make.adb, lib-writ.adb, exp_attr.adb:
38557         Clean up: replace Library_Version by Verbose_Library_Version.
38558
38559         * 5lintman.adb: Removed.
38560
38561         * Makefile.in:
38562         Update and simplify computation of LIBRARY_VERSION.
38563         Fix computation of GSMATCH_VERSION.
38564         5lintman.adb is no longer used: replaced by 7sintman.adb.
38565
38566 2003-12-03  Robert Dewar  <dewar@gnat.com>
38567
38568         * exp_ch5.adb:
38569         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
38570         name. Modified to consider small non-bit-packed arrays as troublesome
38571         and in need of component-by-component assigment expansion.
38572
38573 2003-12-03  Vincent Celier  <celier@gnat.com>
38574
38575         * lang-specs.h: Process nostdlib as nostdinc
38576
38577         * back_end.adb: Update Copyright notice
38578         (Scan_Compiler_Arguments): Process -nostdlib directly.
38579
38580 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
38581
38582         * Makefile.in:
38583         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
38584         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
38585         included in HIE_NONE_TARGET_PAIRS.
38586
38587 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
38588
38589         * sem_attr.adb:
38590         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
38591         is legal in an instance, because legality is cheched in the template.
38592
38593         * sem_prag.adb:
38594         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
38595         appplied to an unchecked conversion of a formal parameter.
38596
38597         * sem_warn.adb:
38598         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
38599         variables.
38600
38601 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
38602
38603         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
38604         routines. The second one is new functionality to deal with backtracing
38605         through signal handlers.
38606         (unwind): Split into the two separate subroutines above.
38607         Update the documentation, and deal properly with sizeof (REG) different
38608         from sizeof (void*).
38609
38610 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
38611
38612         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
38613         so that the debugger can reliably access the value of the parameter,
38614         and therefore is able to display the exception name when an exception
38615         breakpoint is reached.
38616
38617 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
38618
38619         * fmap.adb: Fix typo in warning message.
38620
38621         * g-socket.ads, g-socket.adb: Make Free a visible instance of
38622         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
38623
38624 2003-12-01  Vincent Celier  <celier@gnat.com>
38625
38626         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
38627         ther is no Afile.
38628         (Build_Library): Get the switches only if Default_Switches is declared
38629         in package Binder.
38630
38631 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
38632
38633         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
38634         actuals that are indexed components, reanalyze actual to ensure that
38635         packed array references are properly expanded.
38636
38637         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
38638         attempted assignment to a discriminant.
38639
38640 2003-12-01  Robert Dewar  <dewar@gnat.com>
38641
38642         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
38643         reformatting.
38644
38645         * switch-c.adb: Minor reformatting of comments
38646
38647 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
38648
38649         * Makefile.in: Clean ups.
38650
38651 2003-12-01  GNAT Script  <nobody@gnat.com>
38652
38653         * Make-lang.in: Makefile automatically updated
38654
38655 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
38656
38657         * 5wsystem.ads: Disable zero cost exception, not ready yet.
38658
38659 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
38660
38661         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
38662         to force serialization.
38663
38664 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
38665
38666         * g-socket.ads, g-socket.adb:
38667         Clarify documentation of function Stream. Introduce a Free procedure
38668         to release the returned Stream once it becomes unused.
38669
38670         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
38671
38672 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
38673
38674         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
38675         since NT 4 cannot handle timeout values that are too large,
38676         e.g. DWORD'Last - 1.
38677
38678 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
38679
38680         * exp_ch4.adb:
38681         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
38682         in procedure calls and whose expansion must be deferred.
38683
38684         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
38685         is in exp_ch4.
38686
38687         * sem_ch3.adb:
38688         (Build_Derived_Array_Type): Create operator for unconstrained type
38689         if ancestor is unconstrained.
38690
38691 2003-11-26  Vincent Celier  <celier@gnat.com>
38692
38693         * make.adb (Project_Object_Directory): New global variable
38694         (Change_To_Object_Directory): New procedure
38695         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
38696         of Change_Dir directly. Do not change working directory to object
38697         directory of main project after each compilation.
38698         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
38699         directly.
38700         Change to object directory of main project before binding step.
38701         (Initialize): Initialize Project_Object_Directory to No_Project
38702
38703         * mlib-prj.adb:
38704         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
38705         binding a Stand-Alone Library.
38706
38707         * output.adb: Update Copyright notice
38708         (Write_Char): Output buffer when full
38709
38710 2003-11-26  Robert Dewar  <dewar@gnat.com>
38711
38712         * sem_ch13.adb: (Check_Size): Reset size if size is too small
38713
38714         * sem_ch13.ads:
38715         (Check_Size): Fix documentation to include bit-packed array case
38716
38717         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
38718
38719         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
38720
38721         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
38722
38723 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
38724
38725         PR ada/13142
38726         * utils.c (init_gigi_decls): Change name of built-in setjmp to
38727         __builtin_setjmp, since this is apparently needed by recent
38728         non Ada changes.
38729
38730 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38731
38732         * adadecode.c: Only include ctype.h if not IN_GCC.
38733         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
38734
38735 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
38736
38737         * Makefile.in:
38738         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
38739         signals and interrupts.
38740
38741         * 5zintman.ads: New File.
38742
38743         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
38744         add exception signals to the set of unmasked signals.
38745
38746         * 5ztaprop.adb:
38747         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
38748         between signals and interrupts.
38749         Add to Unblocked_Signal_Mask the set of signals that are in
38750         Keep_Unmasked.
38751
38752         * 7sinmaop.adb:
38753         Adding a check to see whether the Interrupt_ID we want to unmask is in
38754         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
38755         reason is that the index type of the Keep_Unmasked array is not always
38756         Interrupt_ID; it may be a subtype of Interrupt_ID.
38757
38758 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
38759
38760         * exp_util.adb:
38761         (Remove_Side_Effects): Condition constantness of object created for a
38762          an unchecked type conversion on the constantness of the expression
38763          to ensure the correct value for 'Constrained when passing components
38764          of view-converted class-wide objects.
38765
38766 2003-11-24  Robert Dewar  <dewar@gnat.com>
38767
38768         * par-load.adb (Load): Improve handling of misspelled and missing units
38769         Removes several cases of compilation abandoned messages
38770
38771         * lib.adb: (Remove_Unit): New procedure
38772
38773         * lib.ads: (Remove_Unit): New procedure
38774
38775         * lib-load.adb: Minor reformatting
38776
38777 2003-11-24  Vincent Celier  <celier@gnat.com>
38778
38779         * make.adb:
38780         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
38781         (Marking_Label): Label to mark processed source files. Incremented for
38782         each executable.
38783         (Gnatmake): Increase Marking_Labet for each executable
38784         (Is_Marked): Compare against marking label
38785         (Mark): Mark with marking label
38786
38787 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
38788
38789         * s-thread.ads:
38790         Move the declaration of the TSD for System.Threads to System.Soft_Links.
38791         Add some comments.
38792
38793         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
38794         (rts-cert): build a single relocatable object for the run-time lib.
38795         Fix perms.
38796
38797 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
38798
38799         * Make-lang.in:
38800         Use gnatls rather than gcc to obtain the location of GNAT RTL for
38801         crosstools build.
38802
38803 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
38804
38805         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
38806         can not use it as before (that is, as a variable) when dumping it into
38807         the tree file. Add a local variable to store the result of this
38808         function and to be used as the string to be written into the tree.
38809
38810         * scn.adb (Initialize_Scanner): Add comments explaining the recent
38811         changes.
38812
38813         * sinput.adb (Source_First, Source_Last): In case of
38814         Internal_Source_File, replace returning attributes of
38815         Internal_Source_Ptr (which is wrong) with returning attributes of
38816         Internal_Source.
38817
38818 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
38819
38820         * sem_ch3.adb:
38821         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
38822         used for implicit concatenation operators.
38823         Code cleanup.
38824
38825         * sem_elab.adb:
38826         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
38827         task bodies that are in the scope of a Suppress pragma.
38828         (Check_A Call): Use the flag to prevent spurious elaboration checks.
38829
38830         * sinfo.ads, sinfo.adb:
38831         New flag No_Elaboration_Check on function/procedure calls, to properly
38832         suppress checks on calls in task bodies that are within a local suppress
38833         pragma.
38834
38835         * exp_ch4.adb:
38836         (Expand_Concatenate_Other): Use the proper integer type for the
38837         expression for the upper bound, to avoid universal_integer computations
38838         when possible.
38839
38840 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
38841
38842         * .cvsignore: Delete.
38843
38844 2003-11-21  Andreas Schwab  <schwab@suse.de>
38845
38846         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
38847
38848 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
38849
38850         * 5wsystem.ads: Enable zero cost exception.
38851
38852 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
38853
38854         * 5ztiitho.adb: Remove an unreferenced variable.
38855
38856 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
38857
38858         * adaint.c: For FreeBSD, use mkstemp.
38859
38860 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
38861
38862         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
38863
38864 2003-11-21  Robert Dewar  <dewar@gnat.com>
38865
38866         * bld.adb: Remove useless USE of gnatvsn
38867
38868         * gnatchop.adb: Minor reformatting
38869         Clean up version handling to be more consistent
38870
38871         * gnatxref.adb: Minor reformatting
38872
38873         * gprcmd.adb: Minor reformatting
38874         Fix output of copyright to be more consistent with other tools
38875
38876 2003-11-21  Vincent Celier  <celier@gnat.com>
38877
38878         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
38879
38880 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
38881
38882         * atree.adb (Initialize): Add initializations for global variables
38883         used in New_Copy_Tree.
38884
38885         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
38886         Internal_Source_File as the actual).
38887         Put the set of statements creating Any_Character before the set of
38888         statements creating Any_Array to have Any_Character fully initialized
38889         when it is used in creating Any_Array.
38890
38891         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
38892         not call Scan in case if the actual is Internal_Source_File
38893         Add 2003 to copyright note.
38894
38895         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
38896         processing Internal_Source_File.
38897
38898         * types.ads: Add the constant Internal_Source_File representing the
38899         source buffer for artificial source-code-like strings created within
38900         the compiler (the definition of Source_File_Index is changed).
38901
38902 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
38903
38904         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
38905         56system.ads: New file, FreeBSD version.
38906
38907 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
38908
38909         * Make-lang.in (ada.extraclean): Delete.
38910
38911 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
38912
38913         * gnatmem.adb: Clean up verbose output.
38914
38915         * gprcmd.adb: Change copyright to FSF.
38916
38917 2003-11-19  Vincent Celier  <celier@gnat.com>
38918
38919         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
38920         and Version (ignored).
38921
38922         * symbols.ads: (Policy): New type
38923         (Initialize): New parameter Reference, Symbol_Policy and
38924         Library_Version.
38925         Remove parameter Force.
38926         Minor reformatting.
38927
38928         * snames.ads, snames.adbadb: New standard names
38929         Library_Reference_Symbol_File and Library_Symbol_Policy
38930
38931         * mlib-prj.adb:
38932         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
38933         project.
38934
38935         * mlib-tgt.adb:
38936         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
38937
38938         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
38939
38940         * prj.adb: (Project_Empty): New component Symbol_Data
38941
38942         * prj.ads: (Policy, Symbol_Record): New types
38943         (Project_Data): New component Symbol_Data
38944
38945         * prj-attr.adb:
38946         New attributes Library_Symbol_File, Library_Symbol_Policy and
38947         Library_Reference_Symbol_File.
38948
38949         * prj-nmsc.adb:
38950         (Ada_Check): When project is a Stand-Alone library project, process
38951         attribute Library_Symbol_File, Library_Symbol_Policy and
38952         Library_Reference_Symbol_File.
38953
38954         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
38955         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
38956         5sml-tgt.adb (Build_Dynamic_Library): New parameter
38957         Symbol_Data (ignored).
38958
38959         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
38960         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
38961         functions Option_File_Name and Version_String. Set new options of
38962         gnatsym related to symbol file, symbol policy and reference symbol
38963         file.
38964
38965         * 5vsymbol.adb:
38966         Extensive modifications to take into account the reference symbol file,
38967         the symbol policy, the library version and to put in the symbol file the
38968         minor and major IDs.
38969
38970         * bld.adb (Process_Declarative_Items): Put second argument of
38971         gprcmd to_absolute between single quotes, to avoid problems with
38972         Windows.
38973
38974         * bld-io.adb: Update Copyright notice.
38975         (Flush): Remove last character of a line, if it is a back slash, to
38976         avoid make problems.
38977
38978         * gnatsym.adb:
38979         Implement new scheme with reference symbol file and symbol policy.
38980
38981         * g-os_lib.ads: (Is_Directory): Clarify comment
38982
38983 2003-11-19  Robert Dewar  <dewar@gnat.com>
38984
38985         * atree.adb: Move New_Copy_Tree global variables to head of package
38986
38987         * errout.adb: Minor reformatting
38988
38989 2003-11-19  Javier Miranda  <miranda@gnat.com>
38990
38991         * sem_ch4.adb: (Diagnose_Call): Improve error message.
38992         Add reference to Ada0Y (AI-50217)
38993
38994         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
38995         sem_util.adb: Add reference to AI-50217
38996
38997         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
38998
38999         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
39000
39001         * sem_aggr.adb: Complete documentation of AI-287 changes
39002
39003         * par-ch4.adb: Document previous changes.
39004
39005         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
39006         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
39007         Ada0Y (AI-50217)
39008
39009         * exp_aggr.adb: Add references to AI-287 in previous changes
39010
39011 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
39012
39013         * exp_ch6.adb:
39014         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
39015         in the rewriting is the result of an inlined call.
39016
39017         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
39018         parameter is a type conversion, use original node to construct the
39019         post-call assignment, because expression may have been rewritten, e.g.
39020         if it is a packed array.
39021
39022         * sem_attr.adb:
39023         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
39024         body, just as it is in an instance.
39025         Categorization routines
39026
39027         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
39028         Instantiate_Object): Set proper sloc reference for message on missing
39029         actual.
39030
39031 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
39032
39033         * Makefile.in: Add FreeBSD libgnat pairs.
39034
39035         * usage.adb: Fix typo in usage message.
39036
39037 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
39038
39039         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
39040         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
39041         pragma Thread_Body.
39042         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
39043
39044         * s-thread.adb: This file is now a dummy implementation of
39045         System.Thread.
39046
39047 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
39048
39049         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
39050
39051 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
39052
39053         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
39054         instanciation references in the parent type description.
39055
39056 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39057
39058         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
39059
39060         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
39061         TYPE_PRECISION directly from esize.
39062
39063 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
39064
39065         * cstreams.c:
39066         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
39067
39068         * init.c: Initialization routines for FreeBSD
39069
39070         * link.c: Link info for FreeBSD
39071
39072         * sysdep.c: Add the case of FreeBSD
39073
39074 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
39075
39076         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
39077         already called in System.Threads.
39078
39079         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
39080         environment task, as it has been moved to System.Threads.Initialization.
39081
39082 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
39083
39084         * adaint.c (__gnatlib_install_locks): Only reference
39085         __gnat_install_locks on VMS, since other platforms can avoid using
39086         --enable-threads=gnat
39087
39088 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39089
39090         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
39091
39092         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
39093         TYPE_PACKED_ARRAY_TYPE_P.
39094         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
39095
39096         Part of PR ada/12806
39097         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
39098         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
39099
39100 2003-11-17  Vincent Celier  <celier@gnat.com>
39101
39102         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
39103         to False.
39104         Do not set exit status to Failure when Warning is True.
39105         (Gnatchop): Make errors "no compilation units found" and
39106         "no source files written" warnings only.
39107
39108         * make.adb (Gnatmake): When using a project file, set
39109         Look_In_Primary_Dir to False.
39110         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
39111         and Local_Configuration_Pragmas in the project where they are declared
39112         not an extending project which might have inherited them.
39113
39114         * osint.adb (Locate_File): If Name is already an absolute path, do not
39115         look for a directory.
39116
39117         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
39118         -gnats (Check_Syntax) is used, issue only a warning, not an error.
39119
39120         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
39121         in objects of type Variable_Value.
39122
39123         * prj.ads: (Variable_Value): New component Project
39124
39125         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
39126         is in a project extended by Project.
39127
39128         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
39129         Project of Variable_Values to this new parameter value.
39130         (Expression): Set component Project of Variable_Values.
39131         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
39132         Set the component Project in array elements.
39133
39134 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
39135
39136         * errout.adb: (Initialize): Add initialization for error nodes.
39137
39138         * sem_ch12.adb (Initialize): Add missing initializations for
39139         Exchanged_Views and Hidden_Entities.
39140
39141 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
39142
39143         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
39144         already instantiated tree for use in subsequent inlining.
39145         (Analyze_Associations, Instantiate_Formal_Subprogram,
39146         Instantiate_Object): improve error message for mismatch in
39147         instantiations.
39148
39149         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
39150         instantiations of subprograms declared in instances.
39151
39152 2003-11-17  Javier Miranda  <miranda@gnat.com>
39153
39154         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
39155         executed only under the Extensions_Allowed flag.
39156
39157 2003-11-17  Robert Dewar  <dewar@gnat.com>
39158
39159         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
39160         zeroes suppressed.
39161         (Address_Image): Fix bug of returning 0x instead of 0x0
39162         Minor reformatting (function specs).
39163
39164         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
39165         (missed case of 33-63)
39166
39167         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
39168
39169         * s-thread.adb: Add comments for pragma Restriction
39170
39171         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
39172         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
39173
39174 2003-11-17  Ed Falis  <falis@gnat.com>
39175
39176         * s-thread.adb: Added No_Tasking restriction for this implementation.
39177
39178 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
39179
39180         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
39181         instanciation references in the parent type description.
39182
39183 2003-11-17  GNAT Script  <nobody@gnat.com>
39184
39185         * Make-lang.in: Makefile automatically updated
39186
39187 2003-11-16  Jason Merrill  <jason@redhat.com>
39188
39189         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
39190         and TAGS files that include them for each front end.
39191
39192 2003-11-14  Andreas Jaeger  <aj@suse.de>
39193
39194         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
39195         is the canonical version.
39196         * misc.c (gnat_handle_option): Likewise.
39197
39198         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
39199
39200         * 5nsystem.ads: New file for x86_64-linux-gnu.
39201
39202 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
39203
39204         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
39205
39206         * comperr.adb: Fix logic in previous change.
39207
39208 2003-11-13  Vincent Celier  <celier@gnat.com>
39209
39210         * 5bml-tgt.adb (Build_Dynamic_Library): Use
39211         Osint.Include_Dir_Default_Prefix instead of
39212         Sdefault.Include_Dir_Default_Name.
39213
39214         * gnatlbr.adb: Update Copyright notice
39215         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
39216         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
39217         instead of Sdefault.Object_Dir_Default_Name
39218
39219         * gnatlink.adb:
39220         (Process_Binder_File): Never suppress the option following -Xlinker
39221
39222         * mdll-utl.adb:
39223         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
39224         Sdefault.Object_Dir_Default_Name.
39225
39226         * osint.ads, osint.adb:
39227         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
39228         Minor reformatting.
39229
39230         * vms_conv.ads: Minor reformating
39231         Remove GNAT STANDARD and GNAT PSTA
39232
39233         * vms_conv.adb:
39234         Allow GNAT MAKE to have several files on the command line.
39235         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
39236         Sdefault.Object_Dir_Default_Name.
39237         Minor Reformating
39238         Remove data for GNAT STANDARD
39239
39240         * vms_data.ads:
39241         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
39242         Remove data for GNAT STANDARD
39243         Remove options and documentation for -gnatwb/-gnatwB: these warning
39244         options no longer exist.
39245
39246 2003-11-13  Ed Falis  <falis@gnat.com>
39247
39248         * 5zthrini.adb: (Init_RTS): Made visible
39249
39250         * 5zthrini.adb:
39251         (Register): Removed unnecessary call to taskVarGet that checked whether
39252          an ATSD was already set as a task var for the argument thread.
39253
39254         * s-thread.adb:
39255         Updated comment to reflect that this is a VxWorks version
39256         Added context clause for System.Threads.Initialization
39257         Added call to System.Threads.Initialization.Init_RTS
39258
39259 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
39260
39261         * 5zthrini.adb:
39262         (Init_RTS): New procedure, for the initialization of the run-time lib.
39263
39264         * s-thread.adb:
39265         Remove dependancy on System.Init, so that this file can be used in the
39266         AE653 sequential run-time lib.
39267
39268 2003-11-13  Robert Dewar  <dewar@gnat.com>
39269
39270         * bindgen.adb: Minor reformatting
39271
39272 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
39273
39274         * checks.adb:
39275         (Apply_Discriminant_Check): Do no apply check if target type is derived
39276         from source type with no applicable constraint.
39277
39278         * lib-writ.adb:
39279         (Ensure_System_Dependency): Do not apply the style checks that may have
39280         been specified for the main unit.
39281
39282         * sem_ch8.adb:
39283         (Find_Selected_Component): Further improvement in error message, with
39284         RM reference.
39285
39286         * sem_res.adb:
39287         (Resolve): Handle properly the case of an illegal overloaded protected
39288         procedure.
39289
39290 2003-11-13  Javier Miranda  <miranda@gnat.com>
39291
39292         * exp_aggr.adb:
39293         (Has_Default_Init_Comps): New function to check the presence of
39294         default initialization in an aggregate.
39295         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
39296         extension aggregate of a limited record. In addition, a new formal
39297         was added to do not initialize the record controller (if any) during
39298         this recursive expansion of ancestors.
39299         (Init_Controller): Add support for limited record components.
39300         (Expand_Record_Aggregate): In case of default initialized components
39301         convert the aggregate into a set of assignments.
39302
39303         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
39304         describing the new syntax.
39305         Nothing else needed to be done because this subprogram delegates part of
39306         its work to P_Precord_Or_Array_Component_Association.
39307         (P_Record_Or_Array_Component_Association): Give support to the new
39308         syntax for default initialization of components.
39309
39310         * sem_aggr.adb:
39311         (Resolve_Aggregate): Relax the strictness of the frontend in case of
39312         limited aggregates.
39313         (Resolve_Record_Aggregate): Give support to default initialized
39314         components.
39315         (Get_Value): In case of default initialized components, duplicate
39316         the corresponding default expression (from the record type
39317         declaration). In case of default initialization in the *others*
39318         choice, do not check that all components have the same type.
39319         (Resolve_Extension_Aggregate): Give support to limited extension
39320         aggregates.
39321
39322         * sem_ch3.adb:
39323         (Check_Initialization): Relax the strictness of the front-end in case
39324         of aggregate and extension aggregates. This test is now done in
39325         Get_Value in a per-component manner.
39326
39327         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
39328         expression corresponds to a limited aggregate. This test is now done
39329         in Get_Value.
39330
39331         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
39332         Box_Present flag.
39333
39334         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
39335         present in an N_Component_Association node
39336
39337 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
39338
39339         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
39340         type-conformant entry only if they are homographs.
39341
39342 2003-11-13  GNAT Script  <nobody@gnat.com>
39343
39344         * Make-lang.in: Makefile automatically updated
39345
39346 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39347
39348         * adadecode.c: Use <> form of include for ctype.h.
39349         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
39350
39351 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39352
39353         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
39354         Works around PR middle-end/6552.
39355
39356 2003-11-10  Ed Falis  <falis@gnat.com>
39357
39358         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
39359
39360         * 5zinit.adb: (Install_Handler): Moved back to spec
39361         (Install_Signal_Handlers): Deleted
39362
39363         * 5zthrini.adb: Added context clause for System.Storage_Elements
39364         (Register): Only handles creation of taskVar; initialization moved to
39365         Thread_Body_Enter.
39366         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
39367         Added declaration of environment task secondary stack and
39368         initialization.
39369
39370         * s-thread.adb: Implement bodies for thread body processing
39371
39372         * s-thread.ads:
39373         Added comment identifying supported targets for pragma Thread_Body.
39374
39375 2003-11-10  Pascal Obry  <obry@gnat.com>
39376
39377         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
39378         GNAT_MAX_PATH_LEN.
39379
39380         * s-fileio.adb:
39381         (Open): Properly check for string length before copying into the buffer.
39382         Raises Name_Error if buffer is too small. Note that this was a potential
39383         buffer overflow.
39384
39385 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
39386
39387         * bindgen.adb, comperr.adb: Code clean ups.
39388         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
39389
39390 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
39391
39392         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
39393
39394 2003-11-10  Vincent Celier  <celier@gnat.com>
39395
39396         * gprcmd.adb:
39397         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
39398         installation.
39399
39400         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
39401
39402         * prj.adb: (Project_Empty): Add new boolean component Virtual
39403
39404         * prj.ads: (Virtual_Prefix): New constant string
39405         (Project_Data): New boolean component Virtual
39406
39407         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
39408         a library project is extended by a virtual extending project.
39409
39410         * prj-part.adb:
39411         Modifications throughout to implement extending-all project, including:
39412         (Virtual_Hash, Processed_Hash): New hash tables
39413         (Create_Virtual_Extending_Project): New procedure
39414         (Look_For_Virtual_Projects_For): New procedure
39415
39416         * prj-proc.adb:
39417         (Process): After checking the projects, if main project is an
39418         extending-all project, set the object directory of all virtual extending
39419         project to the object directory of the main project.
39420         Adjust error message when a virtual extending project has the same
39421         object directory as an project being extended.
39422         (Recursive_Process): If name starts with the virtual prefix, set Virtual
39423         to True in the project data.
39424
39425         * prj-tree.adb:
39426         (Default_Project_Node): Add new boolean component Extending_All
39427         (Is_Extending_All): New function
39428         (Set_Is_Extending_All): New procedure
39429
39430         * prj-tree.ads: (Is_Extending_All): New function
39431         (Set_Is_Extending_All): New procedure
39432         (Project_Node_Record): New boolean component Extending_All
39433
39434         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
39435
39436         * vms_data.ads:
39437         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
39438
39439         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
39440         "gprcmd prefix" to define it.
39441
39442 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
39443
39444         * einfo.ads: Fix a typo and remove an extraneous word in comments.
39445
39446         * lib-load.adb:
39447         (Create_Dummy_Package_Unit): Set the scope of the entity for the
39448         created dummy package to Standard_Standard, not to itself, to
39449         defend other parts of the front-end against encoutering a cycle in
39450         the scope chain.
39451
39452         * sem_ch10.adb:
39453         (Analyze_With_Clause): When setting the entities for the successive
39454         N_Expanded_Names that constitute the name of a child unit, do not
39455         attempt to go further than Standard_Standard in the chain of scopes.
39456         This case arises from the placeholder units created by
39457         Create_Dummy_Package_Unit in the case of a with_clause for a
39458         nonexistent child unit.
39459
39460 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
39461
39462         * exp_ch6.adb:
39463         (Expand_Thread_Body): Place subprogram on scope stack, so that new
39464         declarations are given the proper scope.
39465
39466         * sem_ch13.adb:
39467         (Check_Expr_Constants): Reject an expression that contains a constant
39468         created during expansion, and that appears after the object to which
39469         the address clause applies.
39470
39471         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
39472         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
39473         that uses 'Range of a function call with controlled components, so
39474         that the function result can be finalized before starting the loop.
39475
39476         * sem_ch8.adb:
39477         (Find_Selected_Component): Improve error message when prefix is
39478         an implicit dereference of an incomplete type.
39479
39480 2003-11-10  Robert Dewar  <dewar@gnat.com>
39481
39482         * opt.ads: New Print_Standard flag for -gnatS switch
39483
39484         * sem_ch13.adb: Remove some additional checks for unaligned arrays
39485
39486         * cstand.adb (Create_Standard): Print out package standard if -gnatS
39487         switch set
39488
39489         * debug.adb: Update doc for -gnatds to discuss relationship with new
39490         -gnatS flag
39491
39492         * sinfo.adb: Add new field Entity_Or_Associated_Node
39493
39494         * sinfo.ads: Add new field Entity_Or_Associated_Node
39495         Update documentation for Associated_Node and Entity fields to clarify
39496         relationship and usage.
39497
39498         * sprint.adb:
39499         (Write_Id): Properly process Associated_Node field in generic template
39500
39501         * switch-c.adb:
39502         Recognize new -gnatS switch for printing package Standard
39503         This replaces gnatpsta
39504
39505         * usage.adb:
39506         Add line for  new -gnatS switch for printing package Standard
39507         This replaces gnatpsta
39508
39509 2003-11-10  Andreas Jaeger  <aj@suse.de>
39510
39511         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
39512         integer.
39513
39514 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
39515
39516         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
39517         by gnat1.
39518
39519 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
39520
39521         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
39522         no longer needed.
39523
39524         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
39525
39526         * sysdep.c: Add handling of cygwin.
39527
39528 2003-11-10  GNAT Script  <nobody@gnat.com>
39529
39530         * Make-lang.in: Makefile automatically updated
39531
39532 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
39533
39534         PR 12950
39535         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
39536         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
39537         Replace GNAT_ROOT by GCC_ROOT.
39538
39539         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
39540
39541 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
39542
39543         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
39544         and update for changed meaning of GET_MODE_BITSIZE.
39545
39546 2003-11-04  Doug Rupp  <rupp@gnat.com>
39547
39548         * sysdep.c: Problem discovered during IA64 VMS port.
39549         [VMS] #include <unixio.h> to get proper prototypes.
39550
39551         * adaint.c:
39552         Issues discovered/problems fixed during IA64 VMS port.
39553         [VMS] #define _POSIX_EXIT for proper semantics.
39554         [VMS] #include <unixio.h> for proper prototypes.
39555         [VMS] (fork): #define IA64 version.
39556         (__gnat_os_exit): Remove unnecessary VMS specific code.
39557
39558 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39559
39560         Part of PR ada/12806
39561         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
39562         tree, not integer.
39563
39564         * decl.c:
39565         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
39566         not integer.
39567
39568         * targtyps.c, decl.c, misc.c,
39569         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
39570         routines to work around change in FP sizing semantics in GCC.
39571
39572         * utils.c:
39573         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
39574
39575         * gigi.h: (enumerate_modes): New function.
39576
39577         * Make-lang.in: (ada/misc.o): Add real.h.
39578
39579         * misc.c: (enumerate_modes): New function.
39580
39581 2003-11-04  Robert Dewar  <dewar@gnat.com>
39582
39583         * 3vtrasym.adb: Minor reformatting
39584         Use terminology encoded/decoded name, rather than C++ specific notion
39585         of mangling (this is the terminology used throughout GNAT).
39586
39587         * einfo.h: Regenerated
39588
39589         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
39590
39591         * exp_ch6.adb:
39592         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
39593
39594         * par-prag.adb: Add dummy entry for Thread_Body pragma
39595
39596         * rtsfind.ads:
39597         Add entries for System.Threads entities for thread body processing
39598
39599         * sem_attr.adb:
39600         (Analyze_Pragma, Access attributes): Check these are not applied to a
39601         thread body, since this is not permitted
39602
39603         * sem_prag.adb: Add processing for Thread_Body pragma.
39604         Minor comment fix.
39605
39606         * sem_res.adb:
39607         (Resolve_Call): Check for incorrect attempt to call a thread body
39608          procedure with a direct call.
39609
39610         * snames.ads, snames.adb: Add entry for Thread_Body pragma
39611         Add names associated with thread body expansion
39612
39613         * snames.h: Add entry for Thread_Body pragma
39614
39615         * s-thread.adb: Add entries for thread body processing
39616         These are dummy bodies so far
39617
39618         * s-thread.ads: Add documentation on thread body handling.
39619         Add entries for thread body processing.
39620
39621 2003-11-04  Javier Miranda  <miranda@gnat.com>
39622
39623         * sem_ch10.adb:
39624         (Build_Limited_Views): Return after posting an error in case of limited
39625         with_clause on subprograms, generics, instances or generic renamings
39626         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
39627         on subprograms, generics, instances or generic renamings
39628
39629 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
39630
39631         * raise.c (setup_to_install): Correct mistake in last revision; two
39632         arguments out of order.
39633
39634         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
39635         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
39636         notice, missed in previous change.
39637         Remove trailing blanks and other style errors introduced in previous
39638         change.
39639
39640 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
39641
39642         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
39643         rid of the wrapper for a LJM type, ensuring we don't do that if the
39644         field is addressable.  This avoids potential low level type view
39645         mismatches later on, for instance in a by-reference argument passing
39646         process.
39647
39648 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39649
39650         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
39651         aligned at byte boundary.
39652
39653 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
39654
39655         * decl.c (components_to_record): Do not delete the empty variants from
39656         the end of the union type.
39657
39658 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
39659
39660         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
39661         operation for a derived type, an explicit declaration may use a local
39662         subtype of Boolean.
39663
39664 2003-11-04  Vincent Celier  <celier@gnat.com>
39665
39666         * make.adb (Gnatmake): Allow main sources on the command line with a
39667         library project when it is only for compilation (no binding or
39668         linking).
39669
39670 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39671
39672         * Makefile.in: Remove many duplicate variables.
39673
39674 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
39675
39676         * Make-lang.in (dvi): Move targets to $(docobjdir).
39677         (gnat_ug_vms.dvi): Simplify rule and adjust target.
39678         (gnat_ug_wnt.dvi): Likewise.
39679         (gnat_ug_unx.dvi): Likewise.
39680         (gnat_ug_vxw.dvi): Likewise.
39681         (gnat_rm.dvi): Likewise.
39682         (gnat-style.dvi): Likewise.
39683
39684 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
39685
39686         * gigi.h: Missed commit from update for C90.
39687
39688 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
39689
39690         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
39691
39692 2003-10-31  Andreas Schwab  <schwab@suse.de>
39693
39694         * raise.c (get_action_description_for): Fix typo in last change.
39695
39696 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
39697
39698         PR ada/12761
39699         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
39700         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
39701
39702 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
39703
39704         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
39705         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
39706         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
39707         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
39708         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
39709
39710 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
39711
39712         * 3vtrasym.adb:
39713         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
39714         numbers when symbol name is too long.
39715
39716 2003-10-30  Ed Falis  <falis@gnat.com>
39717
39718         * g-signal.ads, g-signal.adb: New files
39719
39720         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
39721
39722         * Makefile.rtl: Introduce GNAT.Signals
39723
39724 2003-10-30  Robert Dewar  <dewar@gnat.com>
39725
39726         * freeze.adb: Minor reformatting
39727
39728         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
39729
39730         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
39731         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
39732         New handling of Id_Check parameter to improve recognition of keywords
39733         used as identifiers.
39734         Update copyright notice to include 2003
39735
39736 2003-10-29  Robert Dewar  <dewar@gnat.com>
39737
39738         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
39739         sem_ch10.adb: Minor reformatting
39740
39741         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
39742         (Expand_Assign_Record): Test right hand side for bit unaligned as well
39743
39744 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
39745
39746         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
39747         Support for TBK$SYMBOLIZE-based symbolic traceback.
39748
39749 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
39750
39751         * exp_disp.adb:
39752         Revert previous change, that did not work well when pragma No_Run_Time
39753         was used in conjunction with a run-time other than ZFP.
39754
39755 2003-10-29  Vincent Celier  <celier@gnat.com>
39756
39757         * make.adb:
39758         (Gnatmake): When there are no Ada mains in attribute Main, disable the
39759          bind and link steps only is switch -z is not used.
39760
39761 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
39762
39763         * Makefile.generic: Remove duplicated setting of CC.
39764
39765         * Makefile.prolog: Set CC to gcc by default, to override make's
39766         default (cc).
39767
39768         * einfo.h: Regenerated.
39769
39770 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
39771
39772         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
39773         current body, after compiling subunit.
39774
39775         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
39776         when in deleted code, because gigi needs properly ordered freeze
39777         actions to annotate types.
39778
39779         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
39780         prevent the premature freezing of record type that contains
39781         subcomponents with a private type that does not yet have a completion.
39782
39783 2003-10-29  Javier Miranda  <miranda@gnat.com>
39784
39785         * sem_ch12.adb:
39786         (Analyze_Package_Instantiation): Check that instances can not be used in
39787         limited with_clauses.
39788
39789         * sem_ch8.adb:
39790         (Analyze_Package_Renaming): Check that limited withed packages cannot
39791         be renamed. Improve text on error messages related to limited
39792         with_clauses.
39793
39794         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
39795
39796         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
39797         Update copyright notice.
39798
39799         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
39800         (Install_Limited_Context_Clauses): New subprogram that isolates all the
39801         checks required for limited context_clauses and installs the limited
39802         view.
39803         (Install_Limited_Withed_Unit): Complete its documentation.
39804         (Analyze_Context): Check that limited with_clauses are only allowed in
39805         package specs.
39806         (Install_Context): Call Install_Limited_Context_Clauses after the
39807         parents have been installed.
39808         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
39809         package as 'From_With_Type'; this mark indicates that the limited view
39810         is installed. Used to check bad usages of limited with_clauses.
39811         (Build_Limited_Views): Do not add shadow entities to the scope's list
39812         of entities. Do not add real entities to the Non_Limited_Views chain.
39813         Improve error notification.
39814         (Remove_Context_Clauses): Remove context clauses in two phases:
39815         limited views first and regular views later (to maintain the
39816         stack model).
39817         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
39818         its visible entities.
39819
39820 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
39821
39822         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
39823         with any type that Is_Fixed_Point_Type.
39824
39825         * sinfo.ads: Fix documentation for Associated_Node attribute.
39826
39827 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
39828
39829         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
39830         both '-gnatc' and '-gnatt' are specified.
39831
39832         * atree.adb (Initialize): Add initialization for Node_Count (set to
39833         zero).
39834
39835 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39836
39837         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
39838         do not consider as Pure.
39839
39840         Part of implementation of function-at-a-time:
39841
39842         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
39843         (tree_transform): Add new argument to build_component_ref.
39844         (tree_transform, case N_Assignment_Statement): Make and return an
39845         EXPR_STMT.
39846         (tree_transform): If result IS_STMT, set flags and return it.
39847         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39848
39849         * utils2.c (build_simple_component_ref, build_component_ref): Add new
39850         arg, NO_FOLD_P.
39851         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
39852         (build_allocator): Likewise.
39853
39854         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
39855         Add new arg to build_component_ref.
39856         (maybe_unconstrained_array, unchecked_convert): Likewise.
39857
39858         * ada-tree.def (EXPR_STMT): New code.
39859
39860         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
39861
39862         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
39863         build_component_ref calls.
39864
39865         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
39866
39867         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
39868         (build_component_ref): Add new argument, NO_FOLD_P.
39869
39870 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
39871
39872         * Makefile.generic: Add missing substitution on object_deps handling.
39873
39874         PR ada/5909
39875         * Make-lang.in (check-ada): Enable ACATS test suite.
39876
39877 2003-10-27  Robert Dewar  <dewar@gnat.com>
39878
39879         * exp_ch3.adb:
39880         (Freeze_Array_Type): We do not need an initialization routine for types
39881         derived from String or Wide_String. They should be treated the same
39882         as String and Wide_String themselves. This caused problems with the
39883         use of Initialize_Scalars.
39884
39885         * exp_ch5.adb:
39886         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
39887         composites. This allows use of component clauses that are not byte
39888         aligned.
39889
39890         * sem_prag.adb:
39891         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
39892         is an attempt to pack an array of atomic objects.
39893
39894         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
39895
39896 2003-10-27  Pascal Obry  <obry@gnat.com>
39897
39898         * g-dirope.adb:
39899         (Basename): Check for drive letters in a pathname only on DOS based OS.
39900
39901 2003-10-27  Vincent Celier  <celier@gnat.com>
39902
39903         * make.adb:
39904         (Gnatmake): When unable to change dir to the object dir, display the
39905         content of the parent dir of the obj dir, to try to understand why this
39906         happens.
39907
39908 2003-10-27  GNAT Script  <nobody@gnat.com>
39909
39910         * Make-lang.in: Makefile automatically updated
39911
39912 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
39913
39914         * sem_ch12.adb:
39915         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
39916         should not be done in Save/Restore_Scope_Stack, because it is performed
39917         locally.
39918
39919         * sem_ch8.adb:
39920         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39921         whether use clauses should be removed/restored.
39922
39923         * sem_ch8.ads:
39924         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
39925         whether use clauses should be removed/restored.
39926
39927 2003-10-26  Andreas Jaeger  <aj@suse.de>
39928
39929         * Makefile.in: Remove duplicated lines.
39930
39931 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
39932
39933         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
39934         minimize the differences with ACT tree.
39935
39936         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
39937         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
39938         Gnatvsn.Gnat_Static_Version_String to reduce differences between
39939         ACT and FSF trees.
39940
39941 2003-10-24  Pascal Obry  <obry@gnat.com>
39942
39943         PR ada/12014
39944         * adadecode.c (ostrcpy): New function.
39945         (__gnat_decode): Use ostrcpy of strcpy.
39946         (has_prefix): Set first parameter a const.
39947         (has_suffix): Set first parameter a const.
39948         Update copyright notice. Fix source name in header.
39949         Removes a trailing space.
39950
39951 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
39952
39953         * exp_disp.adb:
39954         Remove the test against being in No_Run_Time_Mode before generating a
39955         call to Register_Tag. It is redundant with the test against the
39956         availability of the function Register_Tag.
39957
39958 2003-10-24  Vincent Celier  <celier@gnat.com>
39959
39960         * g-catiio.adb: (Month_Name): Correct spelling of February
39961
39962         * make.adb: (Mains): New package
39963         (Initialize): Call Mains.Delete
39964         (Gnatmake): Check that each main on the command line is a source of a
39965         project file and, if there are several mains, each of them is a source
39966         of the same project file.
39967         (Gnatmake): When a foreign language is specified in attribute Languages,
39968         no main is specified on the command line and attribute Mains is not
39969         empty, only build the Ada main. If there is no Ada main, just compile
39970         the Ada sources and their closure.
39971         (Gnatmake): If a main is specified on the command line with directory
39972         information, check that the source exists and, if it does, that the path
39973         is the actual path of a source of a project.
39974
39975         * prj-env.adb:
39976         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
39977         Full_Path is True, return the full path instead of the simple file name.
39978         (Project_Of): New function
39979
39980         * prj-env.ads:
39981         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
39982         defaulted to False.
39983         (Project_Of): New function
39984
39985 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
39986
39987         * Makefile.generic:
39988         Ensure objects of main project are always checked and rebuilt if needed.
39989         Set CC to gcc by default.
39990         Prepare new handling of link by creating a global archive (not activated
39991         yet).
39992
39993         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
39994         stringt.h: Update copyright notice. Remove trailing blanks.
39995         Fix source name in header.
39996
39997 2003-10-24  Robert Dewar  <dewar@gnat.com>
39998
39999         * sem_ch12.adb: Minor reformatting
40000
40001         * sem_ch3.adb:
40002         Minor reformatting (including new function return style throughout)
40003
40004         * sem_ch3.ads:
40005         Minor reformatting (including new function return style throughout)
40006
40007 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
40008
40009         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
40010         stringt.h: Update copyright notice. Remove trailing blanks.
40011         Fix source name in header.
40012
40013 2003-10-24  GNAT Script  <nobody@gnat.com>
40014
40015         * Make-lang.in: Makefile automatically updated
40016
40017 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
40018
40019         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
40020         stringt.h: Convert to ISO C90 declarations and definitions.
40021
40022 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
40023
40024         PR ada/11978
40025         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
40026         External_Tag attribute definition clauses.
40027
40028 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
40029
40030         PR ada/7613
40031         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
40032         child unit, generate a fully qualified name to avoid spurious errors
40033         when the context contains renamings of different child units with
40034         the same simple name.
40035
40036         * exp_dbug.ads: Add documentation on name qualification for renamings
40037         of child units.
40038
40039 2003-10-23  Robert Dewar  <dewar@gnat.com>
40040
40041         * g-regpat.ads, g-regpat.adb: Minor reformatting
40042
40043 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
40044
40045         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
40046
40047 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40048
40049         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
40050         Machine call.
40051
40052         * urealp.h: (Machine): Update to proper definition.
40053
40054 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
40055
40056         * init.c, adaint.c: Minor reformatting.
40057
40058 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
40059
40060         * adaint.c (w32_epoch_offset): Define static const at file level.
40061         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
40062         rather than t_create, t_access in call to GetFileTime. Use union
40063         to convert between FILETIME and  unsigned long long.
40064         (__gnat_file_time_name): Test for invalid file handle.
40065         (__gnat_set_filetime_name): Support win32 targets using
40066         w32api SetFileTime.
40067
40068 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
40069
40070         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
40071
40072         * ctrl_c.c (__gnat_int_handler): Remove declaration.
40073
40074         * decl.c (creat_concat_name):  Const-ify prefix.
40075
40076         * adaint.c: Include ctype.h if __MINGW32__.
40077         (__gnat_readlink): Mark arguments as possibly unused.
40078         (__gnat_symlink): Likewise.
40079         (__gnat_is_symbolic_link): Likewise.
40080         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
40081         declaration
40082         (__gnat_file_time_name): Don't declare struct stat statbuf when
40083         not needed.
40084         (__gnat_is_absolute_path): Add parenthesis around condition of
40085         'if' statement to avoid warning.
40086         (__gnat_plist_init): Specify void as parameter.
40087         (plist_enter): Likewise.
40088         (plist_leave): Likewise.
40089         (remove_handle): Make static. Initialize prev.
40090
40091 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
40092
40093         PR ada/10110
40094         * Makefile.in: Disable build of gnatpsta.
40095         * cstreams.c (__gnat_full_name): Minor improvements and clean up
40096         of previous change.
40097
40098 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
40099
40100         * tracebak.c (MAX): Avoid redefinition warning.
40101
40102         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
40103         Change msg to const char *.
40104         (__gnat_install_handler): Remove ss, unused.
40105         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
40106         to const char *.
40107         * cstreams.c (__gnat_full_name): Declare p only when used.
40108         (__gnat_full_name) [sgi] Return buffer.
40109
40110 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
40111
40112         * mingw32.h: New file.
40113         * gnat_wrapper.adb: New file.
40114
40115 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
40116
40117         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
40118         string match a pre compiled regular expression (the corresponding
40119         version of the function working on a raw regular expression)
40120         Fix typos in various comments
40121         Update copyright notice in spec
40122
40123 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
40124
40125         * exp_ch3.adb:
40126         (Component_Needs_Simple_Initialization): Return False when the type is a
40127         packed bit array. Revise spec comments to document this case.
40128
40129         * exp_prag.adb:
40130         (Expand_Pragma_Import): Set any expression on the imported object to
40131         empty to avoid initializing imported objects (in particular this
40132         covers the case of zero-initialization of bit arrays).
40133         Update copyright notice.
40134
40135 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
40136
40137         * sem_ch12.adb:
40138         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
40139         a subunit is missing.
40140         (Instantiate_Subprogram_Body): If body of function is missing, set type
40141         of return expression explicitly in dummy body, to prevent cascaded
40142         errors when a subunit is missing.
40143         Fixes PR 5677.
40144
40145         * sem_ch3.adb:
40146         (Access_Subprogram_Declaration): Verify that return type is valid.
40147         Fixes PR 8693.
40148
40149         * sem_elab.adb:
40150         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
40151         generic.
40152         Fixes PR 12318.
40153
40154         * sem_util.adb:
40155         (Corresponding_Discriminant): If the scope of the discriminant is a
40156         private type without discriminant, use its full view.
40157         Fixes PR 8247.
40158
40159 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
40160
40161         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
40162         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
40163         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
40164         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
40165         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
40166         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
40167         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
40168         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
40169         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
40170         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
40171         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
40172         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
40173         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
40174         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
40175         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
40176         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
40177         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
40178         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
40179         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
40180         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
40181         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
40182         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
40183         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
40184         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
40185         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
40186         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
40187         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
40188         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
40189         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
40190         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
40191         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
40192         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
40193         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
40194         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
40195         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
40196         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
40197         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
40198         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
40199         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
40200         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
40201         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
40202         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
40203         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
40204         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
40205         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
40206         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
40207         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
40208         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
40209         vms_conv.ads, vms_conv.adb, vms_data.ads,
40210         vxaddr2line.adb: Files added. Merge with ACT tree.
40211
40212         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
40213         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
40214         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
40215         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
40216         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
40217         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
40218         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40219         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
40220         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
40221         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
40222
40223         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40224         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40225         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40226         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40227         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
40228         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
40229         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40230         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
40231         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
40232         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
40233         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
40234         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
40235         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
40236         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
40237         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
40238         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
40239         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
40240         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40241         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
40242         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
40243         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
40244         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
40245         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
40246         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
40247         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
40248         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
40249         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
40250         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
40251         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
40252         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
40253         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
40254         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
40255         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
40256         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
40257         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
40258         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
40259         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
40260         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
40261         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
40262         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
40263         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
40264         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
40265         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
40266         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
40267         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
40268         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
40269         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
40270         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
40271         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
40272         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
40273         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
40274         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
40275         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
40276         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
40277         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
40278         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
40279         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
40280         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
40281         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
40282         checks.adb, checks.ads, cio.c, comperr.adb,
40283         comperr.ads, csets.adb, cstand.adb, cstreams.c,
40284         debug_a.adb, debug_a.ads, debug.adb, decl.c,
40285         einfo.adb, einfo.ads, errout.adb, errout.ads,
40286         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
40287         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
40288         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
40289         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
40290         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
40291         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
40292         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
40293         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
40294         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
40295         fe.h, fmap.adb, fmap.ads, fname.adb,
40296         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
40297         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
40298         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
40299         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40300         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40301         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40302         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
40303         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
40304         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
40305         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
40306         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
40307         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
40308         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
40309         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
40310         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
40311         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
40312         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
40313         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
40314         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
40315         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
40316         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
40317         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
40318         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
40319         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
40320         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
40321         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
40322         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
40323         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
40324         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
40325         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
40326         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
40327         layout.adb, lib.adb, lib.ads, lib-list.adb,
40328         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
40329         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40330         link.c, live.adb, make.adb, make.ads,
40331         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
40332         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
40333         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
40334         misc.c, mkdir.c, mlib.adb, mlib.ads,
40335         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
40336         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
40337         namet.adb, namet.ads, namet.h, nlists.ads,
40338         nlists.h, nmake.adt, opt.adb, opt.ads,
40339         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
40340         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
40341         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40342         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
40343         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
40344         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
40345         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
40346         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
40347         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
40348         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
40349         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
40350         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
40351         prj-util.adb, prj-util.ads, raise.c, raise.h,
40352         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
40353         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
40354         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
40355         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
40356         scans.ads, scn.adb, scn.ads, s-crc32.adb,
40357         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
40358         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
40359         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
40360         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
40361         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
40362         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40363         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40364         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
40365         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
40366         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
40367         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
40368         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
40369         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
40370         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
40371         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40372         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
40373         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
40374         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
40375         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
40376         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
40377         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
40378         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
40379         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
40380         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
40381         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
40382         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
40383         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
40384         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
40385         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
40386         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
40387         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
40388         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
40389         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
40390         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
40391         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
40392         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
40393         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
40394         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
40395         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
40396         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
40397         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
40398         stringt.adb, stringt.ads, stringt.h, style.ads,
40399         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
40400         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
40401         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
40402         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
40403         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
40404         table.adb, table.ads, targparm.adb, targparm.ads,
40405         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
40406         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
40407         ttypes.ads, types.ads, types.h, uintp.adb,
40408         uintp.ads, uintp.h, uname.adb, urealp.adb,
40409         urealp.ads, urealp.h, usage.adb, utils2.c,
40410         utils.c, validsw.adb, validsw.ads, widechar.adb,
40411         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
40412         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
40413         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
40414         gnatvsn.ads: Merge with ACT tree.
40415
40416         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
40417
40418 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
40419
40420         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
40421         (gnat_ug_vmx.info): Likewise.
40422         (gnat_ug_vxw.info): Likewise.
40423         (gnat_ug_wnt.info): Likewise.
40424         (gnat_rm.info): Likewise.
40425         (gnat-style.info): Likewise.
40426
40427         * Make-lang.in (ada.install-info): Remove target.
40428         (info): New target.
40429         (install-info): Likewise.
40430         (gnat_ug_unx.info): Simplify rule.
40431         (gnat_ug_vmx.info): Likewise.
40432         (gnat_ug_vxw.info): Likewise.
40433         (gnat_ug_wnt.info): Likewise.
40434         (gnat_rm.info): Likewise.
40435         (gnat-style.info): Likewise.
40436
40437 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
40438
40439         * Make-lang.in: Replace uses of $(target_alias) with
40440         $(target_noncanonical).
40441         * ada/Makefile.in: Remove unused mention of $(target_alias).
40442
40443 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
40444
40445         * Make-lang.in (ada.info): Replace with ...
40446         (info): ... this.
40447         (ada.dvi): Replace with ...
40448         (dvi): ... this.
40449
40450 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
40451
40452         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
40453         initialize dconstp5 and dconstmp5.
40454
40455 2003-09-28  Richard Henderson  <rth@redhat.com>
40456
40457         * trans.c (tree_transform): Update call to expand_asm_operands.
40458
40459 2003-09-21  Richard Henderson  <rth@redhat.com>
40460
40461         * trans.c, utils.c: Revert.
40462
40463 2003-09-21  Richard Henderson  <rth@redhat.com>
40464
40465         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
40466         change to const.
40467
40468 2003-09-04  Michael Matz  <matz@suse.de>
40469
40470         * misc.c: Include "target.h".
40471         * Make-lang.in (misc.o): Add dependency on target.h.
40472
40473 2003-09-03  DJ Delorie  <dj@redhat.com>
40474
40475         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
40476         hook.
40477
40478 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
40479
40480         * Makefile.in: Update substitutions to match changes to
40481         configure.  Use include directives instead of @-insertions
40482         to read in host and target fragments.  Add a rule to
40483         regenerate ada/Makefile.
40484
40485 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
40486
40487         * lang-options.h: Remove.
40488         * lang.opt: Add help text.
40489
40490 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
40491
40492         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
40493         calls.
40494
40495 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
40496
40497         * misc.c (gnat_handle_option): Don't handle filenames.
40498
40499 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
40500
40501         * Make-lang.in: Replace PWD with PWD_COMMAND.
40502         * Makefile.adalib: Likewise.
40503         * Makefile.in: Likewise.
40504
40505 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
40506
40507         * misc.c (gnat_argv): Revert last change.
40508         (gnat_handle_option, gnat_init_options): Copy arguments.
40509
40510 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
40511
40512         * misc.c (gnat_argv): Make const.
40513
40514 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
40515
40516         * misc.c (save_argc, save_argv): Keep non-static!
40517
40518 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
40519
40520         * misc.c (save_argc, save_argv): Make static.
40521         (gnat_init_options): New prototype.
40522         (gnat_init_options): Update.
40523
40524 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
40525
40526         * gnat_ug.texi: Remove unlikely characters from @vars.
40527         * gnat_ug_vms.texi: Regenerate.
40528
40529 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
40530
40531         * misc.c (record_code_position): Adjust emit_note call.
40532
40533 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
40534
40535         * misc.c (gnat_handle_option): Don't check for missing arguments.
40536
40537 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
40538
40539         * utils.c (end_subprog_body): Adjust expand_function_end call.
40540
40541 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
40542
40543         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
40544         Bind_Main_Program.
40545
40546 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
40547
40548         * lang.opt: Declare Ada.
40549         * misc.c (gnat_init_options): Update.
40550
40551 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
40552
40553         * utils.c (begin_subprog_body): Adjust init_function_start call.
40554
40555 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
40556
40557         * Make-lang.in: Update to use options.c and options.h.
40558         * misc.c: Include options.h not aoptions.h.
40559         (gnat_handle_option): Abort on unrecognized switch.
40560         (gnat_init_options): Request Ada switches.
40561
40562 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
40563
40564         * lang.opt: Add -Wall.
40565         * misc.c (gnat_handle_option): Handle it.
40566
40567 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
40568
40569         * misc.c (gnat_handle_option): Fix warnings.
40570
40571 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
40572
40573         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
40574
40575 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
40576
40577         * Make-lang.in: Update to handle command-line options.
40578         * lang.opt: New file.
40579         * misc.c: Include aoptions.h.
40580         (cl_options_count, cl_options): Remove.
40581         (gnat_handle_option): New.
40582         (gnat_decode_option): Remove.
40583         (LANG_HOOKS_DECODE_OPTION): Remove.
40584         (LANG_HOOKS_HANDLE_OPTION): Override.
40585
40586 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
40587
40588         * init.c, misc.c, trans.c, utils.c: Remove dead code.
40589
40590 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
40591
40592         * Makefile.in: Replace "host_canonical" with "host" for autoconf
40593         substitution.
40594
40595 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
40596
40597         * Make-lang.in: Update.
40598         * misc.c: Include opts.h. Define cl_options_count and cl_options.
40599
40600 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
40601
40602         * misc.c (gnat_init_options): Update.
40603
40604 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
40605
40606         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
40607         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
40608         __attribute__ ((__unused__)).
40609
40610 2003-06-05  Jan Hubicka  <jh@suse.cz>
40611
40612         * Make-lang.in:  Add support for stageprofile and stagefeedback
40613
40614 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
40615
40616         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
40617         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
40618
40619 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
40620
40621         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
40622         Remove non-VMS directive.
40623         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
40624         alternatives.
40625         (Examples of gnatls Usage): Remove VMS alternative.
40626
40627 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
40628
40629         PR ada/9953
40630         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
40631         and turn ZCX_By_Default back to False since the underlying support
40632         is not quite there yet.
40633
40634 2003-06-01  Andreas Jaeger  <aj@suse.de>
40635
40636         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
40637         and ROUND_TYPE_SIZE_UNIT.
40638
40639 2003-05-22   Geert Bosch  <bosch@gnat.com>
40640
40641         * gnat_rm.texi : Remove reference to Ada Core Technologies.
40642
40643 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
40644
40645         * trans.c (tree_transform): Use location_t and input_location
40646         directly.
40647         (build_unit_elab): Likewise.
40648         * utils.c (create_label_decl): Likewise.
40649
40650 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
40651
40652         * trans.c (tree_transform, build_unit_elab,
40653         set_lineno): Rename lineno to input_line.
40654         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
40655         end_subprog_body): Likewise.
40656         * utils2.c (build_call_raise): Likewise.
40657
40658 2003-05-01  Laurent Guerby  <guerby@acm.org>
40659
40660         PR ada/10546
40661         * 5iosinte.ads: Increase pthread_cond_t size to match recent
40662         LinuxThread and NPTL version, merge from ACT.
40663
40664 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
40665
40666         * utils.c (convert): No need to clear TREE_CST_RTL.
40667
40668 2003-04-23   Geert Bosch  <bosch@gnat.com>
40669
40670         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
40671         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40672         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40673         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40674         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40675         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
40676         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
40677         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
40678         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40679         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
40680         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
40681         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
40682         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
40683         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
40684         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
40685         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
40686         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
40687         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
40688         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
40689         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
40690         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
40691         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
40692         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40693         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
40694         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
40695         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
40696         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
40697         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
40698         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
40699         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
40700         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
40701         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
40702         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
40703         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
40704         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
40705         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
40706         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
40707         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
40708         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
40709         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
40710         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
40711         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
40712         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
40713         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
40714         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
40715         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
40716         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
40717         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
40718         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
40719         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
40720         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
40721         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
40722         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
40723         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
40724         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
40725         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
40726         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
40727         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
40728         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
40729         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
40730         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
40731         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
40732         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
40733         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
40734         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
40735         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
40736         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
40737         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
40738         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
40739         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
40740         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
40741         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
40742         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
40743         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
40744         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
40745         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
40746         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
40747         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
40748         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
40749         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
40750         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
40751         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
40752         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
40753         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
40754         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
40755         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
40756         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
40757         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
40758         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
40759         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
40760         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
40761         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
40762         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
40763         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
40764         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
40765         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
40766         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
40767         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
40768         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
40769         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
40770         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
40771         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
40772         ali.adb, ali.ads, alloc.ads, argv.c,
40773         atree.adb, atree.ads, atree.h, aux-io.c,
40774         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
40775         binde.adb, binde.ads, binderr.adb, binderr.ads,
40776         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
40777         butil.adb, butil.ads, cal.c, calendar.ads,
40778         casing.adb, casing.ads, ceinfo.adb, checks.adb,
40779         checks.ads, cio.c, comperr.adb, comperr.ads,
40780         config-lang.in, csets.adb, csets.ads, csinfo.adb,
40781         cstand.adb, cstand.ads, cuintp.c, debug.adb,
40782         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
40783         dec-io.ads, dec.ads, deftarg.c, directio.ads,
40784         einfo.adb, einfo.ads, elists.adb, elists.ads,
40785         elists.h, errno.c, errout.adb, errout.ads,
40786         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
40787         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
40788         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
40789         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
40790         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
40791         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
40792         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
40793         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
40794         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
40795         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
40796         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
40797         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
40798         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
40799         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
40800         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
40801         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
40802         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
40803         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
40804         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
40805         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
40806         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40807         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40808         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40809         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
40810         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
40811         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
40812         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
40813         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
40814         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
40815         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
40816         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
40817         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
40818         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
40819         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
40820         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
40821         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
40822         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
40823         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
40824         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
40825         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
40826         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
40827         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
40828         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
40829         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
40830         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
40831         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
40832         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
40833         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
40834         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
40835         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
40836         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
40837         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
40838         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
40839         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
40840         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
40841         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
40842         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
40843         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
40844         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
40845         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40846         lib.adb, lib.ads, live.adb, live.ads,
40847         machcode.ads, make.adb, make.ads, makeusg.adb,
40848         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
40849         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
40850         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
40851         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
40852         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
40853         mlib.ads, namet.adb, namet.ads, nlists.adb,
40854         nlists.ads, opt.adb, opt.ads, osint-b.adb,
40855         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
40856         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
40857         osint.ads, output.adb, output.ads, par-ch10.adb,
40858         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
40859         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40860         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
40861         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
40862         par-tchk.adb, par-util.adb, par.adb, par.ads,
40863         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
40864         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
40865         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
40866         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
40867         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
40868         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
40869         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
40870         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
40871         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
40872         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
40873         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
40874         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
40875         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
40876         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
40877         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
40878         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
40879         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
40880         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40881         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
40882         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
40883         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
40884         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
40885         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40886         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
40887         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
40888         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
40889         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
40890         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
40891         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
40892         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
40893         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
40894         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
40895         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
40896         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
40897         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
40898         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
40899         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
40900         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
40901         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
40902         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
40903         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
40904         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
40905         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
40906         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
40907         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
40908         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
40909         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
40910         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
40911         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
40912         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
40913         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
40914         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
40915         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
40916         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
40917         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
40918         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
40919         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
40920         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
40921         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
40922         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
40923         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
40924         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
40925         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
40926         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
40927         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
40928         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
40929         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
40930         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
40931         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
40932         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
40933         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
40934         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
40935         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
40936         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
40937         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
40938         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
40939         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
40940         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
40941         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
40942         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
40943         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
40944         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
40945         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
40946         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
40947         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
40948         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
40949         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
40950         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
40951         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
40952         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
40953         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
40954         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
40955         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
40956         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
40957         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
40958         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
40959         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
40960         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
40961         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
40962         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
40963         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
40964         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
40965         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
40966         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
40967         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
40968         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
40969         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
40970         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
40971         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
40972         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
40973         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40974         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40975         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
40976         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
40977         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
40978         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
40979         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
40980         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
40981         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
40982         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
40983         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
40984         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
40985         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
40986         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
40987         snames.ads, sprint.adb, sprint.ads, stand.adb,
40988         stand.ads, stringt.adb, stringt.ads, style.adb,
40989         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
40990         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
40991         switch-m.ads, switch.adb, switch.ads, system.ads,
40992         table.adb, table.ads, targparm.adb, targparm.ads,
40993         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
40994         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
40995         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
40996         ttypef.ads, ttypes.ads, types.adb, types.ads,
40997         uintp.adb, uintp.ads, uname.adb, uname.ads,
40998         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
40999         usage.adb, usage.ads, validsw.adb, validsw.ads,
41000         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
41001         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
41002         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
41003         formatting and other trivial changes from ACT.
41004
41005 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
41006
41007         * gigi.h, utils2.c (build_constructor):
41008         Rename gnat_build_constructor. Use build_constructor.
41009         * decl.c (gnat_to_gnu_entity)
41010         * trans.c (tree_transform, pos_to_constructor, extract_values)
41011         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
41012         (unchecked_convert)
41013         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
41014         (fill_vms_descriptor):
41015         Update to match.
41016
41017 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
41018
41019         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
41020         * misc.c (gnat_tree_size): New function.
41021         (LANG_HOOKS_TREE_SIZE): Override.
41022
41023 2003-04-03  Jason Merrill  <jason@redhat.com>
41024
41025         * misc.c (gnat_adjust_rli): #if 0.
41026
41027 2003-03-31   Geert Bosch  <bosch@gnat.com>
41028
41029         PR ada/10020
41030         * link.c : Fix misspelled "const" keyword
41031
41032 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
41033
41034         PR c++/7086
41035         * utils2.c: Adjust calls to put_var_into_stack.
41036
41037 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
41038
41039         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
41040
41041 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
41042
41043         * misc.c (gnat_init): Update for new prototype.
41044
41045 2003-03-05  Olivier Hainque  <hainque@gnat.com>
41046
41047         ada/9961
41048         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
41049         warning, and fix return type for the IN_RTS && !SJLJ case.
41050
41051 2003-03-04  Tom Tromey  <tromey@redhat.com>
41052
41053         * Make-lang.in (ada.tags): New target.
41054
41055 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
41056
41057         ada/9911
41058         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
41059         wrapper, which name remains constant whatever underlying GCC
41060         scheme.
41061
41062         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
41063         the stable interface needed for a-except.
41064
41065 2003-03-02  Andreas Jaeger  <aj@suse.de>
41066
41067         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41068         gnat_ug_wnt.texi: Regenerate.
41069
41070 2003-03-02  Laurent Guerby  <guerby@acm.org>
41071
41072         * Makefile.in (install-gnatlib): Match previous change there
41073         so it works.
41074
41075 2003-02-28  Andreas Schwab  <schwab@suse.de>
41076
41077         * Make-lang.in (install-gnatlib): Change to ada directory before
41078         running make instead of using ada/Makefile directly.
41079
41080 2003-02-18  Ben Elliston  <bje@redhat.com>
41081
41082         Part of PR ada/9406
41083         * gnat_ug.texi (Binder output file): Grammar fix.
41084
41085 2003-02-18  Ben Elliston  <bje@redhat.com>
41086
41087         PR other/7350
41088         * 5qtaprop.adb (Sleep): Fix typo in comment.
41089
41090 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
41091
41092         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
41093         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41094         gnat_ug_wnt.texi: Regenerate.
41095
41096 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
41097
41098         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
41099         be created if necessary.
41100         (ada.install-common): Let $(DESTDIR)$(bindir) be created
41101         if necessary.  Remove erroneous and redundant gnatchop
41102         installation commands.  Test for gnatdll before attempting
41103         to install it.
41104         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
41105         and gnatdll from all plausible locations.
41106
41107 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
41108
41109         * utils2.c (build_unary_op): Don't check flag_volatile.
41110         * gnat_ug.texi: Remove -fvolatile from example.
41111         * gnat_ug_vxw.texi: Likewise.
41112
41113 2003-01-29  Laurent Guerby  <guerby@acm.org>
41114
41115         PR ada/8344
41116         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
41117         * Makefile.in: match previous change.
41118         * Make-lang.in: match previous change.
41119
41120 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
41121
41122         * 5rosinte.ads: Add SIGXCPU.
41123         * 5rtpopsp.adb: New file.
41124         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
41125         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
41126         specific file 5rtpopsp.adb.
41127         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
41128         is likely needed for all newlib targets.
41129         * init.c: Add RTEMS specific version of __gnat_initialize().
41130
41131 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41132
41133         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
41134
41135 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41136
41137         * init.c (__gnat_error_handler): Make msg const.
41138
41139         * gmem.c (convert_addresses): Move declaration ...
41140         * adaint.h: ... here.
41141         * adaint.c (convert_addresses): Adapt addrs type to match
41142         prototype.
41143
41144         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
41145
41146 2003-01-24  Andreas Schwab  <schwab@suse.de>
41147
41148         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
41149         size_t to avoid warning.
41150
41151 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
41152
41153         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
41154
41155 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
41156
41157         * gnat_rm.texi: Remove RCS version number.
41158
41159         * ada-tree.h (union lang_tree_node): Add chain_next option.
41160
41161 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
41162
41163         * Make-lang.in (ada.install-info, ada.install-common,
41164         ada.uninstall): Prepend $(DESTDIR) to the destination
41165         directory in all (un)installation commands.
41166         * Makefile.in (install-gnatlib, install-rts): Ditto.
41167
41168 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
41169
41170         * gnat_rm.texi, gnat_ug.texi: Use @copying.
41171         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41172         gnat_ug_wnt.texi: Regenerate.
41173
41174 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
41175
41176         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
41177         only.
41178         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
41179         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
41180         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
41181         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
41182         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
41183         $(srcdir)/doc/include/gcc-common.texi.
41184
41185 2002-12-15   Geert Bosch  <bosch@gnat.com>
41186
41187         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
41188
41189 2002-12-14   Geert Bosch  <bosch@gnat.com>
41190
41191         PR ada/5690
41192         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
41193         case of a body created for a Renaming_As_Body, on which
41194         conformance checks are not performed.
41195
41196 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
41197
41198         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
41199         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
41200         not already included.
41201         * Make-lang.in: Update dependencies.
41202
41203 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
41204         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
41205         solution to buffer overflow bug on GNU/Linux.
41206
41207 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
41208
41209         PR ada/5856
41210         PR ada/6919
41211         * bindgen.adb: Remove all references to Public_Version.
41212         * comperr.adb: Remove all references to Public_Version and
41213         GNATPRO_Version; correct bug reporting instructions.
41214         * comperr.ads: Change to match bug box.
41215         * gnatvsn.ads: Remove all references to Public version and
41216         GNATPRO version.
41217
41218 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
41219
41220         PR ada/6919
41221         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
41222         GNU/Linux.
41223
41224         PR ada/6558
41225         * config-lang.in: Remove diff_excludes.
41226
41227 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
41228
41229         PR ada/8358
41230         * trans.c (gnu_pending_elaboration_lists): New GC root.
41231         (build_unit_elab): Use..
41232
41233 2002-10-30   Geert Bosch  <bosch@gnat.com>
41234
41235         PR ada/6558
41236         * misc.c : Include optabs.h
41237
41238         * Make-lang.in (misc.o): Add dependency on optabs.h
41239
41240 2002-10-29   Geert Bosch  <bosch@gnat.com>
41241
41242         PR ada/6558
41243         * Make-lang.in (gnatbind): Depend on CONFIG_H
41244
41245 2002-10-29  Geert bosch  <bosch@gnat.com>
41246
41247         PR ada/6558
41248         * misc.c: Unrevert misc.c (1.13)
41249
41250 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
41251
41252         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
41253         maintainership comments.
41254
41255 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
41256
41257         PR ada/5904
41258         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
41259         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
41260         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
41261         7staprop.adb: Correct statements in comments about
41262         maintainership of GNAT.
41263
41264         PR ada/5904
41265         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
41266         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
41267         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
41268         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
41269         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
41270         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
41271         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
41272         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
41273         comments about maintainership of GNAT.
41274
41275         PR ada/6919 (forward port of patch for PR ada/5904)
41276         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
41277         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
41278         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
41279         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
41280         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
41281         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
41282         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
41283         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
41284         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
41285         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
41286         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
41287         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
41288         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
41289         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
41290         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
41291         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
41292         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
41293         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
41294         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
41295         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
41296         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
41297         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
41298         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
41299         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
41300         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
41301         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
41302         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
41303         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
41304         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
41305         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
41306         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
41307         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
41308         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
41309         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
41310         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
41311         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
41312         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
41313         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
41314         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
41315         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
41316         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
41317         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
41318         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
41319         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
41320         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
41321         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
41322         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
41323         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
41324         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
41325         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
41326         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
41327         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
41328         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
41329         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
41330         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
41331         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
41332         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
41333         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
41334         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
41335         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
41336         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
41337         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
41338         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
41339         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
41340         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
41341         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
41342         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
41343         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
41344         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
41345         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
41346         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
41347         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
41348         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
41349         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
41350         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
41351         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
41352         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
41353         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
41354         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
41355         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
41356         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
41357         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
41358         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
41359         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
41360         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
41361         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
41362         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
41363         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
41364         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
41365         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
41366         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
41367         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
41368         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
41369         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
41370         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
41371         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
41372         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
41373         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
41374         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
41375         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
41376         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
41377         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
41378         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
41379         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
41380         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
41381         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
41382         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
41383         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
41384         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
41385         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
41386         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
41387         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
41388         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
41389         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
41390         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
41391         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
41392         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
41393         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
41394         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
41395         par-endh.adb par-labl.adb par-load.adb par-prag.adb
41396         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
41397         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
41398         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
41399         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
41400         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
41401         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
41402         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
41403         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
41404         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
41405         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
41406         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
41407         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
41408         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
41409         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
41410         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
41411         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
41412         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
41413         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
41414         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
41415         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
41416         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
41417         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
41418         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
41419         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
41420         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
41421         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
41422         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
41423         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
41424         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
41425         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
41426         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
41427         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
41428         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
41429         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
41430         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
41431         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
41432         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
41433         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
41434         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
41435         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
41436         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
41437         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
41438         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
41439         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
41440         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
41441         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
41442         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
41443         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
41444         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
41445         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
41446         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
41447         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
41448         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
41449         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
41450         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
41451         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
41452         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
41453         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
41454         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
41455         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
41456         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
41457         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
41458         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
41459         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
41460         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
41461         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
41462         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
41463         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
41464         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
41465         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
41466         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
41467         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
41468         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
41469         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
41470         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
41471         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
41472         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
41473         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
41474         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
41475         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
41476         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
41477         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
41478         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
41479         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
41480         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
41481         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
41482         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
41483         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
41484         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
41485         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
41486         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
41487         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
41488         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
41489         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
41490         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
41491         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
41492         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
41493         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
41494         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
41495         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
41496         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
41497         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
41498         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
41499         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
41500         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
41501         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
41502         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
41503         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
41504         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
41505         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
41506         stringt.ads stringt.h style.adb style.ads stylesw.adb
41507         stylesw.ads switch.adb switch.ads sysdep.c system.ads
41508         table.adb table.ads targparm.adb targparm.ads targtyps.c
41509         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
41510         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
41511         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
41512         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
41513         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
41514         usage.ads utils.c utils2.c validsw.adb validsw.ads
41515         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
41516         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
41517         xtreeprs.adb: Correct statements in comments about maintainership
41518         of GNAT.
41519
41520 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
41521
41522         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
41523         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
41524         * gnatvsn.ads: Gnat_Version_String is now a function.
41525         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
41526         copy the C version_string into a String and return it.
41527         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
41528         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
41529         Remove pragma Ident (Gnat_Version_String).  If this was the
41530         sole use of package Gnatvsn, remove the with statement too.
41531         * gnat1drv.adb: Tweak -gnatv output.
41532
41533 2002-09-17  Richard Henderson  <rth@redhat.com>
41534
41535         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
41536         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
41537         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
41538         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
41539         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
41540         and real_2expN instead of a loop.
41541         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
41542         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
41543
41544 2002-08-25  Andre Leis  <a.leis@gmx.net>
41545             David Billinghurst  <David.Billinghurst@riotinto.com>
41546
41547         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
41548
41549 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41550
41551         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
41552         Remove $(CONFIG_H) dependency.
41553
41554 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
41555
41556         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
41557
41558 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41559
41560         * adadecode.c (ada_demangle): Use xstrdup in lieu of
41561         xmalloc/strcpy.
41562         * misc.c (gnat_decode_option): Likewise.
41563
41564 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
41565
41566         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
41567         function approach did not work well because of a side effect (the
41568         function call could reallocate the table which was being indexed
41569         using its result). Fixes ada/4851. [RESURRECTED]
41570
41571 2002-07-01  Roger Sayle  <roger@eyesopen.com>
41572
41573         * ada/utils.c (builtin_function): Accept an additional parameter.
41574
41575 2002-06-28  Andreas Jaeger  <aj@suse.de>
41576
41577         PR ada/7144
41578         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
41579         <adi@thur.de>.
41580
41581 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41582
41583         * Makefile.in (SHELL): Set to @SHELL@.
41584
41585 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41586
41587         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
41588         array size calculation.
41589
41590 2002-06-04  Andreas Jaeger  <aj@suse.de>
41591
41592         * Make-lang.in (gnatbind): Readd rule that has been lost in last
41593         patch.
41594
41595 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
41596
41597         Merge from pch-branch:
41598
41599         * config-lang.in (gtfiles): Add ada-tree.h.
41600         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
41601         (SET_TYPE_MODULUS): New.
41602         (SET_TYPE_INDEX): New.
41603         (SET_TYPE_DIGITS_VALUE): New.
41604         (SET_TYPE_RM_SIZE): New.
41605         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
41606         (SET_TYPE_ADA_SIZE): New.
41607         (SET_TYPE_ACTUAL_BOUNDS): New.
41608         (SET_DECL_CONST_CORRESPONDING_VAR): New.
41609         (SET_DECL_ORIGINAL_FIELD): New.
41610         (TREE_LOOP_ID): Correct typo.
41611         * decl.c: Use new macros.
41612         * utils.c: Include debug.h, use new macros.
41613         * utils2.c: Use new macros.
41614
41615         * ada-tree.h: Update all macros for new tree description.
41616         (struct tree_loop_id): New.
41617         (union lang_tree_node): New.
41618         (struct lang_decl): New.
41619         (struct lang_type): New.
41620         * misc.c (gnat_mark_tree): Delete.
41621         (LANG_HOOKS_MARK_TREE): Delete.
41622         * trans.c (tree_transform): No longer any need to cast
41623         for TREE_LOOP_ID.
41624
41625         * utils.c (struct language_function): New dummy structure.
41626
41627         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
41628         (misc.o): Likewise.
41629         (utils.o): Likewise; also gtype-ada.h.
41630         * Make-lang.in (gnat1): Add dependency on s-gtype.
41631         (gnatbind): Add dependency on $(CONFIG_H).
41632         * utils.c: Correct last #include.
41633         (stuct e_stack): Remove unnecessary 'static'.
41634         (mark_e_stack): Remove unused prototype.
41635
41636         * scn-nlit.adb: Remove whitespace after version number to
41637         keep lines under 80 chars.
41638         * snames.adb: Likewise.
41639         * treepr.ads: Likewise.
41640
41641         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
41642         (misc.o): Likewise.
41643         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
41644         * config-lang.in (gtfiles): New.
41645         * decl.c: Use gengtype for roots.
41646         * gigi.h: Use gengtype for roots.
41647         * trans.c: Use gengtype for roots.
41648         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
41649
41650 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
41651
41652         * misc.c (gnat_init): Adjust setting of internal_error_function.
41653
41654 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
41655
41656         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
41657         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41658         gnat_ug_wnt.texi: Regenerate.
41659
41660 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
41661
41662         * 5ntaprop.adb (with System.OS_Primitives): Remove.
41663
41664         * cstreams.c (max_path_len): Move from here ...
41665         * adaint.c (__gnat_max_path_len): ... to here.
41666         * adaint.c (__gnat_max_path_len): Declare.
41667         * g-dirope.adb (Max_Path): Adjust.
41668         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
41669         * i-cstrea.ads (max_path_len): Adjust.
41670         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
41671         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
41672
41673         * Makefile.in, Make-lang.in: Documentation is now built in
41674         Make-lang.in.  Store Info and generated Texinfo files in the
41675         source directory.
41676         * gnat_ug.texi: Remove CVS keywords, correct version number.
41677         Set file name correctly.
41678
41679         * gnat_ug_*.texi: Add.
41680         * .cvsignore: Ignore generated Texinfo files.
41681
41682 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
41683
41684         * ada.h: Add MI guard macro.
41685         (SUBTYPE): Define constants with an anonymous enum, not static
41686         const variables.
41687         (IN): Cast constants to appropriate type before use.
41688
41689 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
41690
41691         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
41692         (experimental)".
41693
41694 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41695
41696         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
41697         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
41698         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
41699         (ALL_ADA_CFLAGS): Likewise.
41700         (ADA_INCLUDES): Likewise.
41701         Adapt for new working dir.
41702         (GNATBIND): Use Makefile.in version.
41703         (.SUFFIXES): Copy from Makefile.in.
41704         (ada-warn): Define.
41705         (.adb.o, .ads.o): Copy from Makefile.in.
41706         Added $(OUTPUT_OPTION).
41707         (GNAT1_C_OBJS): Moved from Makefile.in.
41708         Prefix with ada subdir.
41709         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
41710         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
41711         Adapt for new working dir.
41712         (EXTRA_GNATBIND_OBJS): Likewise.
41713         (ADA_BACKEND): Moved from Makefile.in.
41714         Renamed to avoid conflict with global BACKEND.
41715         Use that one.
41716         (TARGET_ADA_SRCS): Moved from Makefile.in.
41717         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
41718         Use ADA_BACKEND.
41719         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
41720         (ada_extra_files): Moved from Makefile.in.
41721         Prefix with ada subdir.
41722         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
41723         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
41724         (ada/nmake.ads): Likewise.
41725         (update-sources): Moved from Makefile.in.
41726         Prefix with ada subdir.
41727         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
41728         (ADA_TREE_H): Likewise.
41729         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
41730         (ada/memtrack.o): Likewise.
41731         (ada/adadecode.o): Likewise.
41732         Update dependencies.
41733         (ada/adaint.o): New.
41734         (ada/argv.o): Moved from Makefile.in.
41735         Prefix with ada subdir.
41736         Update dependencies.
41737         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
41738         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
41739         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
41740         Prefix with ada subdir.
41741         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
41742         (GNAT DEPENDENCIES): Regenerate.
41743         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
41744         toplevel Makefile.in.
41745         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
41746         (TARGET_ADA_SRCS): Removed.
41747         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
41748         (GNATBIND_OBJS): Likewise.
41749         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
41750         (BACKEND): Removed.
41751         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
41752         (TREE_H): Likewise.
41753         (ada_extra_files): Likewise.
41754         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
41755         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
41756         (update-sources): Likewise.
41757         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
41758         (ADA_TREE_H): Likewise.
41759         (adadecoce.o): Likewise.
41760         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
41761         (GNAT DEPENDENCIES): Likewise.
41762
41763 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41764
41765         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
41766         * Makefile.in: Likewise.
41767
41768 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41769
41770         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
41771         Restore $(CONFIG_H) and prefix.o dependencies.
41772         (ada.stage[1-4]): Depend on stage?-start.
41773
41774         * Makefile.in (b_gnatb.c): Depend on interfac.o.
41775
41776 2002-05-02  Jim Wilson  <wilson@redhat.com>
41777
41778         * utils.c (finish_record_type): Change record_size to record_type.
41779
41780 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
41781
41782         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
41783         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
41784         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
41785
41786 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
41787
41788         * misc.c (gnat_parse_file): Update.
41789
41790 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
41791
41792         * misc.c (gnat_init): Don't set lang_attribute_common.
41793
41794 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
41795
41796         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
41797
41798 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
41799
41800         * gnat_ug.texi: New file.
41801
41802         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
41803         instead of gfdl.texi
41804
41805         * xgnatug.adb, ug_words: New files.
41806
41807         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
41808         gnat_rm and gnat-style manuals.
41809
41810 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
41811
41812         * gigi.h (incomplete_type_error): Remove.
41813         * utils.c (incomplete_type_error): Remove.
41814
41815 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
41816
41817         * trans.c (tree_transform): Add has_scope argument to
41818         expand_start_stmt_expr.
41819
41820 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
41821
41822         * gigi.h (truthvalue_conversion): Rename.
41823         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
41824         * trans.c (tree_transform): Update.
41825         * utils2.c (truthvalue_conversion): Rename, update.
41826         (build_binary_op, build_unary_op): Update.
41827
41828 2002-04-04  Laurent Guerby  <guerby@acm.org>
41829
41830         * make.adb: Implement -margs, remove restriction about file name placement.
41831         * makeusg.adb: Documentation update.
41832         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
41833         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
41834
41835 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
41836
41837         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
41838         (builtin_function): Similarly.
41839
41840 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
41841
41842         * decl.c (gnat_to_gnu_entity): Update.
41843         * gigi.h (mark_addressable): Rename.
41844         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
41845         * trans.c (tree_transform): Update.
41846         * utils.c (create_var_decl): Update.
41847         * util2.c (build_binary_op, build_unary_op,
41848         fill_vms_descriptor): Update.
41849         (mark_addressable): Rename, update.
41850
41851 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
41852
41853         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
41854         Rename.
41855         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
41856         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
41857         * trans.c (tree_transform, convert_with_check): Update.
41858         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
41859         Rename.
41860
41861 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
41862
41863         * gigi.h (finish_incomplete_decl): Rename.
41864         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
41865         * utils.c (gnat_init_decl_processing): Don't set hook.
41866         (finish_incomplete_decl): Rename.
41867
41868 2002-03-29  Andreas Schwab  <schwab@suse.de>
41869
41870         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
41871         directory.
41872
41873 2001-03-28  Robert Dewar  <dewar@gnat.com>
41874
41875         * checks.ads:
41876         (Remove_Checks): New procedure
41877
41878         * checks.adb:
41879         (Remove_Checks): New procedure
41880
41881         * exp_util.adb:
41882         Use new Duplicate_Subexpr functions
41883         (Duplicate_Subexpr_No_Checks): New procedure
41884         (Duplicate_Subexpr_No_Checks_Orig): New procedure
41885         (Duplicate_Subexpr): Restore original form (checks duplicated)
41886         (Duplicate_Subexpr): Call Remove_Checks
41887
41888         * exp_util.ads:
41889         (Duplicate_Subexpr_No_Checks): New procedure
41890         (Duplicate_Subexpr_No_Checks_Orig): New procedure
41891         Add 2002 to copyright notice
41892
41893         * sem_util.adb: Use new Duplicate_Subexpr functions
41894
41895         * sem_eval.adb:
41896         (Eval_Indexed_Component): This is the place to call
41897         Constant_Array_Ref and to replace the value. We simply merge
41898         the code of this function in here, since it is now no longer
41899         used elsewhere. This fixes the problem of the back end not
41900         realizing we were clever enough to see that this was
41901         constant.
41902         (Expr_Val): Remove call to Constant_Array_Ref
41903         (Expr_Rep_Val): Remove call to Constant_Array_Ref
41904         Minor reformatting
41905         (Constant_Array_Ref): Deal with string literals (patch
41906         suggested by Zack Weinberg on the gcc list)
41907
41908 2001-03-28  Ed Schonberg  <schonber@gnat.com>
41909
41910         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
41911         Duplicate_Subexpr_Move_Checks.
41912
41913         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
41914         Duplicate_Subexpr_Move_Checks.
41915
41916         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
41917         value of array exists before retrieving it (it may a private
41918         protected component in a function).
41919
41920 2002-03-28   Geert Bosch  <bosch@gnat.com>
41921
41922         * prj-pp.adb : New file.
41923
41924         * prj-pp.ads : New file.
41925
41926 2002-03-28  Andreas Jaeger  <aj@suse.de>
41927
41928         * Makefile.in (stamp-sdefault): Fix path for Makefile.
41929
41930 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
41931
41932         * misc.c (gnat_expand_expr): Move prototype.
41933
41934 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41935
41936         * misc.c (insert_default_attributes): Remove.
41937
41938 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41939
41940         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
41941         (gnat_init): Don't set hook.
41942         (gnat_expand_expr): Fix prototype.
41943
41944 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
41945
41946         * misc.c (ggc_p): Remove.
41947
41948 2002-03-27  Geert Bosch  <bosch@gnat.com>
41949
41950         * prj-makr.ads, prj-makr.adb : New files.
41951
41952 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
41953
41954         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
41955         (lang_mark_tree): Make static, rename.
41956
41957 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
41958
41959         * misc.c (maybe_build_cleanup): Remove.
41960
41961 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
41962
41963         * gigi.h (yyparse): Remove.
41964
41965 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
41966
41967         From Ben Brosgol  <brosgol@gnat.com>
41968         * gnat_rm.texi: Sync with ACT version.
41969
41970 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
41971
41972         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
41973         (gnat_init): Remove old hook.
41974
41975 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
41976
41977         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
41978         (yyparse): Rename gnat_parse_file.
41979
41980 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
41981
41982         Delete all lines containing "$Revision:".
41983         * xeinfo.adb: Don't look for revision numbers.
41984         * xnmake.adb: Likewise.
41985         * xsinfo.adb: Likewise.
41986         * xsnames.adb: Likewise.
41987         * xtreeprs.adb: Likewise.
41988
41989 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41990
41991         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
41992         gnat_tree_code_name): Delete.
41993         (tree_code_type, tree_code_length, tree_code_name): Define.
41994         (gnat_init): Don't try to copy into the various tree_code
41995         arrays.
41996
41997 2002-03-11  Richard Henderson  <rth@redhat.com>
41998
41999         * Makefile.in (.NOTPARALLEL): Add fake tag.
42000
42001 2002-03-07  Geert Bosch  <bosch@gnat.com>
42002
42003         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
42004         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
42005         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
42006         switch-m.adb, switch-m.ads : New files.
42007
42008 2002-03-07  Geert Bosch  <bosch@gnat.com>
42009
42010         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
42011         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
42012         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
42013         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
42014         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
42015         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
42016         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
42017         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
42018         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
42019         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
42020         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
42021         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
42022         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
42023         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
42024         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
42025         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
42026         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
42027         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
42028         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
42029         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
42030         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
42031         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
42032         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
42033         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
42034         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
42035         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
42036         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
42037         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
42038         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
42039         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
42040         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
42041         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
42042         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
42043         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
42044         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
42045         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
42046         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
42047         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
42048         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
42049         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
42050         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
42051         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
42052         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
42053         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
42054         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
42055         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
42056         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
42057         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
42058         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
42059         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
42060         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
42061         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
42062         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
42063         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
42064         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
42065         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
42066         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
42067         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
42068         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
42069         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
42070         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
42071         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
42072         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
42073         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
42074         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
42075         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
42076         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
42077         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
42078         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
42079         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
42080         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
42081         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
42082         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
42083         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
42084         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
42085         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
42086         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
42087         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
42088         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
42089         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
42090         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
42091         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
42092         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
42093         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
42094         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
42095         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
42096         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
42097         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
42098         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
42099         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
42100         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
42101         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
42102         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
42103         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
42104         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
42105         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
42106         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
42107
42108         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
42109         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
42110         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
42111         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
42112
42113         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
42114         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
42115
42116         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
42117         to mdll-fil.ad[bs] and mdll-util.ad[bs]
42118
42119         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
42120         from mdllfile.ad[bs] and mdlltool.ad[bs]
42121
42122 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
42123
42124         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
42125         lieu of explicit sizeof/sizeof.
42126
42127 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
42128
42129         * misc.c (copy_lang_decl): Remove.
42130
42131 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
42132
42133         * misc.c: Delete traditional-mode-related code copied from the
42134         C front end but not used, or used only to permit the compiler
42135         to link.
42136
42137 2002-02-07  Richard Henderson  <rth@redhat.com>
42138
42139         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
42140         * adaint.h (__gnat_to_gm_time): Update prototype.
42141
42142 2002-01-30  Richard Henderson  <rth@redhat.com>
42143
42144         * trans.c (tree_transform) [N_Loop_Statement]: Use
42145         expand_exit_loop_top_cond.
42146
42147 2001-12-23  Richard Henderson  <rth@redhat.com>
42148
42149         * utils.c (end_subprog_body): Push GC context around
42150         rest_of_compilation for nested functions.
42151
42152 2001-12-23  Richard Henderson  <rth@redhat.com>
42153
42154         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
42155
42156 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
42157
42158         * gnat-style.texi (Declarations and Types): Remove ancient style
42159         rule which was mandated by code generation issues.
42160
42161         * gnat-style.texi (header): Add @dircategory, @direntry.
42162         (title page): Remove date.
42163         (general) Add @./@: where approriate, and two spaces after the
42164         full stop at the end of a sentence.  Use @samp markup when
42165         referring concrete lexical entities (keywords, attribute names
42166         etc.), and @syntax for ARM grammar elements. Use @r for English
42167         text in comments.  Use @emph for emphasis.  Change "if-statements"
42168         etc. to "if statements" (without @samp). Break long lines.  Make
42169         casing of section names consistent.
42170         (Identifiers): Use @samp markup for variable names.
42171         (Comments): Use @samp markup for comment characters. Line-end
42172         comments may follow any Ada code, not just statements.  Fix
42173         misspelling of "Integer" as "integer".
42174         (Loop statements): Do not use variable name "I", use "J".
42175         (Subprogram Declarations): Document alignment.
42176         (Subprogram Bodies, Block statements): Document empty line before
42177         "begin".
42178
42179 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
42180
42181         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
42182         function approach did not work well because of a side effect (the
42183         function call could reallocate the table which was being indexed
42184         using its result). Fixes ada/4851.
42185
42186 2001-12-19  Robert Dewar  <dewar@gnat.com>
42187
42188         * bindgen.adb: Minor reformatting
42189
42190         * cstand.adb: Minor reformatting
42191
42192         * fmap.adb: Minor reformatting
42193         Change name from Add for Add_To_File_Map (Add is much too generic)
42194         Change Path_Name_Of to Mapped_Path_Name
42195         Change File_Name_Of to Mapped_File_Name
42196         Fix copyright dates in header
42197
42198         * fmap.ads:
42199         Change name from Add for Add_To_File_Map (Add is much too generic)
42200         Change Path_Name_Of to Mapped_Path_Name
42201         Change File_Name_Of to Mapped_File_Name
42202         Fix copyright dates in header
42203
42204         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
42205         Add use clause for Fmap.
42206
42207         * make.adb: Minor reformatting
42208
42209         * osint.adb: Minor reformatting.  Change of names in Fmap.
42210         Add use clause for Fmap.
42211
42212         * prj-env.adb: Minor reformatting
42213
42214         * prj-env.ads: Minor reformatting
42215
42216         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
42217         error found (there were odd exceptions to this general rule in
42218         -gnatec/-gnatem processing)
42219
42220 2001-12-19  Olivier Hainque  <hainque@gnat.com>
42221
42222         * raise.c (__gnat_eh_personality): Exception handling personality
42223         routine for Ada.  Still in rough state, inspired from the C++ version
42224         and still containing a bunch of debugging artifacts.
42225         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
42226         inspired from the C++ library.
42227
42228         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
42229         exception handling integration.
42230
42231 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
42232
42233         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
42234         (HIE_SOURCES): Add s-secsta.ad{s,b}.
42235         (HIE_OBJS): Add s-fat*.o
42236         (RAVEN_SOURCES): Remove files that are no longer required. Add
42237         interrupt handling files.
42238         (RAVEN_MOD): Removed, no longer needed.
42239
42240 2001-12-19  Robert Dewar  <dewar@gnat.com>
42241
42242         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
42243         Add 2001 to copyright date
42244
42245         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
42246         need to force universal inlining for these cases.
42247
42248 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
42249
42250         * s-taprob.adb: Minor clean ups so that this unit can be used in
42251         Ravenscar HI.
42252
42253         * exp_ch7.adb: Allow use of secondary stack in HI mode.
42254         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
42255
42256 2001-12-19  Vincent Celier  <celier@gnat.com>
42257
42258         * prj-tree.ads (Project_Node_Record): Add comments for components
42259         Pkg_Id and Case_Insensitive.
42260
42261 2001-12-19  Pascal Obry  <obry@gnat.com>
42262
42263         * g-socket.adb: Minor reformatting. Found while reading code.
42264
42265 2001-12-19  Robert Dewar  <dewar@gnat.com>
42266
42267         * prj-tree.ads: Minor reformatting
42268
42269 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
42270
42271         * config-lang.in (diff_excludes): Remove.
42272
42273 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42274
42275         * sem_res.adb (Resolve_Selected_Component): do not generate a
42276         discriminant check if the selected component is a component of
42277         the argument of an initialization procedure.
42278
42279         * trans.c (tree_transform, case of arithmetic operators): If result
42280         type is private, the gnu_type is the base type of the full view,
42281         given that the full view itself may be a subtype.
42282
42283 2001-12-17  Robert Dewar  <dewar@gnat.com>
42284
42285         * sem_res.adb: Minor reformatting
42286
42287         * trans.c (tree_transform, case N_Real_Literal): Add missing third
42288         parameter in call to Machine (unknown horrible effects from this
42289         omission).
42290
42291         * urealp.h: Add definition of Round_Even for call to Machine
42292         Add third parameter for Machine
42293
42294 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42295
42296         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
42297         predefined units in No_Run_Time mode.
42298
42299 2001-12-17  Richard Kenner  <kenner@gnat.com>
42300
42301         * misc.c (insn-codes.h): Now include.
42302
42303 2001-12-17  Olivier Hainque  <hainque@gnat.com>
42304
42305         * a-except.adb: Preparation work for future integration of the GCC 3
42306         exception handling mechanism
42307         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
42308         to factorize previous code sequences and make them externally callable,
42309         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
42310         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
42311         Use the new notification routines.
42312
42313 2001-12-17  Emmanuel Briot  <briot@gnat.com>
42314
42315         * prj-tree.ads (First_Choice_Of): Document the when others case
42316
42317 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
42318
42319         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
42320         HI-E mode, in order to support Ravenscar profile properly.
42321
42322         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
42323         mode on 32 bits targets.
42324
42325 2001-12-17  Vincent Celier  <celier@gnat.com>
42326
42327         * fmap.adb: Initial version.
42328
42329         * fmap.ads: Initial version.
42330
42331         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
42332         If search is successfully done, add to mapping.
42333
42334         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
42335
42336         * make.adb:
42337         (Gnatmake): Add new local variable Mapping_File_Name.
42338          Create mapping file when using project file(s).
42339          Delete mapping file before exiting.
42340
42341         * opt.ads (Mapping_File_Name): New variable
42342
42343         * osint.adb (Find_File): Use path name found in mapping, if any.
42344
42345         * prj-env.adb (Create_Mapping_File): New procedure
42346
42347         * prj-env.ads (Create_Mapping_File): New procedure.
42348
42349         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
42350         (Mapping_File)
42351
42352         * usage.adb: Add entry for new switch -gnatem.
42353
42354         * Makefile.in: Add dependencies for fmap.o.
42355
42356 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42357
42358         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
42359         is a package instantiation rewritten as a package body.
42360         (Install_Withed_Unit): Undo previous change, now redundant.
42361
42362 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
42363
42364         * layout.adb:
42365         (Compute_Length): Move conversion to Unsigned to callers.
42366         (Get_Max_Size): Convert Len expression to Unsigned after calls to
42367         Compute_Length and Determine_Range.
42368         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
42369         Compute_Length and Determine_Range.
42370         Above changes fix problem with length computation for supernull arrays
42371         where Max (Len, 0) wasn't getting applied due to the Unsigned
42372         conversion used by Compute_Length.
42373
42374 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
42375
42376         * rtsfind.ads:
42377         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
42378          System.Secondary_Stack.
42379         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
42380          in HI-E mode.
42381         Remove unused entity RE_Exception_Data.
42382
42383         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
42384
42385         * rident.ads (No_Secondary_Stack): New restriction.
42386
42387 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
42388
42389         * gnat_rm.texi: Fix minor typos. Found while reading the section
42390         regarding "Bit_Order Clauses" that was sent to a customer.
42391         Very interesting documentation!
42392
42393 2001-12-17  Robert Dewar  <dewar@gnat.com>
42394
42395         * sem_case.adb (Choice_Image): Avoid creating improper character
42396         literal names by using the routine Set_Character_Literal_Name. This
42397         fixes bombs in certain error message cases.
42398
42399 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
42400
42401         * a-reatim.adb: Minor reformatting.
42402
42403 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42404
42405         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
42406         case where the formal is an extension of another formal in the current
42407         unit or in a parent generic unit.
42408
42409 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
42410
42411         * s-tposen.adb: Update comments.  Minor reformatting.
42412         Minor code clean up.
42413
42414         * s-tarest.adb: Update comments.  Minor code reorganization.
42415
42416 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
42417
42418         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
42419         when Java_VM.
42420
42421 2001-12-17  Robert Dewa  <dewar@gnat.com>
42422
42423         * exp_attr.adb: Minor reformatting
42424
42425 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42426
42427         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
42428         derivations nested within a child unit: verify that the parent
42429         type is declared in an outer scope.
42430
42431 2001-12-17  Robert Dewar  <dewar@gnat.com>
42432
42433         * sem_ch12.adb: Minor reformatting
42434
42435 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42436
42437         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
42438         warning if current unit is a predefined one, from which bodies may
42439         have been deleted.
42440
42441 2001-12-17  Robert Dewar  <dewar@gnat.com>
42442
42443         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
42444         Fix header format. Add 2001 to copyright date.
42445
42446         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
42447         which caused CE during compilation if checks were enabled.
42448
42449 2001-12-17  Vincent Celier  <celier@gnat.com>
42450
42451         * make.adb:
42452         (Switches_Of): New function
42453         (Test_If_Relative_Path): New procedure
42454         (Add_Switches): Use new function Switches_Of
42455         (Collect_Arguments_And_Compile): Use new function Switches_Of.
42456         When using a project file, test if there are any relative
42457         search path. Fail if there are any.
42458         (Gnatmake): Only add switches for the primary directory when not using
42459         a project file. When using a project file, change directory to the
42460         object directory of the main project file. When using a project file,
42461         test if there are any relative search path. Fail if there are any.
42462         When using a project file, fail if specified executable is relative
42463         path with directory information, and prepend executable, if not
42464         specified as an absolute path, with the exec directory.  Make sure
42465         that only one -o switch is transmitted to the linker.
42466
42467         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
42468
42469         * prj-nmsc.adb:
42470         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
42471         when using a non standard naming scheme.
42472         (Check_Ada_Naming_Scheme): Make sure that error messages
42473         do not raise exceptions.
42474         (Is_Illegal_Append): Return True if there is no dot in the suffix.
42475         (Language_Independent_Check): Check the exec directory.
42476
42477         * prj.adb (Project_Empty): Add new component Exec_Directory
42478
42479         * prj.ads:
42480         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
42481         (Project_Data): Add component Exec_Directory
42482
42483         * snames.adb: Updated to match snames.ads revision 1.215
42484
42485         * snames.ads: Added Exec_Dir
42486
42487 2001-12-17  Robert Dewar  <dewar@gnat.com>
42488
42489         * make.adb: Minor reformatting
42490
42491         * prj-nmsc.adb: Minor reformatting
42492
42493         * snames.adb: Updated to match snames.ads
42494
42495         * snames.ads: Alphebetize entries for project file
42496
42497 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42498
42499         * trans.c (process_freeze_entity): Do nothing if the entity is a
42500         subprogram that was already elaborated.
42501
42502 2001-12-17  Richard Kenner  <kenner@gnat.com>
42503
42504         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
42505         and Esize if object is referenced via pointer.
42506
42507 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42508
42509         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
42510         is discrete before analyzing choices.
42511
42512 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
42513
42514         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
42515         containing the name of the Ada Main Program. This string is mainly
42516         intended for the debugger.
42517         (Gen_Output_File_C): Do the equivalent change when generating a C file.
42518
42519 2001-12-17  Robert Dewar  <dewar@gnat.com>
42520
42521         * ali.adb: Set new Dummy_Entry field in dependency entry
42522
42523         * ali.ads: Add Dummy_Entry field to source dependency table
42524
42525         * bcheck.adb (Check_Consistency): Ignore dummy D lines
42526
42527         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
42528
42529         * lib-writ.ads: Document dummy D lines for missing files.
42530
42531         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
42532
42533 2001-12-17  Robert Dewar  <dewar@gnat.com>
42534
42535         * ali.adb: Type reference does not reset current file.
42536
42537         * ali.adb: Recognize and scan renaming reference
42538
42539         * ali.ads: Add spec for storing renaming references.
42540
42541         * lib-xref.ads: Add documentation for handling of renaming references
42542
42543         * lib-xref.adb: Implement output of renaming reference.
42544
42545         * checks.adb:
42546         (Determine_Range): Document local variables
42547         (Determine_Range): Make sure Hbound is initialized. It looks as though
42548          there could be a real problem here with an uninitialized reference
42549          to Hbound, but no actual example of failure has been found.
42550
42551 2001-12-17  Laurent Pautet  <pautet@gnat.com>
42552
42553         * g-socket.ads:
42554         Fix comment of Shutdown_Socket and Close_Socket. These functions
42555         should not fail silently because if they are called twice, this
42556         probably means that there is a race condition in the user program.
42557         Anyway, this behaviour is consistent with the rest of this unit.
42558         When an error occurs, an exception is raised with the error message
42559         as exception message.
42560
42561 2001-12-17  Robert Dewar  <dewar@gnat.com>
42562
42563         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
42564         that it happens before modification of Sloc values for -gnatD.
42565
42566         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
42567         so that it happens before modification of Sloc values for -gnatD.
42568
42569         * switch.adb: Minor reformatting
42570
42571 2001-12-15  Richard Henderson  <rth@redhat.com>
42572
42573         * sem_ch7.adb: Wrap comment.
42574
42575 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
42576
42577         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
42578         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
42579         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
42580         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
42581         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
42582         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
42583         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
42584         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
42585         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
42586         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
42587         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
42588         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
42589         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
42590         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
42591         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
42592         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
42593         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
42594         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
42595         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
42596         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
42597         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
42598         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
42599         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
42600         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
42601         spelling errors.
42602
42603 2001-12-14  Vincent Celier  <celier@gnat.com>
42604
42605         * osint.adb(Create_Debug_File): When an object file is specified,
42606         put the .dg file in the same directory as the object file.
42607
42608 2001-12-14  Robert Dewar  <dewar@gnat.com>
42609
42610         * osint.adb: Minor reformatting
42611
42612         * lib-xref.adb (Output_Instantiation): New procedure to generate
42613         instantiation references.
42614
42615         * lib-xref.ads: Add documentation of handling of generic references.
42616
42617         * ali.adb (Read_Instantiation_Ref): New procedure to read
42618         instantiation references
42619
42620         * ali.ads: Add spec for storing instantiation references
42621
42622         * bindusg.adb: Minor reformatting
42623
42624         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42625
42626         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42627
42628         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42629
42630         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42631
42632         * csets.ads:
42633         Fix header format
42634         Add 2001 to copyright date
42635         Add entry for Latin-5 (Cyrillic ISO-8859-5)
42636
42637 2001-12-14  Matt Gingell  <gingell@gnat.com>
42638
42639         * adaint.c: mktemp is a macro on Lynx and can not be used as an
42640         expression.
42641
42642 2001-12-14  Richard Kenner  <kenner@gnat.com>
42643
42644         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
42645         if operand is CONSTRUCTOR.
42646
42647 2001-12-14  Ed Schonberg  <schonber@gnat.com>
42648
42649         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
42650         before emiting check on right-hand side, so that exception information
42651         is correct.
42652
42653 2001-12-14  Richard Kenner  <kenner@gnat.com>
42654
42655         * utils.c (create_var_decl): Throw away initializing expression
42656         if just annotating types and non-constant.
42657
42658 2001-12-14  Vincent Celier  <celier@gnat.com>
42659
42660         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
42661         Default_Ada_...
42662
42663         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42664         Remove functions.
42665         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
42666
42667         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42668         Remove functions.
42669         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
42670
42671 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
42672
42673         * ChangeLog: Remove piece of diff output.
42674
42675 2001-12-14  Geert Bosch  <bosch@gnat.com>
42676
42677         * config-lang.in: Update copyright notice
42678
42679         * layout.adb: Remove commented out code.
42680
42681         * mdllfile.ads: Update copyright notice. Fix header format.
42682
42683         * sem_case.ads: Likewise.
42684
42685         * sem_ch3.adb: Minor reformatting.
42686
42687 2001-12-12  Geert Bosch  <bosch@gnat.com>
42688
42689         * freeze.ads: Update copyright date.
42690
42691         * g-comlin.ads: Minor reformatting.
42692
42693         * gnat-style.texi: Fix typo.
42694
42695 2001-12-12  Geert Bosch  <bosch@gnat.com>
42696
42697         *  einfo.h: Regenerate.
42698
42699 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42700
42701         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
42702         on known node types, rather than untyped fields. Further cleanups.
42703
42704 2001-12-12  Robert Dewar  <dewar@gnat.com>
42705
42706         * sem_ch12.adb:
42707         (Save_Entity_Descendant): Minor comment update.
42708         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
42709          of an N_Attribute_Reference node. As per note below, this does not
42710         eliminate need for Associated_Node in attribute ref nodes.
42711         (Associated_Node): Documentation explicitly mentions attribute
42712         reference nodes, since this field is used in such nodes.
42713
42714         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
42715
42716 2001-12-12  Robert Dewar  <dewar@gnat.com>
42717
42718         * s-stalib.adb: Add more comments on with statements being needed
42719
42720         * par-ch12.adb: Minor reformatting
42721
42722         * prj-dect.ads: Fix copyright header
42723
42724         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
42725         inputs fit in 32 bits, but the result still overflows.
42726
42727         * s-fatgen.ads: Minor comment improvement
42728
42729 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42730
42731         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
42732         formal derived type, look for an inherited component from the full
42733         view of the parent, if any.
42734
42735 2001-12-12  Robert Dewar  <dewar@gnat.com>
42736
42737         * checks.ads (Apply_Alignment_Check): New procedure.
42738
42739         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
42740         ensure that the alignment of objects with address clauses is
42741         appropriate, and raise PE if not.
42742
42743         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
42744         Exp_Pakd.Known_Aligned_Enough
42745
42746         * mdllfile.ads: Minor reformatting
42747
42748         * mlib-fil.ads: Minor reformatting
42749
42750 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42751
42752         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
42753         fix to any component reference if enclosing record has non-standard
42754         representation.
42755
42756 2001-12-12  Vincent Celier  <celier@gnat.com>
42757
42758         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
42759         Iteration
42760
42761 2001-12-12  Ed Schonberg  <schonber@gnat.com>
42762
42763         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
42764         sem_attr.
42765
42766 2001-12-12  Robert Dewar  <dewar@gnat.com>
42767
42768         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
42769
42770 2001-12-12  Emmanuel Briot  <briot@gnat.com>
42771
42772         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
42773         and it adds dependencies to system.io.
42774
42775 2001-12-12  Pascal Obry  <obry@gnat.com>
42776
42777         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
42778         variable name.
42779
42780 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42781
42782         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
42783         that is the parent of other generics, the instance body replaces the
42784         instance node.  Retrieve the instance of the spec, which is the one
42785         that is visible in clients and within the body.
42786
42787 2001-12-11  Vincent Celier  <celier@gnat.com>
42788
42789         * gnatmain.adb: Initial version.
42790
42791         * gnatmain.ads: Initial version.
42792
42793         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
42794
42795         * snames.adb: Updated to match snames.ads.
42796
42797         * snames.ads: Added Gnatstub.
42798
42799 2001-12-11  Vincent Celier  <celier@gnat.com>
42800
42801         * prj-attr.adb (Initialization_Data): Change name from
42802         Initialisation_Data.
42803
42804 2001-12-11  Emmanuel Briot  <briot@gnat.com>
42805
42806         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
42807         + and * applied to backslashed expressions like \r.
42808
42809 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
42810
42811         * g-os_lib.ads: String_List type added, Argument_List type is now
42812         subtype of String_List.
42813
42814 2001-12-11  Robert Dewar  <dewar@gnat.com>
42815
42816         * g-os_lib.ads: Change copyright to FSF
42817         Add comments for String_List type
42818
42819 2001-12-11  Vincent Celier  <celier@gnat.com>
42820
42821         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
42822         string to the buffer).
42823
42824 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42825
42826         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
42827         sem_attr.
42828
42829         * sem_attr.adb: Simplify previous fix for Address.
42830         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
42831         to avoid anomalies where the bound of the type appears to raise
42832         constraint error.
42833
42834 2001-12-11  Robert Dewar  <dewar@gnat.com>
42835
42836         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
42837         handled.
42838
42839 2001-12-11  Ed Schonber   <schonber@gnat.com>
42840
42841         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
42842         renamed unit before checking for recursive instantiations.
42843
42844 2001-12-11  Emmanuel Briot  <briot@gnat.com>
42845
42846         * prj.ads: Add comments for some of the fields.
42847
42848 2001-12-11  Robert Dewar  <dewar@gnat.com>
42849
42850         * lib-xref.adb (Output_Refs): Don't output type references outside
42851         the main unit if they are not otherwise referenced.
42852
42853 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42854
42855         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
42856         code and diagnose additional illegal uses
42857
42858         * sem_util.adb (Is_Object_Reference): An indexed component is an
42859         object only if the prefix is.
42860
42861 2001-12-11  Vincent Celier  <celier@gnat.com>
42862
42863         * g-diopit.adb: Initial version.
42864
42865         * g-diopit.ads: Initial version.
42866
42867         * g-dirope.adb:
42868         (Expand_Path): Avoid use of Unbounded_String
42869         (Find, Wildcard_Iterator): Moved to child package Iteration
42870
42871         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
42872
42873 2001-12-11  Robert Dewar  <dewar@gnat.com>
42874
42875         * sem_attr.adb: Minor reformatting
42876
42877 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42878
42879         * sem_ch3.adb: Clarify some ???.
42880
42881 2001-12-11  Robert Dewar  <dewar@gnat.com>
42882
42883         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
42884         Exp_Pakd.Known_Aligned_Enough
42885
42886         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
42887         version is moved to Exp_Ch13.
42888
42889 2001-12-11  Robert Dewar  <dewar@gnat.com>
42890
42891         * einfo.ads: Minor reformatting
42892
42893         * exp_ch5.adb: Add comment for previous.change
42894
42895         * ali.adb: New interface for extended typeref stuff.
42896
42897         * ali.ads: New interface for typeref stuff.
42898
42899         * checks.adb (Apply_Alignment_Check): New procedure.
42900
42901         * debug.adb: Add -gnatdM for modified ALI output
42902
42903         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
42904
42905         * lib-xref.adb: Extend generation of <..> notation to cover
42906         subtype/object types. Note that this is a complete rewrite,
42907         getting rid of the very nasty quadratic algorithm previously
42908         used for derived type output.
42909
42910         * lib-xref.ads: Extend description of <..> notation to cover
42911         subtype/object types. Uses {..} for these other cases.
42912         Also use (..) for pointer types.
42913
42914         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
42915
42916         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
42917         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
42918
42919 2001-12-11  Vincent Celier  <celier@gnat.com>
42920
42921         * gnatcmd.adb:
42922         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
42923         Changed /BIND_ONLY to /ACTIONS=BIND
42924         Changed /LINK_ONLY to /ACTIONS=LINK
42925
42926 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42927
42928         * sem_ch8.adb (Find_Selected_Component): improved search for a
42929         candidate package in case of error.
42930
42931         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
42932         chain back on scope stack before reinstalling use clauses.
42933
42934         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
42935         is enabled, do not kill the code for the condition, to preserve
42936         warning.
42937
42938 2001-12-11  Robert Dewar  <dewar@gnat.com>
42939
42940         * checks.adb (Insert_Valid_Check): Apply validity check to expression
42941         of conversion, not to result of conversion.
42942
42943 2001-12-11  Ed Schonberg  <schonber@gnat.com>
42944
42945         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
42946         before freezing parent. If the declarations are mutually recursive,
42947         an access to the current record type may be frozen before the
42948         derivation is complete.
42949
42950 2001-12-05  Vincent Celier  <celier@gnat.com>
42951
42952         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
42953         -c /COMPILE_ONLY, -l /LINK_ONLY
42954
42955         * opt.ads:
42956         (Bind_Only): New Flag
42957         (Link_Only): New flag
42958
42959         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
42960         and -l (Link_Only)
42961
42962         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
42963
42964         * make.adb:
42965         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
42966         (Gnatmake): Set the step flags. Only perform a step if the
42967         corresponding step flag is True.
42968         (Scan_Make_Arg): Reset the bind and link step flags when -u
42969         or -gnatc has been specified.
42970
42971 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42972
42973         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
42974         get bounds from right operand.
42975
42976         * sem_eval.adb: Minor reformatting
42977
42978         * exp_util.adb (Make_Literal_Range): use bound of literal rather
42979         than Index'First, its lower bound may be different from 1.
42980
42981         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
42982         and C48009J
42983
42984 2001-12-05  Vincent Celier  <celier@gnat.com>
42985
42986         * prj-nmsc.adb Minor reformatting
42987
42988         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
42989         set and libraries are not supported.
42990
42991 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42992
42993         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
42994         private view explicitly, so the back-end can treat as a global
42995         when appropriate.
42996
42997 2001-12-05  Ed Schonberg  <schonber@gnat.com>
42998
42999         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
43000          unit, always replace instance node with new body, for ASIS use.
43001
43002 2001-12-05  Vincent Celier  <celier@gnat.com>
43003
43004         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
43005         libraries are not supported and both attributes Library_Name and
43006         Library_Dir are specified.
43007
43008         * prj-proc.adb (Expression): Set location of Result to location of
43009         first term.
43010
43011         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
43012         (prj-nmsc is now importing MLib.Tgt)
43013
43014         * prj-proc.adb: Put the change indicated above that was forgotten.
43015
43016 2001-12-05  Robert Dewar  <dewar@gnat.com>
43017
43018         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
43019
43020 2001-12-05  Ed Schonberg  <schonber@gnat.com>
43021
43022         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
43023         constraint, introduce explicit subtype declaration and derive from it.
43024
43025         * sem_ch3.adb: Minor reformatting
43026
43027 2001-12-05  Robert Dewar  <dewar@gnat.com>
43028
43029         * checks.adb (Determine_Range): Increase cache size for checks.
43030         Minor reformatting
43031
43032         * exp_ch6.adb: Minor reformatting
43033         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
43034         a parameter whose root type is System.Address, since treating such
43035         subprograms as pure in the code generator is almost surely a mistake
43036         that will lead to unexpected results.
43037
43038         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
43039         change handling of conversions.
43040
43041         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
43042
43043 2001-12-05  Ed Schonberg  <schonber@gnat.com>
43044
43045         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
43046         aggregate with static wrong size, attach generated Raise node to
43047         declaration.
43048
43049 2001-12-05  Robert Dewar  <dewar@gnat.com>
43050
43051         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
43052         Fixes compilation abandoned bomb in B24009B.
43053
43054 2001-12-05  Ed Schonberg  <schonber@gnat.com>
43055
43056         * sem_ch12.adb:
43057         Document use of Associated_Node on Selected_Components.
43058         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
43059         to clarify use of untyped descendant fields.
43060
43061 2001-12-05  Robert Dewar  <dewar@gnat.com>
43062
43063         * prj-dect.ads: Add ??? comment
43064         Add 2001 to copyright notice (was not done in after all)
43065
43066         * prj-part.adb: Minor reformatting. Reword one awkward error message.
43067
43068         * prj.ads: Minor reformatting throughout, and add some ??? comments
43069
43070         * snames.ads: Minor reformatting
43071
43072 2001-12-05  Geert Bosch  <bosch@gnat.com>
43073
43074         * snames.adb: Autoupdate
43075
43076 2001-12-05  Vincent Celier  <celier@gnat.com>
43077
43078         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
43079
43080         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
43081
43082         * prj-env.adb: Minor comment changes (modifying -> extends).
43083
43084         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
43085
43086         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
43087         Tok_Extends.
43088
43089         * prj.adb (Initialize): Change Modifying to Extends.
43090
43091         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
43092
43093         * prj.ads: Minor comment change (Modifying -> extending).
43094
43095         * snames.ads: Change modifying to extends.
43096
43097 2001-12-05  Robert Dewar  <dewar@gnat.com>
43098
43099         * sem_warn.adb: Remove stuff for conditionals, we are not going to
43100         do this after all.
43101
43102         * sem_warn.ads: Remove stuff for conditionals, we are not going to
43103         do this after all.  Add 2001 to copyright notice
43104
43105 2001-12-04  Geert Bosch  <bosch@gnat.com>
43106
43107         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
43108
43109 2001-12-04  Robert Dewar  <dewar@gnat.com>
43110
43111         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
43112         location if we already have errors. Stops some cases of cascaded
43113         errors.
43114
43115         * errout.adb: Improve comment.
43116
43117 2001-12-04  Robert Dewar  <dewar@gnat.com>
43118
43119         * sem_ch12.adb:
43120         (Analyze_Formal_Type_Definition): Defend against Error.
43121         (Analyze_Formal_Subprogram): Defend against Error.
43122
43123         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
43124         remove following semicolon if present. Removes cascaded error.
43125
43126 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
43127
43128         * bindgen.adb:
43129         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
43130          exceptions equals 0.
43131         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
43132         Fixes PIWG E tests (which have to be run with -gnatL).
43133
43134 2001-12-04  Robert Dewar  <dewar@gnat.com>
43135
43136         * einfo.ads: Minor reformatting
43137
43138 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43139
43140         * einfo.ads: Block_Node points to the identifier of the block, not to
43141         the block node itself, to preserve the link when the block is
43142         rewritten, e.g. within an if-statement with a static condition.
43143
43144         * inline.adb (Cleanup_Scopes): recover block statement from block
43145         entity using new meaning of Block_Node.
43146
43147         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
43148         identifier of block node, rather than to node itself.
43149
43150 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
43151
43152         * layout.adb:
43153         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
43154         (Discrimify): Go back to setting the Etypes of the selected component
43155         because the Vname component does not exist at this point and will
43156         fail name resolution. Also set Analyzed.
43157         Remove with and use of Sem_Res.
43158
43159 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
43160
43161         * Makefile.in: (HIE_SOURCES): add s-fat*.
43162
43163 2001-12-04  Robert Dewar  <dewar@gnat.com>
43164
43165         * sem_attr.adb:
43166         (Compile_Time_Known_Attribute): New procedure.
43167         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
43168          proper range check.
43169
43170 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43171
43172         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
43173         processing discriminants to diagnose illegal default values.
43174
43175 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43176
43177         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
43178         access discriminant within a type extension that constrains its
43179         parent discriminants.
43180
43181 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43182
43183         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
43184         is malformed, use instance of Any_Id to allow analysis to proceed.
43185
43186         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
43187         type definition is illegal.
43188         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
43189         misplaced.
43190
43191 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43192
43193         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
43194         constants.
43195
43196 2001-12-04  Robert Dewar  <dewar@gnat.com>
43197
43198         * errout.adb: Minor reformatting
43199
43200 2001-12-04  Robert Dewar  <dewar@gnat.com>
43201
43202         * exp_util.adb: Minor reformatting from last change
43203
43204         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
43205         which is a rewriting of an expression, traverse the original
43206         expression to remove warnings that may have been posted on it.
43207
43208 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43209
43210         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
43211         record that has other packed components.
43212
43213 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
43214
43215         * adaint.c: Minor cleanups.
43216
43217 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
43218
43219         * adaint.c: Do not use utime.h on vxworks.
43220
43221 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
43222
43223         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
43224         more confusion than it solves.
43225
43226 2001-12-04  Geert bosch  <bosch@gnat.com>
43227
43228         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
43229
43230 2001-12-04  Geert Bosch  <bosch@gnat.com>
43231
43232         * Makefile.in (update-sources): New target.
43233         For use by gcc_release script.
43234
43235 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43236
43237         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
43238         a configuration pragma, it is now legal wherever a pragma can appear.
43239
43240 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
43241
43242         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
43243         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
43244         is now @CROSS@ -DIN_GCC; update comment.
43245
43246 2001-12-04  Robert Dewar  <dewar@gnat.com>
43247
43248         * einfo.adb (Has_Pragma_Pure_Function): New flag.
43249         Fix problem that stopped ceinfo from working
43250
43251         * einfo.ads (Has_Pragma_Pure_Function): New flag.
43252
43253         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
43254
43255 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
43256
43257         * gnatchop.adb:
43258         (File_Time_Stamp): New procedure.
43259         (Preserve_Mode): New boolean.
43260         (Write_Unit): Pass time stamp.
43261         Implement -p switch (preserve time stamps).
43262
43263         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
43264
43265         * gnatchop.adb: Do usage info for -p switch
43266
43267         * adaint.h (__gnat_set_file_time_name): New function
43268
43269         * adaint.c (__gnat_set_file_time_name): Implement
43270
43271         * adaint.h: Fix typo
43272
43273 2001-12-03  Robert Dewar  <dewar@gnat.com>
43274
43275         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
43276         have Associated_Node.
43277
43278 2001-12-03  Robert Dewar  <dewar@gnat.com>
43279
43280         * prj-proc.adb: Minor reformatting
43281
43282         * make.adb: Minor reformatting
43283
43284 2001-12-03  Geert Bosch  <bosch@gnat.com>
43285
43286         * make.adb: Minor reformatting.
43287
43288 2001-12-03 Robert Dewar  <dewar@gnat.com>
43289
43290         * sem_ch12.adb: Minor reformatting
43291
43292 2001-12-03  Ed Schonberg  <schonber@gnat.com>
43293
43294         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
43295         push Standard on the stack before analyzing the instance body,
43296         in order to have a clean visibility environment.
43297
43298         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
43299
43300 2001-12-03  Ed Schonberg  <schonber@gnat.com>
43301
43302         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
43303         instantiation of a body that contains an inlined body.
43304
43305 2001-12-03  Ed Schonberg  <schonber@gnat.com>
43306
43307         * sem_ch12.adb:
43308         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
43309         to prevent freezing within formal packages.
43310         (Freeze_Subprogram_Body): If body comes from another instance that
43311         appeared before its own body, place freeze node at end of current
43312         declarative part, to prevent a back-end crash.
43313         (Inline_Instance_Body): Handle properly a package instance within
43314         a subprogram instance that is a child unit.
43315
43316 2001-12-01  Graham Stott  <grahams@redhat.com>
43317
43318         * Makefile.in (misc.o): Add missing $(srcdir) prefix
43319         and add optabs.h dependency.
43320
43321         * misc.c: Include optabs.h
43322         (gnat_tree_code_type): Make static and const.
43323         (gnat_tree_code_length): Likewise.
43324         (gnat_tree_code_name): Likewise.
43325         (update_setjmp_buf): Obtain operands mode from insn_data.
43326
43327 2001-11-29  Richard Henderson  <rth@redhat.com>
43328
43329         * init.c: Remove obsolete dwarf2 frame.h section.
43330
43331 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
43332
43333         * Make-lang.in (ada.generated-manpages): New dummy target.
43334
43335 2001-11-29  Ed Schonberg  <schonber@gnat.com>
43336
43337         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
43338         into Command, an array conversion is illegal here. Uncovered by
43339         ACATS B460005.
43340
43341 2001-11-28  Geert Bosch  <bosch@gnat.com>
43342
43343         * init.c: Minor whitespace changes.
43344
43345 2001-11-28  Doug Rupp  <rupp@gnat.com>
43346
43347         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
43348         signal stack.
43349
43350 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
43351
43352         * misc.c (gnat_expand_constant): Move declaration above
43353         definition of lang_hooks.
43354         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
43355         (gnat_init): lang_expand_constant no longer exists.
43356
43357         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
43358         always have vprintf.
43359         (gnat_init): Always call set_internal_error_function.
43360
43361 2001-11-27  Andreas Jaeger  <aj@suse.de>
43362
43363         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
43364
43365 2001-11-27  Laurent Guerby  <guerby@acm.org>
43366
43367         * Makefile.in: Regenerate Ada dependencies.
43368
43369 2001-11-26  Richard Henderson  <rth@redhat.com>
43370
43371         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
43372         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
43373         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
43374
43375 2001-11-25  Laurent Guerby  <guerby@acm.org>
43376
43377         * sysdep.c (rts_get_*): Fix style.
43378
43379 2001-11-19  Laurent Guerby  <guerby@acm.org>
43380
43381         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
43382         since it is of no apparent use and cause warnings.
43383
43384 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
43385
43386         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
43387         static too.
43388         (gnat_init): Don't return NULL.
43389         (finish_parse): Remove.
43390
43391 2001-11-17  Laurent Guerby  <guerby@acm.org>
43392
43393         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
43394         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
43395         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
43396         * lang-spec.h: Add missing struct field to silence warnings.
43397         * sysdep.c (rts_get_*): Provide K&R prototype.
43398         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
43399         * traceback.c (Unlock_Task, Lock_Task): Likewise.
43400         * tracebak.c (__gnat_backtrace): Remove unused variable.
43401         * utils.c (end_subprog_body): Move to K&R style.
43402
43403 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
43404
43405         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
43406
43407 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
43408
43409         * misc.c (gnat_init): Change prototype.  Include the
43410         functionality of the old init_parse and init_decl_processing.
43411         (gnat_init_decl_processing): New prototype.
43412         (init_parse): Remove.
43413         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
43414
43415 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
43416
43417         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
43418         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
43419         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
43420         set_yydebug): Remove.
43421
43422 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
43423
43424         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
43425         (struct lang_hooks): Constify.
43426         (language_string, lang_identify): Remove.
43427         * utils.c (init_decl_processing): Update.
43428
43429 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
43430
43431         * misc.c: Include langhooks-def.h.
43432         * Makefile.in: Update.
43433
43434 2001-10-30  Robert Dewar  <dewar@gnat.com>
43435
43436         * style.adb:
43437         (Check_Identifier): Rewrite circuit to be compatible with use of letters
43438         in the upper half of ASCII.
43439         (Check_Identifier): Minor reformatting
43440
43441 2001-10-30  Geert Bosch  <bosch@gnat.com>
43442
43443         * (Associated_Node, Set_Associated_Node): Do not check for
43444         Freeze_Entity.
43445
43446 2001-10-30  Robert Dewar  <dewar@gnat.com>
43447
43448         * a-reatim.ads: Minor reformatting
43449
43450 2001-10-30  Robert Dewar  <dewar@gnat.com>
43451
43452         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
43453         undocumented declarations.
43454
43455 2001-10-30  Pascal Obry  <obry@gnat.com>
43456
43457         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
43458         to the binder and linker.
43459         Minor style fix.
43460
43461         * mdll.ads: Fix layout.  Update copyright notice.
43462
43463         * mdll.adb: Fix layout.  Update copyright notice.
43464
43465 2001-10-30  Robert Dewar  <dewar@gnat.com>
43466
43467         * usage.adb: Minor fix to output for -gnaty.
43468
43469 2001-10-30  Ed Schonberg  <schonber@gnat.com>
43470
43471         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
43472         to accommodate all its possible values.
43473
43474         * a-reatim.adb (Split): Special-case handling of Time_Span_First
43475         and of small absolute values of T.
43476
43477 2001-10-30  Richard Kenner  <kenner@gnat.com>
43478
43479         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
43480         set_mem_attributes since not needed and wrong if RESULT if a REG;
43481         fixes ACATS failures.
43482
43483 2001-10-30  Geert Bosch  <bosch@gnat.com>
43484
43485         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
43486         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
43487
43488 2001-10-30  Robert Dewar  <dewar@gnat.com>
43489
43490         * bindusg.adb: Undocument -f switch.
43491
43492         * gnatcmd.adb: Remove /FULL_ELABORATION.
43493
43494         * opt.ads (Force_RM_Elaboration_Order): Document that this is
43495         obsolescent.
43496
43497         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
43498
43499         * gnatbind.adb: Minor update of warning msg.
43500
43501 2001-10-30  Vincent Celier  <celier@gnat.com>
43502
43503         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
43504         for project file switches (-P (/PROJECT_FILE=),
43505          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
43506         or MEDIUM or HIGH)
43507
43508 2001-10-30  Geert Bosch  <bosch@gnat.com>
43509
43510         * decl.c: Minor whitespace fixes.
43511
43512 2001-10-30  Richard Kenner  <kenner@gnat.com>
43513
43514         * utils2.c (build_allocator): Test for SIZE overflow in array case too
43515
43516 2001-10-30  Geert Bosch  <bosch@gnat.com>
43517
43518         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
43519         Found due to GCC 3.0 warning of using uninitialized value.
43520
43521         * layout.adb:
43522         (Get_Max_Size): Use variant record for tracking value/expression.
43523          Makes logic clearer and prevents warnings for uninitialized variables.
43524         (Layout_Array_Type): Use variant record for tracking value/expression.
43525          Makes logic clearer and prevents warnings for uninitialized variables.
43526
43527 2001-10-30  Robert Dewar  <dewar@gnat.com>
43528
43529         * lib.adb: Minor reformatting
43530
43531         * s-taprop.ads: Minor reformatting
43532
43533 2001-10-29  Laurent Guerby  <guerby@acm.org>
43534
43535         * init.c:
43536         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
43537         const.
43538         (_gnat_error_handler): Make MSG const.
43539
43540 2001-10-29  Richard Kenner  <kenner@gnat.com>
43541
43542         * sysdep.c: Fix localtime_r problem on LynxOS.
43543         Also remove #elif to avoid warnings.
43544
43545         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
43546         used by this.
43547
43548         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
43549
43550 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
43551
43552         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
43553         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
43554         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
43555         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
43556         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
43557         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
43558         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
43559         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
43560         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
43561         types.ads, urealp.adb: Fix spelling errors.
43562
43563 2001-10-27  Laurent Guerby  <guerby@acm.org>
43564
43565         * trans.c (gigi): Fix non determinism leading to bootstrap
43566         comparison failures for debugging information.
43567
43568 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
43569
43570         * gnat_rm.texi: Use @./@: where appropriate.
43571
43572 2001-10-26  Robert Dewar  <dewar@gnat.com>
43573
43574         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
43575
43576 2001-10-26  Richard Kenner  <kenner@gnat.com>
43577
43578         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
43579
43580 2001-10-26  Richard Kenner  <kenner@gnat.com>
43581
43582         * decl.c (validate_size): Modify message for bad size to avoid
43583         implication that compiler is modifying the size.
43584
43585 2001-10-26  Robert Dewar  <dewar@gnat.com>
43586
43587         * prj-util.adb: Minor reformatting. Fix bad header format.
43588
43589 2001-10-26  Robert Dewar  <dewar@gnat.com>
43590
43591         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
43592
43593         * sinfo.ads: Clarify use of Associated_Node (documentation only).
43594
43595         * sem_ch12.adb: Change Node4 to Associated_Node. Change
43596         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
43597         much more narrowly in places where needed. These are cleanups.
43598
43599 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
43600
43601         * 5zosinte.ads (null_pthread): new constant.
43602
43603         * 5ztaprop.adb:
43604         (Initialize_TCB): Initialize thread ID to null, to be able to verify
43605          later that this field has been set.
43606         (Finalize_TCB): ditto.
43607         (Suspend_Task): Verify that the thread ID is not null before using it.
43608         (Resume_Task): ditto.
43609
43610         * s-tasdeb.adb:
43611         (Resume_All_Tasks): Lock the tasks list before using it.
43612         (Suspend_All_Tasks): ditto.
43613
43614 2001-10-26  Richard Kenner  <kenner@gnat.com>
43615
43616         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
43617         Make constant variant of designated type for Is_Access_Constant.
43618         Call update_pointer_to with main variant.
43619
43620         * trans.c (process_freeze_entity, process_type):
43621         Call update_pointer_to on main variant.
43622
43623         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
43624         If main variant, update all other variants.
43625
43626         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
43627         TREE_STATIC.
43628
43629 2001-10-26  Robert Dewar  <dewar@gnat.com>
43630
43631         * prj-util.adb: Minor reformatting
43632
43633 2001-10-26  Robert Dewar  <dewar@gnat.com>
43634
43635         * prj-util.adb: Minor reformatting
43636
43637 2001-10-26  Robert Dewar  <dewar@gnat.com>
43638
43639         * prj-attr.adb: Minor reformatting throughout
43640
43641 2001-10-26  Robert Dewar  <dewar@gnat.com>
43642
43643         * prj-attr.ads: Minor reformatting
43644         Add ??? comment (this whole spec has almost no comments)
43645
43646 2001-10-26  Vincent Celier  <celier@gnat.com>
43647
43648         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
43649         ("//") that precede the drive letter on Interix.
43650
43651 2001-10-26  Geert Bosch  <bosch@gnat.com>
43652
43653         * gnat_rm.texi: Add GNAT Reference Manual.
43654
43655 2001-10-25  Robert Dewar  <dewar@gnat.com>
43656
43657         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
43658         is Error. Similar change for other renaming cases.
43659
43660 2001-10-25  Robert Dewar  <dewar@gnat.com>
43661
43662         * s-atacco.ads: Add pragma Inline_Always for functions.
43663         Fix header format. Add copyright 2001
43664
43665 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43666
43667         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
43668         return Error rather than Empty so that analysis can proceed.
43669
43670 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43671
43672         * sem_util.adb (Enter_Name): better handling of cascaded error
43673         messages when a unit appears in its own context.
43674
43675 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43676
43677         * sem_util.adb (Defining_Entity): in case of error, attach created
43678         entity to specification, so that semantic analysis can proceed.
43679
43680 2001-10-25  Robert Dewar  <dewar@gnat.com>
43681
43682         * sem_util.adb
43683         (Defining_Entity): Deal with Error.
43684         (Process_End_Label): Deal with bad end label for.
43685
43686 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43687
43688         * sem_elab.adb (Check_A_Call): refine message when call is in an
43689         instance but callee is not declared in the generic unit.
43690
43691 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43692
43693         * sem_elab.adb (Check_A_Call): check for renaming before finding the
43694         enclosing unit, which may already be different from the calling unit.
43695
43696 2001-10-25  Geert Bosch  <bosch@gnat.com>
43697
43698         * 4gintnam.ads: fix header format.
43699
43700 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43701
43702         * sem_res.adb (Resolve_Call): if the call is actually an indexing
43703         operation on the result of a parameterless call, perform elaboration
43704         check after the node has been properly rewritten.
43705
43706         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
43707         inlined within the generic tree, the defining identifier is not a
43708         compilation_unit.
43709
43710 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43711
43712         * sem_res.adb (Resolve): special-case resolution of Null in an
43713          instance or an inlined body to avoid view conflicts.
43714
43715         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
43716          compatibility by retrieving the access type of the generic copy.
43717
43718 2001-10-25  Robert Dewar  <dewar@gnat.com>
43719
43720         * sem_ch3.adb:
43721         (Analyze_Number_Declaration): Handle error expression.
43722         (Signed_Integer_Type_Declaration): Handle error bound.
43723         (Analyze_Subtype_Indication): Handle error range.
43724
43725         * sem_util.adb (Get_Index_Bounds): Check for Error.
43726
43727 2001-10-25  Robert Dewar  <dewar@gnat.com>
43728
43729         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
43730         in no run time mode.
43731
43732 2001-10-25  Pascal Obry  <obry@gnat.com>
43733
43734         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
43735         mode case for ALLOC case.
43736
43737         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
43738         all platforms. Improvement of last change.
43739
43740 2001-10-25  Robert Dewar  <dewar@gnat.com>
43741
43742         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
43743
43744 2001-10-25  Geert Bosch  <bosch@gnat.com>
43745
43746         * osint.adb (Is_Relative): Remove duplicate.
43747
43748 2001-10-25  Pascal Obry  <obry@gnat.com>
43749
43750         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
43751         pathnames in UNIX and DOS style with drive letter.
43752         (Is_Relative): new routine.
43753
43754         * osint.adb: Minor reformatting
43755
43756         * osint.adb (Is_Relative): implementation using
43757         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
43758
43759 2001-10-25  Pascal Obry  <obry@gnat.com>
43760
43761         * g-dirope.adb (Basename): correctly compute offset between the
43762         original Path and the translated one.
43763
43764         * g-dirope.adb: (Base_Name): add some comments.
43765
43766 2001-10-25  Robert Dewar  <dewar@gnat.com>
43767
43768         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
43769         in HIE mode, avoids compilation abandoned message
43770
43771         * exp_imgv.adb: Correct typo in previous change
43772
43773         * exp_imgv.adb: Correct typo in previous change (not my day!)
43774
43775 2001-10-25  Robert Dewar  <dewar@gnat.com>
43776
43777         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
43778
43779 2001-10-25  Pascal Obry  <obry@gnat.com>
43780
43781         * g-awk.ads: Move all pragma inlines next to the routine
43782          declarations. This is more uniform with other GNAT spec.
43783
43784 2001-10-22  Geert Bosch  <bosch@gnat.com>
43785
43786         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
43787
43788 2001-10-19  Geert Bosch  <bosch@gnat.com>
43789
43790         * Makefile.in (tools, gnattools): Remove gnatmem.
43791
43792 2001-10-17  Richard Henderson  <rth@redhat.com>
43793
43794         * Makefile.in (misc.o): Depend on langhooks.h.
43795         * misc.c: Include it.
43796         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
43797         (LANG_HOOKS_DECODE_OPTION): New.
43798         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
43799
43800 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
43801
43802         * trans.c (tree_transform): Adjust to recent change in
43803         expand_asm_operands to implement named asm operands.
43804
43805 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43806
43807         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
43808         renaming of discriminant for mutable record type.
43809
43810 2001-10-11  Robert Dewar  <dewar@gnat.com>
43811
43812         * validsw.adb: Properly save -gnatVn status.
43813
43814 2001-10-11  Robert Dewar  <dewar@gnat.com>
43815
43816         * usage.adb: Add lines for V switch.
43817
43818         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
43819         (/VALIDITY_CHECKING).
43820
43821 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43822
43823         * sem_type.adb (Add_One_Interp): an operator for a type declared in
43824         an extension of System is known to be visible.
43825
43826 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43827
43828         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
43829         properly. Fixes regression on ACATS C34005G.
43830
43831 2001-10-11  Robert Dewar  <dewar@gnat.com>
43832
43833         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
43834         loop in generic instance, since this is likely not very useful.
43835
43836 2001-10-11  Robert Dewar  <dewar@gnat.com>
43837
43838         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
43839         the error message for high integrity mode.
43840
43841         * rtsfind.adb (RTE): Give message if we try to find an entity that
43842         is not available in high integrity mode.
43843
43844         * rtsfind.ads:
43845         (OK_To_Use_In_HIE_Mode): New array.
43846         (RTE): May return Empty in high integrity mode.
43847
43848         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
43849         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
43850
43851         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
43852         unit if not inlined always and in no runtime mode. Fixes problem
43853         caused by new Rtsfind changes.
43854
43855         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
43856         body is deleted.
43857
43858         * rtsfind.adb (RTE): Make sure we do not try to load unit after
43859         giving message for entity not available in high integrity mode.
43860
43861 2001-10-11  Pascal Obry  <obry@gnat.com>
43862
43863         * impunit.adb: Add GNAT.CRC32.
43864
43865 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43866
43867         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
43868         properly the case where one universal operand in a non-static
43869         exponentiation of a real literal.
43870
43871 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43872
43873         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
43874         clause, return the gobal finalization list, for lack of anthing else.
43875
43876 2001-10-11  Ed Schonberg  <schonber@gnat.com>
43877
43878         * exp_ch7.adb (Make_Transient_Block): if statement is within
43879         exception handler, always use new transient scope to place Clean
43880         procedure.
43881
43882 2001-10-11  Pascal Obry  <obry@gnat.com>
43883
43884         * Makefile.in:
43885         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43886         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
43887         (GNATLS_RTL_OBJS): add g-crc32.o
43888         (GNATMAKE_RTL_OBJS): add g-crc32.o
43889
43890         * ali-util.adb:
43891         (CRC_Match): new function.
43892         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
43893         instead of the previous simple checksum algorithm.
43894         (Time_Stamp_Mismatch): use CRC_Match for comparison.
43895         (Set_Source_Table): idem.
43896
43897         * ali-util.ads:
43898         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
43899         instead of simple checksum.
43900         (CRC_Match): new function.
43901         (CRC_Error): new constant.
43902
43903         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
43904         a CRC now and not a simple checksum. A CRC uses lower-case hex
43905         letters, fixes ambiguity in parsing.
43906
43907         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
43908         is what this variable will store.
43909
43910         * bcheck.adb: Change reference to chechsum in comments by CRC.
43911         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
43912         rename All_Checksum_Match to All_CRC_Match. Change due to API
43913         renaming since now GNAT does not use a simple checksum but a
43914         CRC using GNAT.CRC32.
43915
43916         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
43917         now and not anymore a simple checksum.
43918
43919         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
43920         places.
43921
43922         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
43923
43924         * scans.adb:
43925         (Restore_Scan_State): rename Checksum to CRC.
43926         (Save_Scan_State): idem.
43927
43928         * scans.ads:
43929         With GNAT.CRC32.
43930         (Checksum): rename to CRC.
43931         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
43932
43933         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
43934         GNAT.CRC32).  Update copyright notice.
43935
43936         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
43937         GNAT.CRC32).  Update copyright notice.
43938
43939         * scn.adb:
43940         (Accumulate_Checksum): removed.
43941         (Update): new procedure. Add a wide-character into the CRC.
43942
43943         * sinput-l.adb:
43944         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
43945         (Load_File): fix initialization of S (change Source_Checksum to
43946         Source_CRC)
43947
43948         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
43949         Source_CRC in S initialization.
43950
43951         * sinput.adb (Source_Checksum): renamed to Source_CRC.
43952
43953         * sinput.ads (Source_Checksum): renamed to Source_CRC.
43954         Update comments for the CRC.
43955
43956         * types.adb (Hex): Use lowercase for the letter part.
43957
43958         * types.ads (Get_Hex_String): Returns the hexadecimal representation
43959         for a word. This is currently used only for CRC. In previous version,
43960         the checksum was using a representation with all letter being
43961         upper-case. With the new implementation (using CRC) we do not remove
43962         the 32th bit of the CRC, so we can have an upper-case starting letter
43963         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
43964         It is ambigous since the CRC was optional and could be followed by
43965         options like EB, EE. So now this routines uses lower-case letter for
43966         the hexadecimal representation. Strange enough only lower case letters
43967         where checked in Scan_ALI (even if this was not a possible case).
43968
43969         * gnatvsn.ads (Library_Version): changed to 3.15a.
43970
43971         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
43972         for the compiler.
43973
43974         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
43975         for the compiler.
43976
43977         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
43978         Add 2001 to copyright notice
43979         (Accumulate_Checksum): Modify to use System.CRC32.
43980
43981         * ali-util.ads: Redo changes of previous revision to continue to use
43982         the word Checksum. Add 2001 to copyright notice.
43983
43984         * ali.adb: Undo some of previous changes, not needed.
43985         Keep the change for lower case letters in the checksum.
43986
43987         * ali.ads: Undo previous change not needed.
43988
43989         * bcheck.adb: Undo most of previous change, not needed.
43990         But do use Checksums_Match for checksum comparison.
43991
43992         * gnatls.adb: Undo most of previous change, not needed.
43993         But do use Checksums_Match for comparing checksums.
43994
43995         * lib-load.adb: Undo previous change, not needed.
43996
43997         * lib-writ.adb: Undo previous change, not needed.
43998
43999         * lib-writ.ads: Document that checksums use lower case,
44000         not upper case letters.
44001
44002         * scans.adb: Undo previous change, not needed
44003
44004         * scans.ads: Undo previous change, not needed.
44005
44006         * scn-nlit.adb: Undo previous changes, not needed.
44007
44008         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
44009
44010         * scn.adb:
44011         (Accumulate_Checksum): Use System.CRC32.
44012         (Initialize_Checksum): New procedure.
44013         Remove other changes of previous revision.
44014
44015         * sinput-p.adb: Undo previous change, not needed.
44016
44017         * sinput.adb: Undo previous change, not needed.
44018
44019         * sinput-l.adb: Undo previous change, not needed.
44020
44021         * sinput.ads: Undo previous change, not needed.  Keep only comment
44022         on new checksum algorithm
44023
44024         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
44025         Also remove a-tags and a-stream from GNAT sources.
44026
44027         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
44028
44029         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
44030
44031 2001-10-11  Geert Bosch  <bosch@gnat.com>
44032
44033         * einfo.h: Regenerate.
44034
44035         * nmake.ads: Regenerate.
44036
44037         * nmake.adb: Regenerate.
44038
44039         * sinfo.h: Regenerate.
44040
44041         * treeprs.adb: Regenerate.
44042
44043 2001-10-10  Geert Bosch  <bosch@gnat.com>
44044
44045         * gnat-style.texi: New file describing coding guidelines for Ada.
44046
44047 2001-10-10  Ed Schonberg  <schonber@gnat.com>
44048
44049         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
44050         is Flag174.
44051
44052 2001-10-10  Geert Bosch  <bosch@gnat.com>
44053
44054         * snames.ads: Add new names for project facility.
44055
44056         * snames.adb: Update to reflect snames.ads changes.
44057
44058         * snames.h: Update to reflect snames.ads changes.
44059
44060 2001-10-10  Vincent Celier  <celier@gnat.com>
44061
44062         * make.adb:
44063         (Add_Switches): reflect the changes for the switches attributes
44064         Default_Switches indexed by the programming language,
44065         Switches indexed by the file name.
44066         (Collect_Arguments_And_Compile): Idem.
44067         Reflect the attribute name changes.
44068
44069         * prj-attr.adb:
44070         (Initialisation_Data): Change the names of some packages and
44071         attributes.
44072         (Initialize): process case insensitive associative arrays.
44073
44074         * prj-attr.ads:
44075         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
44076
44077         * prj-dect.adb:
44078         (Parse_Attribute_Declaration): For case insensitive associative
44079          arrays, set the index string to lower case.
44080
44081         * prj-env.adb:
44082         Reflect the changes of the project attributes.
44083
44084         * prj-nmsc.adb:
44085         Replace Check_Naming_Scheme by Ada_Check and
44086         Language_Independent_Check.
44087
44088         * prj-nmsc.ads:
44089         Replaced Check_Naming_Scheme by 2 procedures:
44090         Ada_Check and Language_Independent_Check.
44091
44092         * prj-proc.adb:
44093         (Process_Declarative_Items): For case-insensitive associative
44094         arrays, set the index string to lower case.
44095         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
44096         Prj.Nmsc.Check_Naming_Scheme.
44097
44098         * prj-tree.adb:
44099         (Case_Insensitive): New function
44100         (Set_Case_Insensitive): New procedure
44101
44102         * prj-tree.ads:
44103         (Case_Insensitive): New function
44104         (Set_Case_Insensitive): New procedure
44105         (Project_Node_Record): New flag Case_Insensitive.
44106
44107         * prj-util.adb:
44108         (Value_Of): new function to get the string value of a single
44109         string variable or attribute.
44110
44111         * prj-util.ads:
44112         (Value_Of): new function to get the string value of a single
44113         string variable or attribute.
44114
44115         * prj.adb:
44116         (Ada_Default_Spec_Suffix): New function
44117         (Ada_Default_Impl_Suffix): New function
44118         Change definitions of several constants to reflect
44119         new components of record types.
44120
44121         * prj.ads:
44122         (Naming_Data): Change several components to reflect new
44123         elements of naming schemes.
44124         (Project_Data): New flags Sources_Present and
44125         Language_Independent_Checked.
44126         (Ada_Default_Spec_Suffix): New function.
44127         (Ada_Default_Impl_Suffix): New function.
44128
44129         * snames.ads:
44130         Modification of predefined names for project manager: added
44131         Implementation, Specification_Exceptions, Implementation_Exceptions,
44132         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
44133         Default_Switches, _Languages, Builder, Cross_Reference,
44134         Finder. Removed Body_Part, Specification_Append, Body_Append,
44135         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
44136         Gnatlink.
44137
44138         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
44139         Add comments.
44140
44141         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
44142         not that it is Nil_Variable_Value.
44143
44144         * prj.ads: Add ??? for uncommented declarations
44145
44146 2001-10-10  Ed Schonberg  <schonber@gnat.com>
44147
44148         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
44149         constant, do not indicate possible modification, so that gigi can
44150         treat it as a bona fide constant.
44151
44152 2001-10-10  Robert Dewar  <dewar@gnat.com>
44153
44154         * sem_prag.adb: Add processing for pragma External.
44155
44156         * snames.ads: Add entry for pragma External.
44157
44158         * par-prag.adb: Add pragma External.
44159
44160         * snames.adb: Updated to match snames.ads.
44161
44162 2001-10-10  Ed Schonberg  <schonber@gnat.com>
44163
44164         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
44165         a dynamic task if the allocator appears in an indexed assignment
44166         or selected component assignment.
44167
44168         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
44169         For a dynamic task in an assignment statement, use target of
44170         assignment to generate meaningful name.
44171
44172 2001-10-10  Ed Schonberg  <schonber@gnat.com>
44173
44174         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
44175         a generic package.
44176
44177         * einfo.ads: Body_Entity is also defined for generic package.
44178         Documentation change only
44179
44180         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
44181         others_choice for a discriminated component initialization,
44182         convert discriminant references into the corresponding discriminals.
44183
44184         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
44185         only if original type is private and expression has to be wrapped
44186         in a conversion.
44187
44188         * checks.adb:
44189         (Apply_Constraint_Check): Do not perform length check
44190         if expression is an aggregate with only an others_choice.
44191         (Length_N_Cond): two references to the same in_parameter
44192         (typically the discriminal in an init_proc) denote the same value.
44193         Two useful optimization uncovered by bugfixes above.
44194
44195 2001-10-10  Robert Dewar  <dewar@gnat.com>
44196
44197         * xeinfo.adb: Change int to char in translation of enumeration types.
44198         This fixes a problem in the C representation of component alignment.
44199         Add 2001 to copyright notice
44200
44201 2001-10-10  Richard Kenner  <kenner@gnat.com>
44202
44203         * decl.c: (validate_size): Do check size of object of integral type
44204         if it is a packed array type.
44205
44206 2001-10-10  Richard Kenner  <kenner@gnat.com>
44207
44208         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
44209         VAR_DECL for constant if not Is_Public but -O0.
44210
44211 2001-10-10  Richard Kenner  <kenner@gnat.com>
44212
44213         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
44214
44215 2001-10-10  Geert Bosch  <bosch@gnat.com>
44216
44217         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
44218         use '/' as switch character, allowing for absolute file names.
44219
44220 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
44221
44222         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
44223         FSF address.
44224
44225 2001-10-08  Geert Bosch  <bosch@gnat.com>
44226
44227         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
44228         Automatically build utilities when files need to be regenerated.
44229
44230 2001-10-08  Geert Bosch  <bosch@gnat.com>
44231
44232         * xsnames.adb: New utility for updating snames.ads and snames.adb
44233
44234 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
44235
44236         * Make-lang.in (ADAFLAGS): Add -W -Wall.
44237         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
44238         (gnat1): Also depend on attribs.o.
44239         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
44240         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
44241         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
44242         (ADAFLAGS): Add -W -Wall.
44243         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
44244         take out CFLAGS.
44245
44246         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
44247         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
44248         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
44249         Use $(ADAC), not $(CC), as compilation command.
44250
44251         (gnattools): Depend directly on tools to build, don't use
44252         recursive make.
44253         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
44254
44255         * einfo.h, sinfo.h: New files (autogenerated).
44256
44257 2001-10-08  Richard Henderson  <rth@redhat.com>
44258
44259         * comperr.adb (Abort_In_Progress): New.
44260         (Compiler_Abort): Use it to prevent recursion.
44261
44262 2001-10-08  Robert Dewar  <dewar@gnat.com>
44263
44264         * atree.adb: Set Error_Posted in Error node, helps error recovery.
44265
44266         * par-endh.adb (Output_End_Expected): We should also not test
44267         Error_Posted on the Error node, since now it is always set.
44268
44269         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
44270         to help error recovery. Part of general work on 9407-004.
44271
44272         * par.adb: Add ??? for misuse of error
44273
44274         * sem_res.adb:
44275         (Resolve): Defend against Error, fixes 9407-003.
44276         (Resolve_Discrete_Subtype_Indication): Defend against Error.
44277
44278         * sinfo.ads (N_Error): Now has Etype field (which will be set
44279         to Any_Type to help error recovery).
44280
44281 2001-10-08  Richard Kenner  <kenner@gnat.com>
44282
44283         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
44284         Consistently set MEM attributes from expression; fixes
44285         bootstrap failure on x86.
44286
44287 2001-10-08  Geert Bosch  <bosch@gnat.com>
44288
44289         * 5oosinte.adb: Add 2001 to copyright notice.
44290
44291 2001-10-08  Geert Bosch  <bosch@gnat.com>
44292
44293         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
44294
44295         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
44296
44297 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
44298
44299         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
44300
44301 2001-10-05  Geert Bosch  <bosch@gnat.com>
44302
44303         * adaint.h: Small formatting fix.
44304
44305 2001-10-04  Geert Bosch  <bosch@gnat.com>
44306
44307         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
44308         Arg is int, not FILE *, in dummy version of functions.
44309
44310         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
44311         Arg is int, not FILE *.
44312
44313 2001-10-04  Geert Bosch  <bosch@gnat.com>
44314
44315         * 3lsoccon.ads: Added file, missed with initial check ins.
44316
44317         * 4lintnam.ads: Fix header format.
44318         Change Linux to GNU/Linux.
44319
44320         * 5iosinte.adb: Change Linux to GNU/Linux.
44321
44322         * 5iosinte.ads: Change Linux to GNU/Linux.
44323
44324         * 5itaprop.adb: Change Linux to GNU/Linux.
44325
44326         * 5itaspri.ads: Change Linux to GNU/Linux.
44327         Update copyright notice.
44328
44329         * 5lintman.adb: Change Linux to GNU/Linux.
44330
44331         * 5lml-tgt.adb: Change Linux to GNU/Linux.
44332
44333         * 5losinte.ads: Change Linux to GNU/Linux.
44334
44335         * 5lsystem.ads: Change Linux to GNU/Linux.
44336
44337         * 5qosinte.adb: Change Linux to GNU/Linux.
44338
44339         * 5qosinte.ads: Change Linux to GNU/Linux.
44340
44341         * 5qparame.ads: Change Linux to GNU/Linux.
44342
44343         * 5qtaprop.adb: Change Linux to GNU/Linux.
44344
44345         * 5qtaspri.ads: Change Linux to GNU/Linux.
44346         Add 2001 to copyright notice.
44347
44348         * 5vintman.ads: Change Linux to GNU/Linux.
44349         Fix header format.  Add 2001 to copyright notice.
44350
44351         * g-soccon.ads: Change Linux to GNU/Linux.
44352
44353         * g-trasym.ads: Change Linux to GNU/Linux.
44354         Add 2001 to copyright notice.
44355
44356         * memtrack.adb: Change Linux to GNU/Linux.
44357
44358         * s-intman.ads: Change Linux to GNU/Linux.
44359         Add 2001 to copyright notice.  Fix header format.
44360
44361         * s-stache.adb: Change Linux to GNU/Linux.
44362
44363         * adaint.c: Change Linux to GNU/Linux.
44364
44365         * cio.c: Change Linux to GNU/Linux.
44366
44367         * cstreams.c: Change Linux to GNU/Linux.
44368
44369         * init.c: Change Linux to GNU/Linux.
44370
44371         * gmem.c: Change Linux to GNU/Linux.
44372
44373         * tracebak.c: Change Linux to GNU/Linux.
44374
44375
44376 2001-10-02  Geert Bosch  <bosch@gnat.com>
44377
44378         * misc.c (insert_default_attributes): Add dummy version.