OSDN Git Service

2009-04-09 Robert Dewar <dewar@adacore.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2009-04-09  Robert Dewar  <dewar@adacore.com>
2
3         * g-comver.adb: Minor reformatting.
4
5 2009-04-09  Thomas Quinot  <quinot@adacore.com>
6
7         * lib-load.ads (Load_Unit): Update documentation.
8
9 2009-04-09  Ed Schonberg  <schonberg@adacore.com>
10
11         * lib-load.adb (Load_Unit): When loading the parent of a child unit
12         named in a with_clause, retain the with_clause to preserve a
13         limited_with indication.
14
15 2009-04-09  Robert Dewar  <dewar@adacore.com>
16
17         * sem_ch7.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_util.adb,
18         exp_ch13.adb, sem_ch6.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb,
19         sem_cat.adb: Code clean up: use Is_Package_Or_Generic_Package where
20         possible to replace an OR of two separate tests.
21
22 2009-04-09  Robert Dewar  <dewar@adacore.com>
23
24         * binderr.adb, errout.adb, errutil.adb: New circuitry for handling
25         Maximum_Messages.
26         
27         * erroutc.adb, erroutc.ads (Warnings_Suppressed): Now tests global
28         warning status as well.
29         
30         * opt.ads (Maximum_Messages): New name for Maximum_Errors.
31         
32         * switch-b.adb, switch-c.adb: Change name Maximum_Errors to
33         Maximum_Messages.
34         
35         * bindusg.adb, usage.adb: Update line for -gnatm switch
36
37         * gnat_ugn.texi: Update documentation for -gnatmnn compiler switch and
38         -mnn binder switch.
39
40 2009-04-09  Robert Dewar  <dewar@adacore.com>
41
42         * sem_ch10.adb: Minor reformatting.
43
44 2009-04-09  Bob Duff  <duff@adacore.com>
45
46         * exp_ch11.adb (Expand_Exception_Handlers, Prepend_Call_To_Handler):
47         Set Sloc of generated nodes for calls to Undefer_Aborts and
48         Save_Occurrence to No_Location, so the debugger ignores them and
49         therefore does not jump back and forth when single stepping.
50
51 2009-04-09  Robert Dewar  <dewar@adacore.com>
52
53         * switch-b.adb: Minor reformatting.
54
55 2009-04-09  Robert Dewar  <dewar@adacore.com>
56
57         * sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, exp_atag.adb, layout.adb,
58         sem_dist.adb, exp_ch7.adb, sem_ch5.adb, sem_type.adb, exp_imgv.adb,
59         exp_util.adb, sem_aux.adb, sem_aux.ads, exp_attr.adb, exp_ch9.adb,
60         sem_ch7.adb, inline.adb, fe.h, sem_ch9.adb, exp_code.adb, einfo.adb,
61         einfo.ads, exp_pakd.adb, checks.adb, sem_ch12.adb, exp_smem.adb,
62         tbuild.adb, freeze.adb, sem_util.adb, sem_res.adb, sem_attr.adb,
63         exp_dbug.adb, sem_case.adb, exp_tss.adb, exp_ch4.adb, exp_ch6.adb,
64         sem_smem.adb, sem_ch4.adb, sem_mech.adb, sem_ch6.adb, exp_disp.adb,
65         sem_ch8.adb, exp_aggr.adb, sem_eval.adb, sem_cat.adb, exp_dist.adb,
66         sem_ch13.adb, exp_strm.adb, lib-xref.adb, sem_disp.adb, exp_ch3.adb:
67         Reorganize einfo/sem_aux, moving routines from einfo to sem_aux
68
69 2009-04-09  Robert Dewar  <dewar@adacore.com>
70
71         * exp_util.adb (Silly_Boolean_Array_Xor_Test): Simplify existing code.
72
73         * atree.h: Add Elist26
74
75         * gnat_ugn.texi: Complete documentation deprecating -gnatN for non-gcc
76         backends.
77
78 2009-04-09  Javier Miranda  <miranda@adacore.com>
79
80         * exp_disp.adb (Export_DT): Addition of a new argument (Index); used to
81         retrieve from the Dispatch_Table_Wrappers list the external name.
82         Addition of documentation.
83         (Make_Secondary_DT): Addition of a new argument (Suffix_Index) that is
84         used to export secondary dispatch tables (in the previous version of
85         the frontend only primary dispatch tables were exported). Addition of
86         documentation.
87         (Import_DT): New subprogram (internal of Make_Tags). Used to import a
88         dispatch table of a given tagged type. 
89         (Make_Tags): Modified to import secondary dispatch tables.
90
91         * sem_ch3.adb (Analyze_Object_Declaration): Code cleanup.
92         (Constant_Redeclaration): Code cleanup.
93
94         * einfo.ads (Dispatch_Table_Wrapper): Renamed to
95         Dispatch_Table_Wrappers.  Update documentation.
96
97         * einfo.adb (Dispatch_Table_Wrapper, Set_Dispatch_Table_Wrapper):
98         Renamed to Dispatch_Table_Wrappers.
99
100         * sem_util.adb (Collect_Interface_Components): Improve handling of
101         private types.
102
103         * atree.ads (Elist26, Set_Elist26): New subprograms
104
105         * atree.adb (Elist26, Set_Elist26): New subprograms
106
107 2009-04-09  Javier Miranda  <miranda@adacore.com>
108
109         * sem_ch3.adb (Build_Derived_Record_Type): Fix typo.
110         (Derive_Progenitor_Subprograms): Handle interfaces in subtypes of
111         tagged types.
112
113 2009-04-09  Robert Dewar  <dewar@adacore.com>
114
115         * s-direio.adb: Minor reformatting
116
117         * exp_ch4.adb (Expand_Concatenate): Avoid overflow checks for String
118
119 2009-04-09  Robert Dewar  <dewar@adacore.com>
120
121         * exp_ch4.adb (Expand_Concatenate): Improve handling of overflow cases
122
123 2009-04-09  Pascal Obry  <obry@adacore.com>
124
125         * a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coinve.ads,
126         s-tpoben.adb, s-tpoben.ads, s-finimp.adb, s-finimp.ads,
127         a-convec.adb, a-convec.ads, a-finali.adb, a-finali.ads,
128         a-filico.ads: Add some missing overriding keywords.
129
130 2009-04-09  Pascal Obry  <obry@adacore.com>
131
132         * a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coorma.ads, a-cihase.adb,
133         a-cihase.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb, a-coorse.ads,
134         a-coormu.adb, a-coormu.ads, a-cohase.adb, a-cohase.ads: Minor
135         reformatting.
136
137 2009-04-09  Ed Schonberg  <schonberg@adacore.com>
138
139         * sem_ch6.adb (Check_Overriding_Indicator): Do not generate warning on
140         missing overriding indicator if the new declaration is not seen as
141         primitive.
142
143 2009-04-09  Thomas Quinot  <quinot@adacore.com>
144
145         * exp_ch4.adb (Expand_Concatenate): Add circuitry to properly handle
146         overflows in computation of bounds.
147
148 2009-04-09  Pascal Obry  <obry@adacore.com>
149
150         * a-cihama.adb, a-cgcaso.adb, a-cihase.adb, a-cohase.adb: Fix some
151         typos in comment.
152
153 2009-04-09  Robert Dewar  <dewar@adacore.com>
154
155         * sem_attr.adb (Check_Stream_Attribute): Check violation of
156         restriction No_Streams
157
158         * gnat_rm.texi: Clarify No_Streams restriction
159
160         * g-socket.adb: Minor reformatting.
161
162 2009-04-09  Thomas Quinot  <quinot@adacore.com>
163
164         * g-socket.ads: Mark Initialize and Finalize as obsolesent interfaces.
165
166 2009-04-09  Geert Bosch  <bosch@adacore.com>
167
168         * exp_fixd.adb (Build_Conversion): Accept new optional Trunc argument.
169         (Set_Result): Likewise.
170         (Expand_Convert_Float_To_Fixed): Have Set_Result truncate the
171         conversion, as required by RM 4.6(31).
172
173 2009-04-08  Robert Dewar  <dewar@adacore.com>
174
175         * checks.adb (Enable_Overflow_Check): Do not enable if overflow checks
176         suppressed.
177         
178         * exp_ch4.adb (Expand_Concatenate): Make sure checks are off for all
179         resolution steps.
180
181 2009-04-08  Robert Dewar  <dewar@adacore.com>
182
183         * sem_ch12.adb (Analyze_Package_Instantiation): Remove test for
184         No_Local_Allocators restriction preventing local instantiation.
185
186 2009-04-08  Thomas Quinot  <quinot@adacore.com>
187
188         * sem_eval.adb: Minor comment fix
189
190 2009-04-08  Thomas Quinot  <quinot@adacore.com>
191
192         * g-socket.adb, g-socket.ads (GNAT.Sockets.Sockets_Library_Controller):
193         New limited controlled type used to automate the initialization and
194         finalization of the sockets implementation.
195         (GNAT.Sockets.Initialize, Finalize): Make these no-ops
196
197 2009-04-08  Vincent Celier  <celier@adacore.com>
198
199         * prj-attr.adb: New read-only project-level attribute Project_Dir
200
201         * prj-proc.adb (Add_Attributes): New parameter Project_Dir, value of
202         read-only attribute of the same name.
203         (Process_Declarative_Items): Call Add_Attributes with Project_Dir
204         (Recursive_Process): Ditto
205
206         * snames.adb: Add new standard name Project_Dir
207
208         * snames.ads: Add new standard name Project_Dir
209
210 2009-04-08  Thomas Quinot  <quinot@adacore.com>
211
212         * checks.adb: Minor reformatting
213
214 2009-04-08  Vincent Celier  <celier@adacore.com>
215
216         * vms_data.ads: Add documentation for new style keyword
217         OVERRIDING_INDICATORS
218
219 2009-04-08  Robert Dewar  <dewar@adacore.com>
220
221         * sem_ch3.adb (Check_Completion.Post_Error): Post error on spec if the
222         spec is in the current unit.
223
224 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
225
226         * sem_util.adb (Is_Protected_Self_Reference): Add guard to check for
227         presence of entity.
228
229         * usage.adb, gnat_ugn.texi: add info on -gnatyO: overriding indicators
230
231 2009-04-08  Vincent Celier  <celier@adacore.com>
232
233         * vms_data.ads: Add VMS equivalent for -gnatyO (OVERRIDING_INDICATORS)
234
235 2009-04-08  Thomas Quinot  <quinot@adacore.com>
236
237         * checks.ads: Minor reformatting
238
239 2009-04-08  Robert Dewar  <dewar@adacore.com>
240
241         * gnat_rm.texi: Update documentation of pragma Obsolescent
242         
243         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow identifiers to
244         be omitted, and allow Entity parameter to be omitted.
245
246 2009-04-08  Thomas Quinot  <quinot@adacore.com>
247
248         * exp_util.adb: Minor comment fix
249
250 2009-04-08  Robert Dewar  <dewar@adacore.com>
251
252         * g-socket.ads: Fix bad syntax in pragma Obsolescent
253
254         * par-ch2.adb (Scan_Pragma_Argument_Association): Check for error of
255         argument with no identifier following one that has an identifier. Was
256         missed in some cases.
257
258         * sem_prag.adb (Analyze_Pragma, case Check_Policy): Allow Policy
259         identifier.
260         (Analyze_Pragma, case Obsolescent): Allow Message, Version identifiers
261
262         * snames.adb: Add Name_Policy
263
264         * snames.ads: Add Name_Policy
265
266 2009-04-08  Robert Dewar  <dewar@adacore.com>
267
268         * gnat_rm.texi: Minor reformatting
269
270         * par-ch2.adb: Minor reformatting
271
272 2009-04-08  Robert Dewar  <dewar@adacore.com>
273
274         * exp_attr.adb, sem_attr.adb, sem_util.adb: Code clean up.
275
276 2009-04-08  Robert Dewar  <dewar@adacore.com>
277
278         * sem_cat.adb (Check_Categorization_Dependencies): Handle Preelaborate
279         properly in the presence of Remote_Types or Remote_Call_Interface.
280
281         * sem_util.adb: Add comment.
282
283 2009-04-08  Robert Dewar  <dewar@adacore.com>
284
285         * ug_words: Add /ASSUME_VALID for -gnatB
286
287         * vms_data.ads: Add /ASSUME_VALID for -gnatB
288
289         * sem_cat.adb: Add clarifying commment
290
291         * a-direio.ads (Bytes): Make sure value is non-zero
292
293 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
294
295         * sem_util.adb (Is_Variable): If the prefix is an explicit dereference
296         that does not come from source, check for a rewritten function call in
297         prefixed notation before other forms of rewriting.
298
299 2009-04-08  Robert Dewar  <dewar@adacore.com>
300
301         * Makefile.rtl: Remove s-strops and s-sopco? from the run time, since
302         these are now obsolescent units used only for bootrapping with an
303         older compiler.
304
305 2009-04-08  Robert Dewar  <dewar@adacore.com>
306
307         * gnat_rm.texi: Add documentation for pragma Thread_Local_Storage
308
309         * sem_ch3.adb: Minor comment updates
310
311 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
312
313         * inline.adb (Back_End_Cannot_Inline): restrict warning to subprograms
314         that come from source.
315
316 2009-04-08  Tristan Gingold  <gingold@adacore.com>
317
318         * gcc-interface/utils.c, gcc-interface/decl.c, gcc-interface/gigi.h:
319         Add support for pragma Thread_Local_Storage
320         
321 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
322
323         * inline.adb (Back_End_Cannot_Inline): Do not mark a body as inlineable
324         by the back-end if it contains a call to a subprogram without a
325         previous spec that is declared in the same unit.
326
327         * errout.ads: Update comments on uses of dirs
328
329 2009-04-08  Robert Dewar  <dewar@adacore.com>
330
331         * exp_ch4.adb (Expand_Concatenate): Make sure nodes are properly typed
332
333 2009-04-08  Tristan Gingold  <gingold@adacore.com>
334
335         * sem_prag.adb: Restrict pragma Thread_Local_Storage to library level
336         variables.
337         Set Has_Gigi_Rep_Item flag to TLS variables (to ease gigi work).
338
339 2009-04-08  Vincent Celier  <celier@adacore.com>
340
341         * prj-nmsc.adb:
342         (Add_Source): Add the mapping of the unit name to source file name in
343         the Unit_Sources_HT hash table, if the unit name is not null.
344
345         * prj.adb (Reset): Reset hash table Tree.Unit_Sources_HT
346
347         * prj.ads (Unit_Sources_Htable): New hash table instantiation
348         (Project_Tree_Data): New component Unit_Sources_HT
349
350 2009-04-08  Thomas Quinot  <quinot@adacore.com>
351
352         * sem_ch8.adb: Minor reformatting.
353         Minor code reorganization.
354
355 2009-04-08  Robert Dewar  <dewar@adacore.com>
356
357         * snames.h, einfo.adb, einfo.ads, sem_prag.adb, snames.adb,
358         snames.ads, freeze.adb, par-prag.adb: Add implementation of
359         pragma Thread_Local_Storage, setting new flag
360         Has_Pragma_Thread_Local_Storage in corresponding entities.
361
362 2009-04-08  Emmanuel Briot  <briot@adacore.com>
363
364         * prj.ads: Update comment on switches file
365
366         * prj-nmsc.adb: Code clean up. Use renaming clauses.
367
368 2009-04-08  Robert Dewar  <dewar@adacore.com>
369
370         * exp_ch4.adb (Expand_Concatenate): Further fixes to bounds handling
371
372 2009-04-08  Thomas Quinot  <quinot@adacore.com>
373
374         * ali-util.adb: Minor comment fix
375
376 2009-04-08  Ed Schonberg  <schonberg@adacore.com>
377
378         * sem_ch8.adb (Analyze_Use_Type): Improve error message when clause
379         appears in a context clause, and the enclosing package is mentioned in
380         a limited_with_clause.
381         (Use_One_Type): Reject clause if type is still incomplete.
382
383 2009-04-08  Emmanuel Briot  <briot@adacore.com>
384
385         * prj-nmsc.adb (Check_File, Process_Sources_In_Multi_Language_Mode):
386         avoid copies of Source_Data variables when possible, since these
387         involve calls to memcpy() which are done too many times.
388
389 2009-04-08  Robert Dewar  <dewar@adacore.com>
390
391         * exp_ch4.adb (Expand_Concatenate): Clean up code
392
393 2009-04-07  Thomas Quinot  <quinot@adacore.com>
394
395         * exp_ch4.adb (Expand_Concatenate): Add missing conversion to index
396         type for the case of concatenating a constrained array indexed by an
397         enumeration type.
398
399 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
400
401         * sem_ch6.adb (Check_Conformance): when checking conformance of an
402         operation that overrides an abstract operation inherited from an
403         interface, return False if only one of the controlling formals is an
404         access parameter.
405
406 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
407
408         * sem_ch8.adb (Analyze_Object_Renaming): additional error messages
409         mandated by AI05-105.
410
411 2009-04-07  Vincent Celier  <celier@adacore.com>
412
413         * prj-nmsc.adb (Get_Mains): Warn if a main is an empty string
414
415 2009-04-07  Thomas Quinot  <quinot@adacore.com>
416
417         * usage.adb: Minor fix in usage message.
418
419         * sem_ch10.adb (Remove_Homonyms): Fix subtype of formal in body to
420         match declaration; the correct subtype is Node_Id, not Entity_Id,
421         because the expected node kind is an identifier, not a defining
422         identifier.
423
424         * switch-c.adb: Minor reformatting.
425
426         * uintp.adb: Minor reformatting.
427
428 2009-04-07  Robert Dewar  <dewar@adacore.com>
429
430         * exp_ch13.adb: Minor reformatting
431
432 2009-04-07  Robert Dewar  <dewar@adacore.com>
433
434         * sem_warn.adb (Check_Infinite_Loop_Warning.Test_Ref): Add defence
435         against missing parent.
436
437 2009-04-07  Thomas Quinot  <quinot@adacore.com>
438
439         * xoscons.adb: Minor reformatting
440
441 2009-04-07  Robert Dewar  <dewar@adacore.com>
442
443         * rtsfind.ads: Remove obsolete string concatenation entries
444
445 2009-04-07  Robert Dewar  <dewar@adacore.com>
446
447         * exp_ch4.adb (Expand_Concatenate): Redo handling of bounds
448
449 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
450
451         * sem_ch10.adb (Check_Body_Required): Handle properly imported
452         subprograms.
453
454 2009-04-07  Gary Dismukes  <dismukes@adacore.com>
455
456         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
457         Attribute_Address): When Init_Or_Norm_Scalars is True and the object
458         is of a scalar or string type then suppress the setting of the
459         expression to Empty.
460
461         * freeze.adb (Warn_Overlay): Also emit the warnings about default
462         initialization for the cases of scalar and string objects when
463         Init_Or_Norm_Scalars is True.
464
465 2009-04-07  Bob Duff  <duff@adacore.com>
466
467         * s-secsta.ads, g-pehage.ads, s-fileio.ads: Minor comment fixes
468
469 2009-04-07  Bob Duff  <duff@adacore.com>
470
471         * gnat_rm.texi, s-fileio.adb (System.File_IO.Open): New feature: A
472         Form parameter of Text_Translation=No allows binary mode for Text_IO
473         files.
474
475         * gnat_rm.texi: Document Form parameter Text_Translation=xxx.
476
477 2009-04-07  Javier Miranda  <miranda@adacore.com>
478
479         * exp_ch5.adb (Expand_Assign_Array): Add implicit conversion when
480         processing the bounds for bit packed arrays or VM target machines.
481
482 2009-04-07  Thomas Quinot  <quinot@adacore.com>
483
484         * g-sothco.ads (Int_Access): Remove extraneous access type (use
485         anonymous access instead).
486         (Get_Socket_From_Set): Fix incorrectly reverted formals
487         Last and Socket to match the underlying C routine.
488
489         * g-socket.adb, g-socket.ads
490         (Get): Use named parameter associations instead of positional ones in
491         call go Get_Socket_From_Set, since this routine has two formals of the
492         same type.
493         (Image): New procedure.
494
495         * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
496         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi.adb, g-socthi.ads:
497         (C_Ioctl, Syscall_Ioctl): use "access C.int" instead of "Int_Access"
498         for type of Arg formal.
499
500         * sem_warn.adb: Minor reformatting
501
502 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
503
504         * sem_util.adb (Has_Tagged_Component): Fix typo in loop that iterates
505         over record components.
506
507 2009-04-07  Nicolas Roche  <roche@adacore.com>
508
509         * gsocket.h:
510         Don't include resolvLib.h on VxWorks 6 (kernel and rtp). This library
511         has disappeared between VxWorks 6.4 and VxWorks 6.5
512         In RTP mode use time.h instead of times.h
513
514 2009-04-07  Robert Dewar  <dewar@adacore.com>
515
516         * exp_ch4.adb (Expand_N_Op_Concat): Improve lower bound handling
517
518 2009-04-07  Kevin Pouget  <pouget@adacore.com>
519
520         * exp_dist.adb: Modify Build_From_Any_Fonction procedure to correct
521         expanded code for constrained types.
522
523 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
524
525         * sem_ch4.adb (Analyze_Overloaded_Selected_Component): implement
526         AI05-105: in an object renaming declaration, anonymousness is a name
527         resolution rule.
528
529         * sem_ch8.adb (Analyze_Object_Renaming): Ditto.
530
531 2009-04-07  Arnaud Charlet  <charlet@adacore.com>
532
533         * g-comlin.adb (Expansion): Fix old regression: also return directory
534         names when matching.
535
536 2009-04-07  Robert Dewar  <dewar@adacore.com>
537
538         * exp_ch4.adb:
539         (Expand_N_Op_Concat): Call Expand_Concatenate for all cases
540         (Expand_Concatenate): New name for Expand_Concatenate_String which has
541         been rewritten to handle all types.
542         (Expand_Concatenate_Other): Remove
543
544 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
545
546         * lib-xref.adb (Generate_Reference): A default subprogram in an
547         instance appears within the tree for the instance, but generates an
548         implicit reference in the ALI.
549
550 2009-04-07  Javier Miranda  <miranda@adacore.com>
551
552         * sem_ch3.adb (Build_Derived_Record_Type): When processing a tagged
553         derived type that has discriminants, propagate the list of interfaces
554         to the corresponding new base type. In addition, propagate also
555         attribute Limited_Present (found working in this patch).
556
557 2009-04-07  Robert Dewar  <dewar@adacore.com>
558
559         * exp_ch4.adb: Rewrite concatenation expansion.
560
561 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
562
563         * sem_ch8.adb (Restore_Scope_Stack): First_Private_Entity is only
564         relevant to packages.
565
566 2009-04-07  Robert Dewar  <dewar@adacore.com>
567
568         * sem_attr.adb: Minor reformatting
569
570         * sem_ch6.adb: Minor reformatting
571
572 2009-04-07  Tristan Gingold  <gingold@adacore.com>
573
574         * socket.c: Add more protections against S_resolvLib_ macros.
575
576 2009-04-07  Thomas Quinot  <quinot@adacore.com>
577
578         * sem_attr.adb: Minor reformatting
579
580 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
581
582         * sem_ch6.adb (New_Overloaded_Entity): New predicate
583         Is_Overriding_Alias to handle properly types that inherit two homonym
584         operations that have distinct dispatch table entries.
585
586 2009-04-07  Emmanuel Briot  <briot@adacore.com>
587
588         * s-regexp.adb (Create_Mapping): Ignore excaped open parenthesis when
589         looking for the end of a parenthesis group
590
591 2009-04-07  Tristan Gingold  <gingold@adacore.com>
592
593         * gsocket.h Don't #include resolvLib.h if __RTP__ is defined.
594
595         * socket.c Don't use resolvLib_ macros if not defined.
596
597 2009-04-07  Robert Dewar  <dewar@adacore.com>
598
599         * g-socket.adb: Minor reformatting.
600
601         * g-socthi-mingw.adb: Minor reformatting
602
603         * g-sothco.ads: Minor reformatting
604
605         * exp_ch4.adb:
606         (Expand_Concatenate_String): Complete rewrite to generate efficient code
607         inline instead of relying on external library routines.
608
609         * s-strops.ads, s-sopco5.ads, s-sopco5.adb, s-sopco4.ads, s-sopco4.adb,
610         s-sopco3.ads, s-sopco3.adb, s-strops.adb: Note that this unit is now
611         obsolescent
612
613 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
614
615         * sem_attr.adb:
616         (Eval_Attribute): for attributes of array objects that are not strings,
617         attributes are not static if nominal subtype of object is unconstrained.
618
619 2009-04-07  Ed Schonberg  <schonberg@adacore.com>
620
621         * sem_ch6.adb (New_Overloaded_Entity): If two implicit homonym
622         operations for a type T in an instance do not override each other,
623         when T is derived from a formal private type, the corresponding
624         operations inherited by a type derived from T outside
625         of the instance do not override each other either.
626
627 2009-04-07  Robert Dewar  <dewar@adacore.com>
628
629         (Osint.Fail): Change calling sequence to have one string arg
630         (Make.Make_Failed): Same change
631         All callers are adjusted to use concatenation
632
633 2009-04-07  Robert Dewar  <dewar@adacore.com>
634
635         * exp_ch4.adb: Fix documentation typo
636
637 2009-04-07  Robert Dewar  <dewar@adacore.com>
638
639         * tbuild.ads: Minor reformatting
640
641 2009-04-07  Javier Miranda  <miranda@adacore.com>
642
643         * exp_disp.adb (Make_DT): Avoid the generation of the OSD_Table
644         when compiling under ZFP runtime.
645
646 2009-04-07  Robert Dewar  <dewar@adacore.com>
647
648         * g-comlin.adb: Minor reformatting
649
650 2009-04-07  Thomas Quinot  <quinot@adacore.com>
651
652         * socket.c, g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb,
653         g-socthi-vxworks.ads, g-socthi-mingw.adb, g-socthi-mingw.ads,
654         g-socthi.adb, g-socthi.ads, g-socket.adb, g-socket.ads, g-sothco.ads:
655         Remove dynamic allocation of Fd_Set in Socket_Set_Type objects.
656
657 2009-04-07  Robert Dewar  <dewar@adacore.com>
658
659         * gnat_ugn.texi: Document -gnatDnn/-gnatGnn
660
661         * opt.ads (Sprint_Line_Limit): New parameter
662         
663         * sprint.adb: Usa Sprint_Line_Limit instead of Line_Limit throughout
664         
665         * switch-c.adb: Recognize -gnatDnnn and -gnatGnnn switches
666         
667         * usage.adb: Output information for -gnatGnn -gnatDnn
668
669 2009-04-07  Robert Dewar  <dewar@adacore.com>
670
671         * make.adb: Minor reformatting
672
673 2009-04-07  Robert Dewar  <dewar@adacore.com>
674
675         * mlib-tgt-specific-vms-alpha.adb: Minor reformatting
676
677 2009-04-07  Robert Dewar  <dewar@adacore.com>
678
679         * mlib-tgt-specific-vms-ia64.adb: Minor reformatting
680
681 2009-04-07  Robert Dewar  <dewar@adacore.com>
682
683         * checks.adb:
684         Remove Assume_Valid parameter from In_Subrange_Of calls
685         
686         * sem_eval.adb:
687         (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
688         (Is_In_Range): Remove incorrect use of Assume_Valid
689         (Is_Out_Of_Range): Remove incorrect use of Assume_Valid
690         
691         * sem_eval.ads:
692         (Is_Subrange_Of): Remove Assume_Valid parameter, not needed
693         (Is_In_Range): Documentation cleanup
694         (Is_Out_Of_Range): Documentation cleanup
695
696         * gnat_rm.texi:
697         Add documentation for Assume_No_Invalid_Values pragma
698
699         * sem_ch12.adb: Minor reformatting
700
701         * sem_ch6.adb: (Check_Conformance): Avoid cascaded errors
702
703         * sem_prag.adb: Improve error message.
704
705         * gnatchop.adb, osint.ads, sinput.adb, sinput.ads, styleg.adb:
706         LF/CR no longer recognized as line terminator
707
708         * switch.ads: Minor documentation improvement
709
710         * vms_data.ads: Minor reformatting
711
712 2009-04-07  Robert Dewar  <dewar@adacore.com>
713
714         * checks.adb (Determine_Range): Add Assume_Valid parameter
715         
716         * checks.ads (Determine_Range): Add Assume_Valid parameter
717         
718         * errout.adb (Error_Msg_NEL): Use Suppress_Loop_Warnings rather than
719          Is_Null_Loop to suppress warnings in a loop body.
720         
721         * exp_ch4.adb:
722         (Rewrite_Comparison): Major rewrite to accomodate invalid values
723         
724         * exp_ch5.adb:
725         (Expand_N_Loop_Statement): Delete loop known not to execute
726         
727         * opt.ads:
728         (Assume_No_Invalid_Values): Now set to False, and as documented, this
729          fully enables the proper handling of invalid values.
730         
731         * sem_attr.adb:
732         New calling sequence for Is_In_Range
733         
734         * sem_ch5.adb:
735         (Analyze_Iteration_Scheme): Accomodate possible invalid values
736          in determining if a loop range is null.
737         
738         * sem_eval.adb:
739         (Is_In_Range): Add Assume_Valid parameter
740         (Is_Out_Of_Range): Add Assume_Valid_Parameter
741         (Compile_Time_Compare): Major rewrite to accomodate invalid values and
742          also to do more accurate and complete range analysis, catching more
743          cases.
744         
745         * sem_eval.ads:
746         (Is_In_Range): Add Assume_Valid parameter
747         (Is_Out_Of_Range): Add Assume_Valid_Parameter
748         
749         * sem_util.adb:
750         New calling sequence for Is_In_Range
751         
752         * sinfo.adb:
753         (Suppress_Loop_Warnings): New flag
754         
755         * sinfo.ads:
756         (Is_Null_Loop): Update documentation
757         (Suppress_Loop_Warnings): New flag
758         
759         * gnat_ugn.texi: Document -gnatB switch
760
761 2009-04-07  Arnaud Charlet  <charlet@adacore.com>
762
763         * gnatvsn.ads: Bump version number.
764
765 2009-04-07  Thomas Quinot  <quinot@adacore.com>
766
767         * exp_ch3.adb: Minor rewording (comments)
768
769 2009-04-07  Robert Dewar  <dewar@adacore.com>
770
771         * exp_disp.adb: Minor reformatting
772
773 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
774
775         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Test the
776         underlying type.
777         * gcc-interface/trans.c (lvalue_required_p): Likewise.
778
779 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
780
781         * gcc-interface/trans.c (Attribute_to_gnu) <Max_Size_In_Storage_Elmts>:
782         Do not convert the result.  Remove obsolete comment.
783
784 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
785
786         * gcc-interface/trans.c (establish_gnat_vms_condition_handler): Clear
787         DECL_CONTEXT.
788         (Subprogram_Body_to_gnu): Fix pasto.
789
790 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
791
792         * gcc-interface/gigi.h (standard_datatypes): Remove ADT_void_type_decl.
793         (void_type_decl_node): Remove.
794         (init_gigi_decls): Likewise.
795         (gnat_install_builtins): Declare.
796         (record_builtin_type): Likewise.
797         (create_type_stub_decl): Likewise.
798         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Void>: Use void_type.
799         (gnat_to_gnu_entity) <E_Array_Type>: Make fat and thin pointer types
800         artificial.
801         <E_Array_Subtype>: Use the index types, not only their name, in the
802         record giving the names of the bounds, if any.
803         For a packed array type, make it artificial only if the base type
804         was artificial as well.  Remove redundant statement.
805         (gnat_to_gnu_entity) <E_Incomplete_Type>: Do not create TYPE_DECL for
806         dummy types.
807         Use create_type_stub_decl to build the TYPE_STUB_DECL of types.
808         (rest_of_type_decl_compilation_no_defer): Likewise.
809         * gcc-interface/misc.c (gnat_printable_name): Add missing guard.
810         * gcc-interface/utils.c (make_dummy_type): Always create TYPE_STUB_DECL
811         and use create_type_stub_decl to build it.
812         (gnat_pushdecl): Rewrite condition.
813         (gnat_install_builtins): Remove bogus declaration.
814         (record_builtin_type): New function.
815         (finish_record_type): Use create_type_stub_decl to build TYPE_STUB_DECL
816         of types.
817         (create_type_stub_decl): New function.
818         (create_type_decl): Assert that the type is not dummy.  If the type
819         hasn't been named yet, equate the TYPE_STUB_DECL to the created node.
820         (build_vms_descriptor32): Do not create TYPE_DECL for the descriptor.
821         (build_vms_descriptor): Likewise.
822         (init_gigi_decls): Delete and move bulk of code to...
823         * gcc-interface/trans.c (gigi): ...here.  Use record_builtin_type.
824         (emit_range_check): Add gnat_node parameter.
825         (emit_index_check): Likewise.
826         (emit_check): Likewise.
827         (build_unary_op_trapv): Likewise.
828         (build_binary_op_trapv): Likewise.
829         (convert_with_check): Likewise.
830         (Attribute_to_gnu): Adjust calls for above changes.
831         (call_to_gnu): Likewise.
832         (gnat_to_gnu): Likewise.
833         (assoc_to_constructor): Likewise.
834         (pos_to_constructor): Likewise.
835         (Sloc_to_locus): Set BUILTINS_LOCATION for Standard_Location nodes.
836         (process_type): Do not create TYPE_DECL for dummy types.
837
838 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
839
840         * gcc-interface/decl.c (gnat_to_gnu_entity): Reorder local variables.
841         * gcc-interface/trans.c: Fix formatting throughout.  Fix comments.
842         * gcc-interface/utils.c: Fix comments.
843
844 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
845
846         * gcc-interface/decl.c (compile_time_known_address_p): Rewrite and
847         move around.
848         (gnat_to_gnu_type): Move around.
849         (get_unpadded_type): Likewise.
850         * gcc-interface/utils.c (update_pointer_to): Use synthetic macro.
851         Tidy comments.
852
853 2009-04-07  Eric Botcazou  <ebotcazou@adacore.com>
854
855         * gcc-interface/trans.c (check_for_eliminated_entity): New function.
856         (Attribute_to_gnu): Invoke it for Access- and Address-like attributes.
857         (call_to_gnu): Invoke it instead of manually checking.
858
859 2009-04-04  Eric Botcazou  <ebotcazou@adacore.com>
860
861         * gcc-interface/utils.c (finish_record_type): Force structural equality
862         checks if the record type is discriminated.
863
864 2009-03-31  Eric Botcazou  <ebotcazou@adacore.com>
865
866         * system-linux-alpha.ads (Functions_Return_By_DSP): Remove.
867         * system-linux-mips.ads (Functions_Return_By_DSP): Likewise.
868         * system-linux-mipsel.ads (Functions_Return_By_DSP): Likewise.
869         * system-linux-s390.ads (Functions_Return_By_DSP): Likewise.
870         * system-linux-s390x.ads (Functions_Return_By_DSP): Likewise.
871         * system-linux-sparc.ads (Functions_Return_By_DSP): Likewise.
872         * system-linux-sparcv9.ads (Functions_Return_By_DSP): Likewise.
873
874 2009-03-30  Paolo Bonzini  <bonzini@gnu.org>
875
876         * gcc-interface/decl.c (maybe_pad_type): Use TREE_OVERFLOW instead
877         of TREE_CONSTANT_OVERFLOW.
878
879 2009-03-30  Joseph Myers  <joseph@codesourcery.com>
880
881         PR rtl-optimization/323
882         * gcc-interface/misc.c (gnat_post_options): Set
883         flag_excess_precision_cmdline.  Give an error for
884         -fexcess-precision=standard for processors where the option is
885         significant.
886
887 2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
888
889         PR c/39323
890         * gcc-interface/utils.c (create_field_decl): Use "unsigned int"
891         on bit_align.
892
893 2009-03-11  Olivier Hainque  <hainque@adacore.com>
894
895         * gcc-interface/trans.c (gnat_to_gnu) <case N_Slice>: In range
896         checks processing, remove unintended TREE_TYPE walk on index type.
897
898 2009-03-01  Eric Botcazou  <ebotcazou@adacore.com>
899
900         PR ada/39264
901         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do no
902         call make_packable_type on fat pointer types.
903         <E_Array_Subtype>: Likewise.
904         <E_Record_Subtype>: Call make_packable_type on all record types
905         except for fat pointer types.
906         (make_packable_type): Likewise.
907         (gnat_to_gnu_field): Likewise.
908
909 2009-02-28  Eric Botcazou  <ebotcazou@adacore.com>
910
911         * gcc-interface/Makefile.in (cygwin/mingw): Revert accidental
912         EH_MECHANISM change made on 2007-12-06.
913
914 2009-02-26  Andreas Schwab  <schwab@suse.de>
915
916         PR ada/39172
917         * Makefile.in (srcdir): Set to @top_srcdir@ instead of @srcdir@.
918         * gcc-interface/Makefile.in: Change all uses of $(srcdir),
919         $(fsrcdir) and $(fsrcpfx) to add ada subdir.
920         (AWK): Substitute.
921         (target_cpu_default): Substitute.
922
923 2009-02-25  Laurent GUERBY  <laurent@guerby.net>
924
925         PR ada/39221
926         * a-teioed.adb (Expand): Fix Result overflow.
927
928 2009-02-25  Laurent GUERBY <laurent@guerby.net>
929
930         * gcc-interface/Makefile.in: Fix multilib handling for
931         sparc64-linux.
932
933 2009-02-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
934
935         * s-oscons-tmplt.c [__osf__ && !_SS_MAXSIZE]: Undef AF_UNIX6.
936
937 2009-02-18  H.J. Lu  <hongjiu.lu@intel.com>
938
939         * gcc-interface/misc.c (gnat_post_options): Turn off warn_psabi.
940
941 2009-02-16  Eric Botcazou  <ebotcazou@adacore.com>
942
943         * gcc-interface/deftarg.c: Remove.
944
945 2009-02-10  Olivier Hainque  <hainque@adacore.com>
946             Eric Botcazou  <ebotcazou@adacore.com>
947
948         * gcc-interface/decl.c (enum alias_set_op): New enumeration.
949         (copy_alias_set): Rename into...
950         (relate_alias_sets): ...this.  Add third parameter OP.  Retrieve the
951         underlying array of unconstrained arrays for the new type as well.
952         If the old and new alias sets don't conflict, make one a subset of
953         the other as per the OP parameter.
954         (gnat_to_gnu_entity): Adjust calls to copy_alias_set.
955         <E_Record_Type>: Do not copy the alias set for derived types.
956         For all types, make the alias set of derived types a superset of
957         that of their parent type.
958         (make_aligning_type): Adjust calls to copy_alias_set.
959         (make_packable_type): Likewise.
960         * gcc-interface/trans.c (gnat_to_gnu)<N_Validate_Unchecked_Conversion>:
961         Check for alias set conflict instead of strict equality to issue the
962         warning.
963
964 2009-02-09  Eric Botcazou  <ebotcazou@adacore.com>
965
966         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
967         Set TYPE_NONALIASED_COMPONENT on the array type only if appropriate.
968         (copy_alias_set): Assert that arrays have the same aliasing settings.
969         (substitute_in_type) <ARRAY_TYPE>: Copy TYPE_NONALIASED_COMPONENT.
970
971 2009-02-08  Eric Botcazou  <ebotcazou@adacore.com>
972
973         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_String_Literal_Subtype>:
974         Set TYPE_NONALIASED_COMPONENT on the array type.
975
976 2009-01-31  Laurent GUERBY  <laurent@guerby.net>
977
978         * gcc-interface/Makefile.in: Fix mipsel linux handling.
979
980 2009-01-16  Jakub Jelinek  <jakub@redhat.com>
981
982         * gcc-interface/Makefile.in: Fix multilib handling for
983         powerpc64-linux.
984
985 2009-01-12  Eric Botcazou  <ebotcazou@adacore.com>
986
987         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Really strip
988         only useless conversions around renamed objects.
989
990 2009-01-11  Eric Botcazou  <ebotcazou@adacore.com>
991
992         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
993         the _Tag field before any discriminants in the field list.
994         (components_to_record): Remove obsolete comment.
995
996 2008-12-09  Jakub Jelinek  <jakub@redhat.com>
997
998         PR ada/38450
999         * gcc-interface/utils.c (finish_record_type): Use SET_TYPE_MODE.
1000         * gcc-interface/decl.c (gnat_to_gnu_entity, make_aligning_type):
1001         Likewise.
1002
1003 2008-12-05  Sebastian Pop  <sebastian.pop@amd.com>
1004
1005         PR bootstrap/38262
1006         * gcc-interface/Make-lang.in (gnat1): Add BACKENDLIBS, remove GMPLIBS.
1007
1008 2008-11-29  Eric Botcazou  <ebotcazou@adacore.com>
1009
1010         PR ada/30827
1011         * g-comver.adb (Ver_Len_Max): Fix inconsistency.
1012
1013 2008-11-27  Eric Botcazou  <ebotcazou@adacore.com>
1014
1015         * gcc-interface/decl.c: Fix various nits.
1016
1017 2008-11-20  Eric Botcazou  <ebotcazou@adacore.com>
1018
1019         * gcc-interface/utils.c (init_gigi_decls): Fix type mismatch.
1020
1021 2008-11-16  Eric Botcazou  <ebotcazou@adacore.com>
1022
1023         PR ada/38127
1024         * gcc-interface/decl.c (make_type_from_size) <INTEGER_TYPE>: Do not
1025         special-case boolean types.  Propagate  the name.
1026         * gcc-interface/targtyps.c: Tweak comment.
1027
1028 2008-11-15  Geert Bosch  <bosch@adacore.com>
1029
1030         * gcc-interface/trans.c (emit_check): Put back a final save_expr
1031         to prevent exponential expansion during gimplification.
1032
1033 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
1034
1035         * gcc-interface/lang-specs.h: Expand -coverage and reorder switches.
1036
1037 2008-11-15  Eric Botcazou  <ebotcazou@adacore.com>
1038
1039         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force constants
1040         initialized to a static constant to be statically allocated even if
1041         they are of a padding type, provided the original type also has
1042         constant size.
1043
1044 2008-11-15  Laurent Guerby  <laurent@guerby.net>
1045
1046         PR ada/37993
1047         * gcc-interface/Makefile.in: Add multilib handling for x86_64
1048         on darwin.
1049         * system-darwin-x86_64.ads: New file.
1050
1051 2008-11-13  Olivier Hainque  <hainque@adacore.com>
1052
1053         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>:
1054         Turn Ada Pure on subprograms back into GCC CONST when eh constructs
1055         are explicit to the middle-end.  Tidy.
1056
1057 2008-11-09  Eric Botcazou  <ebotcazou@adacore.com>
1058
1059         * gcc-interface/ada-tree.def (PLUS_NOMOD_EXPR): New tree code.
1060         (MINUS_NOMOD_EXPR): Likewise.
1061         * gcc-interface/utils2.c (build_binary_op) <PREINCREMENT_EXPR>: Make
1062         unreachable.
1063         <PLUS_NOMOD_EXPR>: New case.
1064         <MINUS_NOMOD_EXPR>: Likewise.
1065         * gcc-interface/trans.c (Loop_Statement_to_gnu): Build increment-and-
1066         assignment statement instead of using an increment operator.
1067
1068 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1069
1070         * system-irix-n64.ads: New file.
1071         * gcc-interface/Makefile.in (mips-sgi-irix6*): Support O32 and N64
1072         multilibs.
1073
1074 2008-11-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1075
1076         PR ada/37681
1077         * system-solaris-x86_64.ads: New file.
1078         * gcc-interface/Makefile.in (*86-solaris2*): Support x86_64 multilib.
1079
1080 2008-11-07  Bechir Zalila  <bechir.zalila@gmail.com>
1081             Eric Botcazou  <ebotcazou@adacore.com>
1082
1083         PR ada/34289
1084         * lib.ads: (Enable_Switch_Storing): Declare.
1085         * lib.adb: (Enable_Switch_Storing): New procedure.
1086         * switch-c.adb (Scan_Front_End_Switches): Add support for -gnatea.
1087         * make.adb: (Compile_Sources.Compile): Add -gnatea as first option.
1088         (Display): Never display -gnatea
1089         * gcc-interface/lang-specs.h: If -gnatea is present, pass -gnatez.
1090
1091 2008-11-07  Thomas Quinot  <quinot@adacore.com>
1092
1093         * gcc-interface/trans.c (Attribute_to_gnu, case Attr_Length): Check
1094         for empty range in original base type, not converted result type.
1095
1096 2008-11-07  Geert Bosch  <bosch@adacore.com>
1097
1098         * gcc-interface/trans.c (build_binary_op_trapv): Convert arguments
1099         and result for call to __gnat_mulv64.
1100
1101 2008-11-07  Eric Botcazou  <ebotcazou@adacore.com>
1102
1103         * gcc-interface/trans.c: Fix formatting nits.
1104
1105 2008-11-07  Geert Bosch  <bosch@adacore.com>
1106
1107         * gcc-interface/trans.c (build_binary_op_trapv): Avoid emitting
1108         overflow check for constant result.
1109
1110 2008-11-07  Geert Bosch  <bosch@adacore.com>
1111
1112         * gcc-interface/trans.c (build_binary_op_trapv): Use more efficient
1113         overflow check for addition/subtraction if neither operand is constant.
1114
1115 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
1116
1117         * gcc-interface/Makefile.in (SPARC/Solaris): Use a common set of
1118         files for the target-dependent part of the runtime.
1119         (SPARC/Linux): Likewise.
1120
1121 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
1122
1123         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: If not
1124         optimizing, create a PARM_DECL pointing to the VAR_DECL for debugging
1125         purposes.
1126
1127 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
1128
1129         * gcc-interface/misc.c (gnat_printable_name): Always return a copy
1130         in GC memory.
1131
1132 2008-11-06  Eric Botcazou  <ebotcazou@adacore.com>
1133
1134         PR ada/19419
1135         * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>:
1136         Generate a call to memmove for an assignment between overlapping
1137         array slices.
1138
1139 2008-11-02  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1140
1141         PR target/37977
1142         * gcc-interface/Makefile.in: Add multilib handling for
1143         s390-linux and s390x-linux.
1144
1145 2008-10-24  Jakub Jelinek  <jakub@redhat.com>
1146
1147         * gcc-interface/Make-lang.in (check-ada-subtargets): Depend on
1148         check-acats-subtargets and check-gnat-subtargets.
1149         (check_acats_targets): New variable.
1150         (check-acats-subtargets, check-acats%): New targets.
1151         (check-acats): If -j is used and CHAPTERS is empty, run the testing
1152         in multiple make goals, possibly parallel, and afterwards run
1153         dg-extract-results.sh to merge the sum and log files.
1154
1155 2008-10-17  Geert Bosch  <bosch@adacore.com>
1156
1157         * gcc-interface/trans.c (gnat_to_gnu) <N_Slice>: Simplify expansion
1158         to use only a single check instead of three, and avoid unnecessary
1159         COMPOUND_EXPR.
1160         (emit_check): Avoid useless COMPOUND_EXPRs and SAVE_EXPRs, sometimes
1161         creating more opportunities for optimizations.
1162
1163 2008-10-13  Jakub Jelinek  <jakub@redhat.com>
1164
1165         PR middle-end/37601
1166         * gcc-interface/utils.c (gnat_types_compatible_p): Handle
1167         NULL TYPE_DOMAIN.
1168
1169 2008-10-07  Eric Botcazou  <ebotcazou@adacore.com>
1170
1171         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Move code
1172         dealing with volatileness to after code dealing with renaming.
1173
1174 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
1175
1176         * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Minor tweaks.
1177         * gcc-interface/trans.c (Pragma_to_gnu): Likewise.
1178
1179 2008-10-06  Eric Botcazou  <ebotcazou@adacore.com>
1180
1181         * gcc-interface/utils.c (can_fold_for_view_convert_p): New predicate.
1182         (unchecked_convert): Use it to disable problematic folding with
1183         VIEW_CONVERT_EXPR in the general case.  Always disable it for the
1184         special VIEW_CONVERT_EXPR built for integral types and cope with
1185         its addressability issues by preserving the first conversion.
1186
1187 2008-10-01  Andreas Schwab  <schwab@suse.de>
1188
1189         * system-linux-ppc64.ads: New file.
1190         * gcc-interface/Makefile.in: Add multilib handling for
1191         powerpc-linux.
1192
1193 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
1194
1195         * decl.c (gnat_to_gnu_entity) <object>: Cap the alignment promotion
1196         to that of ptr_mode instead of word_mode.
1197
1198 2008-09-26  Eric Botcazou  <ebotcazou@adacore.com>
1199
1200         PR ada/5911
1201         * gcc-interface/Makefile.in (SPARC/Solaris): Add multilib support.
1202
1203 2008-09-25  Samuel Tardieu  <sam@rfc1149.net>
1204
1205         PR ada/37641
1206         * adaint.c (__gnat_set_non_writable): Use FILE_WRITE_EA
1207         instead of deprecated FILE_WRITE_PROPERTIES.
1208
1209 2008-09-22  Olivier Hainque  <hainque@adacore.com>
1210
1211         * gcc-interface/decl.c (gnat_to_gnu_entity): Even when they
1212         are never assigned, volatile entities are not constant for code
1213         generation purposes.
1214
1215 2008-09-21  Laurent Guerby  <laurent@guerby.net>
1216
1217         PR ada/5911
1218         * gcc-interface/Makefile.in: Add multilib handling for x86_64
1219         and sparc.
1220         * system-linux-sparcv9.ads: New file.
1221
1222 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1223
1224         * exp_dbug.ads: Document new convention for the XVZ variable.
1225         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Generate
1226         debug info if necessary for the type padding the component type.
1227         <E_Array_Subtype>: Likewise.
1228         (maybe_pad_type): Emit the XVZ variable in units.
1229         * gcc-interface/trans.c (Loop_Statement_to_gnu): Fix formatting nits.
1230         (Subprogram_Body_to_gnu): Set the source line of the subprogram's node
1231         on statements generated to initialize the parameter attributes cache.
1232         Set the source line of the end label of the body on the special return
1233         statement built for a procedure with copy-in copy-out parameters.
1234
1235 2008-09-20  Eric Botcazou  <ebotcazou@adacore.com>
1236
1237         PR ada/37585
1238         * gcc-interface/utils.c (create_subprog_decl): Disable inlining for
1239         inlined external functions if they contain a nested function not
1240         declared inline.
1241
1242 2008-09-18  Jan Hubicka  <jh@suse.cz>
1243
1244         * gcc-interface/utils.c (create_subprog_decl): Use DECL_DECLARED_INLINE_P.
1245         (end_subprog_body): Do not set DECL_INLINE.
1246
1247 2008-09-17  Pascal Rigaux  <pixel@mandriva.com>
1248
1249         PR ada/21327
1250         * gnat_ugn.texi: Use proper format in direntry.
1251
1252 2008-09-15  Eric Botcazou  <ebotcazou@adacore.com>
1253
1254         * gcc-interface/trans.c (gigi): Declare the name of the compilation
1255         unit as the first global name.
1256
1257 2008-09-14  Jan Hubicka  <jh@suse.cz>
1258
1259         * gcc-interface/Make-lang.in (gnat1): Add CFLAGS.
1260
1261 2008-09-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1262
1263         * a-crbtgk.adb, a-direct.ads, a-tasatt.adb, ali.ads,
1264         bindgen.adb, checks.adb, einfo.ads, exp_aggr.adb, exp_ch11.adb,
1265         exp_ch3.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb,
1266         exp_dbug.ads, exp_disp.adb, exp_dist.adb, exp_pakd.adb,
1267         exp_util.adb, g-alveop.ads, g-comlin.adb, g-comlin.ads,
1268         g-diopit.adb, g-socket.ads, gcc-interface/decl.c,
1269         gcc-interface/gigi.h, gcc-interface/trans.c,
1270         lib-load.adb, lib-xref.ads, make.adb, mlib-prj.adb, nlists.ads,
1271         opt.ads, par-ch10.adb, par-ch5.adb, par.adb, s-os_lib.ads,
1272         s-oscons-tmplt.c, s-parint.ads, s-regpat.ads, s-shasto.ads,
1273         s-stausa.ads, s-taprop-vms.adb, sem.adb, sem_ch10.adb,
1274         sem_ch11.adb, sem_ch12.adb, sem_ch13.adb, sem_ch3.adb,
1275         sem_ch3.ads, sem_ch4.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
1276         sem_elim.adb, sem_prag.adb, sem_util.adb, sem_util.ads,
1277         sem_warn.adb, sinfo.ads, styleg.adb, vms_data.ads: Fix typos in
1278         comments.
1279         * gnathtml.pl: Fix typos.
1280
1281 2008-09-10  Joel Sherrill <joel.sherrill@oarcorp.com>
1282
1283         * gcc-interface/Makefile.in: Switch RTEMS to s-interr-hwint.adb.
1284         * s-osinte-rtems.ads: Add shared hardware interrupt adapter
1285         layer. RTEMS binds to OS provided adapter routines so there are
1286         no modifications to s-osinte-rtems.adb.
1287
1288 2008-09-09  Arnaud Charlet  <charlet@adacore.com>
1289             Joel Sherrill  <joel.sherrill@oarcorp.com>
1290
1291        * gcc-interface/Makefile.in: Switch VxWorks to s-interr-hwint.adb.
1292
1293        * s-interr-vxworks.adb: Renamed to s-interr-hwint.adb
1294
1295        * s-interr-hwint.adb: New file.
1296
1297         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: Add new functions
1298         needed by s-interr-hwint.adb.
1299
1300         * s-osinte-vxworks-kernel.adb: New file.
1301
1302 2008-09-05  Joel Sherrill <joel.sherrill@oarcorp.com>
1303
1304         * s-stchop-rtems.adb: Add file missed in early commit.  Already
1305         referenced in gcc-interface/Makefile.in.
1306
1307 2008-08-30  Thomas Quinot  <quinot@adacore.com>
1308
1309         * gcc-interface/Make-lang.in: Allow s-oscons.{o,ali} to
1310         be built even without a separate libada directory.
1311
1312 2008-08-22  Arnaud Charlet  <charlet@adacore.com>
1313
1314         * lib-xref.ads: Fix typo in subprogram reference definition.
1315
1316 2008-08-22  Robert Dewar  <dewar@adacore.com>
1317
1318         * s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-strops.adb: Minor code fix
1319         to avoid warning.
1320
1321         * g-trasym.adb: Ditto
1322
1323         * s-utf_32.adb (Get_Category): Fix obvious typo
1324
1325         * s-wwdcha.adb: Minor code reorganization
1326         Remove dead code
1327
1328 2008-08-22  Robert Dewar  <dewar@adacore.com>
1329
1330         * checks.adb (Determine_Range): Deal with values that might be invalid
1331
1332         * opt.adb, opt.ads (Assume_No_Invalid_Values[_Config]): New
1333         configuration switches.
1334
1335         * par-prag.adb: Dummy entry for pragma Assume_No_Invalid_Values
1336
1337         * sem_prag.adb: Implement pragma Assume_No_Default_Values
1338
1339         * snames.adb, snames.ads, snames.h:
1340         Add entries for pragma Assume_No_Invalid_Values
1341
1342         * switch-c.adb: Add processing for -gnatB switch
1343
1344         * usage.adb: Add entry for flag -gnatB (no bad invalid values)
1345
1346 2008-08-22  Javier Miranda  <miranda@adacore.com>
1347
1348         * exp_ch3.adb (Build_Init_Statements): Transfer to the body of the
1349         init procedure all the expanded code associated with the spec of
1350         task types and protected types.
1351
1352 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
1353
1354         * exp_aggr.adb (Static_Array_Aggregate): Call Analyze_And_Resolve on the
1355         component expression copies rather than directly setting Etype and
1356         Is_Static_Expression.
1357
1358 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
1359
1360         * sem_util.adb (Has_Preelaborable_Initialization): Revise checking of
1361         private types to allow for types derived from a private type with
1362         preelaborable initialization, but return False for a private extension
1363         (unless it has the pragma).
1364
1365 2008-08-22  Robert Dewar  <dewar@adacore.com>
1366
1367         * opt.ads: Minor code reorganization (put entries in alpha order)
1368
1369 2008-08-22  Pascal Obry  <obry@adacore.com>
1370
1371         * initialize.c, adaint.c: Use Lock_Task and Unlock_Task for non-blocking
1372         spawn.
1373
1374 2008-08-22  Geert Bosch  <bosch@adacore.com>
1375
1376         * gcc-interface/trans.c: Define FP_ARITH_MAY_WIDEN
1377         (convert_with_check): Only use longest_float_type if FP_ARITH_MAY_WIDEN is 0
1378
1379 2008-08-22  Doug Rupp  <rupp@adacore.com>
1380
1381         * bindgen.adb [VMS] (Gen_Adainit_Ada, Gen_Adainit_C): Import and call
1382         __gnat_set_features.
1383
1384         * init.c
1385         (__gnat_set_features): New function.
1386         (__gnat_features_set): New tracking variable.
1387         (__gl_no_malloc_64): New feature global variable
1388
1389 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
1390
1391         * sem_ch8.adb (Use_One_Type): Do not emit warning message about redundant
1392         use_type_clause in an instance.
1393
1394 2008-08-22  Bob Duff  <duff@adacore.com>
1395
1396         * exp_ch6.ads: Remove pragma Precondition, since it breaks some builds.
1397
1398 2008-08-22  Robert Dewar  <dewar@adacore.com>
1399
1400         * exp_ch6.adb: Minor reformatting
1401
1402         * exp_ch7.adb: Minor reformatting
1403
1404         * exp_ch7.ads: Put routines in proper alpha order
1405
1406         * exp_dist.adb: Minor reformatting
1407
1408 2008-08-22  Vincent Celier  <celier@adacore.com>
1409
1410         * prj.ads: Minor comment update
1411
1412 2008-08-22  Robert Dewar  <dewar@adacore.com>
1413
1414         * sem_ch5.adb (One_Bound): Fix latent bug involving secondary stack
1415
1416 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
1417
1418         * exp_tss.adb:
1419         (Base_Init_Proc): For a protected subtype, use the base type of the
1420         corresponding record to locate the propoer initialization procedure.
1421
1422 2008-08-22  Robert Dewar  <dewar@adacore.com>
1423
1424         * checks.adb:
1425         (In_Subrange_Of): New calling sequence
1426         (Determine_Range): Prepare for new processing using base type
1427
1428         * exp_ch4.adb:
1429         (Compile_Time_Compare): Use new calling sequence
1430
1431         * exp_ch5.adb:
1432         (Compile_Time_Compare): Use new calling sequence
1433
1434         * sem_eval.adb:
1435         (Compile_Time_Compare): New calling sequence allows dealing with
1436         invalid values.
1437         (In_Subrange_Of): Ditto
1438
1439         * sem_eval.ads:
1440         (Compile_Time_Compare): New calling sequence allows dealing with
1441         invalid values.
1442         (In_Subrange_Of): Ditto
1443
1444 2008-08-22  Pascal Obry  <obry@adacore.com>
1445
1446         * adaint.c: Fix possible race condition on win32_wait().
1447
1448 2008-08-22  Bob Duff  <duff@adacore.com>
1449
1450         * exp_ch5.adb, exp_ch7.adb, exp_ch7.ads, exp_util.adb, freeze.adb,
1451         exp_ch4.adb, exp_ch6.ads, exp_ch6.adb, sem_ch6.adb, exp_aggr.adb,
1452         exp_intr.adb, exp_ch3.adb: Rename:
1453         Exp_Ch7.Controlled_Type => Needs_Finalization
1454         Exp_Ch7.CW_Or_Controlled_Type => CW_Or_Has_Controlled_Part
1455         Exp_Ch5.Expand_N_Extended_Return_Statement.Controlled_Type =>
1456          Has_Controlled_Parts
1457         (Has_Some_Controlled_Component): Fix bug in array case.
1458
1459 2008-08-22  Robert Dewar  <dewar@adacore.com>
1460
1461         * sem_ch8.adb: Minor reformatting
1462
1463 2008-08-22  Kevin Pouget  <pouget@adacore.com>
1464
1465         * s-shasto.ads, s-shasto.adb: Move Shared_Var_ROpen, Shared_Var_WOpen and
1466         Shared_Var_Close procedure specifications from package spec to package body.
1467
1468         * rtsfind.ads: Remove RE_Shared_Var_Close, RE_Shared_Var_ROpen,
1469         RE_Shared_Var_WOpen entries.
1470
1471         * exp_dist.adb: Update RE_Any_Content_Ptr to RE_Any_Container_Ptr in
1472         Build_To_Any_Call, Build_TypeCode_Call and Build_From_Any_Call procedures.
1473
1474 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
1475
1476         * init.c: adjust EH support code on Alpha/Tru64 as well.
1477
1478         * raise-gcc.c: Add back a couple of comments.
1479
1480 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
1481
1482         * exp_ch5.adb (Expand_Simple_Function_Return): If secondary stack is
1483         involved and the return type is class-wide, use the type of the expression
1484         for the generated access type. Suppress useless discriminant checks on the
1485         allocator.
1486
1487 2008-08-22  Bob Duff  <duff@adacore.com>
1488
1489         * exp_ch7.adb: Minor comment fix
1490
1491         * exp_ch6.ads: Minor comment fix
1492
1493 2008-08-22  Thomas Quinot  <quinot@adacore.com>
1494
1495         * sem_ch8.adb: Minor reformatting
1496         Minor code reorganization (introduce subprogram to factor duplicated
1497         code).
1498
1499 2008-08-22  Sergey Rybin  <rybin@adacore.com>
1500
1501         * gnat_ugn.texi: Change the description of gnatcheck default rule
1502         settings.
1503
1504 2008-08-22  Eric Botcazou  <ebotcazou@adacore.com>
1505
1506         * init.c (__gnat_adjust_context_for_raise): Delete for AIX, HP-UX,
1507         Solaris, FreeBSD, VxWorks and PowerPC/Linux.  For x86{-64}/Linux,
1508         do not adjust the PC anymore.
1509         (__gnat_error_handler): Do not call __gnat_adjust_context_for_raise
1510         on AIX, HP-UX, Solaris, FreeBSD and VxWorks.
1511
1512         * raise-gcc.c (get_call_site_action_for): Use _Unwind_GetIPInfo
1513         instead of _Unwind_GetIP.
1514
1515 2008-08-22  Gary Dismukes  <dismukes@adacore.com>
1516
1517         * exp_aggr.adb (Static_Array_Aggregate): When a static array aggregate
1518         with a range is transformed into a positional aggregate, any copied
1519         component literals should be marked Is_Static_Expression.
1520
1521         * sem_eval.adb (Compile_Time_Known_Value): Don't treat null literals as
1522         not being known at at compile time when Configurable_Run_Time_Mode is
1523         true.
1524
1525 2008-08-22  Robert Dewar  <dewar@adacore.com>
1526
1527         * exp_attr.adb:
1528         (Expand_N_Attribute_Reference): No validity checking on OUT parameter of
1529         Read or Input attribute.
1530
1531 2008-08-22  Ed Schonberg  <schonberg@adacore.com>
1532
1533         * sem_ch8.adb (Use_One_Type): when checking which of two use_type
1534         clauses in related units is redundant, if one of the units is a package
1535         instantiation, use its instance_spec to determine which unit is the
1536         ancestor of the other.
1537
1538 2008-08-22  Javier Miranda  <miranda@adacore.com>
1539
1540         * exp_attr.adb (Expand_N_Attribute_Reference): In case of access
1541         attributes add missing support to handle designated types that come
1542         from the limited view.
1543
1544         * exp_disp.adb (Expand_Interface_Conversion): Remove wrong assertion.
1545
1546 2008-08-22  Sergey Rybin  <rybin@adacore.com>
1547
1548         * vms_data.ads: Add entry for new gnatcheck -mNNN option
1549
1550         * gnat_ugn.texi: Add description for gnatcheck option '-m'
1551
1552 2008-08-22  Sergey Rybin  <rybin@adacore.com>
1553
1554         * gnat_ugn.texi: Update the gnatcheck subsection for metric rules
1555         acoording to the latest changes in the metric rule interface
1556
1557 2008-08-22  Vincent Celier  <celier@adacore.com>
1558
1559         * make.adb (Check.File_Not_A_Source_Of): New Boolean function
1560         (Check): Check if the file names registered in the ALI file for the
1561         spec, the body and each of the subunits are the ones expected.
1562
1563 2008-08-22  Robert Dewar  <dewar@adacore.com>
1564
1565         * g-catiio.adb: Code cleanup.
1566
1567 2008-08-20  Vincent Celier  <celier@adacore.com>
1568
1569         * make.adb (Gnatmake): Remove extra space in version line
1570
1571         * ali.adb:
1572         (Scan_ALI): Use Name_Find, not Name_Enter to get the name of a subunit,
1573         as the name may already have been entered in the table by the Project
1574         Manager.
1575
1576 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
1577
1578         * errno.c (__get_errno, __set_errno for MaRTE): Transform then into
1579         weak symbols so we use the version provided by MaRTE when available.
1580
1581 2008-08-20  Emmanuel Briot  <briot@adacore.com>
1582
1583         * g-catiio.ads, g-catiio.adb:
1584         (Value): Avoid an unnecessary system call to Clock in most cases.
1585         This call is only needed when only the time is provided in the string,
1586         and ignored in all other cases. This is more efficient.
1587
1588 2008-08-20  Eric Botcazou  <ebotcazou@adacore.com>
1589
1590         * raise-gcc.c: Fix formatting nits.
1591
1592 2008-08-20  Robert Dewar  <dewar@adacore.com>
1593
1594         * sem_ch13.adb:
1595         (Adjust_Record_For_Reverse_Bit_Order): Do not access First_Bit for
1596         non-existing component clause.
1597
1598         * exp_ch5.adb: Minor reformatting
1599
1600         * g-comlin.adb: Minor reformatting
1601
1602         * make.adb: Minor reformatting
1603
1604         * prj-proc.adb: Minor reformatting
1605
1606         * stylesw.ads: Minor reformatting
1607
1608 2008-08-20  Vincent Celier  <celier@adacore.com>
1609
1610         * make.adb (Gnatmake_Switch_Found): New Boolean global variable
1611         (Switch_May_Be_Passed_To_The_Compiler): New Boolean global variable
1612         (Add_Switches): New Boolean parameter Unknown_Switches_To_The_Compiler
1613          defaulted to True. Fail when Unknown_Switches_To_The_Compiler is False
1614         and a switch is not recognized by gnatmake.
1615         (Gnatmake): Implement new scheme for gnatmake switches and global
1616         compilation switches.
1617         (Switches_Of): Try successively Switches (<file name>),
1618         Switches ("Ada"), Switches (others) and Default_Switches ("Ada").
1619
1620 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1621
1622         * styleg-c.ads, styleg-c.adb (Missing_Overriding): new procedure to
1623         implement style check that overriding operations are explicitly marked
1624         at such.
1625
1626         * style.ads (Missing_Overriding): new procedure that provides interface
1627         to previous one.
1628
1629         * stylesw.ads, stylesw.adb: New style switch -gnatyO, to enable check
1630         that the declaration or body of overriding operations carries an
1631         explicit overriding indicator.
1632
1633         * sem_ch8.adb
1634         (Analyze_Subprogram_Renaming): if operation is overriding, check whether
1635         explicit indicator should be present.
1636
1637         * sem_ch6.adb (Verify_Overriding_Indicator,
1638         Check_Overriding_Indicator): If operation is overriding, check whether
1639         declaration and/or body of subprogram should be present
1640
1641 2008-08-20  Vincent Celier  <celier@adacore.com>
1642
1643         * prj-nmsc.adb (Check_Naming_Schemes): Accept source file names for
1644         gprbuild when casing is MixedCase, whatever the casing of the letters
1645         in the file name.
1646
1647 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
1648
1649         * exp_ch3.adb (Build_Array_Init_Proc): Clarify comment related to
1650         creating dummy init proc.
1651         (Requires_Init_Proc): Return False in the case No_Default_Initialization
1652         is in force and the type does not have associated default
1653         initialization. Move test of Is_Public (with tests of restrictions
1654         No_Initialize_Scalars and No_Default_Initialization) to end, past tests
1655         for default initialization.
1656
1657 2008-08-20  Jerome Lambourg  <lambourg@adacore.com>
1658
1659         * g-comlin.adb (For_Each_Simple_Switch): Take care of switches not part
1660         of any alias or prefix but having attached parameters (as \"-O2\").
1661
1662 2008-08-20  Robert Dewar  <dewar@adacore.com>
1663
1664         * s-fileio.adb: Minor reformatting
1665
1666 2008-08-20  Thomas Quinot  <quinot@adacore.com>
1667
1668         * exp_strm.adb (Build_Elementary_Input_Call,
1669         Build_Elementary_Write_Call): Fix incorrect condition in circuitry that
1670         selects the stream attribute routines for long float types.
1671
1672 2008-08-20  Vincent Celier  <celier@adacore.com>
1673
1674         * prj-proc.adb (Process_Declarative_Items): Add Location for Array_Data
1675
1676         * prj.ads (Array_Data): Add a component Location
1677
1678 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1679
1680         * sem_prag.adb:
1681         (Analyze_Pragma, case Obsolescent): Add entity information on the pragma
1682         argument for ASIS and navigation use.
1683
1684 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1685
1686         * einfo.ads: Add comment.
1687
1688 2008-08-20  Bob Duff  <duff@adacore.com>
1689
1690         * sem_eval.ads: Minor comment fix.
1691
1692 2008-08-20  Bob Duff  <duff@adacore.com>
1693
1694         * exp_ch4.adb (Expand_N_And_Then, Expand_N_Or_Else): Improve constant
1695         folding. We were folding things like "False and then ...", but not
1696         "X and then ..." where X is a constant whose value is known at compile
1697         time.
1698
1699 2008-08-20  Hristian Kirtchev  <kirtchev@adacore.com>
1700
1701         * exp_ch5.adb (Controlled_Type): New routine.
1702         (Expand_N_Extended_Return_Statement): When generating a move of the
1703         final list in extended return statements, check the type of the
1704         function and in the case of double expanded return statements, the type
1705         of the returned object.
1706         (Expand_Simple_Function_Return): Perform an interface conversion when
1707         the type of the returned object is an interface and the context is an
1708         extended return statement.
1709
1710 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1711
1712         * sem_util.adb (Set_Debug_Info_Needed): If the entity is a private type
1713         and the full view is visible, set flag on full view as well.
1714
1715 2008-08-20  Thomas Quinot  <quinot@adacore.com>
1716
1717         * g-comlin.adb: Minor reformatting
1718         Minor code reorganization.
1719
1720         * freeze.adb: Minor reformatting
1721
1722 2008-08-20  Vincent Celier  <celier@adacore.com>
1723
1724         * prj-nmsc.adb (Check_File): An excluded Ada source file may be a
1725         source of another project.
1726
1727 2008-08-20  Pascal Obry  <obry@adacore.com>
1728
1729         * s-os_lib.ads: Minor reformatting.
1730
1731 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
1732
1733         * gnatvsn.ads: Minor reformatting.
1734
1735 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
1736
1737         * a-crbtgk.adb, repinfo.adb, g-traceb.ads, repinfo.ads,
1738         system-linux-s390x.ads, s-fatflt.ads, s-parame-ae653.ads, g-spipat.adb,
1739         g-spipat.ads, g-tasloc.adb, g-debpoo.adb, g-except.ads, g-debpoo.ads,
1740         mdll-utl.adb, g-string.adb, g-soliop-solaris.ads, par-sync.adb,
1741         exp_ch6.ads, a-cihama.ads, g-curexc.ads, system-linux-sh4.ads,
1742         g-utf_32.adb, g-hesorg.adb, s-proinf-irix-athread.ads, s-parint.adb,
1743         s-parint.ads, exp_ch7.ads, system-linux-alpha.ads, g-dirope.adb,
1744         sinfo-cn.adb, par-labl.adb, a-ciorse.adb, g-calend.adb,
1745         s-parame-vms-alpha.ads, nlists.h, exp_imgv.adb, exp_fixd.ads,
1746         g-calend.ads, gnatcmd.ads, g-table.adb, s-memory-mingw.adb,
1747         g-alveop.ads, g-memdum.ads, g-altive.ads, initialize.c, g-regpat.adb,
1748         g-busorg.ads, g-regpat.ads, g-encstr.ads, g-regexp.adb, g-regexp.ads,
1749         live.ads, g-dyntab.adb, prj-nmsc.ads, par-ch12.adb, 9drpc.adb,
1750         g-alvevi.ads, s-memory.adb, math_lib.adb, s-parame.ads, s-memory.ads,
1751         s-regexp.adb, a-exexda.adb, i-cstrea-vms.adb, a-exexpr.adb,
1752         g-soliop-mingw.ads, s-imgrea.adb, namet.adb, system-vms.ads,
1753         s-inmaop-dummy.adb, s-finroo.ads, a-ngcefu.adb, s-hibaen.ads,
1754         g-soliop.ads, s-auxdec.adb, g-locfil.ads, gnatxref.adb, memroot.adb,
1755         osint-b.ads, memroot.ads, s-parame-hpux.ads, errutil.adb,
1756         system-linux-s390.ads, par-util.adb, osint-c.ads, exp_pakd.ads,
1757         i-pacdec.ads, par-endh.adb, mlib-tgt.ads, prj-strt.ads,
1758         s-osprim-vms.adb, s-proinf.ads, output.ads, g-moreex.ads,
1759         a-finali.ads, s-fatlfl.ads, namet.h, mdll.ads, g-dynhta.ads,
1760         s-imgenu.ads, par-tchk.adb, g-excact.ads, memtrack.adb, s-fatgen.adb,
1761         a-exexpr-gcc.adb, g-arrspl.adb, par-ch4.adb, g-cgideb.adb, freeze.ads,
1762         g-altcon.adb, s-fatllf.ads, gnatfind.adb, s-osinte-lynxos-3.adb,
1763         a-exextr.adb, g-htable.ads, a-calfor.adb, s-imgcha.adb, argv.c,
1764         a-chahan.ads, g-hesora.adb, system-vms_64.ads, par-ch5.adb, g-md5.adb,
1765         lib-xref.ads, g-md5.ads, g-casuti.ads, s-fatsfl.ads, exp_dbug.ads,
1766         s-htable.ads, a-ngcoar.adb, s-arit64.ads, a-ngelfu.adb, a-filico.ads,
1767         par-ch6.adb, s-inmaop.ads, s-parame-vxworks.ads, s-casuti.ads,
1768         a-numaux-darwin.adb, a-cohama.ads, system-linux-sparc.ads, g-os_lib.adb,
1769         system-vms-ia64.ads, s-parame-vms-restrict.ads, a-clrefi.ads,
1770         s-parame-vms-ia64.ads, a-strfix.adb, a-coorse.adb, a-comlin.ads,
1771         a-chtgke.adb, s-imgint.adb, g-expect.ads, exp_ch4.ads, s-finimp.adb,
1772         mingw32.h, g-heasor.adb, g-alleve.adb, a-ngrear.adb, s-mastop-irix.adb,
1773         s-poosiz.adb, link.c: Fix copyright notice.
1774
1775 2008-08-20  Arnaud Charlet  <charlet@adacore.com>
1776
1777         * g-comlin.ads: Update comments.
1778
1779 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1780
1781         * sem_ch8.adb (Analyze_Subprogram_Renaming): Inherit Is_Imported flag.
1782
1783 2008-08-20  Gary Dismukes  <dismukes@adacore.com>
1784
1785         * exp_ch11.adb:
1786         (Expand_Exception_Handlers): Call Make_Exception_Handler instead of
1787         Make_Implicit_Exception_Handler when rewriting an exception handler with
1788         a choice parameter, and pass the handler's Sloc instead of that of the
1789         handled sequence of statements. Make_Implicit_Exception_Handler sets the
1790         Sloc to No_Location (unless debugging generated code), which we don't
1791         want for the case of a user handler.
1792
1793 2008-08-20  Robert Dewar  <dewar@adacore.com>
1794
1795         * freeze.adb (Freeze_Record_Type): Improve msg for non-contiguous field
1796
1797         * sem_ch13.adb:
1798         (Adjust_Record_For_Reverse_Bit_Order): Messages about layout are
1799         now labeled as info msgs, not warnings.
1800
1801         * tbuild.ads: Clarify documentation of Make_Implicit_Exception_Handler
1802
1803         * usage.adb: Minor change to avoid overlong line for -gnatwz/Z
1804
1805         * a-textio.adb: Remove redundant test.
1806
1807         * a-witeio.adb: Minor code reorganization
1808         Remove redundant test found working on another issue
1809
1810         * a-ztexio.adb: Minor code reorganization
1811         Remove redundant test found working on another issue
1812
1813 2008-08-20  Thomas Quinot  <quinot@adacore.com>
1814
1815         * s-fileio.adb (Open) Use C helper function to determine whether a
1816         given errno value corresponds to a "file not found" error.
1817
1818         * sysdep.c (__gnat_is_file_not_found_error): New C helper function.
1819
1820 2008-08-20  Jose Ruiz  <ruiz@adacore.com>
1821
1822         * errno.c (__get_errno for MaRTE): Use the MaRTE function pthread_errno
1823         to get access to the per-task errno variable.
1824         (__set_errno for MaRTE): Do not redefine this function here since it is
1825         already defined in MaRTE.
1826
1827 2008-08-20  Tristan Gingold  <gingold@adacore.com>
1828
1829         * gnat_ugn.texi: Gcov is not supported on static library on AIX.
1830
1831 2008-08-20  Robert Dewar  <dewar@adacore.com>
1832
1833         * freeze.adb: Minor reformatting
1834
1835         * g-comlin.adb: Minor reformatting
1836
1837         * g-socket.adb: Minor reformatting
1838
1839         * g-socthi-mingw.adb: Minor reformatting
1840
1841         * g-stheme.adb: Minor reformatting
1842
1843 2008-08-20  Ed Schonberg  <schonberg@adacore.com>
1844
1845         * sem_aggr.adb, sem_type.adb, exp_ch9.ads, einfo.ads,
1846         exp_ch6.adb, exp_aggr.adb (Valid_Ancestor): Resolve
1847         confusion between partial and full views of an ancestor of the context
1848         type when the parent is a private extension declared in a parent unit,
1849         and full views are available for the context type.
1850
1851 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
1852             Robert Dewar  <dewar@adacore.com>
1853
1854         PR ada/30827
1855         * bindgen.adb (Gen_Output_File_Ada): Zero-terminate the
1856         version string.
1857         Move comment in the right place.
1858         * g-comver.adb (Version): Look for a zero-termination in
1859         addition to a closing parenthesis.
1860
1861 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
1862
1863         * exp_ch13.adb, exp_disp.adb, sem_cat.adb, sem_ch10.adb,
1864         * sem_ch12.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb,
1865         * sem_prag.adb, sem_util.adb, sem_warn.adb: Use
1866         Is_Package_Or_Generic_Package instead of hand-crafted tests.
1867
1868 2008-08-18  Samuel Tardieu  <sam@rfc1149.net>
1869
1870         PR ada/15808
1871         * sem_ch6.adb (Check_Private_Overriding): Check for generic packages
1872         as well.
1873
1874 2008-08-17  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
1875
1876         * adaint.c (_gnat_set_close_on_exec) [_WIN32]: Implement.
1877
1878 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1879
1880         * gcc-interface/trans.c (call_to_gnu): Use the Sloc of the call
1881         for back-copy statements in lieu of that of the actual.
1882
1883 2008-08-16  Eric Botcazou  <ebotcazou@adacore.com>
1884
1885         PR ada/20548
1886         * gcc-interface/decl.c (gnat_to_gnu_entity): Use DECL_SIZE_UNIT in the
1887         setjmp test consistently.  Adjust for new behavior of flag_stack_check.
1888         * gcc-interface/utils2.c (build_call_alloc_dealloc): Remove redundant
1889         test of flag_stack_check.  Adjust for new behavior of flag_stack_check.
1890
1891 2008-08-13  Samuel Tardieu  <sam@rfc1149.net>
1892
1893         PR ada/36777
1894         * sem_util.ads, sem_util.adb (Is_Protected_Self_Reference): New.
1895         * sem_attr.adb (Check_Type): The current instance of a protected
1896         object is not a type name.
1897         (Analyze_Access_Attribute): Accept instances of protected objects.
1898         (Analyze_Attribute, Attribute_Address clause): Ditto.
1899         * exp_attr.adb (Expand_N_Attribute_Reference): Rewrite
1900         the prefix as being the current instance if needed.
1901
1902 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
1903
1904         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS) [WINDOWS]:
1905         Remove duplicate s-win32.o. Add s-winext.o.
1906
1907 2008-08-12  Danny Smith  <danyssmith@users.sourceforge.net>
1908
1909         * g-stsifd-sockets.adb (Create): Replace Constants.SOCK_STREAM
1910         with SOSC.SOCK__STREAM.
1911         * g-socthi-mingw.adb (C_Select) Replace Constants.MSG_OOB with
1912         SOSC.MSG_OOB.
1913
1914 2008-08-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
1915
1916         * s-oscons-tmplt.c: RTEMS defines AF_INET6 but does support it.
1917         * gsocket.h, socket.c: Update to support RTEMS.
1918         * gcc-interface/Make-lang.in: Include CFLAGS_FOR_TARGET when cross.
1919
1920 2008-08-10  Samuel Tardieu  <sam@rfc1149.net>
1921             Robert Dewar <dewar@adacore.com>
1922
1923         * exp_ch4.adb (Expand_N_Op_Expon): Force evaluation of
1924         left argument even when right argument is 0.
1925         (Expand_N_Op_Mod): Ditto when right argument is 1.
1926         (Expand_N_Op_Multiply): Ditto when any argument is 0.
1927         (Expand_N_Op_Rem): Ditto when right argument is 1.
1928
1929 2008-08-09  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1930
1931         * gcc-interface/misc.c (gnat_handle_option): Replace set_Wunused
1932         by warn_unused.
1933
1934 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
1935
1936         * freeze.adb (Generate_Prim_Op_References): New procedure, abstracted
1937         from Freeze_Entity. Used to generate cross-reference information for
1938         types declared in generic packages.
1939
1940 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1941
1942         * gcc-interface/Makefile.in: Reintroduce g-soccon.ads as a
1943         compatibility shim.
1944
1945 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1946
1947         * gsocket.h:
1948         On Windows, include <errno.h> and redefine only selected errno values
1949         from their <winsock2.h> definitions.
1950
1951         * s-osinte-freebsd.ads: Minor reformatting
1952
1953         * s-osinte-hpux.ads, s-osinte-irix.ads: Minor reformatting
1954
1955         * g-soccon.ads: New file.
1956
1957         * g-stheme.adb, g-socthi-vms.adb, g-socthi-vxworks.adb,
1958         g-socthi-mingw.adb, g-sttsne-vxworks.adb, g-socthi.adb,
1959         g-stsifd-sockets.adb, g-socket.adb, g-socket.ads,
1960         g-sothco.adb, g-sothco.ads: Add back GNAT.Sockets.Constants as a child
1961         unit, to allow building software that depends on this internal unit
1962         with both older and newer compilers.
1963
1964 2008-08-08  Robert Dewar  <dewar@adacore.com>
1965
1966         * s-strxdr.adb: Minor reformatting
1967
1968 2008-08-08  Bob Duff  <duff@adacore.com>
1969
1970         * gnat_ugn.texi: The "Run-Time Checks" section said "arithmetic overflow
1971         checking for integer operations (including division by zero)", which
1972         is wrong -- divide by zero is not part of overflow checking.
1973         Also added misc clarification about what check-suppression means.
1974
1975         * gnat_rm.texi: Clarify the meaning of pragma Suppress.
1976
1977 2008-08-08  Jerome Lambourg  <lambourg@adacore.com>
1978
1979         * g-comlin.adb (Add_Switch): Handle addition of switches at the
1980         begining of the command line.
1981         (Append, Add): Renaming of Append to Add as this now allows addition
1982         at the begining of the list.
1983
1984         * g-comlin.ads (Add_Switch): Handle addition of switches at the
1985         begining of the command line.
1986
1987 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1988
1989         * g-sercom.ads:
1990         (Name): Document application scope (only legacy PC serial ports on
1991         Linux and Windows).
1992
1993 2008-08-08  Thomas Quinot  <quinot@adacore.com>
1994
1995         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Revert
1996         previous change, not needed after all.
1997
1998 2008-08-08  Ed Schonberg  <schonberg@adacore.com>
1999
2000         * exp_ch4.adb (Expand_Allocator_Expression): add check if null
2001         exclusion indicator is present
2002
2003 2008-08-08  Robert Dewar  <dewar@adacore.com>
2004
2005         * g-comlin.adb: Minor code reorganization
2006         Minor reformatting
2007
2008         * g-comlin.ads: Minor reformatting
2009
2010         * s-fileio.adb: Minor reformatting
2011
2012         * sem_attr.adb: Minor code reorganization (use Nkind_In)
2013         Minor reformatting
2014
2015 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
2016
2017         * gcc-interface/Make-lang.in: Use GCC_FOR_TARGET when dealing
2018         with s-oscons-tmplt.i.
2019
2020 2008-08-06  Samuel Tardieu  <sam@rfc1149.net>
2021
2022         * gcc-interface/Make-lang.in (OSCONS_CPPFLAGS): Remove.
2023
2024 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
2025
2026         * sem_ch3.adb (Analyze_Component_Declaration): Protect against misuse
2027         of incomplete type.
2028
2029         * sem_ch8.adb (Analyze_Object_Renaming): Diagnose properly a renaming
2030         of a formal parameter of an incomplete type. Improve error message for
2031         other improper uses of incomplete types.
2032
2033 2008-08-06  Robert Dewar  <dewar@adacore.com>
2034
2035         * gnat_ugn.texi: Clarify -gnato documentation
2036
2037 2008-08-06  Thomas Quinot  <quinot@adacore.com>
2038
2039         * gcc-interface/Makefile.in,
2040         g-socthi-vxworks.adb, g-socthi-mingw.adb, g-sttsne-vxworks.adb,
2041         g-socthi.adb, g-socket.adb, g-socket.ads, g-sothco.ads,
2042         g-soccon-linux-x86.ads, g-soccon-vxworks.ads, g-soccon-mingw.ads,
2043         g-soccon-hpux-ia64.ads, g-soccon-irix.ads, g-soccon-linux-64.ads,
2044         g-soccon-aix.ads, g-soccon-solaris.ads, g-soccon-lynxos.ads,
2045         g-soccon-vms.ads, g-soccon.ads, g-soccon-freebsd.ads,
2046         g-soccon-linux-ppc.ads, g-soccon-tru64.ads, g-soccon-hpux.ads,
2047         g-soccon-solaris-64.ads, gen-oscons.c, g-soccon-darwin.ads,
2048         g-soccon-mingw-64.ads, g-soccon-linux-mips.ads, g-soccon-rtems.ads:
2049         Remove GNAT.Sockets.Constants. This internal package is replaced by
2050         System.OS_Constants.
2051
2052 2008-08-06  Thomas Quinot  <quinot@adacore.com>
2053
2054         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in:
2055         Remove obsolete targets referencing gen-soccon
2056         When generating s-oscons.ads, use a file name that includes the
2057         THREAD_KIND, to ensure that the (potentially different) version from a
2058         previous build with a different threads flavour does not get reused.
2059
2060 2008-08-06  Thomas Quinot  <quinot@adacore.com>
2061
2062         * sem_res.adb: Minor reformatting
2063
2064         * s-fileio.adb (Open): When file open operation fails, raise Name_Error
2065         only when the operating system reports a non-existing file or directory
2066         (ENOENT), otherwise raise Name_Error.
2067
2068         * exp_ch11.adb: Minor reformatting
2069
2070 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
2071
2072         * sem_ch3.adb (Access_Subprogram_Declaration): If the return type is
2073         incomplete, add the access_to_subprogram type to the list of private
2074         dependents only if the incomplete type will be completed in the current
2075         scope.
2076         (Build_Discriminant_Constraints): If the type of the discriminant is
2077         access_to_variable, reject a constraint that is access_to_constant.
2078
2079 2008-08-06  Thomas Quinot  <quinot@adacore.com>
2080
2081         * g-socket-dummy.adb, g-socket-dummy.ads, g-sothco-dummy.adb,
2082         g-sothco-dummy.ads, g-socthi-dummy.adb, g-socthi-dummy.ads,
2083         g-sttsne-dummy.ads: New files.
2084
2085         * gcc-interface/Makefile.in, Makefile.rtl: Use placeholder sources
2086         with pragma Unimplemented_Unit for sockets packages on Nucleus.
2087
2088 2008-08-06  Pascal Obry  <obry@adacore.com>
2089
2090         * adaint.c: Another fix for ACL support on Windows.
2091
2092 2008-08-06  Javier Miranda  <miranda@adacore.com>
2093
2094         * exp_disp (Expand_Interface_Actuals): Adds missing support for
2095         expansion of calls to subprograms using selected components.
2096
2097 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
2098
2099         * sem_res.adb (Resolve_Call): Use base type to determine whether a
2100         dereference is needed because a subtype of an access_to_subprogram is
2101         simply an access-subtype
2102
2103 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
2104
2105         * g-comlin.adb (Set_Command_Line): Now that aliases can contain
2106         parameters, always specify the expected separator.
2107
2108 2008-08-06  Thomas Quinot  <quinot@adacore.com>
2109
2110         * xnmake.adb: Use new XUtil package for platform independent text
2111         output.
2112
2113 2008-08-06  Vincent Celier  <celier@adacore.com>
2114
2115         * gnat_ugn.texi: Document compiler switch -gnateG
2116
2117 2008-08-06  Quentin Ochem  <ochem@adacore.com>
2118
2119         * s-stausa.adb (Fill_Stack): Fixed pragma assert and top pattern mark
2120         in the case of an empty pattern size.
2121         (Compute_Result): Do not do any computation in the case of an empty
2122         pattern size.
2123         (Report_Result): Fixed computation of the overflow guard.
2124
2125 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
2126
2127         * g-awk.adb (Finalize): Do not use directly objects of the type in the
2128         finalization routine to prevent elaboration order anomalies in new
2129         finalization scheme.
2130
2131 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
2132
2133         * sem_ch3.adb (Find_Type_Name): protect against duplicate incomplete
2134         declaration for the same type.
2135
2136 2008-08-06  Thomas Quinot  <quinot@adacore.com>
2137
2138         * sem.adb: Minor rewording (comment)
2139
2140 2008-08-06  Jerome Lambourg  <lambourg@adacore.com>
2141
2142         * g-comlin.adb (Define_Switch, Get_Switches): New.
2143         (Can_Have_Parameter, Require_Parameter, Actual_Switch): New, used when
2144         ungrouping switches.
2145         (For_Each_Simple_Switch): Allow more control over parameters handling.
2146         This generic method now allows ungrouping of switches with parameters
2147         and switches with more than one letter after the prefix.
2148         (Set_Command_Line): Take care of switches that are prefixed with a
2149         switch handling parameters without delimiter (-gnatya and -gnaty3 for
2150         example).
2151         (Add_Switch, Remove_Switch): Handle parameters possibly present inside
2152         a group, as in gnaty3aM80 (3 and 80 are parameters). Report status of
2153         the operation.
2154         (Start, Alias_Switches, Group_Switches): Take care of parameters
2155         possibly present inside a group.
2156
2157         * g-comlin.ads (Define_Switch): New method used to define a list of
2158         expected switches, that are necessary for correctly ungrouping switches
2159         with more that one character after the prefix.
2160         (Get_Switches): Method that builds a getopt string from the list of
2161         switches as set previously by Define_Switch.
2162         (Add_Switch, Remove_Switch): New versions of the methods, reporting the
2163         status of the operation. Also allow the removal of switches with
2164         parameters only.
2165         (Command_Line_Configuration_Record): Maintain a list of expected
2166         switches.
2167
2168 2008-08-06  Doug Rupp  <rupp@adacore.com>
2169
2170         * gcc-interface/decl.c (gnat_to_gnu_param): Force 32bit descriptor if
2171         TARGET_MALLOC64 clear.
2172
2173         * gcc-interface/utils2.c (build_call_alloc_dealloc): Force 32bit malloc
2174         if TARGET_MALLOC64 clear.
2175
2176         * gcc-interface/gigi.h (TARGET_ABI_OPEN_VMS): Move here from utils2.c
2177         (TARGET_MALLC64): New macro. Default to clear.
2178
2179 2008-08-06  Doug Rupp  <rupp@adacore.com>
2180
2181         * gcc-interface/utils2.c (snames.h) Include
2182         (TARGET_ABI_OPEN_VMS): Initialize.
2183         (build_call_alloc_dealloc); [TARGET_ABI_OPEN_VMS] Allocate on 32bit heap
2184         for Convention C.
2185
2186 2008-08-06  Ed Schonberg  <schonberg@adacore.com>
2187
2188         * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper
2189         null exclusion in a discriminant declaration
2190
2191         * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion
2192         indicators when type is not an access type.
2193
2194         * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion
2195         indicators when type is not an access type.
2196
2197 2008-08-06  Javier Miranda  <miranda@adacore.com>
2198
2199         * exp_disp (Expand_Interface_Conversion): Freeze the entity associated
2200         with the target interface before expanding the code of the interface
2201         conversion.
2202
2203 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
2204
2205         * freeze.adb:
2206         (Freeze_Entity): A deferred constant does not violate the restriction
2207         No_Default_Initialization,
2208
2209         * sem_ch3.adb (Process_Subtype): An allocator is a valid construct that
2210         can carry a null exclusion indicator, and on which an error may be
2211         posted if the indicator is redundant.
2212
2213         * sem_ch8.adb (Analyze_Object_Renaming): Verify that a null exclusion
2214         does not apply to a subtype mark that already excludes null.
2215
2216         * sem_ch12.adb (Formal_Object_Declaration): Verify that a null
2217         exclusion does not apply to a subtype mark that already excludes null.
2218
2219 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2220
2221         * Makefile.rtl: Compile s-oscons.ads as part of the runtime library.
2222
2223 2008-08-05  Doug Rupp  <rupp@adacore.com>
2224
2225         * vms_data.ads: Translation for /POINTER_SIZE qualifier.
2226
2227 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2228
2229         * gsocket.h: Make this file includable in a Nucleus environment, which
2230         does not support sockets.
2231
2232         * socket.c: Remove Nucleus-specific hack.
2233
2234 2008-08-05  Pascal Obry  <obry@adacore.com>
2235
2236         * adaint.c: Remove support for readable attribute on vxworks and nucleus
2237
2238 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
2239
2240         * sem_attr.adb:
2241         (Analyze_Attribute, case 'Result): handle properly the case where some
2242         operand of the expression in a post-condition generates a transient
2243         block.
2244
2245         * sem_ch5.adb (Analyze_Assignment_Statement): Apply conversion to
2246         right-hand side when it is an anonymous access_to_subprogram, to force
2247         static accessibility check when needed.
2248
2249 2008-08-05  Sergey Rybin  <rybin@adacore.com>
2250
2251         * gnat_ugn.texi: Changing the description of the gnatcheck metrics
2252         rule according to the change in the rule option.
2253         Add documentation for -gnatw.b/-gnatw.B
2254
2255 2008-08-05  Robert Dewar  <dewar@adacore.com>
2256
2257         * ug_words: Add entries for -gnatw.b/-gnatw.B
2258
2259         * vms_data.ads: Add entries for -gnatw.b/-gnatw.B
2260
2261 2008-08-05  Vincent Celier  <celier@adacore.com>
2262
2263         * a-wtdeio.adb (Put (Current_Output)): Use Fore in the call to Put
2264         (File).
2265
2266         * a-ztdeio.adb: Ditto.
2267
2268 2008-08-05  Pascal Obry  <obry@adacore.com>
2269
2270         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Add support for the
2271         readable attribute.
2272
2273 2008-08-05  Vincent Celier  <celier@adacore.com>
2274
2275         * s-wchwts.adb:
2276         (Wide_String_To_String): Returns a String with the same 'First as its
2277         parameter S.
2278         (Wide_Wide_String_To_String): Ditto
2279
2280         * s-wchwts.ads:
2281         (Wide_String_To_String): Document that the lowest index of the returned
2282         String is equal to S'First.
2283
2284 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2285
2286         * xoscons.adb, xutil.ads, xutil.adb, s-oscons-tmplt.c: New files.
2287
2288         * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Generate
2289         s-oscons.ads
2290
2291 2008-08-05  Robert Dewar  <dewar@adacore.com>
2292
2293         * opt.ads (Warn_On_Biased_Representation): New flag
2294
2295         * sem_ch13.adb:
2296         (Analyze_Attribute_Definition_Clause): Issue warning when biased
2297         representation is required.
2298         (Minimum_Size): Don't allow biasing if enum rep clause case
2299
2300         * sem_warn.adb:
2301         (Set_Dot_Warning_Switch): Add handling of -gnatw.b/B switches
2302         (Set_Warning_Switch): Include -gnatw.b in -gnatwa, -gnatw.B in gnatws
2303
2304         * usage.adb: Add lines for -gnatw.b/B switches
2305
2306 2008-08-05  Pascal Obry  <obry@adacore.com>
2307
2308         * a-coinve.adb: Reorder the code to avoid uninitialized warning.
2309
2310         * adaint.c: In UNIX cases do not call __gnat_stat but stat directly.
2311
2312 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2313
2314         * socket.c: Minor reformatting.
2315
2316 2008-08-05  Robert Dewar  <dewar@adacore.com>
2317
2318         * sem_ch3.adb: Minor reformatting
2319
2320         * prj-nmsc.adb: Minor reformatting
2321
2322 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
2323
2324         * sem_ch12.adb (Validate_Array_Type_Instance): Only apply complex
2325         visibility check on the component type if the simple test fails.
2326
2327 2008-08-05  Jose Ruiz  <ruiz@adacore.com>
2328
2329         * init.c (__gnat_install_handler for linux): If we are building the
2330         Xenomai run time then we need to do two additional things: avoid
2331         memory swapping and transform the Linux environment task into a native
2332         Xenomai task.
2333
2334         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for xenomai run
2335         time): Use interface to Xenomai native skin and avoid linux-specific
2336         way of setting CPU affinity.
2337         (EH_MECHANISM for the xenomai run time): Use sjlj exception mechanism.
2338
2339 2008-08-05  Bob Duff  <duff@adacore.com>
2340
2341         * checks.ads: Minor comment fix
2342
2343 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2344
2345         * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb,
2346         g-sercom-linux.adb (Data_Bits): Change literals B7 and B8 to CS7 and
2347         CS8.
2348
2349 2008-08-05  Robert Dewar  <dewar@adacore.com>
2350
2351         * mlib.adb: Minor code reorganization
2352         Minor reformatting
2353
2354         * make.adb: Minor reformatting
2355
2356         * prj-attr.ads: Minor reformatting
2357
2358         * s-os_lib.adb: Minor reformatting
2359
2360         * s-fileio.adb: Minor code reorganization
2361         Minor reformatting
2362
2363         * prj.ads: Minor reformatting
2364
2365 2008-08-05  Bob Duff  <duff@adacore.com>
2366
2367         * sem_ch3.adb (Analyze_Object_Declaration): Avoid type Any_Access in
2368         unresolved initial value of "null", because it causes implicitly
2369         generated "=" operators to be ambiguous, and because this type should
2370         not be passed to gigi.
2371
2372 2008-08-05  Vincent Celier  <celier@adacore.com>
2373
2374         * mlib.adb: Update comments.
2375
2376         * make.adb (Switches_Of): Check for Switches (others), before checking
2377         for Default_Switches ("Ada").
2378         (Gnatmake): Use Builder'Switches (others) in preference to
2379         Builder'Default_Switches ("Ada") if there are several mains.
2380
2381         * prj-attr-pm.adb:
2382         (Add_Attribute): Add component Others_Allowed in Attribute_Record
2383         aggregate.
2384
2385         * prj-attr.adb:
2386         Add markers to indicates that attributes Switches allow others as index
2387         (Others_Allowed_For): New Boolean function, returning True for
2388         attributes with the mark.
2389         (Initialize): Recognize optional letter 'O' as the marker for
2390         associative array attributes where others is allowed as the index.
2391
2392         * prj-attr.ads:
2393         (Others_Allowed_For): New Boolean function
2394         (Attribute_Record): New Boolean component Others_Allowed
2395
2396         * prj-dect.adb:
2397         (Parse_Attribute_Declaration): For associative array attribute where
2398         others is allowed as the index, allow others as an index.
2399
2400         * prj-nmsc.adb:
2401         (Process_Binder): Skip associative array attributes with index others
2402         (Process_Compiler): Ditto
2403
2404         * prj-util.adb:
2405         (Value_Of (Index, In_Array)): Make no attempt to put in lower case when
2406         index is All_Other_Names.
2407
2408         * prj.ads:
2409         (All_Other_Names): New constant
2410
2411         * prj-proc.adb:
2412         (Process_Declarative_Items): Skip associative array attribute when index
2413         is reserved word "others".
2414
2415 2008-08-05  Vasiliy Fofanov  <fofanov@adacore.com>
2416
2417         * gen-oscons.c: Adapt for VMS where termios.h is not available.
2418
2419 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2420
2421         * a-rttiev.adb: Minor reformatting (comments)
2422
2423         * gen-soccon.c: Rename to gen-oscons.c
2424
2425         * gen-oscons.c: New file. Now generate System.OS_Constants instead of
2426         GNAT.Sockets.Constants.
2427         Add new constants for GNAT.Serial_Communications and System.File_IO.
2428
2429 2008-08-05  Javier Miranda  <miranda@adacore.com>
2430
2431         * sem_util.adb (Collect_Interfaces_Info): Minor reformating.
2432         * exp_ch3.adb (Build_Offset_To_Top_Functions): Code cleanup: the
2433         implementation of this routine has been simplified.
2434
2435 2008-08-05  Pascal Obry  <obry@adacore.com>
2436
2437         * adaint.c, adaint.h, s-os_lib.adb, s-os_lib.ads: Fix the
2438         Set_Read_Only Win32 implementation.
2439
2440 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2441
2442         * exp_strm.adb: Minor reformatting (comments)
2443
2444         * sem_ch12.adb: Minor reformatting.
2445
2446 2008-08-05  Robert Dewar  <dewar@adacore.com>
2447
2448         * sem_ch3.adb: Minor reformatting
2449
2450         * checks.adb: Minor reformatting
2451
2452 2008-08-05  Thomas Quinot  <quinot@adacore.com>
2453
2454         * tbuild.ads (New_External_Name): Update spec to reflect relaxed
2455         restriction on Prefix.
2456
2457 2008-08-05  Jerome Lambourg  <lambourg@adacore.com>
2458
2459         * g-comlin.adb (Sort_Sections, Group_Switches): New/Modified internal
2460         methods needed to handle switch sections when building a command line.
2461         (Define_Section, Add_Switch, Remove_Switch, Is_New_Section,
2462         Current_Section): New public methods or methods modified to handle
2463         building command lines with sections.
2464         (Set_Command_Line): Take into account sections when analysing a switch
2465         string.
2466         (Start): Sort the switches by sections before iterating the command line
2467         elements.
2468
2469         * g-comlin.ads (Define_Section, Add_Switch, Remove_Switch,
2470         Is_New_Section, Current_Section): New methods or methods modified to
2471         handle building command lines with sections.
2472
2473 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
2474
2475         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For access
2476         discriminants, indicate that the corresponding object declaration has
2477         no initialization, to prevent spurious warnings when the access type is
2478         null-excluding.
2479
2480 2008-08-05  Ed Schonberg  <schonberg@adacore.com>
2481
2482         * sem_res.adb (Resolve_Call): If this is a call to the predefined
2483         Abort_Task, warn if the call appears within a protected operation.
2484
2485 2008-08-04  Robert Dewar  <dewar@adacore.com>
2486
2487         * exp_ch4.adb (Expand_N_In): Suppress range warnings in instances
2488
2489 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2490
2491         * sem_ch3.adb:
2492         (Replace_Anonymous_Access_To_Protected_Subprogram): Handle properly an
2493         anonymous access to protected subprogram that is the return type of the
2494         specification of a subprogram body.
2495
2496         * sem_ch6.adb:
2497         (Analyze_Subprogram_Body): if the return type is an anonymous access to
2498         subprogram, freeze it now to prevent access anomalies in the back-end.
2499
2500         * exp_ch9.adb: Minor code cleanup.
2501         Make sure that new declarations are inserted into the tree before
2502         analysis (from code reading).
2503
2504 2008-08-04  Robert Dewar  <dewar@adacore.com>
2505
2506         * exp_ch5.adb:
2507         (Expand_Simple_Function_Return): Check No_Secondary_Stack restriction
2508         at point of return.
2509
2510 2008-08-04  Thomas Quinot  <quinot@adacore.com>
2511
2512         * sem_type.adb, sem_ch4.adb, sprint.adb, exp_ch3.adb: Minor reformatting
2513
2514 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
2515
2516         * g-soccon-mingw.ads: Fix value for MSG_WAITALL
2517
2518 2008-08-04  Javier Miranda  <miranda@adacore.com>
2519
2520         * sem_prag.adb (Process_Convention): Add missing support for
2521          N_Private_Extension_Declaration nodes.
2522
2523 2008-08-04  Robert Dewar  <dewar@adacore.com>
2524
2525         * exp_ch4.adb: Minor reformatting
2526
2527 2008-08-04  Pascal Obry  <obry@adacore.com>
2528
2529         * adaint.h: Add missing prototype.
2530
2531         * adaint.c: Refine support for Windows file attributes.
2532
2533 2008-08-04  Robert Dewar  <dewar@adacore.com>
2534
2535         * sem_res.adb:
2536         (Valid_Conversion): Catch case of designated types having different
2537         sizes, even though they statically match.
2538
2539 2008-08-04  Javier Miranda  <miranda@adacore.com>
2540
2541         * sem_eval.adb (Subtypes_Statically_Match): Remove superfluous patch
2542         added in previous patch to handle access to subprograms.
2543
2544 2008-08-04  Robert Dewar  <dewar@adacore.com>
2545
2546         * freeze.adb:
2547         (Freeze_Entity): Only check No_Default_Initialization restriction for
2548         constructs that come from source
2549
2550 2008-08-04  Thomas Quinot  <quinot@adacore.com>
2551
2552         * exp_ch6.adb: Minor comment fix.
2553
2554         * sem_ch4.adb: Minor reformatting.
2555
2556 2008-08-04  Robert Dewar  <dewar@adacore.com>
2557
2558         * sem_res.adb: (Large_Storage_Type): Improve previous change.
2559
2560 2008-08-04  Pascal Obry  <obry@adacore.com>
2561
2562         * adaint.c, s-os_lib.adb, s-os_lib.ads: Use Windows ACL to deal with
2563         file attributes.
2564
2565 2008-08-04  Javier Miranda  <miranda@adacore.com>
2566
2567         * sem_ch3.adb (Access_Subprogram_Declaration): Adding missing support
2568         for N_Formal_Object_Declaration nodes. Adding kludge required by
2569         First_Formal to provide its functionality with access to functions.
2570         (Replace_Anonymous_Access_To_Protected_Subprogram): Add missing support
2571         for anonymous access types returned by functions.
2572
2573         * sem_ch5.adb (Analyze_Assignment): Code cleanup to avoid duplicate
2574         conversion of null-excluding access types (required only once to force
2575         the generation of the required runtime check).
2576
2577         * sem_type.adb (Covers): minor reformating
2578
2579         * checks.adb (Null_Exclusion_Static_Checks): Avoid reporting errors
2580         with internally generated nodes. Avoid generating the error inside init
2581         procs.
2582
2583         * sem_res.adb (Resolve_Membership_Test): Minor reformating.
2584         (Resolve_Null): Generate the null-excluding check in case of assignment
2585         to a null-excluding object.
2586         (Valid_Conversion): Add missing support for anonymous access to
2587         subprograms.
2588
2589         * sem_ch6.adb (Check_Return_Subtype_Indication): Add missing support for
2590         anonymous access types whose designated type is an itype. This case
2591         occurs with anonymous access to protected subprograms types.
2592         (Analyze_Return_Type):  Add missing support for anonymous access to
2593         protected subprogram.
2594
2595         * sem_eval.adb (Subtypes_Statically_Match): In case of access to
2596         subprograms addition of missing check on matching convention. Required
2597         to properly handle access to protected subprogram types.
2598
2599         * exp_ch3 (Build_Assignment): Code cleanup removing duplicated check on
2600         null excluding access types.
2601
2602 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2603
2604         * sem_ch12.adb: Add comments
2605
2606         * sem_ch4.adb (Analyze_Allocator): If the designated type is a non-null
2607         access type and the allocator is not initialized, warn rather than
2608         reporting an error.
2609
2610 2008-08-04  Robert Dewar  <dewar@adacore.com>
2611
2612         * exp_ch4.adb: Minor reformatting
2613
2614         * exp_dist.adb: Minor reformatting
2615
2616         * g-comlin.adb: Minor reformatting
2617
2618 2008-08-04  Gary Dismukes  <dismukes@adacore.com>
2619
2620         * exp_aggr.adb (Build_Record_Aggr_Code): Perform a conversion of the
2621         target to the type of the aggregate in the case where the target object
2622         is class-wide.
2623
2624         * exp_ch5.adb (Expand_Simple_Function_Return): When the function's
2625         result type is class-wide and inherently limited, and the expression
2626         has a specific type, create a return object of the specific type, for
2627         more efficient handling of returns of build-in-place aggregates (avoids
2628         conversions of the class-wide return object to the specific type on
2629         component assignments).
2630
2631         * sem_ch6.adb (Check_Return_Subtype_Indication): Suppress the error
2632         about a type mismatch for a class-wide function with a return object
2633         having a specific type when the object declaration doesn't come from
2634         source. Such an object can result from the expansion of a simple return.
2635
2636 2008-08-04  Vasiliy Fofanov  <fofanov@adacore.com>
2637
2638         * g-soccon-mingw-64.ads, system-mingw-x86_64.ads: New files.
2639
2640         * gcc-interface/Makefile.in: Use 64bit-specific system files when
2641         compiling for 64bit windows.
2642
2643 2008-08-04  Jerome Lambourg  <lambourg@adacore.com>
2644
2645         * g-comlin.adb (Group_Switches): Preserve the switch order when
2646         grouping and allow switch grouping of switches with more than one
2647         character extension (e.g. gnatw.x).
2648         (Args_From_Expanded): Remove this now obsolete method.
2649
2650 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2651
2652         * exp_ch4.adb (Get_Allocator_Final_List): Freeze anonymous type for
2653         chain at once, to ensure that type is properly decorated for back-end,
2654         when allocator appears within a loop.
2655
2656 2008-08-04  Kevin Pouget  <pouget@adacore.com>
2657
2658         * snames.h, snames.adb, snames.ads:
2659         Add Attr_To_Any, Attr_From_Any and Attr_TypeCode defines.
2660
2661         * exp_dist.ads, exp_dist.adb: Add Build_From_Any_Call,
2662         Build_To_Any_Call and Build_TypeCode_Call procedures.
2663
2664         * exp_attr.adb, sem_attr.adb: Add corresponding cases.
2665
2666         * rtsfind.ads: Add corresponding names.
2667
2668         * tbuild.adb: Update prefix restrictions to allow '_' character.
2669
2670 2008-08-04  Doug Rupp  <rupp@adacore.com>
2671
2672         * gigi.h (fill_vms_descriptor): Add third parameter gnat_actual
2673         * trans.c (call_to_gnu): Call fill_vms_descriptor with new parameter.
2674         * utils2.c (fill_vms_descriptor): Add third parameter for error sloc and
2675         use it.  Calculate pointer range overflow using 64bit types.
2676
2677 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2678
2679         * sem_ch3.adb (Access_Definition): A formal object declaration is a
2680         legal context for an anonymous access to subprogram.
2681
2682         * sem_ch4.adb (Analyze_One_Call): If the call can be interpreted as an
2683         indirect call, report success to the caller to include possible
2684         interpretation.
2685
2686         * sem_ch6.adb (Check_Return_Type_Indication): Apply proper conformance
2687         check when the type
2688         of the extended return is an anonymous access_to_subprogram type.
2689
2690         * sem_res.adb:
2691         (Resolve_Call): Insert a dereference if the type of the subprogram is an
2692         access_to_subprogram and the context requires its return type, and a
2693         dereference has not been introduced previously.
2694
2695 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
2696
2697         * usage.adb (Usage): Minor rewording of -gnatwz switch, to improve
2698         gnatcheck support in GPS.
2699
2700 2008-08-04  Vincent Celier  <celier@adacore.com>
2701
2702         * mlib.adb (Create_Sym_Links): Create relative symbolic links when
2703         requested
2704
2705 2008-08-04  Vincent Celier  <celier@adacore.com>
2706
2707         * gprep.adb (Process_One_File): Call Prep.Preprocess with a Boolean
2708         variable, but don't check the resulting value as it has no impact on
2709         the processing.
2710
2711         * opt.ads:
2712         (Generate_Processed_File): New Boolean flag, set to True in the compiler
2713         when switch -gnateG is used.
2714
2715         * prep.adb:
2716         (Preprocess): new Boolean out parameter Source_Modified. Set it to True
2717         when the source is modified by the preprocessor and there is no
2718         preprocessing errors.
2719
2720         * prep.ads (Preprocess): new Boolean out parameter Source_Modified
2721
2722         * sinput-l.adb:
2723         (Load_File): Output the result of preprocessing if the source text was
2724         modified.
2725
2726         * switch-c.adb (Scan_Front_End_Switches): Recognize switch -gnateG
2727
2728         * switch-m.adb (Normalize_Compiler_Switches): Normalize switch -gnateG
2729
2730         * ug_words: Add VMS equivalent for -gnateG
2731
2732         * vms_data.ads:
2733         Add VMS option /GENERATE_PROCESSED_SOURCE, equivalent to switch -gnateG
2734
2735 2008-08-04  Doug Rupp  <rupp@adacore.com>
2736
2737         * gcc-interface/utils2.c:
2738         (fill_vms_descriptor): Raise CE if attempt made to pass 64bit pointer
2739         in 32bit descriptor.
2740
2741 2008-08-04  Robert Dewar  <dewar@adacore.com>
2742
2743         * par-ch10.adb: Minor reformatting
2744
2745         * i-cobol.adb: Minor reformatting.
2746
2747 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2748
2749         * sem_ch3.adb (Access_Definition): Create an itype reference for an
2750         anonymous access return type of a regular function that is not a
2751         compilation unit.
2752
2753 2008-08-04  Vincent Celier  <celier@adacore.com>
2754
2755         * prj-attr.adb: New Builder attribute Global_Compilation_Switches
2756
2757         * snames.adb: New standard name Global_Compilation_Switches
2758
2759         * snames.ads: New standard name Global_Compilation_Switches
2760
2761         * make.adb: Correct spelling error in comment
2762
2763 2008-08-04  Arnaud Charlet  <charlet@adacore.com>
2764
2765         * sem_prag.adb (Check_Form_Of_Interface_Name): Fix handling for CLI
2766         target.
2767
2768 2008-08-04  Thomas Quinot  <quinot@adacore.com>
2769
2770         * sem_ch10.adb: Minor comment fix.
2771
2772 2008-08-04  Robert Dewar  <dewar@adacore.com>
2773
2774         * restrict.adb: Improved messages for restriction warnings
2775
2776         * restrict.ads: Improved messages for restriction messages
2777
2778         * s-rident.ads (Profile_Name): Add No_Profile
2779
2780 2008-08-04  Robert Dewar  <dewar@adacore.com>
2781
2782         * system-darwin-x86.ads: Correct bad definition of Max_Nonbinary_Modulus
2783
2784 2008-08-04  Robert Dewar  <dewar@adacore.com>
2785
2786         * freeze.adb (Freeze_Entity): Check for size clause for boolean warning
2787
2788 2008-08-04  Vincent Celier  <celier@adacore.com>
2789
2790         * prj-proc.adb:
2791         (Copy_Package_Declarations): When inheriting package Naming from a
2792         project being extended, do not inherit source exception names.
2793
2794 2008-08-04  Ed Schonberg  <schonberg@adacore.com>
2795
2796         * sem_prag.adb (Check_Precondition_Postcondition): When scanning the
2797         list of declaration to find previous subprogram, do not go to the
2798         original node of a generic unit.
2799
2800 2008-08-02  Eric Botcazou  <ebotcazou@adacore.com>
2801
2802         * gcc-interface/utils2.c (build_binary_op) <PLUS_EXPR, MINUS_EXPR>:
2803         New case.  Convert BOOLEAN_TYPE operation to the default integer type.
2804
2805 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
2806
2807         * gcc-interface/ada-tree.h (DECL_PARM_ALT): Now DECL_PARM_ALT_TYPE.
2808         * gcc-interface/decl.c (gnat_to_gnu_param): Fix formatting, simplify
2809         and adjust for above renaming.
2810         * gcc-interface/utils.c (convert_vms_descriptor): Likewise. Add new
2811         gnu_expr_alt_type parameter.  Convert the expression to it instead
2812         of changing its type in place.
2813         (build_function_stub): Adjust call to above function.
2814
2815 2008-08-01  Eric Botcazou  <ebotcazou@adacore.com>
2816
2817         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Constant>: Remove dead
2818         code.  Do not get full definition of deferred constants with address
2819         clause for a use.  Do not ignore deferred constant definitions with
2820         address clause.  Ignore constant definitions already marked with the
2821         error node.
2822         <object>: Remove obsolete comment.  For a deferred constant with
2823         address clause, get the initializer from the full view.
2824         * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
2825         Rework and remove obsolete comment.
2826         <N_Object_Declaration>: For a deferred constant with address clause,
2827         mark the full view with the error node.
2828         * gcc-interface/utils.c (convert_to_fat_pointer): Rework and fix
2829         formatting nits.
2830
2831 2008-08-01  Hristian Kirtchev  <kirtchev@adacore.com>
2832
2833         * rtsfind.ads: Add block IO versions of stream routines for Strings.
2834
2835         * bindgen.adb, gnat_rm.texi, gnat_ugn.texi, opt.ads,
2836         sem_prag.adb, snames.adb, snames.ads, snames.h,
2837         par-prag.adb: Undo previous stream related changes.
2838
2839         * s-rident.ads: Add new restriction No_Stream_Optimizations.
2840
2841         * s-ststop.ads, s-ststop.adb: Comment reformatting.
2842         Define enumeration type to designate different IO mechanisms.
2843         Enchance generic package Stream_Ops_Internal to include an
2844         implementation of Input and Output.
2845
2846         * exp_attr.adb (Find_Stream_Subprogram): If restriction
2847         No_Stream_Optimization is active, choose the default byte IO
2848         implementations of stream attributes for Strings.
2849         Otherwise use the corresponding block IO version.
2850
2851 2008-08-01  Olivier Hainque  <hainque@adacore.com>
2852
2853         * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Function>: Do not
2854         turn Ada Pure into GCC const, now implicitely implying nothrow as well.
2855
2856 2008-08-01  Robert Dewar  <dewar@adacore.com>
2857
2858         * par-ch3.adb (P_Defining_Identifier): Avoid repeated attempt to
2859         convert plain identifier into defining identifier.
2860
2861 2008-08-01  Robert Dewar  <dewar@adacore.com>
2862
2863         * sem_prag.adb (Check_Form_Of_Interface_Name): Refine and improve
2864         warnings
2865
2866         * lib-xref.adb: Add error defense.
2867
2868 2008-08-01  Bob Duff  <duff@adacore.com>
2869
2870         * ioexcept.ads, sequenio.ads, directio.ads: Correct comment.
2871
2872 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
2873
2874         * exp_ch6.adb (Expand_Call): Adjustment to previous fix for passing
2875         correct accessibility levels. In the "when others" case, retrieve the
2876         access level of the Etype of Prev rather than Prev_Orig, because the
2877         original exression has not always been analyzed.
2878
2879 2008-08-01  Robert Dewar  <dewar@adacore.com>
2880
2881         * prj-nmsc.adb: Minor reformatting
2882
2883         * sem_ch4.adb: Minor reformatting
2884         Minor code reorganization
2885
2886         * prj.ads: Minor reformatting
2887
2888         * s-os_lib.adb: Minor reformatting
2889
2890         * par-prag.adb (Prag, case Wide_Character_Encoding): Deal with upper
2891         half encodings
2892
2893         * scans.ads: Minor reformatting.
2894
2895         * sem_prag.adb (Analyze_Pragma): Put entries in alpha order
2896         (Analyze_Pragma): Make sure all GNAT pragmas call GNAT_Pragma
2897
2898         * sem_res.adb:
2899         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
2900
2901         * sem_ch12.adb: Minor comment reformatting
2902
2903         * par-ch3.adb (P_Type_Declaration): Properly handle missing type
2904         keyword
2905
2906 2008-08-01  Robert Dewar  <dewar@adacore.com>
2907
2908         * sem_ch6.adb (Process_PPCs): Don't copy spec PPC to body if not
2909         generating code
2910
2911 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2912
2913         * checks.adb (Apply_Float_Conversion_Check): If the expression to be
2914         converted is a real literal and the target type has static bounds,
2915         perform the conversion exactly to prevent floating-point anomalies on
2916         some targets.
2917
2918 2008-08-01  Vincent Celier  <celier@adacore.com>
2919
2920         * prj-attr.adb: New attribute Compiler'Name_Syntax (<lang>)
2921
2922         * prj-nmsc.adb (Process_Compiler): Recognize attribute Name_Syntax
2923
2924         * prj.adb (Object_Exist_For): Use Object_Generated, not
2925         Objects_Generated that is removed and was never modified anyway.
2926
2927         * prj.ads:
2928         (Path_Syntax_Kind): New enumeration type
2929         (Language_Config): New component Path_Syntax, defaulted to Host.
2930         Components PIC_Option and Objects_Generated removed, as they are not
2931         used.
2932
2933         * snames.adb: New standard name Path_Syntax
2934
2935         * snames.ads: New standard name Path_Syntax
2936
2937 2008-08-01  Vincent Celier  <celier@adacore.com>
2938
2939         * mlib-utl.adb:
2940         (Adalib_Path): New variable to store the path of the adalib directory
2941         when procedure Specify_Adalib_Dir is called.
2942         (Lib_Directory): If Adalib_Path is not null, return its value
2943         (Specify_Adalib_Dir): New procedure
2944
2945         * mlib-utl.ads (Specify_Adalib_Dir): New procedure
2946
2947 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2948
2949         * sem_prag.adb:
2950         (Check_Precondition_Postcondition): If not generating code, analyze the
2951         expression in a postcondition that appears in a subprogram body, so that
2952         it is properly decorated for ASIS use.
2953
2954 2008-08-01  Gary Dismukes  <dismukes@adacore.com>
2955
2956         * exp_ch6.adb (Expand_Call): Remove ugly special-case code that resets
2957         Orig_Prev to Prev in the case where the actual is N_Function_Call or
2958         N_Identifier. This was interfering with other cases that are rewritten
2959         as N_Identifier, such as allocators, resulting in passing of the wrong
2960         accessibility level, and based on testing this code is apparently no
2961         longer needed at all.
2962
2963 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2964
2965         * sem_ch4.adb (Analyze_One_Call): Handle complex overloading of a
2966         procedure call whose prefix
2967         is a parameterless function call that returns an access_to_procedure.
2968
2969 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2970
2971         * adaint.c (__gnat_tmp_name): Refine the generation of temporary names
2972         for RTX. Adding a suffix that is incremented at each iteration.
2973
2974 2008-08-01  Robert Dewar  <dewar@adacore.com>
2975
2976         * sem_ch6.adb (Analyze_Subprogram_Body): Remove special casing of
2977         Raise_Exception
2978
2979 2008-08-01  Jerome Lambourg  <lambourg@adacore.com>
2980
2981         * s-os_lib.adb (Normalize_Pathname): Take care of double-quotes in
2982         paths, which are authorized by Windows but can lead to errors when used
2983         elsewhere.
2984
2985 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
2986
2987         * sem_ch12.ads (Need_Subprogram_Instance_Body): new function, to create
2988         a pending instantiation for the body of a subprogram that is to be
2989         inlined.
2990
2991         * sem_ch12.adb:
2992         (Analyze_Subprogram_Instantiation): use Need_Subprogram_Instance_Body.
2993
2994         * sem_prag.adb (Make_Inline): If the pragma applies to an instance,
2995         create a pending instance for its body, so that calls to the subprogram
2996         can be inlined by the back-end.
2997
2998 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
2999
3000         * gnat_ugn.texi: Document the RTX run times (rts-rtx-rtss and
3001         rts-rtx-w32).
3002
3003 2008-08-01  Robert Dewar  <dewar@adacore.com>
3004
3005         * scng.adb (Error_Illegal_Wide_Character): Bump scan pointer
3006
3007 2008-08-01  Doug Rupp  <rupp@adacore.com>
3008
3009         * gnat_rm.texi: Document new mechanism Short_Descriptor.
3010
3011         * types.ads (Mechanism_Type): Modify range for new Short_Descriptor
3012         mechanism values.
3013
3014         * sem_prag.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
3015         mechanism and Short_Descriptor mechanism values.
3016
3017         * snames.adb (preset_names): Add short_descriptor entry.
3018
3019         * snames.ads: Add Name_Short_Descriptor.
3020
3021         * types.h: Add new By_Short_Descriptor mechanism values.
3022
3023         * sem_mech.adb (Set_Mechanism_Value): Enhance for Short_Descriptor
3024         mechanism and Short_Descriptor mechanism values.
3025
3026         * sem_mech.ads (Mechanism_Type): Add new By_Short_Descriptor mechanism
3027         values.
3028         (Descriptor_Codes): Modify range for new mechanism values.
3029
3030         * treepr.adb (Print_Entity_Enfo): Handle new By_Short_Descriptor
3031         mechanism values.
3032
3033         * gcc-interface/decl.c (gnat_to_gnu_entity): Handle By_Short_Descriptor.
3034         (gnat_to_gnu_param): Handle By_Short_Descriptor.
3035
3036         * gcc-interface/gigi.h (build_vms_descriptor64): Remove prototype.
3037         (build_vms_descriptor32): New prototype.
3038         (fill_vms_descriptor): Remove unneeded gnat_actual parameter.
3039
3040         * gcc-interface/trans.c (call_to_gnu): Removed unneeded gnat_actual
3041         argument in call fill_vms_descriptor.
3042
3043         * gcc-interface/utils.c (build_vms_descriptor32): Renamed from
3044         build_vms_descriptor and enhanced to hande Short_Descriptor mechanism.
3045         (build_vms_descriptor): Renamed from build_vms_descriptor64.
3046         (convert_vms_descriptor32): New function.
3047         (convert_vms_descriptor64): New function.
3048         (convert_vms_descriptor): Rewrite to handle both 32bit and 64bit
3049         descriptors.
3050
3051         * gcc-interface/utils2.c (fill_vms_descriptor): Revert previous changes,
3052         no longer needed.
3053
3054 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
3055
3056         * adaint.c (__gnat_tmp_name): RTSS applications do not support tempnam
3057         nor tmpnam, so we always use c:\WINDOWS\Temp\gnat-XXXXXX as temporary
3058         name.
3059
3060 2008-08-01  Jose Ruiz  <ruiz@adacore.com>
3061
3062         * cstreams.c (__gnat_full_name): RTSS applications cannot ask for the
3063         current directory so only fully qualified names are allowed.
3064
3065 2008-08-01  Robert Dewar  <dewar@adacore.com>
3066
3067         * gnat_ugn.texi:
3068         Minor editing, remove uncomfortable use of semicolon
3069
3070         * s-ststop.adb: Add some ??? comments
3071
3072         * sem_ch10.adb: Minor reformatting
3073
3074         * snames.ads:
3075         Minor comment fixes, some pragmas were not properly
3076         categorized in the comments, documentation change only
3077
3078         * xref_lib.adb: Minor reformatting
3079
3080         * sinput.adb: Minor reformatting
3081
3082         * gnatchop.adb: Minor reformatting
3083
3084         * sem_util.ads: Minor reformatting.
3085
3086         * opt.ads: Minor documentation fix
3087
3088         * scng.adb: Minor reformatting
3089
3090         * prj-part.adb: Update comments
3091
3092 2008-08-01  Ed Schonberg  <schonberg@adacore.com>
3093
3094         * exp_disp.adb (Expand_Interface_Conversion): If the target type is a
3095         tagged synchronized type, use corresponding record type.
3096
3097 2008-08-01  Doug Rupp  <rupp@adacore.com>
3098
3099         * mlib-tgt-specific-vms-alpha.adb (Build_Dynamic_Library): Output a
3100         dummy transfer address for debugging.
3101
3102         * mlib-tgt-specific-vms-ia64.adb (Build_Dynamic_Library): Likewise.
3103
3104         * vms_data.ads: vms_data.ads: New qualfier /MACHINE_CODE_LISTING
3105
3106 2008-07-31  Eric Botcazou  <ebotcazou@adacore.com>
3107
3108         * gcc-interface/decl.c (gnat_to_gnu_entity): Fix formatting.
3109         * gcc-interface/utils.c (create_field_decl): Avoid superfluous work.
3110
3111 2008-07-31  Pascal Obry  <obry@adacore.com>
3112
3113         * prj-nmsc.adb: Keep Object and Exec directory casing.
3114
3115 2008-07-31  Jose Ruiz  <ruiz@adacore.com>
3116
3117         * system-rtx-rtss.ads
3118         Change the default stack size. It is important to set the commit part.
3119
3120         * s-taprop-rtx.adb
3121         (Initialize): Get the clock resolution.
3122         (RT_Resolution): Return the clock resolution that is indicated by the
3123         system.
3124
3125         * s-parame-vxworks.adb
3126         Document that this body is used for RTX in RTSS (kernel) mode.
3127
3128         * gcc-interface/Makefile.in
3129         (LIBGNAT_TARGET_PAIRS for the rtx_rtss run time): Use the
3130         s-parame-vxworks.adb body in order to have reasonable stack sizes in
3131         RTX RTSS kernel mode. Virtual memory is not used in that case, so we
3132         cannot ask for too big values.
3133
3134 2008-07-31  Robert Dewar  <dewar@adacore.com>
3135
3136         * exp_aggr.adb: Minor reformatting
3137
3138         * makeutl.adb: Minor reformatting
3139
3140         * prj-env.adb: Minor reformatting
3141
3142 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
3143
3144         * exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
3145         tagged type is completed by a concurrent type.
3146
3147 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
3148
3149         * sem_aggr.adb:
3150         (Resolve_Record_Aggregate): Bypass error that a type without
3151         components must have a "null record" aggregate when compiling for Ada
3152         2005, since it's legal to give an aggregate of form (others => <>)
3153         for such a type.
3154
3155 2008-07-31  Javier Miranda  <miranda@adacore.com>
3156
3157         * sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
3158         handle synchronized types. Required to handle well the object.operation
3159         notation applied to synchronized types.
3160
3161 2008-07-31  Quentin Ochem  <ochem@adacore.com>
3162
3163         * s-stausa.adb (Fill_Stack): Stack_Used_When_Filling is now stored
3164         anymore - just used internally.
3165         Added handling of very small tasks - when the theoretical size is
3166         already full at the point of the call.
3167         (Report_Result): Fixed result computation, Stack_Used_When_Filling does
3168         not need to be added to the result.
3169
3170 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
3171
3172         * sem_ch6.adb (Disambiguate_Spec): Continue the disambiguation if the
3173         corresponding spec is a primitive wrapper. Update comment.
3174
3175 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
3176
3177         * bindgen.adb Comment reformatting. Update the list of run-time globals.
3178         (Gen_Adainit_Ada): Add the declaration, import and value set for
3179         configuration flag Canonical_Streams.
3180         (Gen_Adainit_C): Add the declaration and initial value of external
3181         symbol __gl_canonical_streams.
3182
3183         * init.c: Update the list of global values computed by the binder.
3184
3185         * opt.ads: Add flag Canonical_Streams.
3186
3187         * par-prag.adb (Prag): Include Pragma_Canonical_Streams to the list of
3188         semantically handled pragmas.
3189
3190         * sem_prag.adb: Add an entry into enumeration type Sig_Flags.
3191         (Analyze_Pragma): Add case for pragma Canonical_Streams.
3192
3193         * snames.adb: Add character value for name Canonical_Streams.
3194
3195         * snames.ads:
3196         Add Name_Canonical_Streams to the list of configuration pragmas.
3197         Add Pragma_Canonical_Streams to enumeration type Pragma_Id.
3198
3199         * snames.h: Add a definition for Pragma_Canonical_Streams.
3200
3201         * s-ststop.adb:
3202         Add a flag and import to seize the value of external symbol
3203         __gl_canonical_streams. Update comment and initial value of constant
3204         Use_Block_IO.
3205
3206         * gnat_rm.texi: Add section of pragma Canonical_Streams.
3207
3208         * gnat_ugn.texi:
3209         Add pragma Canonical_Streams to the list of configuration pragmas.
3210
3211 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
3212
3213         * sem_ch10.adb (Build_Unit_Name): If the unit name in a with_clause
3214         has the form A.B.C and B is a unit renaming, analyze its compilation
3215         unit and add a with_clause on A.b to the context.
3216
3217 2008-07-31  Vincent Celier  <celier@adacore.com>
3218
3219         * makeutl.adb (Executable_Prefix_Path): If Locate_Exec_On_Path fails,
3220         return the empty string, instead of raising Constraint_Error.
3221
3222 2008-07-31  Gary Dismukes  <dismukes@adacore.com>
3223
3224         * checks.ads (Apply_Accessibility_Check): Add parameter Insert_Node.
3225
3226         * checks.adb (Apply_Accessibility_Check): Insert the check on
3227         Insert_Node.
3228
3229         * exp_attr.adb:
3230         (Expand_N_Attribute_Refernce, Attribute_Access): Pass attribute node
3231         to new parameter Insert_Node on call to Apply_Accessibility_Check.
3232         Necessary to distinguish the insertion node because the dereferenced
3233         formal may come from a rename, but the check must be inserted in
3234         front of the attribute.
3235
3236         * exp_ch4.adb:
3237         (Expand_N_Allocator): Pass actual for new Insert_Node parameter on
3238         call to Apply_Accessibility_Check.
3239         (Expand_N_Type_Conversion): Pass actual for new Insert_Node parameter
3240         on call to Apply_Accessibility_Check.
3241         Minor reformatting
3242
3243 2008-07-31  Javier Miranda  <miranda@adacore.com>
3244
3245         * sem_type.adb (Has_Compatible_Type): Complete support for synchronized
3246         types when the candidate type is a synchronized type.
3247
3248         * sem_res.adb (Resolve_Actuals): Reorganize code handling synchronized
3249         types, and complete management of synchronized types adding missing
3250         code to handle formal that is a synchronized type.
3251
3252         * sem_ch4.adb (Try_Primitive_Operation): Avoid testing attributes that
3253         are not available and cause the compiler to blowup. Found compiling
3254         test with switch -gnatc
3255
3256         * sem_ch6.adb (Check_Synchronized_Overriding): Remove local subprogram
3257         Has_Correct_Formal_Mode plus code cleanup.
3258
3259 2008-07-31  Bob Duff  <duff@adacore.com>
3260
3261         * sinput.adb (Skip_Line_Terminators): Fix handling of LF/CR -- it was
3262         recognized as two end-of-lines, but it should be just one.
3263
3264 2008-07-31  Thomas Quinot  <quinot@adacore.com>
3265
3266         * exp_ch9.adb: Minor reformatting
3267
3268         * tbuild.ads: Fix several occurrences of incorrectly referring to
3269         Name_Find as Find_Name.
3270
3271 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
3272
3273         * exp_aggr.adb (Aggr_Size_OK): If the aggregate has a single component
3274         and the context is an object declaration with non-static bounds, treat
3275         the aggregate as non-static.
3276
3277 2008-07-31  Vincent Celier  <celier@adacore.com>
3278
3279         * prj-part.adb, prj-part.ads, prj.adb, prj.ads, prj-env.adb:
3280         Move back spec of Parse_Single_Project to body, as it is not called
3281         outside of package Prj.Part.
3282         (Project_Data): Remove components Linker_Name, Linker_Path and
3283         Minimum_Linker_Options as they are no longer set.
3284         Remove function There_Are_Ada_Sources from package Prj and move code
3285         in the only place it was used, in Prj.Env.Set_Ada_Paths.
3286
3287 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
3288
3289         * mlib-utl.ads: Fix typo.
3290
3291 2008-07-31  Robert Dewar  <dewar@adacore.com>
3292
3293         * sem_ch12.adb: Minor reformatting
3294
3295 2008-07-31  Sergey Rybin  <rybin@adacore.com>
3296
3297         * gnat_ugn.texi: Change the description of the
3298         Overly_Nested_Control_Structures: now the rule always requires a
3299         positive parameter for '+R' option
3300
3301 2008-07-31  Thomas Quinot  <quinot@adacore.com>
3302
3303         * g-pehage.adb: Minor reformatting
3304
3305 2008-07-31  Pascal Obry  <obry@adacore.com>
3306
3307         * s-finimp.ads: Minor reformatting.
3308
3309 2008-07-31  Vincent Celier  <celier@adacore.com>
3310
3311         * s-regexp.ads: Minor comment fix
3312
3313 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
3314
3315         * s-direio.adb (Reset): Replace pragma Unmodified by Warnings (Off),
3316         so that we can compile this file successfully with -gnatc.
3317
3318 2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>
3319
3320         * exp_attr.adb (Find_Stream_Subprogram): Check the base type instead
3321         of the type when looking for stream subprograms for type String,
3322         Wide_String and Wide_Wide_String.
3323
3324         * s-ststop.adb: Change the initialization expression of constant
3325         Use_Block_IO.
3326
3327 2008-07-31  Geert Bosch  <bosch@adacore.com>
3328
3329         * arit64.c:
3330         New file implementing __gnat_mulv64 signed integer multiplication with
3331         overflow checking
3332
3333         * fe.h (Backend_Overflow_Checks_On_Target): Define for use by Gigi
3334
3335         * gcc-interface/gigi.h:
3336         (standard_types): Add ADT_mulv64_decl
3337         (mulv64_decl): Define subprogram declaration for __gnat_mulv64
3338
3339         * gcc-interface/utils.c:
3340         (init_gigi_decls): Add initialization of mulv64_decl
3341
3342         * gcc-interface/trans.c:
3343         (build_unary_op_trapv): New function
3344         (build_binary_op_trapv): New function
3345         (gnat_to_gnu): Use the above functions instead of
3346         build_{unary,binary}_op
3347
3348         * gcc-interface/Makefile.in
3349         (LIBGNAT_SRCS): Add arit64.c
3350         (LIBGNAT_OBJS): Add arit64.o
3351
3352 2008-07-31  Vincent Celier  <celier@adacore.com>
3353
3354         * prj-nmsc.adb (Check_Library_Attributes): Check if Linker'Switches or
3355         Linker'Default_Switches are declared. Warn if they are declared.
3356
3357 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
3358
3359         * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use
3360         Insert_Actions to place the pointer declaration in the code, rather
3361         than Insert_Before_And_Analyze, so that insertions of temporaries are
3362         kept in the proper order when transient scopes are present.
3363
3364
3365 2008-07-31  Robert Dewar  <dewar@adacore.com>
3366
3367         * einfo.adb (Spec_PPC): Now defined for generic subprograms
3368
3369         * einfo.ads (Spec_PPC): Now defined for generic subprograms
3370
3371         * sem_prag.adb (Check_Precondition_Postcondition): Handle generic
3372         subprogram case
3373
3374 2008-07-31  Vincent Celier  <celier@adacore.com>
3375
3376         * s-os_lib.adb: Minor comment fix
3377
3378 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
3379
3380         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): After analysis,
3381         transfer pre/postconditions from generic copy to original tree, so that
3382         they will appear in each instance.
3383         (Process_PPCs): Do not transform postconditions into a procedure in a
3384         generic context, to prevent double expansion of check pragmas.
3385
3386         * sem_attr.adb: In an instance, the prefix of the 'result attribute
3387         can be the renaming of the
3388         current instance, so check validity of the name accordingly.
3389
3390 2008-07-31  Robert Dewar  <dewar@adacore.com>
3391
3392         * mlib-utl.ads: Minor reformatting
3393
3394 2008-07-31  Ed Schonberg  <schonberg@adacore.com>
3395
3396         sem_attr.adb: 'Result can have an ambiguous prefix, and is resolved
3397         from context. This attribute must be usable in Ada95 mode.
3398         The attribute can appear in the body of a function marked
3399         Inline_Always, but in this case the postocondition is not enforced.
3400
3401         sem_prag.adb (Check_Precondition_Postcondition): within the expansion
3402         of an inlined call pre- and postconditions are legal
3403
3404 2008-07-31  Vincent Celier  <celier@adacore.com>
3405
3406         * prj.adb, prj.ads, clean.adb, prj-nmsc.adb: Remove declarations that
3407         were for gprmake only
3408
3409 2008-07-31  Robert Dewar  <dewar@adacore.com>
3410
3411         * gnat_ugn.texi: Update -gnatN documentation.
3412
3413         * gnat_rm.texi: Add note about pre/postcondition
3414         pragmas not checked in conjunction with front-end inlining.
3415
3416 2008-07-31  Robert Dewar  <dewar@adacore.com>
3417
3418         * g-pehage.adb, g-pehage.ads: Minor reformatting
3419
3420 2008-07-31  Arnaud Charlet  <charlet@adacore.com>
3421
3422         * mlib-utl.ads, prj-makr.ads: Add comments.
3423
3424 2008-07-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3425
3426         * gcc-interface/Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS)
3427         [WINDOWS]: Add s-winext.o.
3428
3429 2008-07-30  Eric Botcazou  <ebotcazou@adacore.com>
3430
3431         PR ada/36554
3432         * back_end.adb (Call_Back_End): Pass Standard_Boolean to gigi.
3433         * gcc-interface/gigi.h (gigi): Take new standard_boolean parameter.
3434         * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Enumeration_Subtype>:
3435         Set precision to 1 for subtype of BOOLEAN_TYPE.
3436         (set_rm_size): Set TYPE_RM_SIZE_NUM for BOOLEAN_TYPE.
3437         (make_type_from_size): Deal with BOOLEAN_TYPE.
3438         * gcc-interface/misc.c (gnat_print_type): Likewise.
3439         * gcc-interface/trans.c (gigi): Take new standard_boolean parameter.
3440         Set boolean_type_node as its translation in the table, as well
3441         as boolean_false_node for False and boolean_true_node for True.
3442         * gcc-interface/utils.c (gnat_init_decl_processing): Create custom
3443         8-bit boolean_type_node and set its TYPE_RM_SIZE_NUM.
3444         (create_param_decl): Deal with BOOLEAN_TYPE.
3445         (build_vms_descriptor): Likewise.
3446         (build_vms_descriptor64): Likewise.
3447         (convert): Deal with BOOLEAN_TYPE like with ENUMERAL_TYPE.
3448
3449 2008-07-30  Robert Dewar  <dewar@adacore.com>
3450
3451         * exp_ch9.adb: Minor reformatting
3452
3453         * exp_util.ads (Find_Prim_Op): Document that Program_Error is raised
3454         if no primitive operation is found.
3455
3456         * exp_util.adb: (Find_Prim_Op): Add comments for previous change
3457
3458         * sem_ch8.adb: Minor reformatting
3459
3460 2008-07-30  Laurent Pautet  <pautet@adacore.com>
3461
3462         * g-pehage.adb:
3463         Remove a limitation on the length of the words handled by the minimal
3464         perfect hash function generator.
3465
3466         * g-pehage.ads:
3467         Detail the use of subprograms Insert, Initialize, Compute and Finalize.
3468         Fix some typos.
3469
3470 2008-07-30  Robert Dewar  <dewar@adacore.com>
3471
3472         * gnatlink.adb: Minor reformatting
3473
3474 2008-07-30  Thomas Quinot  <quinot@adacore.com>
3475
3476         * rtsfind.adb (Check_RPC): Check version consistency even when not
3477         generating RCI stubs. Provide more detailed error message in case of
3478         mismatch.
3479
3480 2008-07-30  Ed Schonberg  <schonberg@adacore.com>
3481
3482         * sem_ch8.adb (Analyze_Subprogram_Renaming): When renaming an attribute
3483         as a actual in an instance, check for a missing attribute to prevent
3484         program_error on an illegal program.
3485
3486         * exp_util.adb (Find_Prim_Op): Rather than Assert (False), raise program
3487         error if primitive is not found, so that exception can be handled
3488         elsewhere on illegal programs.
3489
3490 2008-07-30  Robert Dewar  <dewar@adacore.com>
3491
3492         * uintp.adb (UI_GCD): Fix potential overflow
3493
3494 2008-07-30  Hristian Kirtchev  <kirtchev@adacore.com>
3495
3496         * einfo.adb: Flag245 is now used.
3497         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Relax the assertion
3498         check to include functions.
3499         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
3500         (Wrapped_Entity, Set_Wrapped_Entity): Relax the assertion check to
3501         include functions.
3502         (Write_Entity_Flags): Move flag Is_Primitive, add Is_Private_Primitive
3503         to the list of displayed flags.
3504
3505         * einfo.ads: Update comment on the usage of Is_Primitive_Wrapper and
3506         Wrapped_Entity. These two flags are now present in functions.
3507         New flag Is_Private_Primitive.
3508         (Is_Private_Primitive, Set_Is_Private_Primitive): New subprograms.
3509
3510         * exp_ch9.adb:
3511         (Build_Wrapper_Bodies): New subprogram.
3512         (Build_Wrapper_Body): The spec and body have been moved to in
3513         Build_Wrapper_ Bodies. Code cleanup.
3514         (Build_Wrapper_Spec): Moved to the spec of Exp_Ch9. Code cleanup.
3515         Wrappers are now generated for primitives declared between the private
3516         and full view of a concurrent type that implements an interface.
3517         (Build_Wrapper_Specs): New subprogram.
3518         (Expand_N_Protected_Body): Code reformatting. Replace the wrapper body
3519         creation mechanism with a call to Build_Wrapper_Bodies.
3520         (Expand_N_Protected_Type_Declaration): Code reformatting. Replace the
3521         wrapper spec creation mechanism with a call to Build_Wrapper_Specs.
3522         (Expand_N_Task_Body): Replace the wrapper body creation
3523         mechanism with a call to Build_Wrapper_Bodies.
3524         (Expand_N_Task_Type_Declaration): Replace the wrapper spec
3525         creation mechanism with a call to Build_Wrapper_Specs.
3526         (Is_Private_Primitive_Subprogram): New subprogram.
3527         (Overriding_Possible): Code cleanup.
3528         (Replicate_Entry_Formals): Renamed to Replicate_Formals, code cleanup.
3529
3530         * exp_ch9.ads (Build_Wrapper_Spec): Moved from the body of Exp_Ch9.
3531
3532         * sem_ch3.adb: Add with and use clause for Exp_Ch9.
3533         (Process_Full_View): Build wrapper specs for all primitives
3534         that belong to a private view completed by a concurrent type
3535         implementing an interface.
3536
3537         * sem_ch6.adb (Analyze_Subprogram_Body): When the current subprogram
3538         is a primitive of a
3539         concurrent type with a private view that implements an interface, try to
3540         find the proper spec.
3541         (Analyze_Subprogram_Declaration): Mark a subprogram as a private
3542         primitive if the type of its first parameter is a non-generic tagged
3543         private type.
3544         (Analyze_Subprogram_Specification): Code reformatting.
3545         (Disambiguate_Spec): New routine.
3546         (Find_Corresponding_Spec): Add a flag to controll the output of errors.
3547         (Is_Private_Concurrent_Primitive): New routine.
3548
3549         * sem_ch6.ads:
3550         (Find_Corresponding_Spec): Add a formal to control the output of errors.
3551
3552 2008-07-30  Doug Rupp  <rupp@adacore.com>
3553
3554         * gigi.h (build_vms_descriptor64): New function prototype.
3555         (fill_vms_descriptor): Modified function prototype.
3556
3557         * utils.c (build_vms_descriptor64): New function.
3558
3559         * utils2.c (fill_vms_descriptor): Fix handling on 32bit systems.
3560
3561         * trans.c (call_to_gnu): Call fill_vms_descriptor with new third
3562         argument.
3563
3564         * decl.c (gnat_to_gnu_tree): For By_Descriptor mech, build both a
3565         64bit and 32bit descriptor and save the 64bit version as an alternate
3566         TREE_TYPE in the parameter.
3567         (make_type_from_size) <RECORD_TYPE>: Use the appropriate mode for the
3568         thin pointer.
3569
3570         * ada-tree.h (DECL_PARM_ALT, SET_DECL_PARM_ALT): New macros.
3571
3572 2008-07-30  Robert Dewar  <dewar@adacore.com>
3573
3574         * make.adb: Minor reformatting
3575
3576         * mlib-utl.adb: Minor reformatting
3577
3578         * osint.ads: Minor reformatting
3579
3580 2008-07-30  Jose Ruiz  <ruiz@adacore.com>
3581
3582         * adaint.c
3583         (__gnat_file_exists): Do not use __gnat_stat for RTX.
3584         (__main for RTX in RTSS mode): Create this dummy procedure symbol to
3585         avoid the use of this symbol from libgcc.a in RTX kernel mode.
3586
3587         * cio.c
3588         (put_int, put_int_stderr, put_char, put_char_stderr): For RTX we call
3589         the function RtPrintf for console output.
3590
3591         * argv.c Do not use the environ variable for RTX.
3592
3593         * gnatlink.adb (gnatlink): The part that handles the --RTS option has
3594         been moved before the call to Osint.Add_Default_Search_Dirs in order
3595         to take into account the flags in system.ads (RTX_RTSS_Kernel_Module)
3596         from the appropriate run time.
3597
3598         * targparm.ads
3599         (RTX_RTSS_Kernel_Module_On_Target): Add this flag that is set to True if
3600         target is a RTSS module for RTX.
3601
3602         * targparm.adb (Targparm_Tags, RTX_Str, Targparm_Str): Add tag RTX for
3603         RTX_RTSS_Kernel_Module
3604         (Get_Target_Parameters): Add processing of RTX_RTSS_Kernel_Module flag.
3605
3606         * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for RTX): Use gcc
3607         exception handling mechanism for Windows and RTX in Win32 mode, but
3608         not for RTX in kernel mode (RTSS).
3609         (LIBGNAT_SRCS): Remove ada.h
3610
3611 2008-07-30  Paolo Bonzini  <bonzini@gnu.org>
3612
3613         * gcc-interface/Make-lang.in (ALL_ADAFLAGS): Remove X_ADAFLAGS and
3614         T_ADAFLAGS, replace ALL_ADA_CFLAGS with ADA_CFLAGS.
3615         (ALL_ADA_CFLAGS): Remove, replace throughout with ADA_CFLAGS.
3616         * gcc-interface/Makefile.in (XCFLAGS, X_CFLAGS, X_CPPFLAGS, T_CPPFLAGS,
3617         X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS, ADA_CFLAGS,
3618         ALL_ADA_CFLAGS): Remove.
3619         (ALL_ADAFLAGS, MOST_ADAFLAGS): Remove X_ADAFLAGS and T_ADAFLAGS,
3620         replace ALL_ADA_CFLAGS with ADA_CFLAGS.
3621         (GCC_CFLAGS): Remove X_CFLAGS.
3622         (LOOSE_CFLAGS): Remove X_CFLAGS and XCFLAGS.
3623         (ALL_CPPFLAGS): Remove X_CPPFLAGS and T_CPPFLAGS.
3624         (ADA_CFLAGS): Substitute.
3625
3626 2008-07-30  Laurent Guerby  <laurent@guerby.net>
3627
3628         PR ada/5911
3629         * gcc-interface/Makefile.in (MULTISUBDIR, RTSDIR): New variables.
3630         Pass MULTISUBDIR to recursive make. Use $(RTSDIR) instead of rts.
3631         Replace stamp-gnatlib* by stamp-gnatlib*-rts.
3632         * gcc-interface/Make-lang.in: Replace stamp-gnatlib2
3633         by stamp-gnatlib2-rts.
3634
3635 2008-07-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3636
3637         PR documentation/15479
3638         * gnat-style.texi: Remove AdaCore copyright statement and GPL
3639         statement for GNAT.  Add @copying stanza, use it.  Update to
3640         GFDL 1.2.  Do not list GFDL as Invariant Section, do not list
3641         title as Front-Cover Text.
3642         * gnat_rm.texi: Likewise.
3643         * gnat_ugn.texi: Likewise.
3644
3645 2008-07-29  Jan Hubicka  <jh@suse.cz>
3646
3647         * trans.c (process_inlined_subprograms): Remove tree_really_inline
3648         check.
3649
3650 2008-07-29  Arnaud Charlet  <charlet@adacore.com>
3651
3652         * gcc-interface: New directory.
3653
3654         * ada-tree.def, cuintp.c, gigi.h, Makefile.in, targtyps.c, ada.h,
3655         utils.c, ada-tree.h, decl.c, lang.opt, Make-lang.in, trans.c,
3656         config-lang.in, deftarg.c, lang-specs.h, misc.c, utils2.c: Moved
3657         to gcc-interface subdirectory.
3658
3659 2008-07-29  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
3660
3661         * Makefile.in (EXTRA_GNATRTL_NONTASKING_OBJS): Remove extra s-win32.o.
3662
3663 2008-07-28  Jan Hubicka  <jh@suse.cz>
3664
3665         * misc.c (gnat_post_options): Do not set flag_no_inline.
3666
3667 2008-07-28  Richard Guenther  <rguenther@suse.de>
3668
3669         Merge from gimple-tuples-branch.
3670
3671         2008-07-22  Olivier Hainque  <hainque@adacore.com>
3672
3673         * gigi.h (end_subprog_body): New ELAB_P argument, saying if
3674         this is called for an elab proc to be discarded if empty.
3675         * utils.c (end_subprog_body): Honor ELAB_P.
3676         (build_function_stub): Adjust call to end_subprog_body.
3677         * trans.c (Subprogram_Body_to_gnu): Likewise.
3678         (gigi): Reorganize processing of elab procs to prevent
3679         gimplifying twice, using the new end_subprog_body argument.
3680
3681         2008-07-19  Richard Guenther  <rguenther@suse.de>
3682
3683         * Make-lang.in (trans.o): Add tree-iterator.h dependency.
3684         (utils.o): Likewise.
3685         * trans.c: Include tree-iterator.h.
3686         (gnat_gimplify_expr): Adjust prototype.  Fix typo.
3687         (gnat_gimplify_stmt): Use SET_EXPR_LOCATION.
3688         (set_expr_location_from_node): Likewise.
3689         (gigi): Tuplify.
3690         * ada-tree.h (union lang_tree_node): Use TREE_CHAIN instead
3691         of GENERIC_NEXT.
3692         * utils.c: Include tree-iterator.h.
3693         * gigi.h (gnat_gimplify_expr): Adjust prototype.
3694
3695         2008-07-18  Aldy Hernandez  <aldyh@redhat.com>
3696
3697         * trans.c: Include gimple.h instead of tree-gimple.h.
3698         * utils.c: Same.
3699
3700         2008-07-14  Aldy Hernandez  <aldyh@redhat.com>
3701
3702         * trans.c (gnat_gimplify_expr): Use gimplify_assign.
3703
3704 2008-07-25  Jan Hubicka  <jh@suse.cz>
3705
3706         * utils.c (end_subprog_body): Remove inline trees check.
3707         * misc.c (gnat_post_options): Do not set flag_inline_trees.
3708
3709 2008-07-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3710
3711         * raise-gcc.c: Move tsystem.h before tm.h.
3712
3713 2008-07-20  Arnaud Charlet  <charlet@adacore.com>
3714
3715         * gnathtml.pl: New file.
3716
3717 2008-07-19  Olivier Hainque  <hainque@adacore.com>
3718
3719         * targtyps.c (get_target_default_allocator_alignment): Use
3720         MALLOC_ABI_ALIGNMENT.
3721
3722 2008-07-17  Olivier Hainque  <hainque@adacore.com>
3723
3724         * adaint.c (__MINGW32__ section): Include ctype.h and define
3725         a fallback ISALPHA if IN_RTS.
3726         (__gnat_is_absolute_path): Use ISALPHA instead of isalpha.
3727
3728 2008-07-17  Olivier Hainque  <hainque@adacore.com>
3729
3730         * utils.c (create_var_decl_1): Relax expectations on the PUBLIC_FLAG
3731         argument, to apply to references in addition to definitions.  Prevent
3732         setting TREE_STATIC on externals.
3733         (gnat_pushdecl): Always clear DECL_CONTEXT on public externals.
3734
3735 2008-07-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3736
3737         PR documentation/15479
3738         * gnat_ugn.texi (@ovar): New macro, from autoconf.texi.
3739         Replace backets around optional parameters with @ovar
3740         where possible, use @r{[}, @r{]} otherwise.
3741         Replace some @r, @i, and @emph with @var where appropriate.
3742
3743 2008-07-02  Eric Botcazou  <ebotcazou@adacore.com>
3744
3745         * decl.c (make_type_from_size) <INTEGER_TYPE>: Fix typo and tidy up.
3746
3747 2008-06-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3748
3749         * ada-tree.h (SET_TYPE_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Fix
3750         -Wc++-compat warnings.
3751         * adaint.c (__gnat_locate_regular_file, __gnat_locate_exec,
3752         __gnat_locate_exec_on_path): Likewise.
3753         * decl.c (annotate_value): Likewise.
3754         * misc.c (gnat_handle_option): Likewise.
3755         * trans.c (gnat_to_gnu, extract_encoding, decode_name,
3756         post_error_ne_tree): Likewise.
3757
3758 2008-06-27  Eric Botcazou  <ebotcazou@adacore.com>
3759
3760         * utils.c (convert) <CONSTRUCTOR>: When converting it to a packable
3761         version of its type, attempt to first convert its elements.
3762
3763 2008-06-26  Chris Proctor  <chrisp_42@bigpond.com>
3764
3765         * Makefile.in: Fix *86 kfreebsd target specific pairs.
3766
3767 2008-06-25  Samuel Tardieu  <sam@rfc1149.net>
3768
3769         * Makefile.in: Use mlib-tgt-specific-linux.adb for sh4 as well.
3770
3771 2008-06-24  Eric Botcazou  <ebotcazou@adacore.com>
3772
3773         * utils2.c (known_alignment): Derive the alignment from pointed-to
3774         types only if it is otherwise unknown.
3775         <INTEGER_CST>: Tidy.
3776         <MULT_EXPR>: Likewise.
3777         <POINTER_PLUS_EXPR>: If the alignment of the offset is unknown, use
3778         that of the base.
3779
3780 2008-06-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3781
3782         PR ada/36573
3783         * s-osinte-hpux-dce.ads (SA_ONSTACK): Define.
3784
3785 2008-06-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3786
3787         * gnat_rm.texi (Implementation Defined Characteristics)
3788         (Standard Library Routines): Use @smallexample for indented
3789         text.  Drop Indentation outside examples.
3790         * gnat_ugn.texi: Likewise.
3791
3792 2008-06-13  Olivier Hainque  <hainque@adacore.com>
3793
3794         * decl.c (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): Define to 0
3795         if undefined.
3796         (gnat_to_gnu_entity) <case E_Function/Procedure>: Request stack
3797         realignment with force_align_arg_pointer attribute on foreign
3798         convention subprograms if FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN.
3799
3800 2008-06-13  Olivier Hainque  <hainque@adacore.com>
3801
3802         * utils.c (rest_of_record_type_compilation): When computing
3803         encodings for the components of a variable size type, early
3804         strip conversions on the current position expression to make
3805         sure it's shape is visible.  Use remove_conversions for this
3806         purpose.
3807
3808 2008-06-12  Eric Botcazou  <ebotcazou@adacore.com>
3809
3810         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: In the case of a
3811         constrained subtype of a discriminated type, discard the fields that
3812         are beyond its limits according to its size.
3813
3814 2008-06-10  Olivier Hainque  <hainque@adacore.com>
3815
3816         * utils.c (create_subprog_decl): If this is for the 'main' entry
3817         point according to the asm name, redirect main_identifier_node.
3818
3819 2008-06-09  Eric Botcazou  <ebotcazou@adacore.com>
3820
3821         * decl.c (components_to_record): Adjust the packedness for the
3822         qualified union as well.
3823
3824 2008-06-09  Arnaud Charlet  <charlet@adacore.com>
3825
3826         * Make-lang.in: Use -gnatwns instead of -gnatws to make sytyle
3827         checks non fatal.
3828
3829 2008-06-07  Samuel Tardieu  <sam@rfc1149.net>
3830
3831         * sem_res.adb (Large_Storage_Type): A type is large if it
3832         requires as many bits as Positive to store its values and its
3833         bounds are known at compile time.
3834         * sem_ch13.adb (Minimum_Size): Note that this function returns
3835         0 if the size is not known at compile time.
3836
3837 2008-06-06  Nicolas Setton  <setton@adacore.com>
3838             Olivier Hainque  <hainque@adacore.com>
3839
3840         * ada-tree.h (DECL_PARALLEL_TYPE): New language specific
3841         attribute, parallel descriptive type attached to another
3842         type for debug info generation purposes.
3843         * utils.c (add_parallel_type): New function, register
3844         parallel type to be attached to a type.
3845         (get_parallel_type): New function, fetch a registered
3846         parallel type, if any.
3847         (rest_of_record_type_compilation): Register the parallel
3848         type we make for variable size records.
3849         * gigi.h (add_parallel_type, get_parallel_type): Declare.
3850         * decl.c (gnat_to_gnu_entity, maybe_pad_type): Register the
3851         parallel debug types we make.
3852         * trans.c (extract_encoding, decode_name): New functions.
3853         (gigi): If the DWARF attribute extensions are available, setup
3854         to use them.
3855         * lang.opt: Register language specific processing request
3856         for -gdwarf+.
3857         * misc.c (gnat_dwarf_extensions): New global variable. How much
3858         do we want of our DWARF extensions. 0 by default.
3859         (gnat_handle_option) <OPT_gdwarf_>: Increment gnat_dwarf_extensions.
3860         (gnat_post_options): Map gnat_dwarf_extensions to the
3861         commonuse_gnu_debug_info_extensions for later processing.
3862
3863 2008-06-04  Samuel Tardieu  <sam@rfc1149.net>
3864
3865         * einfo.ads, einfo.adb: Remove unused flag Function_Returns_With_DSP.
3866
3867 2008-06-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
3868
3869         * Makefile.in (common_tools): Fix typos in $(exeext) extension.
3870         * gnat_ugn.texi (Style Checking)
3871         (Adding the Results of Compiler Checks to gnatcheck Output)
3872         (Example of Binder Output File): Fix typos.
3873         * ali.ads, einfo.ads, exp_ch4.adb, exp_ch6.adb,
3874         exp_dbug.ads, exp_dist.adb, exp_smem.adb, g-socket.ads,
3875         s-osinte-rtems.ads, s-shasto.ads, s-stausa.adb,
3876         s-stausa.ads, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
3877         sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_util.ads,
3878         sinfo.ads, utils.c: Fix typos in comments.
3879         * sem_ch6.adb, vms_data.ads: Fix typos in strings.
3880
3881 2008-05-29  Thomas Quinot  <quinot@adacore.com>
3882
3883         * sem_eval.adb: Minor reformatting
3884
3885 2008-05-29  Ed Schonberg  <schonberg@adacore.com>
3886
3887         * sem_ch6.adb (Analyze_Subprogram_Specification): if the return type
3888         is abstract, do not apply abstractness check on subprogram if this is
3889         a renaming declaration.
3890
3891 2008-05-29  Arnaud Charlet  <charlet@adacore.com>
3892
3893         PR ada/864
3894         * osint.ads, osint.adb (Program_Name): New parameter "Prog" to
3895         allow recognition of program suffix in addition to prefix.
3896
3897         * gnatchop.adb (Locate_Executable): Add support for prefix.
3898
3899         * make.adb, gnatcmd.adb, gnatlink.adb, prj-makr.adb,
3900         mlib-utl.adb: Adjust calls to Program_Name.
3901
3902 2008-05-29  Robert Dewar  <dewar@adacore.com>
3903
3904         * sem_ch3.adb: Minor reformatting
3905         * sem_prag.adb: Minor reformatting
3906         * sem_res.adb: Minor reformatting
3907         * sinput-p.ads: Minor reformatting
3908
3909 2008-05-29  Javier Miranda  <miranda@adacore.com>
3910
3911         * sem_util.adb:
3912         (Abstract_Interface_List): Add missing support for full type-declaration
3913         associated with synchronized types.
3914
3915 2008-05-29  Robert Dewar  <dewar@adacore.com>
3916
3917         * sem_eval.adb (Is_Same_Value): Take care of several more cases
3918
3919 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
3920
3921         * sem_ch5.adb (Analyze_Assignment): If the name is of a local anonymous
3922         access type, wrap the expression in a conversion to force an
3923         accessibility check.
3924
3925         * sem_aggr.adb (Aggegate_Constraint_Checks): Apply conversion to force
3926         accessibility checks even when expansion is disabled in order to
3927         generate messages in the presence of previous errors or in
3928         semantics-only mode.
3929
3930 2008-05-28  Eric Botcazou  <ebotcazou@adacore.com>
3931
3932         * system-lynxos-ppc.ads (Always_Compatible_Rep): Set to False.
3933         * system-lynxos-x86.ads (Always_Compatible_Rep): Set to False.
3934
3935 2008-05-28  Vincent Celier  <celier@adacore.com>
3936
3937         PR ada/34446
3938         * gnat_ugn.texi: Document restriction introduced on 2007-04-20 in
3939         preprocessing expressions
3940
3941 2008-05-28  Vincent Celier  <celier@adacore.com>
3942
3943         * sinput-p.adb (Source_File_Is_Subunit): Allow special character used
3944         for preprocessing
3945
3946         * sinput-p.ads: Minor comment update and reformatting
3947
3948 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
3949
3950         * sem_res.adb (Valid_Conversion): An anonymous access_to_subprogram
3951         type has a deeper level than any master only when it is the type of an
3952         access parameter.
3953
3954 2008-05-28  Javier Miranda  <miranda@adacore.com>
3955
3956         * sem_ch3.adb (Derive_Progenitor_Subprograms): Add documentation.
3957
3958 2008-05-28  Javier Miranda  <miranda@adacore.com>
3959
3960         * sem_util.ads (Find_Overridden_Synchronized_Primitive): Removed.
3961         * sem_util.adb (Find_Overridden_Synchronized_Primitive): Removed.
3962         * sem_ch6.adb (Check_Synchronized_Overriding): Remove one formal.
3963         Add code that was previously located in
3964         Find_Overridden_Synchronized_Primitive because it is only used here.
3965
3966 2008-05-28  Sergey Rybin  <rybin@adacore.com>
3967
3968         * sem_prag.adb (Process_Extended_Import_Export_Subprogram_Pragma): Set
3969         Entity field for formal_parameter_NAME in MECHANISM_ASSOCIATION.
3970
3971 2008-05-28  Robert Dewar  <dewar@adacore.com>
3972
3973         * restrict.ads:
3974         Add missing restrictions, and properly label all GNAT defined ones
3975
3976         * rtsfind.ads:
3977         Add entry for Ada_Real_Time.Timing_Events.Timing_Event
3978         Add entry for Ada.Task_Termination.Set_Specific_Handler
3979         Add entry for Ada.Task_Termination.Specific_Handler
3980
3981         * s-rident.ads:
3982         Add missing restrictions and properly mark all gnat defined ones
3983
3984         * sem_ch3.adb:
3985         (Analyze_Object_Declaration): Check No_Local_Timing_Events restriction
3986
3987         * sem_res.adb:
3988         (Resolve_Call): Check violation of No_Specific_Termination_Handlers
3989
3990         * gnat_rm.texi: Add missing restrictions, and properly label all
3991         GNAT defined ones
3992
3993 2008-05-28  Robert Dewar  <dewar@adacore.com>
3994
3995         * restrict.adb:
3996         (Check_Restriction): violation of restriction No_Finalization is
3997         treated as a serious error to stop expansion
3998
3999 2008-05-28  Robert Dewar  <dewar@adacore.com>
4000
4001         * exp_util.adb: Minor reformatting
4002         * exp_util.ads: Minor reformatting.
4003
4004 2008-05-28  Arnaud Charlet  <charlet@adacore.com>
4005
4006         * Make-lang.in: Remove gprmake.
4007
4008         * gprmake.adb, makegpr.ads, makegpr.adb: Removed.
4009
4010 2008-05-28  Ed Schonberg  <schonberg@adacore.com>
4011
4012         * sem_ch3.adb (Diagnose_Interface): Cleanup error messages involving
4013         improper progenitor names, and avoid cascaded errors.
4014
4015 2008-05-28  Robert Dewar  <dewar@adacore.com>
4016
4017         * gnat_rm.texi: Add note on Old giving warning when applied to constant
4018
4019         * sem_attr.adb (Analyze_Attribute, case Old): Give warning if prefix is
4020         a constant
4021
4022 2008-05-28  Robert Dewar  <dewar@adacore.com>
4023
4024         * exp_fixd.adb (Build_Multiply): Correct one-off error in computing
4025         size
4026
4027 2008-05-28  Robert Dewar  <dewar@adacore.com>
4028
4029         * exp_ch5.adb:
4030         (Expand_Simple_Function_Return): Copy unaligned result into temporary
4031
4032 2008-05-28  Javier Miranda  <miranda@adacore.com>
4033
4034         * sem_ch3.adb (Derive_Progenitor_Primitives): Add missing support
4035         for user-defined predefined primitives.
4036
4037         * sem_util.adb (Matches_Prefixed_View_Profile): Ditto.
4038         (Find_Overridden_Synchronized_Primitive): Ditto.
4039
4040         * sem_ch6.adb (Check_Synchronized_Overriding): Ditto.
4041
4042 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
4043
4044         * a-ststio.adb, s-direio.adb:
4045         Further code clean up of previous change.
4046         Update comments.
4047
4048 2008-05-27  Vincent Celier  <celier@adacore.com>
4049
4050         * prj-nmsc.adb: Minor reformatting
4051
4052 2008-05-27  Bob Duff  <duff@adacore.com>
4053
4054         * sem_ch3.adb (Build_Incomplete_Type_Declaration): In the case of an
4055         untagged private type with a tagged full type, where the full type has
4056         a self reference, create the corresponding class-wide type early, in
4057         case the self reference is "access T'Class".
4058
4059 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
4060
4061         * exp_aggr.adb (Build_Array_Aggr_Code): If component type includes
4062         tasks and context is an object declaration. create master entity before
4063         expansion.
4064
4065 2008-05-27  Robert Dewar  <dewar@adacore.com>
4066
4067         * mlib-prj.adb: Minor reformatting
4068
4069         * prj-part.adb: Minor reformatting
4070
4071         * prj.ads: Minor reformatting
4072
4073         * exp_ch3.adb: Minor reformatting.
4074
4075         * sem_ch3.ads: Minor reformatting
4076
4077         * sem_eval.adb: Minor reformatting
4078
4079 2008-05-27  Vincent Celier  <celier@adacore.com>
4080
4081         * gnatcmd.adb:
4082         <prefix>-gnat stack spawns gnatstack, not <prefix>-gnatstack
4083
4084 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
4085
4086         * exp_aggr.adb (Expand_Array_Aggregate): If the aggregate contains
4087         tasks, create an activation chain now, before the expansion into
4088         assignments and build-in-place calls that require the presence of an
4089         activation chain.
4090         (Backend_Processing_Possible): If the component type is inherently
4091         limited, the aggregate must be expanded into individual built-in-place
4092         assignments.
4093
4094         * sem_ch6.adb (Build_Extra_Formals): Use underlying type of result to
4095         determine whether an allocation extra parameter must be built, to
4096         handle case of a private type whose full type is a discriminated type
4097         with defaults.
4098
4099 2008-05-27  Bob Duff  <duff@adacore.com>
4100
4101         * gnat_rm.texi:
4102         Document the new behavior regarding trampolines.
4103
4104 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
4105
4106         * a-direio.adb, a-sequio.adb: Replace address clause by
4107         unrestricted_access, simpler and compatible with .NET.
4108
4109 2008-05-27  Vincent Celier  <celier@adacore.com>
4110
4111         * prj-part.adb:
4112         (Project_Path_Name_Of.Try_Path): Do not use Locate_Regular_File to find
4113         a project file, so that symbolic links are not resolved.
4114
4115 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
4116
4117         * a-ztexio.adb, a-textio.adb, a-witeio.adb, s-direio.adb:
4118         Replace heavy address clause by 'Unrestricted_Access, cleaner and more
4119         portable across GNAT targets, since this kind of address clause is not
4120         supported by VM back-ends (.NET/JGNAT).
4121
4122 2008-05-27  Arnaud Charlet  <charlet@adacore.com>
4123
4124         * bindgen.adb: Update comments.
4125
4126         * s-tasinf-mingw.adb: Add "with" of System.OS_Interface
4127
4128 2008-05-27  Vincent Celier  <celier@adacore.com>
4129
4130         * gnatcmd.adb, prj-proc.adb, make.adb, mlib-prj.adb, prj.adb,
4131         prj.ads, makegpr.adb, makeutl.adb, clean.adb, prj-nmsc.adb,
4132         mlib-tgt.adb, prj-env.adb, prj-env.ads:
4133         (Path_Information): New record type
4134         Use component of type Path_Information when there are two paths, one in
4135         canonical format and one in display format.
4136         Update the project manager to these new components.
4137
4138 2008-05-27  Robert Dewar  <dewar@adacore.com>
4139
4140         * makeutl.adb: Minor reformatting
4141         * prj-nmsc.adb: Minor reformatting
4142         * s-stausa.adb: Minor reformatting
4143         * s-stausa.ads: Minor reformatting
4144         * sem_ch6.adb: Minor reformatting
4145
4146 2008-05-27  Thomas Quinot  <quinot@adacore.com>
4147
4148         * sem_res.adb: Minor comment fixes
4149
4150 2008-05-27  Thomas Quinot  <quinot@adacore.com>
4151
4152         * makeutl.adb: Minor code reorganization
4153
4154         * exp_aggr.adb: Add ??? comment
4155         Fix typo
4156
4157         * exp_ch6.adb: Minor reformatting
4158
4159 2008-05-27  Quentin Ochem  <ochem@adacore.com>
4160
4161         * s-stausa.adb (Initialize): Updated result initialization, and
4162         initialization of environment stack.
4163         (Fill_Stack): Improved computation of the pattern zone, taking into
4164         account already filled at the calling point.
4165         (Get_Usage_Range): Now uses Min_Measure and Max_Measure instead of
4166         Measure and Overflow_Guard.
4167         (Report_Result): Fixed computation of the result using new fields of
4168         Stack_Analyzer.
4169
4170         * s-stausa.ads (Initialize_Analyzer): Replaced Size / Overflow_Guard
4171         params by more explicit Stack_Size / Max_Pattern_Size params.
4172         (Stack_Analyzer): Added distinct Stack_Size & Pattern_Size fields.
4173         Added Stack_Used_When_Filling field.
4174         (Task_Result): Replaced Measure / Overflow_Guard by more explicit
4175         Min_Measure and Max_Measure fields.
4176
4177         * s-tassta.adb (Task_Wrapper): Updated call to Initialize_Analyzer.
4178
4179 2008-05-27  Vincent Celier  <celier@adacore.com>
4180
4181         * prj-nmsc.adb:
4182         (Check_File): Make sure that a unit that replaces the same unit in a
4183          project being extended is properly processed.
4184
4185 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
4186
4187         * sem_ch3.adb:
4188         (Get_Discr_Value): Remove obsolete code that failed to find the value
4189         of a discriminant for an inherited task component appearing in a type
4190         extension.
4191
4192 2008-05-27  Thomas Quinot  <quinot@adacore.com>
4193
4194         (System.File_IO.{Close, Delete, Reset}):
4195         Change File parameter from "in out AFCB_Ptr" to "access AFCB_Ptr".
4196
4197         (Ada.*_IO.{Close, Delete, Reset, Set_Mode}):
4198         Pass File parameter by reference.
4199
4200 2008-05-27  Vincent Celier  <celier@adacore.com>
4201
4202         * prj-nmsc.adb:
4203         (Process_Sources_In_Multi_Language_Mode): Check that there are not two
4204         sources of the same project that have the same object file name.
4205         (Find_Explicit_Sources): Always remove a source exception that was not
4206         found.
4207
4208 2008-05-27  Thomas Quinot  <quinot@adacore.com>
4209
4210         * sem_ch3.adb: Minor reformatting
4211
4212 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
4213
4214         * sem_ch6.adb:
4215         (Is_Interface_Conformant): Handle properly a primitive operation that
4216         overrides an interface function with a controlling access result.
4217         (Type_Conformance): If Skip_Controlling_Formals is true, when matching
4218         inherited and overriding operations, omit as well the conformance check
4219         on result types, to prevent spurious errors.
4220
4221 2008-05-27  Vincent Celier  <celier@adacore.com>
4222
4223         * makeutl.ads, makeutl.adb:
4224         (Set_Location): New procedure
4225         (Get_Location): New function
4226         (Update_Main): New procedure
4227
4228 2008-05-27  Vincent Celier  <celier@adacore.com>
4229
4230         * prj-nmsc.adb:
4231         (Check_Library): Allow standard project to be extended as a static
4232         library project.
4233         (Get_Mains): Do not inherit attribute Main in an extending library
4234         project.
4235
4236 2008-05-27  Eric Botcazou  <ebotcazou@adacore.com>
4237
4238         * system-darwin-ppc.ads (Always_Compatible_Rep): Set to False.
4239         * system-darwin-x86.ads (Always_Compatible_Rep): Likewise.
4240         * system-freebsd-x86.ads (Always_Compatible_Rep): Likewise.
4241         * system-linux-ppc.ads (Always_Compatible_Rep): Likewise.
4242         * system-linux-x86_64.ads (Always_Compatible_Rep): Likewise.
4243         * system-linux-x86.ads (Always_Compatible_Rep): Likewise.
4244         * system-mingw.ads (Always_Compatible_Rep): Likewise.
4245         * system-solaris-sparc.ads (Always_Compatible_Rep): Likewise.
4246         * system-solaris-sparcv9.ads (Always_Compatible_Rep): Likewise.
4247         * system-solaris-x86.ads (Always_Compatible_Rep): Likewise.
4248
4249 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
4250
4251         * sem_attr.adb: add guard to previous patch.
4252
4253 2008-05-27  Ed Schonberg  <schonberg@adacore.com>
4254
4255         * exp_disp.adb (Build_Dispatch_Tables): For a private type completed by
4256         a synchronized tagged type, do not attempt to build dispatch table for
4257         full view. The table is built for the corresponding record type, which
4258         has its own declaration.
4259
4260 2008-05-27  Gary Dismukes  <dismukes@adacore.com>
4261
4262         * sem_ch3.adb (Fixup_Bad_Constraint): Set the Etype on the bad subtype
4263         to the known type entity E, rather than setting it to Any_Type. Fixes
4264         possible blowup in function Base_Init_Proc, as called from Freeze_Entity
4265         for objects whose type had an illegal constraint.
4266
4267 2008-05-27  Vincent Celier  <celier@adacore.com>
4268
4269         * gnat_ugn.texi:
4270         Add succinct documentation for attribute Excluded_Source_List_File
4271
4272 2008-05-27  Vincent Celier  <celier@adacore.com>
4273
4274         * prj-attr.adb: Add new project level attribute Map_File_Option
4275
4276         * prj-nmsc.adb (Process_Linker): Process new attribute Map_File_Option
4277
4278         * prj.ads: Minor reformatting and comment update
4279         (Project_Configuration): New component Map_File_Option
4280
4281         * snames.adb: New standard name Map_File_Option
4282
4283         * snames.ads: New standard name Map_File_Option
4284
4285 2008-05-27  Vincent Celier  <celier@adacore.com>
4286
4287         * xsnames.adb: Remove unused variable Oname
4288
4289 2008-05-27  Doug Rupp  <rupp@adacore.com>
4290
4291         * exp_ch6.adb:
4292         (Expand_N_Function_Call): Fix comments. Minor reformatting.
4293
4294         * exp_vfpt.ads:
4295         (Expand_Vax_Foreign_Return): Fix comments.
4296
4297 2008-05-27  Thomas Quinot  <quinot@adacore.com>
4298
4299         * exp_dist.adb: Minor reformating
4300
4301 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
4302
4303         * exp_ch3.adb (Expand_N_Object_Declaration): Remove checks for
4304         No_Default_Initialization, which is now delayed until the freeze point
4305         of the object. Add a comment about deferral of the check.
4306
4307         * freeze.adb (Freeze_Entity): The check for No_Default_Initialization
4308         on objects is moved here.
4309
4310 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
4311
4312         * s-casi16.adb (Uhalf): Rewrite it as integer with small alignment.
4313         (Compare_Array_S16): Adjust for above change.
4314         * s-casi32.adb (Uword): Likewise.
4315         (Compare_Array_S32): Likewise.
4316         * s-casi64.adb (Uword): Likewise.
4317         (Compare_Array_S64): Likewise.
4318         * s-caun16.adb (Uhalf): Likewise.
4319         (Compare_Array_U16): Likewise.
4320         * s-caun32.adb (Uword): Likewise.
4321         (Compare_Array_U32): Likewise.
4322         * s-caun64.adb (Uword): Likewise.
4323         (Compare_Array_U64): Likewise.
4324
4325 2008-05-26  Robert Dewar  <dewar@adacore.com>
4326
4327         * exp_ch6.adb: Add ??? comment for previous change
4328
4329         * exp_vfpt.adb: Minor reformatting
4330
4331         * exp_vfpt.ads: Add ??? comment for last change
4332
4333         * sem_attr.adb: Add some ??? comments for previous change
4334
4335         * s-vaflop.ads: Add comments for previous change
4336
4337 2008-05-26  Doug Rupp  <rupp@adacore.com>
4338
4339         * s-vaflop-vms-alpha.adb:
4340         Remove System.IO use clause, to prevent spurious ambiguities when
4341         package is access through rtsfind.
4342
4343 2008-05-26  Sergey Rybin  <rybin@adacore.com>
4344
4345         * tree_io.ads (ASIS_Version_Number): Update because of the changes
4346         made in front-end
4347
4348 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
4349
4350         * sem_attr.adb:
4351         (Resolve_Attribute, case 'address):  S (A .. B)' address can be safely
4352         converted to S (A)'address only if A .. B is known to be a non-null
4353         range.
4354
4355 2008-05-26  Doug Rupp  <rupp@adacore.com>
4356
4357         * s-vaflop.adb:
4358         (Return_D, Return_F, Return_G): New functions.
4359
4360         * s-vaflop.ads:
4361         (Return_D, Return_F, Return_G): New functions.
4362
4363         * exp_vfpt.adb:
4364         (Expand_Vax_Foreign_Return): New procedure
4365
4366         * exp_vfpt.ads:
4367         (Expand_Vax_Foreign_Return): New procedure
4368
4369         * rtsfind.ads:
4370         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Ids
4371         (RE_Return_D, RE_Return_F, RE_Return_G): New RE_Unit_Table elements
4372
4373         * exp_ch6.adb:
4374         Import Exp_Vfpt
4375         (Expand_N_Function_Call): Call Expand_Vax_Foreign_Return.
4376
4377         * s-vaflop-vms-alpha.adb:
4378         (Return_D, Return_F, Return_G): New functions.
4379
4380 2008-05-26  Gary Dismukes  <dismukes@adacore.com>
4381
4382         * exp_ch3.adb (Build_Array_Init_Proc): Only set Init_Proc to a dummy
4383         init proc entity when there is actual default initialization associated
4384         with the component type, to avoid spurious errors on objects of scalar
4385         array types that are marked Is_Public when No_Default_Initialization
4386         applies.
4387
4388 2008-05-26  Thomas Quinot  <quinot@adacore.com>
4389
4390         * rtsfind.ads, rtsfind.adb:
4391         (RE_Get_RACW): New runtime library entity provided by PolyORB s-parint.
4392         (Check_RPC): Support per-PCS-kind API versioning.
4393
4394         exp_dist.ads, exp_dist.adb:
4395         (Build_Stub_Tag, Get_Stub_Elements): New utility subprograms.
4396         (PolyORB_Support.Add_RACW_From_Any): Offload common code to new runtime
4397          library function Get_RACW.
4398         (PolyORB_Support.Add_RACW_To_Any): Offload common code to new runtime
4399         library function Get_Reference.
4400         (PolyORB_Support.Add_RACW_Read_Attribute): Use Get_RACW instead of going
4401         through an intermediate Any.
4402         (PolyORB_Support.Add_RACW_Write_Attribute): Use Get_Reference instead of
4403         going through an intermediate Any.
4404
4405         * sem_dist.adb: Minor reformatting.
4406
4407 2008-05-26  Javier Miranda  <miranda@adacore.com>
4408
4409         * einfo.ads (Abstract_Interface_Alias): Renamed as Interface_Alias.
4410         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
4411         (Is_Internal): Adding documentation on internal entities that have
4412         attribute Interface_Alias (old attribute Abstract_Interface_Alias)
4413
4414         * einfo.adb (Abstract_Interface_Alias): Renamed as Interface_Alias.
4415         (Set_Abstract_Interface_Alias): Renamed as Set_Interface_Alias.
4416         Added assertion to force entities with this attribute to have
4417         attribute Is_Internal set to True.
4418         (Next_Tag_Component): Simplify assertion using attribute Is_Tag.
4419
4420         * sem_ch3.adb (Derive_Interface_Subprograms): This subprogram has been
4421         renamed as Derive_Progenitor_Subprograms. In addition, its code is
4422         a new implementation.
4423         (Add_Interface_Tag_Components): Remove special management of
4424         synchronized interfaces.
4425         (Analyze_Interface_Declaration): Minor reformating
4426         (Build_Derived_Record_Type): Minor reformating
4427         (Check_Abstract_Overriding): Avoid reporting error in case of abstract
4428         predefined primitive inherited from interface type because the body of
4429         internally generated predefined primitives of tagged types are generated
4430         later by Freeze_Type
4431         (Derive_Subprogram): Avoid generating an internal name if the parent
4432         subprogram overrides an interface primitive.
4433         (Derive_Subprograms): New implementation that keeps separate the
4434         management of tagged types not implementing interfaces, from tagged
4435         types that implement interfaces.
4436         (Is_Progenitor): New implementation.
4437         (Process_Full_View): Add documentation
4438         (Record_Type_Declaration): Replace call to Derive_Interface_Subprograms
4439         by call to Derive_Progenitor_Subprograms.
4440
4441         * sem_ch6.ads (Is_Interface_Conformant): New subprogram.
4442         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
4443         Skip_Controlling_Formals.
4444
4445         * sem_ch6.adb (Is_Interface_Conformant): New subprogram.
4446         (Check_Conventions): New implementation. Remove local subprogram
4447         Skip_Check. Remove formal Search_From of routine Check_Convention.
4448         (Check_Subtype_Conformant, Subtype_Conformant): Adding new argument
4449         Skip_Controlling_Formals.
4450         (New_Overloaded_Entity): Enable addition of predefined dispatching
4451         operations.
4452
4453         * sem_disp.ads
4454         (Find_Primitive_Covering_Interface): New subprogram.
4455
4456         * sem_disp.adb (Check_Dispatching_Operation): Disable registering
4457         the task body procedure as a primitive of the corresponding tagged
4458         type.
4459         (Check_Operation_From_Private_Type): Avoid adding twice an entity
4460         to the list of primitives.
4461         (Find_Primitive_Covering_Interface): New subprogram.
4462         (Override_Dispatching_Operation): Add documentation.
4463
4464         * sem_type.adb (Covers): Minor reformatings
4465
4466         * sem_util.ads (Collect_Abstract_Interfaces): Renamed as
4467         Collect_Interfaces.
4468         Rename formal.
4469         (Has_Abstract_Interfaces): Renamed as Has_Interfaces.
4470         (Implements_Interface): New subprogram.
4471         (Is_Parent): Removed.
4472         (Primitive_Names_Match): New subprogram.
4473         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
4474         (Ultimate_Alias): New subprogram.
4475
4476         * sem_util.adb (Collect_Abstract_Interfaces): Renamed as
4477         Collect_Interfaces.
4478         Remove special management for synchronized types. Rename formal. Remove
4479         internal subprograms Interface_Present_In_Parent and Add_Interface.
4480         (Has_Abstract_Interfaces): Renamed as Has_Interfaces. Replace assertion
4481         on non-record types by code to return false in such case.
4482         (Implements_Interface): New subprogram.
4483         (Is_Parent): Removed. No special management is now required for
4484         synchronized types covering interfaces.
4485         (Primitive_Names_Match): New subprogram.
4486         (Remove_Homonym): Moved here from Derive_Interface_Subprograms.
4487         (Ultimate_Alias): New subprogram.
4488
4489         * exp_ch3.adb (Add_Internal_Interface_Entities): New subprogram.
4490         Add internal entities associated with secondary dispatch tables to
4491         the list of tagged type primitives that are not interfaces.
4492         (Freeze_Record_Type): Add new call to Add_Internal_Interface_Entities
4493         (Make_Predefined_Primitive_Specs): Code reorganization to improve
4494         the management of predefined equality operator. In addition, if
4495         the type has an equality function corresponding with a primitive
4496         defined in an interface type, the inherited equality is abstract
4497         as well, and no body can be created for it.
4498
4499         * exp_disp.ads (Is_Predefined_Dispatching_Operation): Moved from
4500         exp_util to exp_disp.
4501         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if
4502         an entity corresponds with one of the predefined primitives required
4503         to implement interfaces.
4504         Update copyright notice.
4505
4506         * exp_disp.adb (Set_All_DT_Position): Add assertion. Exclude from the
4507         final check on abstract subprograms all the primitives associated with
4508         interface primitives because they must be visible in the public and
4509         private part.
4510         (Write_DT): Use Find_Dispatching_Type to locate the name of the
4511         interface type. This allows the use of this routine, for debugging
4512         purposes, when the tagged type is not fully decorated.
4513         (Is_Predefined_Dispatching_Operation): Moved from exp_util to exp_disp.
4514         Factorize code calling new subprogram Is_Predefined_Interface_Primitive.
4515         (Is_Predefined_Interface_Primitive): New subprogram. Returns True if an
4516         entity corresponds with one of the predefined primitives required to
4517         implement interfaces.
4518
4519         * exp_util.adb (Find_Interface_ADT): New implementation
4520         (Find_Interface): Removed.
4521
4522         * sprint.adb (Sprint_Node_Actual): Generate missing output for the
4523         list of interfaces associated with nodes
4524         N_Formal_Derived_Type_Definition and N_Private_Extension_Declaration.
4525
4526 2008-05-26  Thomas Quinot  <quinot@adacore.com>
4527
4528         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add missing guard on
4529         condition for assignment to temporary.
4530
4531 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
4532
4533         * exp_ch4.adb (Expand_Concatenate_Other): Add explicit constraint
4534         checks on the upper bound if the index type is a modular type, to
4535         prevent wrap-around computations when size is close to upper bound of
4536         type.
4537
4538 2008-05-26  Robert Dewar  <dewar@adacore.com>
4539
4540         * sem_ch3.adb: Minor reformatting
4541
4542 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
4543
4544         * sem_ch12.adb (Remove_Parent): Use specification of instance
4545         to retrieve generic parent,
4546         to handle properly the case where the instance is a child unit.
4547         Add guard to handle properly wrapper packages.
4548         Minor reformatting
4549
4550 2008-05-26  Thomas Quinot  <quinot@adacore.com>
4551
4552         * sinfo.ads: Minor reformatting
4553
4554 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
4555
4556         * exp_ch4.adb (Expand_N_Type_Conversion): Minor code reformatting.
4557         Generate a tag check when the result subtype of a function, defined by
4558         an access definition, designates a specific tagged type.
4559         (Make_Tag_Check): New routine.
4560
4561 2008-05-26  Arnaud Charlet  <charlet@adacore.com>
4562
4563         * ceinfo.adb, csinfo.adb: Remove warnings. Update headers.
4564
4565 2008-05-26  Eric Botcazou  <ebotcazou@adacore.com>
4566
4567         * gigi.h (gigi): Remove bogus ATTRIBUTE_UNUSED marker.
4568         (builtin_decl_for): Likewise.
4569         * trans.c (gigi): Likewise.
4570         * utils.c (def_builtin_1): Fix formatting.
4571
4572 2008-05-26  Hristian Kirtchev  <kirtchev@adacore.com>
4573
4574         * exp_ch3.adb (Build_Init_Statements): Alphabetize local variables.
4575         Create the statements which map a string name to protected or task
4576         entry indix.
4577
4578         * exp_ch9.adb: Add with and use clause for Stringt.
4579         Minor code reformatting.
4580         (Build_Entry_Names): New routine.
4581         (Make_Initialize_Protection, Make_Task_Create_Call): Generate a value
4582         for flag Build_Entry_Names which controls the allocation of the data
4583         structure for the string names of entries.
4584
4585         * exp_ch9.ads (Build_Entry_Names): New subprogram.
4586
4587         * exp_util.adb (Entry_Names_OK): New function.
4588
4589         * exp_util.ads (Entry_Names_OK): New function.
4590
4591         * rtsfind.ads: Add RO_PE_Set_Entry_Name and RO_TS_Set_Entry_Name to
4592         enumerations RE_Id and RE_Unit_Table.
4593
4594         * s-taskin.adb Add with and use clause for Ada.Unchecked_Deallocation.
4595         (Free_Entry_Names_Array): New routine.
4596
4597         * s-taskin.ads: Comment reformatting.
4598         Add types String_Access, Entry_Names_Array, Entry_Names_Array_Access.
4599         Add component Entry_Names to record Ada_Task_Control_Block.
4600         (Free_Entry_Names_Array): New routine.
4601
4602         * s-tassta.adb (Create_Task): If flag Build_Entry_Names is set,
4603         dynamically allocate an array
4604         of string pointers. This structure holds string entry names.
4605         (Free_Entry_Names): New routine.
4606         (Free_Task, Vulnerable_Free_Task): Deallocate the entry names array.
4607         (Set_Entry_Names): New routine.
4608
4609         * s-tassta.ads:
4610         (Create_Task): Add formal Build_Entry_Names. The flag is used to
4611         control the allocation of the data structure which stores entry names.
4612         (Set_Entry_Name): New routine.
4613
4614         * s-tpoben.adb:
4615         Add with and use clause for Ada.Unchecked_Conversion.
4616         (Finalize): Deallocate the entry names array.
4617         (Free_Entry_Names): New routine.
4618         (Initialize_Protection_Entries): When flag Build_Entry_Names is set,
4619         create an array of string pointers to hold the entry names.
4620         (Set_Entry_Name): New routine.
4621
4622         * s-tpoben.ads:
4623         Add field Entry_Names to record Protection_Entries.
4624         (Initialize_Protection_Entries): Add formal Build_Entry_Names.
4625         (Set_Entry_Name): New routine.
4626
4627 2008-05-26  Vincent Celier  <celier@adacore.com>
4628
4629         * prj-nmsc.adb:
4630         (Process_Project_Level_Simple_Attributes): process attribute Library_GCC
4631
4632         * prj.ads:
4633         (Project_Configuration): New component Shared_Lib_Driver
4634
4635 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
4636
4637         * inline.adb:
4638         (Cleanup_Scopes): For a protected operation, transfer finalization list
4639         to protected body subprogram, to force cleanup actions when needed.
4640
4641 2008-05-26  Robert Dewar  <dewar@adacore.com>
4642
4643         * sem_cat.adb: Minor reformatting
4644
4645         * gnatname.adb: Minor reformatting
4646
4647         * osint.ads: Minor reformatting
4648
4649         * s-carun8.ads: Minor reformatting
4650
4651         * g-heasor.ads: Minor comment fix (unit is now pure)
4652
4653 2008-05-26  Robert Dewar  <dewar@adacore.com>
4654
4655         * exp_ch2.adb:
4656         (Expand_Current_Value): Properly type generated integer literal
4657
4658 2008-05-26  Sergey Rybin  <rybin@adacore.com>
4659
4660         * gnat_ugn.texi: Add description for the new gnatcheck rule -
4661         Separate_Numeric_Error_Handlers.
4662
4663 2008-05-26  Pascal Obry  <obry@adacore.com>
4664
4665         * sem_aggr.adb: Minor reformatting.
4666
4667 2008-05-26  Jose Ruiz  <ruiz@adacore.com>
4668
4669         * s-osinte-aix.adb:
4670         (To_Target_Priority): Setting the time slice value to 0 or greater sets
4671         the scheduling policy to FIFO within priorities or round-robin
4672         respectively.
4673         Hence, the priority must be set in this case to the one selected by the
4674         user.
4675
4676 2008-05-26  Ed Schonberg  <schonberg@adacore.com>
4677
4678         * sem_ch12.adb:
4679         (Remove_Parent): If the enclosing scope is an instance whose generic
4680         parent is declared within some parent scope of the just completed
4681         instance, make full views of the entities in that parent visible, when
4682         applicable.
4683
4684 2008-05-26  Kai Tietz  <kai.tietz@onevision.com>
4685
4686         * mingw32.h (STD_MINGW): Set to true for target w64.
4687
4688 2008-05-25  Eric Botcazou  <ebotcazou@adacore.com>
4689
4690         * trans.c (Attribute_to_gnu) <Code_Address>: Set TREE_NO_TRAMPOLINE
4691         instead of TREE_STATIC on the ADDR_EXPR.
4692
4693 2008-05-24  Eric Botcazou  <ebotcazou@adacore.com>
4694
4695         * trans.c (gnat_to_gnu): Do not set source location info on NOP_EXPRs.
4696         (Sloc_to_locus): Do not overwrite known GCC locations when translating
4697         GNAT standard locations.
4698
4699 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
4700
4701         * gigi.h (mark_visited): Declare.
4702         * decl.c (gnat_to_gnu_entity): Use mark_visited instead of marking
4703         only the topmost node of expressions.
4704         (elaborate_expression_1): Look deeper for read-only variables.
4705         * trans.c (add_decl_expr): Use mark_visited instead of marking by hand.
4706         (mark_visited): Move logic to mark_visited_r.  Invoke walk_tree.
4707         (mark_visited_r): New function.
4708
4709 2008-05-23  Vincent Celier  <celier@adacore.com>
4710
4711         * snames.adb: New standard name Excluded_Source_List_File.
4712
4713         * snames.ads: New standard name Excluded_Source_List_File.
4714
4715         * prj-attr.adb: New project level attribute Excluded_Source_List_File.
4716
4717         * prj-nmsc.adb: (Find_Excluded_Sources): New parameter Project.
4718         Get excluded sources from
4719         file indicated by attribute Excluded_Source_List_File, when present and
4720         neither Excluded_Source_Files nor Locally_Removed_Files are declared.
4721
4722 2008-05-23  Robert Dewar  <dewar@adacore.com>
4723
4724         * exp_dist.adb: Minor reformatting
4725
4726 2008-05-23  Ed Schonberg  <schonberg@adacore.com>
4727
4728         * sem_attr.adb (Resolve_Attribute, case 'address): If the prefix is a
4729         slice, convert it to an indexed component, which is equivalent, more
4730         efficient, and usable even if the slice itself is not addressable.
4731
4732 2008-05-23  Olivier Hainque  <hainque@adacore.com>
4733
4734         * gnat_ugn.texi (Calling Conventions): Document that the Intrinsic
4735         convention also allows access to named compiler built-in subprograms
4736         such as the GCC __builtin family.
4737
4738 2008-05-23  Vincent Celier  <celier@adacore.com>
4739
4740         * prj-nmsc.adb (Check_Naming_Schemes): Check a file for spec, body and
4741         sep. If there are several possibilities, choose the one with the
4742         longer prefix.
4743
4744 2008-05-23  Vincent Celier  <celier@adacore.com>
4745
4746         * gnatlink.adb (Process_Args): Do not disable scanning of ALI file for
4747         back end switches when executable specified with --GCC= is same as
4748         default, even if there are additional options.
4749
4750         * gnat_ugn.texi:
4751         Document when the back end switches from the ALI file are taken into
4752         account when gnatlink is invoked with --GCC=
4753
4754 2008-05-23  Thomas Quinot  <quinot@adacore.com>
4755
4756         * s-os_lib.adb:
4757         (copy_File): Do not open destination file if source file is unreadable.
4758
4759 2008-05-23  Eric Botcazou  <ebotcazou@adacore.com>
4760
4761         * utils.c (handle_type_generic_attribute): Adjust to accept
4762         fixed arguments before an elipsis.
4763
4764 2008-05-21  Thomas Quinot  <quinot@adacore.com>
4765
4766         * g-sothco.ads, g-sothco.adb: New files.
4767
4768 2008-05-20  Thomas Quinot  <quinot@adacore.com>
4769
4770         * Makefile.rtl (GNAT.Sockets.Thin_Common): New unit.
4771
4772         * g-sttsne-vxworks.adb: Add missing dependency on Sockets.Constants.
4773         Add missing "with" of Ada.Unchecked_Conversion
4774
4775         * g-soccon-linux-ppc.ads, g-soccon-linux-64.ads, g-soccon-lynxos.ads,
4776         g-soccon-linux-x86.ads, g-soccon-hpux-ia64.ads,
4777         g-soccon-solaris-64.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
4778         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
4779         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
4780         g-socthi-vxworks.adb, g-soccon-freebsd.ads, g-soccon.ads:
4781         Move common code out of GNAT.Sockets.Thin implementations and into
4782         Thin_Common.
4783         New constant SIZEOF_fd_set
4784         New flag Has_Sockaddr_Len
4785         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4786
4787         * g-stsifd-sockets.adb
4788         (Create): Remove call to Set_Length; use Set_Family to set the family
4789         and (on appropriate platforms) length fields in struct sockaddr.
4790
4791         * g-socthi.adb, g-socthi.ads, g-socthi-vms.ads, g-socthi-vms.adb,
4792         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.adb,
4793         g-soccon-darwin.ads, g-soccon-darwin.ads: New constant SIZEOF_fd_set
4794         Move common code out of GNAT.Sockets.Thin implementations and into
4795         Thin_Common.
4796
4797         * g-socket.ads, g-socket.adb:
4798         Move common code out of GNAT.Sockets.Thin implementations and into
4799         Thin_Common.
4800         (Connect_Socket, Accept_Socket): Provide new versions of these two
4801         routines that operate with a user specified timeout.
4802         (Bind_Socket, Connect_Socket, Send_Socket): Remove calls to Set_Length,
4803         this is now handled automatically by Set_Family on platforms that
4804         require it.
4805
4806         * gen-soccon.c:
4807         Move common code out of GNAT.Sockets.Thin implementations and into
4808         Thin_Common.
4809         (SIZEOF_sockaddr_in6): On platforms where IPv6 is not supported, define
4810         this constant to 0 (not -1) because we use it to initialize an
4811         unsigned_char value.
4812         Align values for numeric constants only.
4813         Handle the case of systems that do not support AF_INET6.
4814         New constant SIZEOF_fd_set
4815         New flag Has_Sockaddr_Len
4816         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4817
4818         * gsocket.h: New flag Has_Sockaddr_Len
4819         New constants SIZEOF_sockaddr_in, SIZEOF_sockaddr_in6
4820
4821 2008-05-20  Santiago Uruena  <uruena@adacore.com>
4822
4823         * i-cobol.ads: Interfaces.COBOL should be preelaborate.
4824
4825 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
4826
4827         * s-linux-hppa.ads (atomic_lock_t): Put back proper alignment now that
4828         the underlying issue with malloc/free has been fixed. Remove associated
4829         comments.
4830         Minor reformatting.
4831         Related to PR ada/24533
4832
4833 2008-05-20  Robert Dewar  <dewar@adacore.com>
4834
4835         * ali.adb: Correct casing of ASCII.NUL
4836
4837         * styleg-c.adb (Check_Identifier): Handle case of names in ASCII
4838         properly.
4839
4840 2008-05-20  Robert Dewar  <dewar@adacore.com>
4841             Gary Dismukes  <dismukes@adacore.com>
4842
4843         * checks.adb (Apply_Arithmetic_Overflow_Check): Avoid intermediate
4844         overflow if result converted to wider integer type.
4845         (Apply_Type_Conversion_Checks): Don't emit checks on conversions to
4846         discriminated types when discriminant checks are suppressed.
4847
4848 2008-05-20  Vincent Celier  <celier@adacore.com>
4849
4850         * cstand.adb (Print_Standard): Issue the correct Size clause for type
4851         Wide_Wide_Character.
4852
4853 2008-05-20  Tristan Gingold  <gingold@adacore.com>
4854
4855         * decl.c: Do not emit a variable for a object that has an address
4856         representation clause whose value is known at compile time.
4857         When a variable has an address clause whose value is known at compile
4858         time, refer to this variable by using directly the address instead of
4859         dereferencing a pointer.
4860
4861 2008-05-20  Robert Dewar  <dewar@adacore.com>
4862
4863         PR ada/30740
4864         * einfo.ads, einfo.adb (Non_Binary_Modulus): Applies to all types and
4865         subtypes, always False for non-modular types.
4866         Shared_Var_Assign_Proc (node22) and Shared_Var_Read_Proc (node 15)
4867         entry nodes have been replaced by Shared_Var_Procs_Instance (node22)
4868         for Shared_Storage package.
4869         (Is_RACW_Stub_Type): New entity flag.
4870
4871         * exp_ch4.adb
4872         (Expand_N_Op_Expon): Avoid incorrect optimization of a*(2**b) in the
4873         case where we have a modular type with a non-binary modules.
4874         Comments reformattings.
4875
4876         * sem_intr.adb: Simplify code not that Non_Binary_Modulus applies to
4877         all types.
4878
4879 2008-05-20  Javier Miranda  <miranda@adacore.com>
4880
4881         * exp_aggr.adb
4882         (Build_Record_Aggr_Code): Fix wrong tests checking progenitors. Previous
4883         tests did not covered the case in which the type of the aggregate has
4884         no progenitors but some its parents has progenitors.
4885
4886 2008-05-20  Gary Dismukes  <dismukes@adacore.com>
4887             Hristian Kirtchev  <kirtchev@adacore.com>
4888
4889         * exp_ch3.adb
4890         (Expand_N_Object_Declaration): Correct the condition which triggers the
4891         generation of a call to Displace when initializing a class-wide object.
4892         (Build_Dcheck_Functions): Build discriminant-checking for null variants
4893         when Frontend_Layout_On_Target is true to ensure that they're available
4894         for calling when a record variant size function is built in Layout.
4895
4896 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
4897
4898         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
4899         procedure for a derived type retrieve the discriminant values from the
4900         parent using the corresponding discriminant.
4901         (Expand_N_Assignment_Statement): Skip generation of implicit
4902         if-statement associated with controlled types if we are
4903         compiling with restriction No_Finalization.
4904
4905 2008-05-20  Vincent Celier  <celier@adacore.com>
4906
4907         * prj.adb (Hash (Project_Id)): New function
4908         (Project_Empty): Add new component Interfaces_Defined
4909
4910         * prj.ads (Source_Data): New component Object_Linked
4911         (Language_Config): New components Object_Generated and Objects_Linked
4912         (Hash (Project_Id)): New function
4913         (Source_Data): New Boolean components In_Interfaces and
4914         Declared_In_Interfaces.
4915         (Project_Data): New Boolean component Interfaces_Defined
4916
4917         * prj-attr.adb:
4918         New project level attribute Object_Generated and Objects_Linked
4919         Add new project level attribute Interfaces
4920
4921         * prj-dect.adb: Use functions Present and No throughout
4922         (Parse_Variable_Declaration): If a string type is specified as a simple
4923         name and is not found in the current project, look for it also in the
4924         ancestors of the project.
4925
4926         * prj-makr.adb:
4927         Replace procedure Make with procedures Initialize, Process and Finalize
4928         to implement H414-023: process different directories with different
4929         patterns.
4930         Use functions Present and No throughout
4931
4932         * prj-makr.ads:
4933         Replace procedure Make with procedures Initialize, Process and Finalize
4934
4935         * prj-nmsc.adb
4936         (Add_Source): Set component Object_Exists and Object_Linked accordnig to
4937         the language configuration.
4938         (Process_Project_Level_Array_Attributes): Process new attributes
4939         Object_Generated and Object_Linked.
4940         (Report_No_Sources): New Boolean parameter Continuation, defaulted to
4941         False, to indicate that the erreor/warning is a continuation.
4942         (Check): Call Report_No_Sources with Contnuation = True after the first
4943         call.
4944         (Error_Msg): Process successively contnuation character and warning
4945         character.
4946         (Find_Explicit_Sources): Check that all declared sources have been found
4947         (Check_File): Indicate in hash table Source_Names when a declared source
4948         is found.
4949         (Check_File): Set Other_Part when found
4950         (Find_Explicit_Sources): In multi language mode, check if all exceptions
4951         to the naming scheme have been found. For Ada, report an error if an
4952         exception has not been found. Otherwise, disregard the exception.
4953         (Check_Interfaces): New procedure
4954         (Add_Source): When Other_Part is defined, set mutual pointers in spec
4955         and body.
4956         (Check): In multi-language mode, call Check_Interfaces
4957         (Process_Sources_In_Multi_Language_Mode): Set In_Interfaces to False
4958         for an excluded source.
4959         (Remove_Source): A source replacing a source in the interfaces is also
4960         in the interfaces.
4961
4962         * prj-pars.adb: Use function Present
4963
4964         * prj-part.adb: Use functions Present and No throughout
4965         (Parse_Single_Project): Set the parent project for child projects
4966         (Create_Virtual_Extending_Project): Register project with no qualifier
4967         (Parse_Single_Project): Allow an abstract project to be extend several
4968         times. Do not allow an abstract project to extend a non abstract
4969         project.
4970
4971         * prj-pp.adb: Use functions Present and No throughout
4972         (Print): Take into account the full associative array attribute
4973         declarations.
4974
4975         * prj-proc.adb: Use functions Present and No throughout
4976         (Expression): Call itself with the same From_Project_Node for the
4977         default value of an external reference.
4978
4979         * prj-strt.adb: Use functions Present and No throughout
4980         (Parse_Variable_Reference): If a variable is specified as a simple name
4981         and is not found in the current project, look for it also in the
4982         ancestors of the project.
4983
4984         * prj-tree.ads, prj-tree.adb (Present): New function
4985         (No): New function
4986         Use functions Present and No throughout
4987         (Parent_Project_Of): New function
4988         (Set_Parent_Project_Of): New procedure
4989
4990         * snames.ads, snames.adb:
4991         Add new standard names Object_Generated and Objects_Linked
4992
4993 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
4994
4995         * exp_ch6.adb (Expand_Call): Add guard to ensure that both the parent
4996         and the derived type are of the same kind.
4997         (Expand_Call): Generate type conversions for actuals of
4998         record or array types when the parent and the derived types differ in
4999         size and/or packed status.
5000
5001 2008-05-20  Javier Miranda  <miranda@adacore.com>
5002             Ed Schonberg  <schonberg@adacore.com>
5003
5004         * exp_disp.adb (Make_DT, Make_Secondary_DT, Make_Tags): Avoid
5005         generating dispatch tables of locally defined tagged types statically.
5006         Remove implicit if-statement that is no longer required.
5007         (Expand_Dispatching_Call): If this is a call to an instance of the
5008         generic dispatching constructor, the type of the first argument may be
5009         a subtype of Tag, so always use the base type to recognize this case.
5010
5011 2008-05-20  Thomas Quinot  <quinot@adacore.com>
5012
5013         * exp_dist.adb
5014         (GARLIC_Support.Add_RACW_Read_Attribute): When a zero value is received,
5015         and the RACW is null-excluding, raise CONSTRAINT_ERROR instead of
5016         assigning NULL into the result, to avoid a spurious warning.
5017         (Add_RACW_Features, case Same_Scope): Add assertion that designated type
5018         is not frozen.
5019         (Add_Stub_Type): Set entity flag Is_RACW_Stub_Type on generated stub
5020         type.
5021         (Build_From_Any_Function, Build_To_Any_Function,
5022         Build_TypeCode_Function): For a type that has user-specified stream
5023         attributes, use an opaque sequence of octets as the representation.
5024
5025 2008-05-20  Kevin Pouget  <pouget@adacore.com>
5026
5027         * exp_smem.ads, exp_smem.adb: Construction of access and assign
5028         routines has been replaced by an instantiation of
5029         System.Shared_Storage.Shared_Var_Procs generic package, while expanding
5030         shared variable declaration.
5031         Calls to access and assign routines have been replaced by calls to
5032         Read/Write routines of System.Shared_Storage.Shared_Var_Procs
5033         instantiated package.
5034
5035         * rtsfind.ads: RE_Shared_Var_Procs entry has been added in RE_Unit_Table
5036         It identifies the new generic package added in s-shasto.
5037
5038         * s-shasto.adb, s-shasto.ads: A new generic package has been added, it
5039         is instantiated for each shared passive variable. It provides
5040         supporting procedures called upon each read or write access by the
5041         expanded code.
5042
5043         * sem_attr.adb:
5044         For this runtime unit (always compiled in GNAT mode), we allow
5045         stream attributes references for limited types for the case where
5046         shared passive objects are implemented using stream attributes,
5047         which is the default in GNAT's persistent storage implementation.
5048
5049 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
5050
5051         * freeze.adb
5052         (Freeze_Enumeration_Type): For a subtype that inherits a foreign
5053         convention from its base type, do not set the type to that of integer,
5054         because it may inherit a size clause.
5055         Warn on a size clause with a size different
5056         from that of Integer, if the type has convention C.
5057
5058 2008-05-20  Vincent Celier  <celier@adacore.com>
5059
5060         * gnatname.adb
5061         (Scan_Args): Rewrite to take into account new switch --and to separate
5062         arguments into sections.
5063         (Gnatname): Call Prj.Makr.Initialize, then Prj.Makr.Process for each
5064         section, then Finalize.
5065
5066 2008-05-20  Tristan Gingold  <gingold@adacore.com>
5067
5068         * init.c: Enable stack probing on ppc-linux.
5069
5070         * tracebak.c: Add symbolic traceback for ppc-linux.
5071
5072         * system-linux-ppc.ads: Enable stack probing on ppc-linux.
5073
5074 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
5075
5076         * Makefile.in
5077         (common-tools): New rule, to avoid parallel build failure on gnat tools.
5078         Reenable parallel builds on this Makefile.
5079
5080         * Make-lang.in: Update dependencies.
5081
5082 2008-05-20  Robert Dewar  <dewar@adacore.com>
5083
5084         * opt.ads (Treat_Restrictions_As_Warnings): New switch
5085
5086         * sem_prag.adb, par-prag.adb, restrict.ads: Implement flag
5087         Treat_Restrictions_As_Warnings.
5088
5089         * switch-c.adb: Recognize new switch -gnatr
5090
5091         * usage.adb: Add line for -gnatr
5092
5093 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
5094
5095         * par-ch3.adb
5096         (P_Access_Definition): Change the error message when parsing "access
5097         all" in Ada 95 mode. The message no longer forces the user to recompile
5098         in 05 mode only to discover that anonymous access types are not allowed
5099         to have "all".
5100
5101 2008-05-20  Hristian Kirtchev  <kirtchev@adacore.com>
5102
5103         * par-ch9.adb
5104         (P_Protected): Update the error message on missing "-gnat05" switch when
5105         using interfaces in conjunction with protected types. Remove the
5106         incorrect error message associated with the presence of "private" after
5107         a "with".
5108
5109 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
5110
5111         * sem_aggr.adb: Update comments.
5112         Improve previous change for PR ada/17985
5113
5114 2008-05-20  Thomas Quinot  <quinot@adacore.com>
5115
5116         * sem_cat.adb
5117         (Set_Categorization_From_Scope): Do not set In_Remote_Types unless in
5118         the visible part of the spec of a remote types unit.
5119         (Validate_Remote_Access_Object_Type_Declaration):
5120         New local subprogram Is_Valid_Remote_Object_Type, replaces
5121         Is_Recursively_Limited_Private.
5122         (Validate_RACW_Primitives): Enforce E.2.2(14) rules: the types of all
5123         non-controlling formals (and the return type, even though this is not
5124         explicit in the standard) must support external streaming.
5125         (Validate_RCI_Subprogram_Declaration): Enforce E.2.3(14) rules: same
5126         as above for of RAS types and RCI subprograms. (The return type is not
5127         checked yet).
5128         Update comments related to RACWs designating limited interfaces per
5129         ARG ruling on AI05-060.
5130
5131         * sem_util.ads, sem_util.adb
5132         (Is_Remote_Access_To_Class_Wide_Type): Only rely on Is_Remote_Types and
5133         Is_Remote_Call_Interface to identify RACW types in a stable and
5134         consistent way. We used to rely in this predicate on the privateness of
5135         the designated type and its ancestors, but depending on the currently
5136         visible private parts, this caused false negatives. We now uniformly
5137         rely on checks made at the point where the RACW type is declared.
5138         (Inspect_Deferred_Constant_Completion): Moved from Sem_Ch7.
5139
5140 2008-05-20  Javier Miranda  <miranda@adacore.com>
5141             Ed Schonberg  <schonberg@adacore.com>
5142             Hristian Kirtchev  <kirtchev@adacore.com>
5143
5144         * sem_ch3.adb
5145         (Analyze_Object_Declaration): Fix over-conservative condition
5146         restricting use of predefined assignment with tagged types that have
5147         convention CPP.
5148         (Analyze_Object_Declaration): Relax the check regarding deferred
5149         constants declared in scopes other than packages since they can be
5150         completed with pragma Import.
5151         Add missing escaping of all-caps word 'CPP' in error messages.
5152         (Build_Discriminated_Subtype): Do not inherit representation clauses
5153         from parent type if subtype already carries them, because they are
5154         inherited earlier during derivation and already include those that may
5155         come from a partial view.
5156
5157         * sem_ch9.adb, sem_ch5.adb, sem_ch6.adb (Analyze_Subprogram_Body):
5158         Check the declarations of a subprogram body for proper deferred
5159         constant completion.
5160
5161         * sem_ch7.ads, sem_ch7.adb
5162         (Inspect_Deferred_Constant_Completion): Moved to sem_util.
5163
5164 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
5165             Thomas Quinot  <quinot@adacore.com>
5166
5167         * sem_ch4.adb
5168         (Try_Indexed_Call): Handle properly a construct of the form F(S) where
5169         F is a parameterless function that returns an array, and S is a subtype
5170         mark.
5171         (Analyze_Call): Insert dereference when the prefix is a parameterless
5172         function that returns an access to subprogram and the call has
5173         parameters.
5174         Reject a non-overloaded call whose name resolves to denote
5175         a primitive operation of the stub type generated to support a remote
5176         access-to-class-wide type.
5177
5178 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
5179
5180         * sem_ch8.adb
5181         (Note_Redundant_Use): Diagnose a redundant use within a subprogram body
5182         when there is a use clause for the same entity in the context.
5183         (Analyze_Subprogram_Renaming): A renaming_as_body is legal if it is
5184         created for a stream attribute of an abstract type or interface type.
5185
5186 2008-05-20  Thomas Quinot  <quinot@adacore.com>
5187
5188         * sem_dist.ads, sem_dist.adb (Is_RACW_Stub_Type_Operation): New
5189         subprogram.
5190
5191         * sem_type.adb
5192         (Add_One_Interp): Ignore any interpretation that is a primitive
5193         operation of an RACW stub type (these primitives are only executed
5194         through dispatching, never through static calls).
5195         (Collect_Interps): When only one interpretation has been found, set N's
5196         Entity and Etype to that interpretation, otherwise Entity and Etype may
5197         still refer to an interpretation that was ignored by Add_One_Interp,
5198         in which case would end up with being marked as not overloaded but with
5199         an Entity attribute not pointing to its (unique) correct interpretation.
5200
5201 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
5202
5203         * sem_eval.adb
5204         (Eval_Slice): Warn when a slice whose discrete range is a subtype name
5205         denotes the whole array of its prefix.
5206
5207 2008-05-20  Robert Dewar  <dewar@adacore.com>
5208
5209         * sem_res.adb (Resolve_Op_Not): Warn on double negation
5210
5211 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
5212
5213         * sprint.adb
5214         (Print_Itype): Do not modify the sloc of the component type of a
5215         (packed) array itype, because it is an unrelated type whose source
5216         location is independent of the point of creation of the itype itself.
5217
5218 2008-05-20  Thomas Quinot  <quinot@adacore.com>
5219
5220         * uintp.adb, urealp.adb: Replace calls to Increment_Last + Set with
5221         Append.
5222
5223 2008-05-20  Robert Dewar  <dewar@adacore.com>
5224             Vincent Celier  <celier@adacore.com>
5225
5226         * vms_data.ads: Add entry for -gnatr
5227         Put GNAT SYNC section in proper alpha order
5228         Add VMS qualifier /DISPLAY_PROGRESS equivalent to gnatmake switch -d
5229
5230         * gnat_ugn.texi: Add documentation for new gnatname switch --and
5231         Update the style checks section
5232         Add documentation of -gnatr
5233         Add to the "Adding the Results of Compiler Checks to gnatcheck Output"
5234         subsection the explanation how compiler checks should be disabled for
5235         gnatcheck.
5236         Update the list of Ada 95 reserved words used by in the project language
5237         Add documentation for project qualifiers.
5238         Document that abstract projects may be extended by different projects in
5239         the same project tree.
5240         Add documentation for gnatmake switch -d
5241
5242         * ug_words: Add -gnatyy VMS equivalence string.
5243         Add entry for -gnatr
5244
5245 2008-05-20  Bob Duff  <duff@adacore.com>
5246
5247         * a-rttiev.adb
5248         (Set_Handler): Remove code from both of these that implements
5249         RM-D.15(15/2), because it causes a race condition and potential
5250         deadlock.
5251         (Process_Queued_Events): Add comment explaining "exception when others
5252         => null". Add clarifying ".all", even though implicit .all is legal
5253         here.
5254
5255 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
5256
5257         * s-winext.ads: Replace representation clause by pragma Pack. Gives
5258         equivalent representation, but has the advantage of allowing
5259         compilation of this file under 64 bits platforms.
5260
5261         * s-os_lib.adb (Normalize_Pathname): Mark Cur_Dir constant.
5262
5263         * s-osinte-irix.ads: (Alternate_Stack_Size): Add dummy declaration.
5264
5265         * adaint.c:
5266         Don't define dummy implementation of convert_addresses on ppc-linux.
5267
5268 2008-05-20  Ed Schonberg  <schonberg@adacore.com>
5269
5270         * exp_ch7.adb
5271         (Expand_Ctrl_Function_Call): Do not attach result to finalization list
5272         if expression is aggregate component.
5273
5274 2008-05-20  Robert Dewar  <dewar@adacore.com>
5275
5276         * g-byorma.adb, gnatlink.adb, prepcomp.adb, sinfo.ads,
5277         sem_ch12.adb: Update comments. Minor reformatting.
5278
5279         * exp_ch2.adb: Typo
5280
5281         * s-unstyp.ads: Fixed some typos in comments.
5282
5283 2008-05-20  Arnaud Charlet  <charlet@adacore.com>
5284
5285         * s-taspri-vxworks.ads (Task_Address, Task_Address_Size): New
5286         type/constant.
5287
5288         * g-socthi-vxworks.ads: Update to latest socket changes.
5289
5290         * a-caldel-vms.adb: Resync with a-caldel spec.
5291
5292         * exp_ch9.ads, sem_ch8.ads, inline.adb: Minor reformatting.
5293         Update comments.
5294
5295 2008-05-17  Eric Botcazou  <ebotcazou@adacore.com>
5296
5297         * trans.c (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Account
5298         for dummy types pointed to by the converted pointer types.
5299
5300 2008-05-15  Eric Botcazou  <ebotcazou@adacore.com>
5301
5302         * trans.c (add_decl_expr): At toplevel, mark the TYPE_ADA_SIZE field
5303         of records and unions.
5304         (gnat_to_gnu) <N_Validate_Unchecked_Conversion>: Fix formatting.
5305
5306 2008-05-14  Samuel Tardieu  <sam@rfc1149.net>
5307             Robert Dewar <dewar@adacore.com>
5308
5309         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Add
5310         restrictions to the prefix of 'Old.
5311         * sem_util.ads, sem_util.adb (In_Parameter_Specification): New.
5312         * gnat_rm.texi ('Old): Note that 'Old cannot be applied to local
5313         variables.
5314
5315 2008-05-13  Eric Botcazou  <ebotcazou@adacore.com>
5316
5317         PR ada/24880
5318         PR ada/26635
5319         * utils.c (convert) <INTEGER_TYPE>: When converting an additive
5320         expression to an integral type with lower precision, use NOP_EXPR
5321         directly in a couple of special cases.
5322
5323 2008-05-12  Samuel Tardieu  <sam@rfc1149.net>
5324             Ed Schonberg <schonberg@adacore.com>
5325
5326         * sem_ch3.adb (Build_Derived_Record_Type): Accept statically matching
5327         constraint expressions.
5328
5329 2008-05-12  Tomas Bily  <tbily@suse.cz>
5330
5331         * utils2.c (known_alignment, contains_save_expr_p)
5332         (gnat_mark_addressable): Use CASE_CONVERT.
5333         * decl.c (annotate_value): Likewise.
5334         * trans.c (maybe_stabilize_reference): Likewise.
5335         * utils2.c (build_binary_op): Use CONVERT_EXPR_P.
5336         * utils.c (rest_of_record_type_compilation): Likewise.
5337         * trans.c (protect_multiple_eval, Attribute_to_gnu)
5338         (protect_multiple_eval): Likewise.
5339
5340 2008-05-08  Andreas Schwab  <schwab@suse.de>
5341
5342         * utils.c (handle_pure_attribute, init_gigi_decls): Rename
5343         DECL_IS_PURE to DECL_PURE_P.
5344
5345 2008-05-05  Eric Botcazou  <ebotcazou@adacore.com>
5346
5347         * decl.c (maybe_pad_type): Add ??? comment.
5348
5349 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
5350
5351         * decl.c (components_to_record): Zero the alignment of the qualified
5352         union built for the variant part upon creating it.
5353
5354 2008-05-03  Eric Botcazou  <ebotcazou@adacore.com>
5355
5356         * decl.c (maybe_pad_type): Try to get a form of the type with integral
5357         mode even if the alignment is not a factor of the original size.  But
5358         make sure to create the inner field with the original size.  Reorder.
5359         * trans.c (addressable_p) <COMPONENT_REF>: Treat the field of a padding
5360         record as always addressable.
5361         * utils.c (convert): Deal specially with conversions between original
5362         and packable versions of a record type.
5363         * utils2.c (build_binary_op) <MODIFY_EXPR>: Be more restrictive when
5364         recognizing an assignment between padded objects.
5365
5366 2008-05-01  Eric Botcazou  <ebotcazou@adacore.com>
5367
5368         * decl.c (make_packable_type): Resize the last component to its RM size
5369         only if it is of an aggregate type.
5370         * trans.c (call_to_gnu): Fix nit in comment.
5371         (gnat_to_gnu): Likewise.
5372
5373 2008-04-30  Samuel Tardieu  <sam@rfc1149.net>
5374
5375         * Makefile.in: Adapt sh4-linux target.
5376
5377 2008-04-29  Ed Schonberg  <schonberg@adacore.com>
5378
5379         PR ada/35792
5380         * sem_ch3.adb (Find_Type_Name): Refuse completion of an incomplete
5381         tagged type by an untagged protected or task type.
5382
5383 2008-04-28  Eric Botcazou  <ebotcazou@adacore.com>
5384             Tristan Gingold  <gingold@adacore.com>
5385
5386         PR ada/36007
5387         * decl.c (gnat_to_gnu_entity) <object>: Do not promote alignment
5388         of aliased objects with an unconstrained nominal subtype.
5389         Cap the promotion to the effective alignment of the word mode.
5390
5391 2008-04-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5392
5393         * Make-lang.in (ada.tags, check-acats, ada/treeprs.ads)
5394         (ada/einfo.h, ada/sinfo.h, ada/nmake.adb, ada/nmake.ads):
5395         Use '&&' instead of ';'.
5396
5397 2008-04-24  Olivier Hainque  <hainque@adacore.com>
5398
5399         * trans.c (Attribute_to_gnu) <case Attr_Length>: Length computation
5400         doesn't require signed arithmetic anymore.
5401
5402 2008-04-23  Paolo Bonzini  <bonzini@gnu.org>
5403
5404         * trans.c (Attribute_to_gnu): Don't set TREE_INVARIANT.
5405         (call_to_gnu): Don't set TREE_INVARIANT.
5406         * utils2.c (gnat_build_constructor): Don't set TREE_INVARIANT.
5407
5408 2008-04-22  Joel Sherrill <joel.sherrill@oarcorp.com>
5409
5410         * s-osinte-rtems.adb: Add sigalstack function.
5411         * s-osinte-rtems.ads: Add SO_ONSTACK and sigalstack
5412         function. Add Alternate_Stack and Alternate_Stack_Size.
5413         Add missing process_shared field to pthread_condattr_t
5414         and change ss_low_priority to int from timespec.
5415
5416 2008-04-22  Samuel Tardieu  <sam@rfc1149.net>
5417
5418         * i-forbla.adb: Link against -llapack and -lblas by default
5419         instead of the private -lgnalasup.
5420
5421 2008-04-21  Olivier Hainque  <hainque@adacore.com>
5422
5423         Access to most C builtins from Ada
5424         * utils.c: #include "langhooks.h" and define GCC_DIAG_STYLE.
5425         (handle_pure_attribute, handle_novops_attribute,
5426         handle_nonnull_attribute, handle_sentinel_attribute,
5427         handle_noreturn_attribute, handle_malloc_attribute,
5428         handle_type_generic_attribute): New attribute handlers, from C fe.
5429         (gnat_internal_attribute_table): Map the new handlers.
5430         (gnat_init_decl_processing): Move call to gnat_install_builtins to ...
5431         (init_gigi_decls): ... here.
5432         (handle_const_attribute, handle_nothrow_attribute, builtin_decl_for):
5433         Move to a section dedicated to builtins processing.
5434         (build_void_list_node, builtin_type_for_size): New functions.
5435         (def_fn_type, get_nonnull_operand): Likewise.
5436         (install_builtin_elementary_type, install_builtin_function_types,
5437         install_builtin_attributes): Likewise.
5438         (fake_attribute_handler): Fake handler for attributes we don't
5439         support in Ada.
5440         (def_builtin_1): New function, worker for DEF_BUILTIN.
5441         (install_builtin_functions): New function.
5442         (gnat_install_builtins): Move to the builtins processing section.
5443         Now calling the newly introduced installers.
5444
5445 2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
5446
5447         * decl.c (gnat_to_gnu_entity) <object>: Also promote the alignment of
5448         constant objects, but not exceptions.
5449         * trans.c (add_decl_expr): Use gnat_types_compatible_p for type
5450         compatibility test.
5451         * utils.c (create_var_decl_1): Likewise.
5452         * utils2.c (build_binary_op) <MODIFY_EXPR>: Also use the padded view of
5453         the type when copying to padded object and the source is a constructor.
5454
5455 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5456
5457         * decl.c (gnat_to_gnu_entity) <object>: When trying to promote the
5458         alignment, reset it to zero if it would end up not being greater
5459         than that of the type.
5460
5461 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5462
5463         * decl.c (maybe_pad_type): Only generate the XVS parallel type if
5464         the padded type has a variable size.
5465
5466 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5467
5468         * decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Use the return by
5469         target pointer mechanism as soon as the size is not constant.
5470
5471 2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
5472
5473         * gigi.h (create_var_decl_1): Declare.
5474         (create_var_decl): Turn into a macro invoking create_var_decl_1.
5475         (create_true_var_decl): Likewise.
5476         * utils.c (create_var_decl_1): Make global and reorder parameters.
5477         (create_var_decl): Delete.
5478         (create_true_var_decl): Likewise.
5479
5480 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
5481
5482         * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
5483         objects by default.
5484         * fe.h (Debug_Flag_Dot_A): Delete.
5485         * debug.adb (-gnatd.a): Update documentation.
5486
5487 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
5488
5489         * g-socket.ads, g-socket.adb (Get_Address): Make Stream a
5490         "not null" parameter.
5491
5492 2008-04-17  Samuel Tardieu  <sam@rfc1149.net>
5493
5494         * g-socket.adb: Add a message "IPv6 not supported" to the
5495         Socket_Error exception.
5496
5497 2008-04-16  Samuel Tardieu  <sam@rfc1149.net>
5498
5499         PR ada/29015
5500         * sem_ch12.adb (Instantiate_Type): Check whether the full view of
5501         the type is known instead of the underlying type.
5502
5503 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
5504
5505         PR ada/22387
5506         * exp_ch5.adb (Expand_Assign_Record): Within an initialization
5507         procedure for a derived type retrieve the discriminant values from
5508         the parent using the corresponding discriminant.
5509
5510 2008-04-15  Samuel Tardieu  <sam@rfc1149.net>
5511             Gary Dismukes  <dismukes@adacore.com>
5512
5513         PR ada/28733
5514         * sem_ch8.adb (Analyze_Use_Package): Do not allow "use" of something
5515         which is not an entity (and hence not a package).
5516         (End_Use_Package): Ditto.
5517
5518 2008-04-15  Ed Schonberg  <schonberg@adacore.com>
5519
5520         PR ada/16086
5521         * sem_ch12.adb (Analyze_Formal_Subprogram): The default can be any
5522         protected operation that matches the signature, not only an entry, a
5523         regular subprogram or a literal.
5524
5525 2008-04-15  Eric Botcazou  <ebotcazou@adacore.com>
5526
5527         * ada-tree.h (DECL_BY_COMPONENT_PTR_P): Use DECL_LANG_FLAG_3.
5528         * decl.c (gnat_to_gnu_entity) <object>: Call maybe_pad_type only
5529         if a size or alignment is specified.  Do not take into account
5530         alignment promotions for the computation of the object's size.
5531         <type>: Call maybe_pad_type only if a size or alignment is specified.
5532         (maybe_pad_type): Really reuse the RM_Size of the original type if
5533         requested.
5534         * trans.c (Attribute_to_gnu): Fix a couple of nits.
5535         * utils2.c (build_binary_op) <MODIFY_EXPR>: Merge related conditional
5536         statements.  Use the padded view of the type when copying between
5537         padded objects of the same underlying type.
5538
5539 2008-04-14  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5540
5541         * vms_data.ads: Fix typo in constant.
5542         * gen-soccon.c: Fix typo in error string.
5543         * gnat_rm.texi (Pragma Optimize_Alignment, Pragma Postcondition):
5544         Fix typos.
5545         * a-calcon.ads, a-calend-vms.adb, a-calend.adb, a-crdlli.ads,
5546         bcheck.adb, checks.adb, einfo.ads, errout.adb, erroutc.adb,
5547         erroutc.ads, exp_attr.adb, exp_ch11.adb, exp_ch2.adb,
5548         exp_ch5.adb, exp_ch9.adb, exp_ch9.ads, exp_pakd.adb,
5549         exp_util.adb, fmap.adb, g-soccon-linux-mips.ads,
5550         g-soccon-rtems.ads, g-timsta.adb, g-timsta.ads, lib-writ.ads,
5551         mlib-tgt-specific-linux.adb, mlib-tgt-specific-tru64.adb,
5552         s-interr-vxworks.adb, s-interr.adb, s-osinte-lynxos.ads,
5553         s-rident.ads, s-taprop-solaris.adb, s-tassta.adb, s-win32.ads,
5554         sem_aggr.adb, sem_attr.ads, sem_ch10.adb, sem_ch13.ads,
5555         sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch8.adb, sem_ch9.adb,
5556         sem_prag.ads, sem_res.adb, sem_util.adb, sem_util.ads,
5557         sinfo.ads: Fix typos in comments.
5558
5559 2008-04-14  Robert Dewar  <dewar@adacore.com>
5560
5561         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Extend error
5562         to every non-object and change error message.
5563
5564 2008-04-14  Robert Dewar  <dewar@adacore.com>
5565
5566         * sem_util.ads, sem_util.adb (In_Subprogram): Remove.
5567         * sem_attr.adb (Anayze_Attribute): Check for Current_Subprogram
5568         directly.
5569
5570 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
5571
5572         PR ada/18680
5573         * sem_prag.adb (Analyze_Pragma, Linker_Section case): Refuse to
5574         apply pragma Linker_Section on type.
5575
5576 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
5577
5578         PR ada/16098
5579         * sem_prag.adb (Error_Pragma_Ref): New.
5580         (Process_Convention): Specialized message for non-local
5581         subprogram renaming. Detect the problem in homonyms as well.
5582
5583 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
5584
5585         PR ada/15915
5586         * sem_util.ads, sem_util.adb (Denotes_Variable): New function.
5587         * sem_ch12.adb (Instantiate_Object): Use it.
5588         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ensure that
5589         storage pool denotes a variable as per RM 13.11(15).
5590
5591 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
5592
5593         * sem_util.ads, sem_util.adb (In_Subprogram): New function.
5594         * sem_attr.adb (Analyze_Attribute, Attribute_Old case): Use it.
5595
5596 2008-04-14  Rolf Ebert  <rolf.ebert.gcc@gmx.de>
5597
5598         PR ada/20822
5599         * xgnatugn.adb (Put_Line): New procedure, ensuring Unix
5600         line endings even on non-Unix platforms.
5601
5602 2008-04-14  Samuel Tardieu  <sam@rfc1149.net>
5603
5604         PR ada/35050
5605         * xref_lib.adb (Parse_Identifier_Info): Correctly parse and ignore the
5606         renaming information.
5607
5608 2008-04-13  Samuel Tardieu  <sam@rfc1149.net>
5609
5610         PR ada/17985
5611         * sem_aggr.adb (Valid_Ancestor_Type): A type is not an ancestor of
5612         itself.
5613
5614 2008-04-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5615
5616         * sfn_scan.adb, sfn_scan.ads, sinfo.ads,
5617         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput.ads,
5618         snames.ads, sprint.adb, stand.ads, stringt.ads,
5619         styleg.adb, styleg.ads, stylesw.adb, stylesw.ads,
5620         switch.ads, sysdep.c, table.adb, table.ads,
5621         targparm.ads, tb-gcc.c, tbuild.ads, tracebak.c,
5622         trans.c, tree_io.adb, treepr.adb, types.adb, types.ads,
5623         uintp.adb, uintp.ads, utils.c, utils2.c, validsw.ads,
5624         vms_conv.adb, vms_conv.ads, vms_data.ads, widechar.adb,
5625         widechar.ads, xeinfo.adb, xgnatugn.adb, xr_tabls.adb,
5626         xr_tabls.ads, xref_lib.adb, xref_lib.ads, xsinfo.adb:
5627         Fix comment typos.
5628
5629         * sem_ch10.adb, sem_ch10.ads,
5630         sem_ch12.adb, sem_ch12.ads, sem_ch13.adb, sem_ch13.ads,
5631         sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
5632         sem_ch6.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
5633         sem_elab.adb, sem_elab.ads, sem_elim.ads, sem_eval.adb,
5634         sem_eval.ads, sem_intr.adb, sem_mech.adb, sem_mech.ads,
5635         sem_prag.adb, sem_prag.ads, sem_res.adb, sem_res.ads,
5636         sem_type.adb, sem_util.adb, sem_util.ads, sem_warn.adb,
5637         sem_warn.ads: Fix comment typos.
5638
5639         * s-secsta.adb, s-sequio.ads, s-shasto.ads,
5640         s-soflin.ads, s-stalib.ads, s-stausa.adb,
5641         s-stausa.ads, s-strxdr.adb, s-taenca.adb, s-taenca.ads,
5642         s-taprob.adb, s-taprop-hpux-dce.adb, s-taprop-irix.adb,
5643         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-posix.adb,
5644         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
5645         s-taprop-vxworks.adb, s-taprop.ads, s-tarest.adb,
5646         s-tarest.ads, s-tasini.adb, s-tasini.ads, s-taskin.ads,
5647         s-tasque.ads, s-tassta.adb, s-tassta.ads, s-tasuti.ads,
5648         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
5649         s-tpopsp-posix.adb, s-tpopsp-rtems.adb, s-tposen.adb,
5650         s-tposen.ads, s-traceb-hpux.adb, s-traces.ads,
5651         s-trafor-default.ads, s-unstyp.ads, s-utf_32.ads,
5652         s-vaflop.adb, s-vaflop.ads, s-valrea.adb, s-valuti.adb,
5653         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, scans.ads,
5654         scn.adb, scng.adb, seh_init.c, sem.ads, sem_aggr.adb,
5655         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
5656         sem_cat.adb, sem_cat.ads: Fix comment typos.
5657
5658 2008-04-12  Joel Sherrill  <joel@oarcorp.com>
5659
5660         PR ada/35825
5661         * g-soccon-rtems.ads: Add IP_PKTINFO as unsupported.
5662
5663 2008-04-12  Arnaud Charlet  <charlet@adacore.com>
5664
5665         * s-linux-hppa.ads: Fix syntax errors.
5666
5667 2008-04-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
5668
5669         * gnat_ugn.texi: Fix typos.
5670         * raise-gcc.c, repinfo.adb, repinfo.ads, restrict.adb,
5671         restrict.ads, rtsfind.adb, rtsfind.ads, s-arit64.ads,
5672         s-asthan-vms-alpha.adb, s-auxdec.ads, s-casuti.ads,
5673         s-fatflt.ads, s-fatgen.adb, s-fatlfl.ads,
5674         s-fatllf.ads, s-fatsfl.ads, s-filofl.ads,
5675         s-finimp.adb, s-finroo.ads, s-fishfl.ads,
5676         s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads,
5677         s-hibaen.ads, s-htable.ads, s-imgcha.adb,
5678         s-imgenu.ads, s-imgint.adb, s-imgrea.adb,
5679         s-inmaop-dummy.adb, s-inmaop.ads, s-interr-vms.adb,
5680         s-interr-vxworks.adb, s-interr.adb, s-interr.ads,
5681         s-intman-vxworks.ads, s-intman.ads, s-mastop-irix.adb,
5682         s-os_lib.adb, s-os_lib.ads, s-osinte-aix.ads,
5683         s-osinte-darwin.ads, s-osinte-freebsd.ads,
5684         s-osinte-hpux.ads, s-osinte-lynxos-3.adb,
5685         s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
5686         s-osinte-rtems.ads, s-osinte-solaris-posix.ads,
5687         s-osprim-mingw.adb, s-osprim-vms.adb, s-parame-ae653.ads,
5688         s-parame-hpux.ads, s-parame-vms-alpha.ads,
5689         s-parame-vms-ia64.ads, s-parame-vms-restrict.ads,
5690         s-parame-vxworks.ads, s-parame.ads, s-parint.adb,
5691         s-parint.ads, s-poosiz.adb, s-proinf-irix-athread.ads,
5692         s-proinf.ads, s-regexp.adb, s-regpat.adb, s-regpat.ads,
5693         s-rident.ads: Fix comment typos.
5694
5695 2008-04-09  Samuel Tardieu  <sam@rfc1149.net>
5696
5697         PR ada/28305
5698         * sem_ch6.adb (Build_Body_To_Inline): Do not save and restore
5699         environment if generic instance is a top-level one.
5700
5701 2008-04-09  Doug Rupp  <rupp@adacore.com>
5702
5703         * decl.c (validate_size): Set minimum size for fat pointers same as
5704         access types. Code clean ups.
5705
5706         * gmem.c (xstrdup32): New macro for 32bit dup on VMS, noop otherwise
5707         (__gnat_gmem_a2l_initialize): Dup exename into 32 bit memory on VMS
5708
5709         * s-auxdec-vms_64.ads, s-auxdec.ads (Short_Address_Size): New constant
5710
5711         * s-crtl.ads (malloc32) New function, alias for malloc
5712         (realloc32) New function, alias for realloc
5713
5714         * socket.c (__gnat_new_socket_set): Malloc fd_set in 32 bits on VMS
5715
5716         * utils2.c (build_call_alloc_dealloc): Return call to short malloc if
5717         allocator size is 32 and default pointer size is 64.
5718         (find_common_type): Document assumption on t1/t2 vs lhs/rhs. Force use of
5719         lhs type if smaller, whatever the modes.
5720
5721         * gigi.h (malloc32_decl): New macro definition
5722
5723         * utils.c (init_gigi_decls): New malloc32_decl
5724         Various code clean ups.
5725
5726         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5727         Task_Address vice System.Address.
5728
5729         * s-taspri-vms.ads: Import System.Aux_DEC
5730         (Task_Address): New subtype of System.Aux_DEC.Short_Address
5731         (Task_Address_Size): New constant size of System.Aux_DEC.Short_Address
5732
5733         * s-asthan-vms-alpha.adb (Process_AST.To_Address): Unchecked convert to
5734         Task_Address vice System.Address.
5735
5736         * s-inmaop-vms.adb: Import System.Task_Primitives
5737         (To_Address): Unchecked convert to Task_Address vice System.Address
5738
5739         * s-taprop-vms.adb (Timed_Delay): Always set the timer even if delay
5740         expires now.
5741         (To_Task_ID) Unchecked convert from Task_Adddress vice System.Address
5742         (To_Address) Unchecked convert to Task_Address vice System.Address
5743
5744         * s-tpopde-vms.adb: Remove unnecessary warning pragmas
5745
5746         * g-socthi-vms.ads: Add 32bit size clauses on socket access types.
5747
5748 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5749
5750         * gigi.h (standard_datatypes): Add ADT_fdesc_type and ADT_null_fdesc.
5751         (fdesc_type_node): Define.
5752         (null_fdesc_node): Likewise.
5753         * decl.c (gnat_to_gnu_entity) <E_Access_Subprogram_Type>: If the target
5754         uses descriptors for vtables and the type comes from a dispatch table,
5755         return the descriptor type.
5756         * trans.c (Attribute_to_gnu) <Attr_Unrestricted_Access>: If the target
5757         uses descriptors for vtables and the type comes from a dispatch table,
5758         build a descriptor in the static case and copy the existing one in the
5759         non-static case.
5760         (gnat_to_gnu) <N_Null>: If the target uses descriptors for vtables and
5761         the type is a pointer-to-subprogram coming from a dispatch table,
5762         return the null descriptor.
5763         <N_Unchecked_Type_Conversion>: If the target uses descriptors for
5764         vtables, the source type is the descriptor type and the target type
5765         is a pointer type, first build the pointer.
5766         * utils.c (init_gigi_decls): If the target uses descriptors for vtables
5767         build the descriptor type and the null descriptor.
5768
5769 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5770
5771         * decl.c (prepend_attributes): Fix typo.
5772         * trans.c (Pragma_to_gnu): Likewise.
5773         * utils.c (gnat_genericize): Likewise.
5774
5775 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5776             Richard Kenner  <kenner@adacore.com>
5777
5778         * ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Only set it when bit-packed.
5779         * decl.c (gnat_to_gnu_entity): Adjust for above change.
5780         <E_Record_Type>: Try to get a better form of the component for
5781         packing, even if it has an integral mode.
5782         <E_Record_Subtype>: Likewise.
5783         * trans.c (gnat_to_gnu): Do not require BLKmode for the special
5784         exception suppressing the final conversion between record types.
5785
5786 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5787
5788         * decl.c (gnat_to_gnu_entity) <object>: If -gnatd.a and not optimizing
5789         alignment for space, promote the alignment of non-scalar variables with
5790         no size and alignment.
5791         * gigi.h (gnat_types_compatible_p): Declare.
5792         * misc.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Set to above predicate.
5793         * trans.c (gnat_to_gnu): Revert revision 129339 change.  Minor cleanup.
5794         * utils.c (gnat_types_compatible_p) : New predicate.
5795         (convert): Use it throughout to test for cases where a mere view
5796         conversion is sufficient.
5797         * utils2.c (build_binary_op): Minor tweaks.
5798         (build_unary_op): Likewise.
5799
5800 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5801
5802         * decl.c (adjust_packed): Expand comment.
5803
5804 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5805
5806         * s-tasuti.ads: Use Task_Address instead of System.Address.
5807
5808         * makeutl.adb (Path_Or_File_Name): New function
5809
5810         * nlists.ads, itypes.ads: Update comments.
5811
5812         * s-crtl.ads (malloc32, realloc32): New functions.
5813
5814         * s-auxdec.ads (Short_Address_Size): New constant.
5815
5816         * a-taside.adb, s-tasdeb.adb: Use Task_Address.
5817
5818         * s-ststop.ads, s-ststop.adb: New file.
5819
5820         * exp_tss.ads, s-taprop-lynxos.adb: Update comments.
5821         Minor reformatting.
5822
5823 2008-04-08  Pascal Obry  <obry@adacore.com>
5824
5825         * g-sercom.ads, g-sercom.adb (Data_Rate): Add B115200.
5826         (Stop_Bits_Number): New type.
5827         (Parity_Check): Likewise.
5828         (Set): Add parameter to set the number of stop bits and
5829         the parity. Parameter timeout is now a duration instead
5830         of a plain integer.
5831
5832         * g-sercom-linux.adb:
5833         Implement the stop bits and parity support for GNU/Linux.
5834         Fix handling of timeout, it must be given in tenth of seconds.
5835
5836         * g-sercom-mingw.adb:
5837         Implement the stop bits and parity support for Windows.
5838         Use new s-win32.ads unit instead of declaring Win32 services
5839         directly into this body.
5840         Update handling of timeout as now a duration.
5841
5842         * s-win32.ads, s-winext.ads: New files.
5843
5844 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
5845             Arnaud Charlet  <charlet@adacore.com>
5846
5847         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads: Removed.
5848
5849         s-taspri-posix-noaltstack.ads, s-linux.ads, s-linux-alpha.ads,
5850         s-linux-hppa.ads: New files. Disable alternate stack on ia64-hpux.
5851
5852         * s-osinte-lynxos-3.ads,
5853         (Alternate_Stack): Remove when not needed. Simplify declaration
5854         otherwise.
5855         (Alternate_Stack_Size): New constant.
5856
5857         s-osinte-mingw.ads, s-taprop-mingw.adb: Code clean up: avoid use of
5858         'Unrestricted_Access.
5859
5860         * s-osinte-hpux.ads, s-osinte-solaris-posix.ads, s-osinte-aix.ads,
5861         s-osinte-lynxos.ads, s-osinte-freebsd.ads s-osinte-darwin.ads,
5862         s-osinte-tru64.ads, s-osinte-irix.ads, s-osinte-linux.ads,
5863         s-osinte-solaris.ads, s-osinte-vms.ads
5864         (SA_ONSTACK): New constant.
5865         (stack_t): New record type.
5866         (sigaltstack): New imported function.
5867         (Alternate_Stack): New imported variable.
5868         (Alternate_Stack_Size): New constant.
5869
5870         * system-linux-x86_64.ads: (Stack_Check_Probes): Set to True.
5871
5872         * s-taspri-lynxos.ads, s-taspri-solaris.ads, s-taspri-tru64.ads,
5873         s-taspri-hpux-dce.ads, s-taspri-dummy.ads, s-taspri-posix.ads,
5874         s-taspri-vms.ads (Task_Address): New subtype of System.Address
5875         (Task_Address_Size): New constant size of System.Address
5876         (Alternate_Stack_Size): New constant.
5877
5878         * s-taprop-posix.adb, s-taprop-linux.adb (Get_Stack_Attributes): Delete.
5879         (Enter_Task): Do not notify stack to System.Stack_Checking.Operations.
5880         Establish the alternate stack if the platform makes use of n alternate
5881         signal stack for stack overflows.
5882         (Create_Task): Take into account the alternate stack in the stack size.
5883         (Initialize): Save the address of the alternate stack into the ATCB for
5884         the environment task.
5885         (Create_Task): Fix assertions for NPTL library (vs old LinuxThreads).
5886
5887         * s-parame.adb (Minimum_Stack_Size): Increase value to 16K
5888
5889         * system-linux-x86.ads: (Stack_Check_Probes): Set to True.
5890
5891         * s-intman-posix.adb:
5892         (Initialize): Set SA_ONSTACK for SIGSEGV if the platform makes use of an
5893         alternate signal stack for stack overflows.
5894
5895         * init.c (__gnat_adjust_context_for_raise, Linux version): On i386 and
5896         x86-64, adjust the saved value of the stack pointer if the signal was
5897         raised by a stack checking probe.
5898         (HP-UX section): Use global __gnat_alternate_stack as signal handler
5899         stack and only for SIGSEGV.
5900         (Linux section): Likewise on x86 and x86-64.
5901         [VxWorks section]
5902         (__gnat_map_signal): Now static.
5903         (__gnat_error_handler): Not static any more.
5904         (__gnat_adjust_context_for_raise): New function. Signal context
5905         adjustment for PPC && !VTHREADS && !RTP, as required by the zcx
5906         propagation circuitry.
5907         (__gnat_error_handler): Second argument of a sigaction handler is a
5908         pointer, not an int, and is unused.
5909         Adjust signal context before mapping to exception.
5910         Install signal handlers for LynxOS case.
5911
5912         * s-taskin.ads (Common_ATCB): New field Task_Alternate_Stack.
5913         (Task_Id): Set size to Task_Address_Size
5914         (To_Task_id): Unchecked convert from Task_Address vice System.Address
5915         (To_Address): Unchecked convert to Task_Address vice System.Address
5916
5917         * s-tassta.adb (Task_Wrapper): Define the alternate stack and save its
5918         address into the ATCB if the platform makes use of an alternate signal
5919         stack for stack overflows.
5920         (Free_Task): Add call to Finalize_Attributes_Link.
5921         Add argument Relative_Deadline to pass the value specified for
5922         the task. This is not yet used for any target.
5923
5924         * s-tassta.ads (Create_Task): Add argument Relative_Deadline to pass
5925         the value specified for the task.
5926
5927 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5928
5929         (s-osinte-vxworks6.ads): Removed, merged with s-osinte-vxworks.ads/.adb
5930         (s-vxwext.ads, s-vxwext-kernel.ads, s-vxwext-rtp.ads,
5931         s-vxwext-rtp.adb): New files.
5932
5933         * s-taprop-vxworks.adb, s-osinte-vxworks.ads, s-osinte-vxworks.adb:
5934         Minor updates to accomodate changes above.
5935
5936 2008-04-08  Pascal Obry  <obry@adacore.com>
5937
5938         * a-exetim-mingw.adb, s-gloloc-mingw.adb, s-taprop-mingw.adb,
5939         s-tasinf-mingw.ad{s,b}, s-taspri-mingw.ads:
5940         Use new s-win32.ads unit instead of declaration
5941         from s-osinte-mingw.ads.
5942
5943         * s-osinte-mingw.ads:
5944         Move all non tasking based interface to s-win32.ads.
5945
5946         * s-osprim-mingw.adb:
5947         Remove duplicated declarations and use s-win32.ads
5948         unit instead.
5949
5950 2008-04-08  Vincent Celier  <celier@adacore.com>
5951             Arnaud Charlet  <charlet@adacore.com>
5952
5953         * mlib-tgt-aix.adb, mlib-tgt-darwin.adb, mlib-tgt-hpux.adb,
5954         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-lynxos.adb,
5955         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
5956         mlib-tgt-vms.ads, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
5957         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb: Renamed into...
5958
5959         * mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb,
5960         mlib-tgt-specific-hpux.adb, mlib-tgt-specific-irix.adb,
5961         mlib-tgt-specific-linux.adb, mlib-tgt-specific-lynxos.adb,
5962         mlib-tgt-specific-solaris.adb, mlib-tgt-specific-tru64.adb,
5963         mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads,
5964         mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb,
5965         mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb,
5966         mlib-tgt-specific-mingw.adb: New names.
5967
5968         * Makefile.in:
5969         On VxWorks platforms use s-stchop-limit.ads for s-stchop.ads
5970         Get rid of gnatbl.
5971         (EXTRA_GNATRTL_NONTASKING_OBJS): Add s-win32.o
5972         Files mlib-tgt-*.adb have been renamed mlib-tgt-specific-*.adb
5973         Minor updates for VMS
5974
5975         * gnatbl.c: Removed.
5976
5977 2008-04-08  Thomas Quinot  <quinot@adacore.com>
5978
5979         * g-expect-vms.adb, a-textio.adb, a-witeio.adb, exp_dbug.adb,
5980         g-expect.adb, g-locfil.adb, gnatchop.adb, gnatdll.adb, gnatlbr.adb,
5981         gnatmem.adb, g-regist.adb, i-vxwork.ads, mlib-utl.adb, i-vxwork-x86.ads,
5982         a-ztexio.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-ia64.adb,
5983         s-os_lib.adb, s-regpat.adb, s-regpat.ads: Fix incorrect casing of
5984         ASCII.NUL throughout.
5985
5986 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
5987             Matthew Heaney  <heaney@adacore.com>
5988
5989         * a-cgcaso.adb, a-convec.adb: (Swap, Sift): Avoid use of complex
5990         renaming.
5991
5992         * a-cgaaso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads,
5993         a-crdlli.ads, a-coormu.ads, a-ciormu.ads: modified header to conform
5994         to convention for non-RM specs.
5995         Add descriptive header, and documented each operation
5996         document each operation
5997
5998 2008-04-08  Robert Dewar  <dewar@adacore.com>
5999             Bob Duff  <duff@adacore.com>
6000             Gary Dismukes  <dismukes@adacore.com>
6001             Ed Schonberg  <schonberg@adacore.com>
6002
6003         * alloc.ads: Add entries for Obsolescent_Warnings table
6004
6005         * einfo.ads, einfo.adb: Minor reformatting.
6006         (Is_Discriminal): New subprogram.
6007         (Is_Prival): New subprogram.
6008         (Is_Protected_Component): New subprogram.
6009         (Is_Protected_Private): Removed.
6010         (Object_Ref, Set_Object_Ref): Removed.
6011         (Prival, Set_Prival): Change assertion.
6012         (Privals_Chain, Set_Privals_Chain): Removed.
6013         (Prival_Link, Set_Prival_Link): New subprogram.
6014         (Protected_Operation, Set_Protected_Operation): Removed.
6015         (Protection_Object, Set_Protection_Object): New subprogram.
6016         (Write_Field17_Name): Remove case for Object_Ref.
6017         (Write_Field20_Name): Add case for Prival_Link.
6018         (Write_Field22_Name): Remove case for Protected_Operation,
6019         Privals_Chain.
6020         Add case for Protection_Object.
6021         (Can_Use_Internal_Rep): Make this into a [base type only] attribute,
6022         so clients
6023         (Overlays_Constant): New flag
6024         (Is_Constant_Object): New predicate
6025         (Is_Standard_Character_Type): New predicate
6026         (Optimize_Alignment_Space): New flag
6027         (Optimize_Alignment_Time): New flag
6028         (Has_Postconditions): New flag
6029         (Obsolescent_Warrning): Field removed
6030         (Spec_PPC_List): New field
6031         (Relative_Deadline_Variable, Set_Relative_Deadline_Variable): Add
6032         subprograms to get and set the relative deadline associated to a task.
6033
6034         * exp_attr.adb (May_Be_External_Call): Account for the case where the
6035         Access attribute is part of a named parameter association.
6036         (Expand_Access_To_Protected_Op): Test for the attribute occurring
6037         within an init proc and use that directly as the scope rather than
6038         traversing up to the protected operation's enclosing scope. Only apply
6039         assertion on Is_Open_Scopes in the case the scope traversal is done.
6040         For the init proc case use the address of the first formal (_init) as
6041         the protected object reference.
6042         Implement Invalid_Value attribute
6043         (Expand_N_Attribute_Reference): Case Attribute_Unrestricted_Access.
6044         contents of the dispatch table there is no need to duplicate the
6045         itypes associated with record types (i.e. the implicit full view
6046         of private types).
6047         Implement Enum_Val attribute
6048         (Expand_N_Attribute_Reference, case Old): Properly handle appearence
6049         within _Postconditions procedure
6050         (Expand_N_Attribute_Reference, case Result): Implement new attribute
6051
6052         * exp_ch5.adb (Expand_N_Simple_Return_Statement): Handle case in which
6053         a return statement calls a function that is not available in
6054         configurable runtime.
6055         (Analyze_If_Statement): don't optimize simple True/False cases in -O0
6056         (Expand_Non_Function_Return): Generate call to _Postconditions proc
6057         (Expand_Simple_Function_Return): Ditto
6058
6059         * frontend.adb: Add call to Sem_Aux.Initialize
6060
6061         * sem_aux.ads, sem_aux.adb: New file.
6062
6063         * par-prag.adb: Add entries for pragmas Precondition/Postcondition
6064         Add new Pragma_Relative_Deadline.
6065         Add support for pragmas Check and Check_Policy
6066
6067         * sem_attr.ads, sem_attr.adb (Check_Not_CPP_Type): New subprogram.
6068         (Check_Stream_Attribute): Add missing check (not allowed in CPP types)
6069         (Analyze_Attribute): In case of attributes 'Alignment and 'size add
6070         missing check because they are not allowed in CPP tagged types.
6071         Add Sure parameter to Note_Possible_Modification calls
6072         Add implementation of Invalid_Value attribute
6073         Implement new attribute Has_Tagged_Values
6074         Implement Enum_Val attribute
6075         (Analyze_Attribute, case Range): Set Name_Req True for prefix of
6076         generated attributes.
6077         (Analyze_Attribute, case Result): If prefix of the attribute is
6078         overloaded, it always resolves to the enclosing function.
6079         (Analyze_Attribute, case Result): Properly deal with analysis when
6080         Postconditions are not active.
6081         (Resolve_Attribute, case Result): Properly deal with appearence during
6082         preanalysis in spec.
6083         Add processing for attribute Result
6084
6085         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Code cleanup
6086         for operators.
6087         (Analyze_Subprogram_Body): Install private_with_clauses when the body
6088         acts as a spec.
6089         (Check_Inline_Pragma): recognize an inline pragma that appears within
6090         the subprogram body to which it applies.
6091         (Analyze_Function_Return): Check that type of the expression of a return
6092         statement in a function with a class-wide result is not declared at a
6093         deeper level than the function.
6094         (Process_PPCs): Deal with enabling/disabling, using PPC_Enabled flag
6095         (Verify_Overriding_Indicator): Handle properly subprogram bodies for
6096         user- defined operators.
6097         (Install_Formals): Moved to spec to allow use from Sem_Prag for
6098         analysis of precondition/postcondition pragmas.
6099         (Analyze_Subprogram_Body.Last_Real_Spec_Entity): New name for
6100         Last_Formal, along with lots of comments on what this is about
6101         (Analyze_Subprogram_Body): Fix case where we move entities from the
6102         spec to the body when there are no body entities (now possible with
6103         precondition and postcondition pragmas).
6104         (Process_PPCs): New procedure
6105         (Analyze_Subprogram_Body): Add call to Process_PPCs
6106
6107         * sem_ch8.adb (Use_One_Type): refine warning on a redundant use_type
6108         clause.
6109         (Pop_Scope): Restore Check_Policy_List on scope exit
6110         (Push_Scope): Save Check_Policy_List on scope entry
6111         Change name In_Default_Expression      => In_Spec_Expression
6112         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
6113         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
6114         (Analyze_Object_Renaming): Allow 'Reference as object
6115         (Analyze_Pragma, case Restriction_Warnings): Call GNAT_Pragma
6116         (Process_Restrictions_Or_Restriction_Warnings): Check for bad spelling
6117         of restriction identifier.
6118         Add Sure parameter to Note_Possible_Modication calls
6119
6120         * sem_prag.ads, sem_prag.adb (Analyze_Pragma, case Stream_Convert):
6121         Don't check for primitive operations when calling Rep_Item_Too_Late.
6122         (Process_Import_Or_Interface): Do not place flag on formal
6123         subprograms.
6124         (Analyze_Pragma, case Export): If the entity is a deferred constant,
6125         propagate information to full view, which is the one elaborated by the
6126         back-end.
6127         (Make_Inline): the pragma is effective if it applies to an internally
6128         generated subprogram declaration for a body that carries the pragma.
6129         (Analyze_Pragma, case Optimize_Alignment): Set new flag
6130         Optimize_Alignment_Local.
6131         (Analyze_PPC_In_Decl_Part): New procedure
6132         (Get_Pragma_Arg): Moved to outer level
6133         (Check_Precondition_Postcondition): Change to allow new visibility
6134         rules for package spec
6135         (Analyze_Pragma, case Check_Policy): Change placement rules to be
6136         same as pragma Suppress/Unsuppress.
6137         Change name In_Default_Expression      => In_Spec_Expression
6138         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
6139         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
6140         (Check_Precondition_Postcondition): Do proper visibility preanalysis
6141         for the case of these pragmas appearing in the spec.
6142         (Check_Enabled): New function
6143         (Initialize): New procedure
6144         (Tree_Read): New procedure
6145         (Tree_Write): New procedure
6146         (Check_Precondition_Postcondition): New procedure
6147         Implement pragmas Check and Check_Policy
6148         Merge Assert processing with Check
6149
6150         * sem_warn.adb (Warn_On_Known_Condition): Handle pragma Check
6151         New warning flag -gnatw.e
6152
6153         * sinfo.ads, sinfo.adb (Has_Relative_Deadline_Pragma): New function
6154         returning whether a task (or main procedure) has a pragma
6155         Relative_Deadline.
6156         (Set_Has_Relative_Deadline_Pragma): Procedure to indicate that a task
6157         (or main procedure) has a pragma Relative_Deadline.
6158         Add Next_Pragma field to N_Pragma node
6159         (PPC_Enabled): New flag
6160         (Next_Pragma): Now used for Pre/Postcondition processing
6161
6162         * snames.h, snames.ads, snames.adb: New standard name
6163         Inherit_Source_Path
6164         Add entry for 'Invalid_Value attribute
6165         Add entry for new attribute Has_Tagged_Values
6166         Add entry for Enum_Val attribute
6167         Add new standard names Aggregate, Configuration and Library.
6168         Add _Postconditions
6169         Add _Result
6170         Add Pragma_Precondition
6171         Add Pragma_Postcondition
6172         Add Attribute_Result
6173         New standard name Archive_Builder_Append_Option
6174         (Preset_Names): Add _relative_deadline and relative_deadline definitions
6175         There was also a missing non_preemptive_within_priorities.
6176         (Get_Pragma_Id, Is_Pragma_Name): Add support for pragma
6177         Relative_Deadline.
6178         Add support for pragmas Check and Check_Policy
6179
6180         * tree_gen.adb: Call Sem_Aux.Tree_Write
6181
6182         * tree_in.adb: Call Sem_Aux.Tree_Read
6183
6184         * exp_ch11.adb (Expand_N_Raise_Statement): New Build_Location calling
6185         sequence
6186
6187         * exp_intr.adb (Expand_Source_Info): New Build_Location calling
6188         sequence
6189
6190         * exp_prag.adb (Expand_Pragma_Relative_Deadline): New procedure.
6191         (Expand_N_Pragma): Call the appropriate procedure for expanding pragma
6192         Relative_Deadline.
6193         (Expand_Pragma_Check): New procedure
6194
6195         * sinput.ads, sinput.adb (Build_Location_String): Now appends to name
6196         buffer.
6197
6198         * sinfo.adb (PPC_Enabled): New flag
6199
6200 2008-04-08  Robert Dewar  <dewar@adacore.com>
6201             Gary Dismukes  <dismukes@adacore.com>
6202             Javier Miranda  <miranda@adacore.com>
6203             Ed Schonberg  <schonberg@adacore.com>
6204
6205         * fe.h: Remove global Optimize_Alignment flag, no longer used
6206
6207         * layout.adb: Test Optimize_Alignment flags rather than global switch
6208
6209         * lib.ads, lib.adb: New OA_Setting field in library record
6210
6211         * lib-load.adb: New OA_Setting field in library record
6212
6213         * lib-writ.ads, lib-writ.adb (Collect_Withs, Write_With_Lines): Place
6214         units mentioned in limited_with_ clauses in the ali file, with an
6215         'Y' marker.
6216         New Ox fields in U line
6217
6218         * opt.adb: New flag Optimize_Alignment_Local
6219         (Check_Policy_List[_Config]): New flags
6220
6221         * opt.ads (Invalid_Value_Used): New flag
6222         New switch Optimize_Alignment_Local
6223         (Warn_On_Parameter_Order): New flag
6224         (Check_Policy_List[_Config]): New flags
6225
6226         * ali.ads, ali.adb: Add indicator 'Y' to mark mark the presence of
6227         limited_with clauses.
6228         New data structures for Optimize_Alignment
6229
6230         * bcheck.adb (Check_Consistent_Restriction_No_Default_Initialization):
6231         New procedure
6232         (Check_Consistent_Optimize_Alignment): Rework for new structure
6233         (Check_Consistent_Restrictions): Fix incorrect error message
6234
6235         sem_ch10.adb (Decorate_Tagged_Type): Set the Parent field of a newly
6236         created class-wide type (to the Parent field of the specific type).
6237         (Install_Siblings): Handle properly private_with_clauses on subprogram
6238         bodies and on generic units.
6239         (Analyze_With_Clause, Install_Limited_Withed_Unit): Guard against an
6240         illegal limited_with_clause that names a non-existent package.
6241         (Check_Body_Required): Determine whether a unit named a limited_with
6242         clause needs a body.
6243         (Analyze_Context): A limited_with_clause is illegal on a unit_renaming.
6244         Capture Optimize_Alignment settings to set new OA_Setting field in
6245         library record.
6246         (Build_Limited_Views): Include task and protected type declarations.
6247
6248         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Handle the
6249         case of a possible constant redeclaration where the current object is
6250         an entry index constant.
6251         (Analyze_Object_Declaration): Generate an error in case of CPP
6252         class-wide object initialization.
6253         (Analyze_Object_Declaration): Add extra information on warnings for
6254         declaration of unconstrained objects.
6255         (Access_Type_Declaration): Set Associated_Final_Chain to Empty, to avoid
6256         conflicts with the setting of Stored_Constraint in the case where the
6257         access type entity has already been created as an E_Incomplete_Type due
6258         to a limited with clause.
6259         Use new Is_Standard_Character_Type predicate
6260         (Analyze_Object_Declaration): Apply access_constant check only after
6261         expression has been resolved, given that it may be overloaded with
6262         several access types.
6263         (Constant_Redeclaration): Additional legality checks for deferred
6264         constant declarations tha involve anonymous access types and/or null
6265         exclusion indicators.
6266         (Analyze_Type_Declaration): Set Optimize_Alignment flags
6267         (Analyze_Subtype_Declaration): Ditto
6268         (Analyze_Object_Declaration): Ditto
6269         (Analyze_Object_Declaration): Don't count tasks in generics
6270         Change name In_Default_Expression      => In_Spec_Expression
6271         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
6272         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
6273         (Process_Discriminants): Additional check for illegal use of default
6274         expressions in access discriminant specifications in a type that is not
6275         explicitly limited.
6276         (Check_Abstract_Overriding): If an inherited function dispaches on an
6277         access result, it must be overridden, even if the type is a null
6278         extension.
6279         (Derive_Subprogram): The formals of the derived subprogram have the
6280         names and defaults of the parent subprogram, even if the type is
6281         obtained from the actual subprogram.
6282         (Derive_Subprogram): In the presence of interfaces, a formal of an
6283         inherited operation has the derived type not only if it descends from
6284         the type of the formal of the parent operation, but also if it
6285         implements it. This is relevant for the renamings created for the
6286         primitive operations of the actual for a formal derived type.
6287         (Is_Progenitor): New predicate, to determine whether the type of a
6288         formal in the parent operation must be replaced by the derived type.
6289
6290         * sem_util.ads, sem_util.adb (Has_Overriding_Initialize): Make
6291         predicate recursive to handle components that have a user-defined
6292         Initialize procedure. Handle controlled derived types whose ancestor
6293         has a user-defined Initialize procedured.
6294         (Note_Possible_Modification): Add Sure parameter, generate warning if
6295         sure modification of constant
6296         Use new Is_Standard_Character_Type predicate
6297         (Find_Parameter_Type): when determining whether a protected operation
6298         implements an interface operation, retrieve the type of the formal from
6299         the entity when the formal is an access parameter or an
6300         anonymous-access-to-subprogram.
6301         Move Copy_Parameter_List to sem_util, for use when building stubbed
6302         subprogram bodies.
6303         (Has_Access_Values): Tagged types now return False
6304         (Within_HSS_Or_If): New procedure
6305         (Set_Optimize_Alignment_Flags): New procedure
6306         Change name In_Default_Expression      => In_Spec_Expression
6307         Change name Analyze_Per_Use_Expression => Preanalyze_Spec_Expression
6308         Change name Pre_Analyze_And_Resolve    => Preanalyze_And_Resolve
6309
6310 2008-04-08  Tristan Gingold  <gingold@adacore.com>
6311
6312         * s-fileio.adb: Name_Error shouldn't be raised for a tempory file.
6313
6314 2008-04-08  Tristan Gingold  <gingold@adacore.com>
6315
6316 PR ada/10768
6317
6318         * cuintp.c: Fix 16 bits issue for AVR.
6319         On AVR, integer is 16 bits, so it can't be used to do math with
6320         Base (=32768).
6321         So use long_integer instead.
6322
6323 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6324
6325         * a-calend-vms.ads, a-calend-vms.adb: Add with and use clause for
6326         System.OS_Primitives.
6327         Change type of various constants, parameters and local variables from
6328         Time to representation type OS_Time.
6329         (To_Ada_Time, To_Unix_Time): Correct sign of origin shift.
6330         Remove the declaration of constant Mili_F from several routines. New
6331         body for internal package Conversions_Operations.
6332         (Time_Of): Add default parameters for several formals.
6333
6334         * a-caldel.adb: Minor reformatting
6335
6336         * a-calend.ads, a-calend.adb: New body for internal package
6337         Conversions_Operations.
6338         (Time_Of): Add default parameters for several formals.
6339
6340         * Makefile.rtl: Add a-ststop
6341         Add Ada.Calendar.Conversions to the list of runtime files.
6342         Add g-timsta
6343
6344         * a-calcon.adb, a-calcon.ads: New files.
6345
6346 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
6347             Tristan Gingold  <gingold@adacore.com>
6348
6349         * s-interr-dummy.adb, s-interr-vms.adb, s-interr-sigaction.adb
6350         (Install_Restricted_Handlers): New procedure
6351         which is a simplified version of Install_Handlers that does not store
6352         previously installed.
6353
6354         * s-interr-vxworks.adb: Fix ACATS cxc3001
6355         On VxWorks interrupts can't be detached.
6356         (Install_Restricted_Handlers): New procedure.
6357
6358         * s-interr.ads, s-interr.adb (Install_Restricted_Handlers): New
6359         procedure.
6360
6361 2008-04-08  Olivier Hainque  <hainque@adacore.com>
6362
6363         * s-intman-vxworks.ads, s-intman-vxworks.adb
6364         (Map_And_Raise_Exception): Remove. Was an import of only part of the
6365         required services already implemented elsewhere.
6366         (Notify_Exception): Delete body, import __gnat_error_handler instead.
6367         (Initialize): Add SA_SIGINFO to the sa_flags, to get the sigcontext
6368         argument passed to the handler, which we need for ZCX propagation
6369         purposes.
6370
6371 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6372
6373         * adaint.h, adaint.c (__gnat_current_time_string): New routine.
6374
6375         * g-timsta.adb, g-timsta.ads: New files.
6376
6377 2008-04-08  Robert Dewar  <dewar@adacore.com>
6378
6379         * a-except-2005.ads, a-except-2005.adb, a-except.ads, a-except.adb
6380         (Raise_Exception): In accordance with AI-446, raise CE for Null_Id
6381         (Raise_Exception_Always): Fix documentation accordingly
6382
6383 2008-04-08  Robert Dewar  <dewar@adacore.com>
6384
6385         * a-strbou.ads, a-strbou.adb (From_String): New procedure (for use by
6386         Stream_Convert)
6387
6388         * sem_ch13.ads (Rep_Item_Too_Late): Document that Stream_Convert sets
6389         FOnly
6390
6391 2008-04-08  Javier Miranda  <miranda@adacore.com>
6392             Robert Dewar  <dewar@adacore.com>
6393             Ed Schonberg  <schonberg@adacore.com>
6394
6395         * a-tags.adb (Register_Interface_Offset): New subprogram.
6396         (Set_Dynamic_Offset_To_Top): New subprogram (see previous comment).
6397         (To_Predef_Prims_Table_Ptr): Removed.
6398         (Acc_Size): Removed.
6399         (To_Acc_Size): Removed.
6400         (Parent_Size): Modified to the call the subprogram returning the size of
6401         the parent by means of the new TSD component Size_Func.
6402
6403         * a-tags.ads (Offset_To_Top_Ptr): New access type declaration.
6404         (DT_Offset_To_Top_Offset): New constant value that is used to generate
6405         code referencing the Offset_To_Top component of the dispatch table's
6406         prologue.
6407         (Prim_Ptr): New declaration of access to procedure. Used to avoid the
6408         use of 'address to initialize dispatch table slots.
6409         (Size_Func): New component of the TSD. Used by the run-time to call the
6410         size primitive of the tagged type.
6411
6412         * checks.adb (Apply_Access_Check): Avoid check when accessing the
6413         Offset_To_Top component of a dispatch table.
6414         (Null_Exclusion_Static_Checks): If the non-null access type appears in a
6415         deferred constant declaration. do not add a null expression, to prevent
6416         spurious errors when full declaration is analyzed.
6417         (Apply_Discriminant_Check): If both discriminant constraints share a
6418         node which is not static but has no side effects, do not generate a
6419         check for that discriminant.
6420         (Generate_Index_Checks): Set Name_Req to true in call to duplicate
6421         subexpr, since the prefix of an attribute is a name.
6422
6423         * checks.ads: Fix nit in comment.
6424
6425         * exp_ch3.ads, exp_ch3.adb (Freeze_Record_Type): Do not add the spec
6426         and body of predefined primitives in case of CPP tagged type
6427         derivations.
6428         (Freeze_Type): Deal properly with no storage pool case
6429         (Make_Predefined_Primitive_Specs): Generate specification of abstract
6430         primitive Deep_Adjust if a nonlimited interface is derived from a
6431         limited interface.
6432         (Build_Dcheck_Functions): Create discriminant-checking functions only
6433         for variants that have some component(s).
6434         (Build_Slice_Assignment): In expanded code for slice assignment, handle
6435         properly the case where the slice bounds extend to the last value of the
6436         underlying representation.
6437         (Get_Simple_Init_Val): New calling sequence, accomodate Invalid_Value
6438         (Is_Variable_Size_Record): An array component has a static size if
6439         index bounds are enumeration literals.
6440
6441         * exp_disp.adb (Make_DT): Use the first subtype to determine whether
6442         an external tag has been specified for the type.
6443         (Building_Static_DT): Add missing support for private types.
6444         (Make_DT): Add declaration of Parent_Typ to ensure consistent access
6445         to the entity associated with the parent of Typ. This is done to
6446         avoid wrong access when the parent is a private type.
6447         (Expand_Interface_Conversion): Improve error message when the
6448         configurable runtime has no support for dynamic interface conversion.
6449         (Expand_Interface_Thunk): Add missing support to interface types in
6450         configurable runtime.
6451         (Expand_Dispatching_Call): remove obsolete code.
6452         (Make_DT): Replace occurrences of RE_Address by RE_Prim_Ptr, and
6453         ensure that all subtypes and aggregates associated with dispatch
6454         tables have the attribute Is_Dispatch_Table_Entity set to true.
6455         (Register_Primitive): Rename one variable to improve code reading.
6456         Replace occurrences of RE_Addres by RE_Prim_Ptr. Register copy o
6457         of the pointer to the 'size primitive in the TSD.
6458
6459         * rtsfind.ads (RE_DT_Offset_To_Top_Offset): New entity.
6460         (RE_Offset_To_Top_Ptr): New entity.
6461         (RE_Register_Interface_Offset): New entity.
6462         (RE_Set_Dynamic_Offset_To_Top): New entity.
6463         (RE_Set_Offset_To_Top): Removed entity.
6464         (RE_Prim_Ptr): New entity
6465         (RE_Size_Func): New entity
6466         (RE_Size_Ptr): New entity
6467         (RTU_Id): Add Ada_Dispatching and Ada_Dispatching_EDF.
6468         (Ada_Dispatching_Child): Define this new subrange.
6469         (RE_Id): Add new required run-time calls (RE_Set_Deadline, RE_Clock,
6470          RE_Time_Span, and RE_Time_Span_Zero).
6471         (RE_Unit_Table): Add new required run-time calls
6472
6473         * rtsfind.adb (Get_Unit_Name): Add processing for Ada.Dispatching
6474         children.
6475
6476         * exp_atag.ads, exp_atag.adb (Build_Offset_To_Top): New subprogram.
6477         (Build_Set_Static_Offset_To_Top): New subprogram. Generates code that
6478          initializes the Offset_To_Top component of a dispatch table.
6479         (Build_Predef_Prims): Removed.
6480         (Build_Get_Predefined_Prim_Op_Address): Replace call to Predef_Prims by
6481          its actual code.
6482         (Build_Set_Size_Function): New subprogram.
6483
6484         * exp_ch13.adb: Do not generate storage variable for storage_size zero
6485         (Expand): Handle setting/restoring flag Inside_Freezing_Actions
6486
6487 2008-04-08  Robert Dewar  <dewar@adacore.com>
6488
6489         * a-ztdeau.adb, a-tideau.adb, a-wtdeau.adb (Puts_Dec): Fix error in
6490         computing Fore when Exp > 0
6491
6492 2008-04-08  Robert Dewar  <dewar@adacore.com>
6493
6494         * back_end.adb: Remove Big_String_Ptr declarations (now in Types)
6495
6496         * errout.adb: Remove Big_String_Ptr declarations (now in Types)
6497         Change name Is_Style_Msg to Is_Style_Or_Info_Msg
6498
6499         * fmap.adb: Remove Big_String declarations (now in Types)
6500         (No_Mapping_File): New Boolean global variable
6501         (Initialize): When mapping file cannot be read, set No_Mapping_File to
6502         False.
6503         (Update_Mapping_File): Do nothing if No_Mapping_File is True. If the
6504         tables were empty before adding entries, open the mapping file
6505         with Truncate = True, instead of delete/re-create.
6506
6507         * fname-sf.adb: Remove Big_String declarations (now in Types)
6508
6509         * s-strcom.adb, g-dyntab.ads, g-table.ads, s-carsi8.adb,
6510         s-stalib.ads, s-carun8.adb: Add zero size Storage_Size clauses for
6511         big pointer types
6512
6513         * table.ads: Add for Table_Ptr'Storage_Size use 0
6514
6515         * types.ads: Add Big_String declarations
6516         Add Size_Clause of zero for big pointer types
6517
6518 2008-04-08  Vincent Celier  <celier@adacore.com>
6519
6520         * clean.adb (Parse_Cmd_Line): Recognize switch --subdirs=
6521         (Usage): Add line for switch --subdirs=
6522         Add new switch -eL, to follow symbolic links when processing project
6523         files.
6524
6525         * gnatcmd.adb: Process switches -eL and --subdirs=
6526         (Non_VMS_Usage): Output "gnaampcmd" instead of "gnat", and call
6527         Program_Name to get proper tool names when AAMP_On_Target is set.
6528         (Gnatcmd): Call Add_Default_Search_Dirs and Get_Target_Parameters to get
6529         AAMP_On_Target set properly for use of GNAAMP tools (this is needed by
6530         Osint.Program_Name).
6531
6532         * gnatname.adb: (Scan_Args): Recognize switches -eL and --subdirs=
6533         (Usage): Add lines for switches -eL and --subdirs=
6534
6535         * makeusg.adb: Add line for switch --subdirs=
6536
6537         * prj.ads:
6538         (Source_Data): New Boolean component Compiled, defaulted to True
6539         (Empty_File_Name: New global variable in private part, initialized in
6540         procedure Initialize.
6541         (Subdirs_Option): New constant string
6542         (Subdirs): New String_Ptr global variable
6543         (Language_Config): New component Include_Compatible_Languages
6544         (Project_Qualifier): New type for project qualifiers
6545         (Project_Data): New component Qualifier
6546         (Project_Configuration): New component Archive_Builder_Append_Option
6547
6548         * prj-nmsc.adb (Get_Unit_Exceptions): When a unit is already in
6549         another imported project indicate the name of this imported project.
6550         (Check_File): When a unit is in two project files, indicate the project
6551         names and the paths of the source files for each project.
6552         (Add_Source): Set Compiled to False if compiler driver is empty. Only
6553         set object, dependency and switches file names if Compiled is True.
6554         (Process_Compiler): Allow the empty string for value of attribute Driver
6555         (Get_Directories): When Subdirs is not null and Object_Dir is not
6556          specified, locate and create if necessary the actual object dir.
6557         (Locate_Directory): When Subdirs is not empty and Create is not the
6558         empty string, locate and create if necessary the actual directory
6559         as a subdirectory of directory Name.
6560         (Check_Library_Attributes.Check_Library): Allow a project where the only
6561         "sources" are header files of file based languages to be imported by
6562         library projects, in multi-language mode (gprbuild).
6563         (Check_Library_Attributes.Check_Library): In multi-language mode
6564         (gprbuild), allow a library project to import a project with no
6565         sources, even when this is not declared explicitly.
6566         (Check_If_Externally_Built): A virtual project extending an externally
6567         built project is also externally built.
6568         (Check_Library_Attributes): For a virtual project extending a library
6569         project, inherit the library directory.
6570         (Process_Project_Level_Array_Attributes): Process new attribute
6571         Inherit_Source_Path.
6572         For projects with specified qualifiers "standard", "library" or
6573         "abstract", check that the project conforms to the qualifier.
6574         (Process_Project_Level_Simple_Attributes): Process new attribute
6575          Archive_Builder_Append_Option.
6576
6577         * switch-m.adb: (Scan_Make_Switches): Process switch --subdirs=
6578         (Normalize_Compiler_Switches): Only keep compiler switches that are
6579         passed to gnat1 by the gcc driver and that are stored in the ALI file
6580         by gnat1.
6581         Do not take into account switc -save-temps
6582
6583         * makegpr.adb (Compile_Link_With_Gnatmake): Transmit switch -eL if
6584         gprmake is called with -eL.
6585         (Scan_Arg): Recognize switch -eL
6586         (Usage): Add line for switch -eL
6587
6588         * prj.adb (Initialize): Initialize Empty_File_Name
6589         (Project_Empty): New component Qualifier
6590
6591         * prj-attr.ads, prj-attr.adb: New project level attribute
6592         Inherit_Source_Path.
6593         New project level attribute Archive_Builder_Append_Option
6594
6595         * prj-dect.adb: Replace System.Strings by GNAT.Strings.
6596
6597         * prj-ext.adb (Initialize_Project_Path): In Multi_Language mode, add
6598         <prefix>/lib/gnat in the project path, after <prefix>/share/gpr, for
6599         upward compatibility.
6600
6601         * prj-part.adb (Project_Path_Name_Of.Try_Path): In high verbosity, put
6602         each Trying ..." on different lines.
6603         (Parse_Single_Project): Recognize project qualifiers. Fail in qualifier
6604         is "configuration" when not in configuration. Fail when in configuration
6605         when a specified qualifier is other than "configuration".
6606
6607         * prj-proc.adb (Process_Declarative_Items): Link new elements of copied
6608         full associative array together.
6609         (Recursive_Process): Put the project qualifier in the project data
6610
6611         * prj-tree.ads, prj-tree.adb: (Project_Qualifier_Of): New function
6612         (Set_Project_Qualifier_Of): New procedure
6613
6614 2008-04-08  Robert Dewar  <dewar@adacore.com>
6615
6616         * errout.ads: Update comments for new handling of info: messages
6617
6618         * erroutc.adb (Matches): New procedure
6619         (Warning_Specifically_Suppressed): Modified to handle multiple * chars
6620         (Is_Style_Or_Info_Msg): New name for Is_Style_Msg, now set for
6621          info messages as well as style messages.
6622
6623         * erroutc.ads: Remove unneeded fields from Specific_Warning_Entry
6624
6625         * sem_elab.adb (Supply_Bodies): Create actual bodies for stubbed
6626         subprograms.
6627         (Check_A_Call): Special "info: " warnings now have ? in the text
6628         (Elab_Warning): Use info message in static case
6629
6630 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6631
6632         * exp_aggr.adb (Static_Array_Aggregate): Use Max_Aggr_Size to determine
6633         whether an array aggregate with static bounds and scalar components
6634         should be expanded into a static constant.
6635
6636 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
6637             Ed Schonberg  <schonberg@adacore.com>
6638             Robert Dewar  <dewar@adacore.com>
6639
6640         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Add tests of
6641         Has_Stream_Attribute_ Definition when checking for available stream
6642         attributes on parameters of a limited type in Ada 2005. Necessary for
6643         proper recognition of visible stream attribute clauses.
6644         (Has_Stream_Attribute_Definition): If the type is derived from a
6645         private type, then use the derived type's underlying type for checking
6646         whether it has stream attributes.
6647         (Validate_Object_Declaration): The check for a user-defined Initialize
6648         procedure applies also to types with controlled components or a
6649         controlled ancestor.
6650         Reject an object declaration in a preelaborated unit if the type is a
6651         controlled type with an overriding Initialize procedure.
6652         (Validate_Remote_Access_To_Class_Wide_Type): Return without further
6653         checking when the parent of a dereference is a selected component and
6654         the name has not been analyzed.
6655
6656         * sem_ch4.adb (Analyze_Selected_Component): Add checking for selected
6657         prefixes that are invalid explicit dereferences of remote
6658         access-to-class-wide values, first checking whether the selected
6659         component is a prefixed form of call to a tagged operation.
6660         (Analyze_Call): Remove code that issues an error for limited function
6661         calls in illegal contexts, as we now support all of the contexts that
6662         were forbidden here.
6663         Allow a function call that returns a task.and appears as the
6664         prefix of a selected component.
6665         (Analyze_Reference): Give error message if we try to make a 'Reference
6666         for an object that is atomic/aliased without its type having the
6667         corresponding attribute.
6668         (Analyze_Call): Remove condition checking for attributes to allow
6669         calls to functions with inherently limited results as prefixes of
6670         attributes. Remove related comment about Class attributes.
6671         (Analyze_Selected_Component): If the prefix is a remote type, check
6672         whether this is a prefixed call before reporting an error.
6673         (Complete_Object_Operation): If the controlling formal is an access to
6674         variable reject an actual that is a constant or an access to one.
6675         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
6676         primitive operations from base type.
6677
6678         * exp_ch4.adb (Expand_N_Indexed_Component): Test for prefix that is a
6679         build-in-place
6680         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6681         (Expand_N_Selected_Component): Test for prefix that is a build-in-place
6682         function call and call Make_Build_In_Place_Call_In_Anonymous_Context.
6683         (Expand_N_Slice): Test for prefix that is a build-in-place function call
6684         and call Make_Build_In_Place_Call_In_Anonymous_Context.
6685         (Analyze_Call): Remove code that issues an error for limited function
6686         calls in illegal contexts, as we now support all of the contexts that
6687         were forbidden here.
6688         New calling sequence for Get_Simple_Init_Val
6689         (Expand_Boolean_Operator): Add call to Silly_Boolean_Array_Xor_Test
6690         (Expand_N_Op_Not): Add call to Silly_Boolan_Array_Not_Test
6691
6692 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6693             Ed Schonberg  <schonberg@adacore.com>
6694             Robert Dewar  <dewar@adacore.com>
6695
6696         * exp_ch2.adb: Minor reformatting.
6697         (Expand_Entry_Index_Parameter): Set the type of the identifier.
6698         (Expand_Entry_Reference): Add call to Expand_Protected_Component.
6699         (Expand_Protected_Component): New routine.
6700         (Expand_Protected_Private): Removed.
6701         Add Sure parameter to Note_Possible_Modification calls
6702
6703         * sem_ch12.ads, sem_ch12.adb (Analyze_Subprogram_Instantiation): The
6704         generated subprogram declaration must inherit the overriding indicator
6705         from the instantiation node.
6706         (Validate_Access_Type_Instance): If the designated type of the actual is
6707         a limited view, use the available view in all cases, not only if the
6708         type is an incomplete type.
6709         (Instantiate_Object):  Actual is illegal if the formal is null-excluding
6710         and the actual subtype does not exclude null.
6711         (Process_Default): Handle properly abstract formal subprograms.
6712         (Check_Formal_Package_Instance): Handle properly defaulted formal
6713         subprograms in a partially parameterized formal package.
6714         Add Sure parameter to Note_Possible_Modification calls
6715         (Validate_Derived_Type_Instance): if the formal is non-limited, the
6716         actual cannot be limited.
6717         (Collect_Previous_Instances): Generate instance bodies for subprograms
6718         as well.
6719
6720         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Small): Don't
6721         try to set RM_Size.
6722         Add Sure parameter to Note_Possible_Modification calls
6723         (Analyze_At_Clause): Preserve Comes_From_Source on Rewrite call
6724         (Analyze_Attribute_Definition_Clause, case Attribute_Address): Check for
6725         constant overlaid by variable and issue warning.
6726         Use new Is_Standard_Character_Type predicate
6727         (Analyze_Record_Representation_Clause): Check that the specified
6728         Last_Bit is not less than First_Bit - 1.
6729         (Analyze_Attribute_Definition_Clause, case Address): Check for
6730         self-referential address clause
6731
6732         * sem_ch5.ads, sem_ch5.adb (Diagnose_Non_Variable_Lhs): Rewrite the
6733         detection mechanism when the lhs is a prival.
6734         (Analyze_Assignment): Call Check_Unprotected_Access to detect
6735         assignment of a pointer to protected data, to an object declared
6736         outside of the protected object.
6737         (Analyze_Loop_Statement): Check for unreachable code after loop
6738         Add Sure parameter to Note_Possible_Modication calls
6739         Protect analysis from previous syntax error such as a scope mismatch
6740         or a missing begin.
6741         (Analyze_Assignment_Statement): The assignment is illegal if the
6742         left-hand is an interface.
6743
6744         * sem_res.ads, sem_res.adb (Resolve_Arithmetic_Op): For mod/rem check
6745         violation of restriction No_Implicit_Conditionals
6746         Add Sure parameter to Note_Possible_Modication calls
6747         Use new Is_Standard_Character_Type predicate
6748         (Make_Call_Into_Operator): Preserve Comes_From_Source when rewriting
6749         call as operator. Fixes problems (e.g. validity checking) which
6750         come from the result looking as though it does not come from source).
6751         (Resolve_Call): Check case of name in named parameter if style checks
6752         are enabled.
6753         (Resolve_Call): Exclude calls to Current_Task as entry formal defaults
6754         from the checking that such calls should not occur from an entry body.
6755         (Resolve_Call): If the return type of an Inline_Always function
6756         requires the secondary stack, create a transient scope for the call
6757         if the body of the function is not available for inlining.
6758         (Resolve_Actuals): Apply Ada2005 checks to view conversions of arrays
6759         that are actuals for in-out formals.
6760         (Try_Object_Operation): If prefix is a tagged protected object,retrieve
6761         primitive operations from base type.
6762         (Analyze_Selected_Component): If the context is a call to a protected
6763         operation the parent may be an indexed component prior to expansion.
6764         (Resolve_Actuals): If an actual is of a protected subtype, use its
6765         base type to determine whether a conversion to the corresponding record
6766         is needed.
6767         (Resolve_Short_Circuit): Handle pragma Check
6768
6769         * sem_eval.adb: Minor code reorganization (usea Is_Constant_Object)
6770         Use new Is_Standard_Character_Type predicate
6771         (Eval_Relational_Op): Catch more cases of string comparison
6772
6773 2008-04-08  Robert Dewar  <dewar@adacore.com>
6774             Gary Dismukes  <dismukes@adacore.com>
6775
6776         * s-rident.ads: Add No_Default_Initialization restriction
6777
6778         * exp_tss.adb:
6779         (Has_Non_Null_Base_Init_Proc): Handle No_Default_Initialization case
6780         (Set_TSS): Handle No_Default_Initialization case
6781
6782         * exp_ch6.adb (Expand_N_Subprogram_Body): Handle restriction
6783         No_Default_Initialization
6784         (Expand_N_Subprogram_Body): Remove redundant initialization of out
6785         parameters when Normalize_Scalars is active.
6786         (Add_Final_List_Actual_To_Build_In_Place_Call): Add formal Sel_Comp
6787         Fix casing error in formal parameter name in call
6788         (Register_Predefined_DT_Entry): Replace occurrences of RE_Address by
6789         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6790         dispatching call on VM targets.
6791
6792 2008-04-08  Gary Dismukes  <dismukes@adacore.com>
6793             Thomas Quinot  <quinot@adacore.com>
6794
6795         * exp_ch7.adb (Find_Final_List): Change the test for generating a
6796         selected component from an access type's Associated_Final_Chain to
6797         check for the presence of that field, rather than assuming it exists
6798         for all named access types.
6799         (Make_Clean): New formal Chained_Cleanup_Action allowing to specify a
6800         procedure to call at the end of the generated cleanup procedure.
6801         (Expand_Cleanup_Actions): When a new cleanup procedure is generated, and
6802         and an At_End_Proc already exists in the handled sequence of statements
6803         for which cleanup actions are being expanded, the original cleanup
6804         action must be preserved.
6805
6806 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
6807             Ed Schonberg  <schonberg@adacore.com>
6808             Robert Dewar  <dewar@adacore.com>
6809             Gary Dismukes  <dismukes@adacore.com>
6810
6811         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry,
6812         Build_Unprotected_Subprogram_Body): Generate debug info for
6813         declarations related to the handling of private data in task and
6814         protected types.
6815         (Debug_Private_Data_Declarations): New subprogram.
6816         (Install_Private_Data_Declarations): Remove all debug info flagging.
6817         This is now done by Debug_Private_Data_Declarations at the correct
6818         stage of expansion.
6819         (Build_Simple_Entry_Call): If the task name is a function call, expand
6820         the prefix into an object declaration, and make the surrounding block a
6821         task master.
6822         (Build_Master_Entity): An internal block is a master if it wraps a call.
6823         Code reformatting, update comments. Code clean up.
6824         (Make_Task_Create_Call): Use 'Unrestricted_Access instead of 'Address.
6825         (Replicate_Entry_Formals): If the formal is an access parameter or
6826         anonymous access to subprogram, copy the original tree to create new
6827         entities for the formals of the subprogram.
6828         (Expand_N_Task_Type_Declaration): Create a Relative_Deadline variable
6829         for tasks to store the value passed using pragma Relative_Deadline.
6830         (Make_Task_Create_Call): Add the Relative_Deadline argument to the
6831         run-time call to create a task.
6832         (Build_Wrapper_Spec): If the controlling argument of the interface
6833         operation is an access parameter with a non-null indicator, use the
6834         non-null indicator on the wrapper.
6835
6836         * sem_ch9.adb (Analyze_Protected_Type): Only retrieve the full view when
6837         present, which it may not be in the case where the type entity is an
6838         incomplete view brought in by a limited with.
6839         (Analyze_Task_Type): Only retrieve the full view when present, which it
6840         may not be in the case where the type entity is an incomplete view brought
6841         in by a limited with.
6842         (Analyze_Protected_Definition): Set Is_Frozen on all itypes generated for
6843         private components of a protected type, to prevent the generation of freeze
6844         nodes for which there is no proper scope of elaboration.
6845
6846         * exp_util.ads, exp_util.adb
6847         (Remove_Side_Effects): If the expression is a function call that returns a
6848         task, expand into a declaration to invoke the build_in_place machinery.
6849         (Find_Protection_Object): New routine.
6850         (Remove_Side_Effects): Also make a copy of the value
6851         for attributes whose result is of an elementary type.
6852         (Silly_Boolean_Array_Not_Test): New procedure
6853         (Silly_Boolean_Array_Xor_Test): New procedure
6854         (Is_Volatile_Reference): New function
6855         (Remove_Side_Effects): Use Is_Volatile_Reference
6856         (Possible_Bit_Aligned_Component): Handle slice case properly
6857
6858         * exp_pakd.adb (Expand_Packed_Not): Move silly true/true or false/false
6859         case test to Exp_Util
6860         (Expand_Packed_Xor): Move silly true/true case test to Exp_Util
6861
6862 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6863
6864         * exp_dist.ads, exp_dist.adb: Fix casing error in formal parameter name
6865         in call
6866         (Add_RACW_Features): When processing an RACW in another unit than the
6867         main unit, set Body_Decls to No_List to indicate that the bodies of
6868         the type's TSS must not be generated.
6869         (GARLIC_Support.Add_RACW_Read_Attribute,
6870         GARLIC_Support.Add_RACW_Write_Attribute): Do not generate bodies if
6871         Body_Decls is No_List.
6872         (PolyORB_Support.Add_RACW_Read_Attribute,
6873         PolyORB_Support.Add_RACW_Write_Attribute,
6874         PolyORB_Support.Add_RACW_From_Any,
6875         PolyORB_Support.Add_RACW_To_Any,
6876         PolyORB_Support.Add_RACW_TypeCode): Same.
6877         (Transmit_As_Unconstrained): New function.
6878         (Build_Ordered_Parameters_List): Use the above to order parameters.
6879         (GARLIC_Support.Build_General_Calling_Stubs):
6880         Use the above to determine which parameters to unmarshall using 'Input
6881         at the point where their temporary is declared (as opposed to later on
6882         with a 'Read call).
6883         (PolyORB_Support.Build_General_Calling_Stubs):
6884         Use the above to determine which parameters to unmarshall using From_Any
6885         at the point where their temporary is declared (as opposed to later on
6886         with an assignment).
6887
6888 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6889
6890         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): If this is
6891         an Input function for an access type, do not perform default
6892         initialization on the local variable that receives the value, to
6893         prevent spurious warnings when the type is null-excluding.
6894
6895 2008-04-08  Robert Dewar  <dewar@adacore.com>
6896             Ed Schonberg  <schonberg@adacore.com>
6897
6898         * freeze.adb (Freeze_Entity): Improve warnings on access types in pure
6899         units.
6900         (Size_Known): Generic formal scalar types have known at compile
6901         time size, so remove check.
6902         Fix casing error in formal parameter name in call
6903         (Freeze_Subprogram): If the subprogram is a user-defined operator,
6904         recheck its overriding indication.
6905
6906 2008-04-08  Vincent Celier  <celier@adacore.com>
6907
6908         * gnat1drv.adb: Send all messages indicating an error to standard error
6909
6910 2008-04-08  Robert Dewar  <dewar@adacore.com>
6911
6912         * gnatbind.adb (Restriction_Could_Be_Set): New procedure
6913         (List_Applicable_Restrictions): Do not list existing restrictions
6914
6915 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6916
6917         * g-socket.ads, g-socket.adb: Improve documentation of GNAT.Sockets:
6918         add a pointer to generic sockets literature
6919         do not mention that the given example is "typical" usage.
6920         Remove obsolete comment about multicast not being supported on Windows.
6921         (Connect_Socket): Make Server mode IN rather than IN OUT
6922         since this formal is never modified.
6923
6924 2008-04-08  Robert Dewar  <dewar@adacore.com>
6925
6926         * sprint.adb (Write_Itype): Handle Itypes whose Parent field points to
6927         the declaration for some different entity.
6928         (Sprint_Node_Actual, case N_Derived_Type_Definition): When an interface
6929         list is precent (following the parent subtype indication), display
6930         appropriate "and" keyword.
6931
6932         * itypes.adb: Remove unnecessary calls to Init_Size_Align and Init_Esize
6933         Remove unnecessary calls to Init_Size_Align and Init_Esize.
6934         Add notes on use of Parent field of an Itype
6935
6936 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
6937             Robert Dewar  <dewar@adacore.com>
6938             Gary Dismukes  <dismukes@adacore.com>
6939
6940         * lib-xref.adb (Is_On_LHS): Remove dead code
6941         (Output_Overriden_Op): If the overridden operation is itself inherited,
6942         list the ancestor operation, which is the one whose body or absstract
6943         specification is actually being overridden. For source navigation
6944         purposes.
6945
6946         * sem_ch7.adb (Is_Primitive_Of): use base type to determine whether
6947         operation is primitive for the type.
6948         (Declare_Inherited_Private_Subprograms): If the new operation overrides
6949         an inherited private subprogram, set properly the Overridden_Operation
6950         attribute, for better cross-reference information.
6951         (Analyze_Package_Specification): Do late analysis of spec PPCs
6952         (Install_Private_Declaration, Uninstall_Declarations): Save/restore
6953         properly the full view and underlying full views of a private type in a
6954         child unit, whose full view is derived from a private type in a parent
6955         unit, and whose own full view becomes visible in the child body.
6956
6957         * sem_disp.adb (Check_Dispatching_Operation): When a body declares a
6958         primitive operation after the type has been frozen, add an explicit
6959         reference to the type and the operation, because other primitive
6960         references have been emitted already.
6961         (Expand_Call, Propagate_Tag): Call Kill_Current_Values when processing a
6962         dispatching call on VM targets.
6963
6964 2008-04-08  Vincent Celier  <celier@adacore.com>
6965             Thomas Quinot  <quinot@adacore.com>
6966
6967         * make.adb: (Gnatmake_Called): Remove, no longer necessary
6968         (Compile_Surces): Call Delete_Temp_Config_Files only if Gnatmake_Called
6969         is True and Debug_Flag_N is False. Debug_Flag_N means "keep temp files".
6970         (Insert_Project_Sources): Take into account index in multi-unit source
6971         files.
6972         After building a library project, delete all temporary files.
6973         (Initialize): Reset current output after parsing project file.
6974         (Collect_Arguments_And_Compile): Never insert in the queue the sources
6975         of library projects that are externally built.
6976         Put file name in error and inform messages if -df is used
6977         (Display): If invoked with -d7, do not display path names, but only
6978         file names.
6979
6980         * makeutl.ads (Path_Or_File_Name): New function
6981         (Path_Or_File_Name): New function
6982
6983 2008-04-08  Arnaud Charlet  <charlet@adacore.com>
6984
6985         * Make-lang.in: Disable warnings during first stage of bootstrap
6986         Get rid of gnatbl.
6987         Update dependencies.
6988
6989 2008-04-08  Vincent Celier  <celier@adacore.com>
6990
6991         * mlib-prj.adb (Build_Library): Compare with ALI file name in canonical
6992         case to decide if ALI object file is included in library.
6993         (Build_Library): Never attempt to build a library if the project is
6994         externally built.
6995
6996 2008-04-08  Thomas Quinot  <quinot@adacore.com>
6997
6998         * nlists.adb (Is_Non_Empty_List): Remove redundant test. First
6999         (No_List) is defined to return Empty.
7000
7001 2008-04-08  Jose Ruiz  <ruiz@adacore.com>
7002
7003         * osint.ads, osint.adb (Get_Libraries_From_Registry): Improve
7004         documentation.
7005         Update comments.
7006         (Read_Default_Search_Dirs): Do not consider spaces as path separators
7007         because spaces may be part of legal paths.
7008
7009 2008-04-08  Robert Dewar  <dewar@adacore.com>
7010
7011         * par-ch11.adb (P_Exception_Handler): Check indentation level for
7012         handler
7013
7014 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
7015
7016         * par-ch3.adb (P_Type_Declaration) Reject the keyword "synchronized"
7017         in a type declaration, if this is not an interface declaration or
7018         private type extension.
7019
7020 2008-04-08  Vincent Celier  <celier@adacore.com>
7021
7022         * prj-util.adb (Executable_Of): New String parameter Language. When
7023         Ada_Main is False and Language is not empty, attempt to remove the body
7024         suffix or the spec suffix of the language to get the base of the
7025         executable file name.
7026         (Put): New Boolean parameter Lower_Case, defauilted to False. When
7027         Lower_Case is True, put the value in lower case in the name list.
7028         (Executable_Of): If there is no executable suffix in the configuration,
7029         then do not modify Executable_Extension_On_Target.
7030
7031         * prj-util.ads (Executable_Of): New String parameter Language,
7032         defaulted to the empty string.
7033         (Put): New Boolean parameter Lower_Case, defauilted to False
7034
7035 2008-04-08  Robert Dewar  <dewar@adacore.com>
7036
7037         * scng.adb (Scan_Identifier): Handle case of identifier starting with
7038         wide character using UTF-8 encoding.
7039
7040 2008-04-08  Javier Miranda  <miranda@adacore.com>
7041
7042         * sem.adb (Analyze): Consider case in which we analyze an empty node
7043         that was generated by a call to a runtime function that is not
7044         available under the configurable runtime.
7045
7046         * sem.ads (Inside_Freezing_Actions): New flag.
7047         (Save_Check_Policy_List): New field in scope stack entry
7048
7049 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
7050             Robert Dewar  <dewar@adacore.com>
7051
7052         * sem_aggr.adb (Analyze_N_Extension_Aggregate): Add legality checks for
7053         the ancestor part of an extension aggregate for a limited type.
7054         (Resolve_Array_Aggregate): Issue warning for sliding of aggregate with
7055         enumeration index bounds.
7056         (Resolve_Array_Aggregate): Add circuit for diagnosing missing choices
7057         when array is too short.
7058         (Check_Expr_OK_In_Limited_Aggregate): Move function
7059         Check_Non_Limited_Type from Resolve_Record_Aggregate to top level (and
7060         change name).
7061         (Resolve_Array_Aggregate.Resolve_Aggr_Expr):
7062         Check_Expr_OK_In_Limited_Aggregates called to check for illegal limited
7063         component associations.
7064         (Check_Non_Limited_Type): Moved to outer level and renamed.
7065         (Resolve_Record_Aggregate): In an extension aggregate, an association
7066         with a box initialization can only designate a component of the
7067         extension, not a component inherited from the given ancestor
7068
7069         * sem_case.adb: Use new Is_Standard_Character_Type predicate
7070
7071 2008-04-08  Robert Dewar  <dewar@adacore.com>
7072
7073         * s-imgdec.adb (Set_Decimal_Digits): Fix error when input is zero with
7074         negative scale
7075         (Set_Decimal_Digits): Properly handle Aft=0 (equivalent to Aft=1)
7076         Properly handle case where Aft > Scale and input number is less than
7077         one.
7078
7079 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
7080
7081         * s-stoele.ads, s-soflin.ads: Move the location of
7082         Dummy_Communication_Block from System.Storage_Elements to
7083         System.Soft_Links.
7084
7085         * s-tpobop.ads: Add comment on usage of Dummy_Communication_Block to
7086         emulate Communication_Block in certain scenarios.
7087
7088 2008-04-08  Hristian Kirtchev  <kirtchev@adacore.com>
7089
7090         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (Block_IO_OK): New
7091         subprogram.
7092         Add new subtype S_WWC, unchecked conversion routines From_WWC and
7093         To_WWC.
7094         (I_WWC, O_WWC): New routines for input and output of
7095         Wide_Wide_Character.
7096
7097 2008-04-08  Robert Dewar  <dewar@adacore.com>
7098
7099         * stringt.adb (Write_String_Table_Entry): Handle wide characters
7100         properly
7101
7102 2008-04-08  Robert Dewar  <dewar@adacore.com>
7103
7104         * styleg.adb (Check_Comment): Allow special char after -- in
7105         non-end-of-line case
7106
7107 2008-04-08  Robert Dewar  <dewar@adacore.com>
7108
7109         * stylesw.adb: Implement -gnaty + - y options
7110         (Set_GNAT_Style_Check_Options): Includ I in style check string
7111
7112         * stylesw.ads: Add comments for new style switch options
7113
7114 2008-04-08  Sergey Rybin  <rybin@adacore.com>
7115
7116         * tree_io.ads: Increase ASIS_Version_Number because of adding Sem_Aux
7117         to the set of the GNAT components needed by ASIS.
7118
7119 2008-04-08  Bob Duff  <duff@adacore.com>
7120
7121         * types.h: Change CE_Null_Exception_Id to the correct value (8, was 9).
7122
7123 2008-04-08  Tristan Gingold  <gingold@adacore.com>
7124
7125         * vxaddr2line.adb: Use Unsigned_32 instead of Integer for address type.
7126         Improve error message generation.
7127
7128 2008-04-08  Vincent Celier  <celier@adacore.com>
7129
7130         * a-direct.adb (Start_Search): Check for Name_Error before checking for
7131         Use_Error, as specified in the RM. Check if directory is open and raise
7132         Use_Error if it is not.
7133
7134 2008-04-08  Vincent Celier  <celier@adacore.com>
7135             Robert Dewar  <dewar@adacore.com>
7136
7137         * vms_conv.adb (Output_Version): Print "GNAAMP" instead of "GNAT when
7138         AAMP_On_Target is set.
7139
7140         * vms_data.ads: Add NOxxx to style check switch list
7141         Add entry COMPONENTS for -gnatVe
7142         Add VMS qualifiers for -eL (/FOLLOW_LINKS_FOR_FILES) and --subdirs=
7143         (/SUBDIRS=).
7144         (GCC_Switches): Add /ALL_BACK_END_WARNINGS.
7145         Add qualifiers for gnatmetric coupling options
7146         Add note that -gnata enables all checks
7147         Add entries [NO]PARAMETER_ORDER for -gnatw.p[P]
7148         Fix inconsistency for VMS qualifier for the gnatpp '-rnb' option
7149         New warning flag -gnatw.e
7150
7151         * usage.adb: Add entries for -gnaty+ -gnaty- -gnatyy
7152         Add entry for -gnatyN (forgotten before)
7153         Line for new warning switch -gnatw.p
7154         New warning flag -gnatw.e
7155
7156         * gnat_ugn.texi: Add documentation fpr project file switch -aP
7157         Document -gnaty - + y
7158         Replace occurences of "package specification" with "package spec"
7159         Define preprocessing symbols in documentation of gnatprep
7160         Clarify reason for distinguishing overflow checking
7161         Add documentation for project-aware tool switches -eL and --subdirs=
7162         Complete list of configuration pragmas
7163         Specify that, even when gnatmake switch -x is used, mains on the command
7164         line need to be sources of project files.
7165         Editing of gnatcheck/gnatmetric doc.
7166         Add documentation for -gnatw.p/-gnatw.P
7167         Add missing documentation for -fno-inline-functions.
7168         Add documentation for -gnatw.e
7169
7170         * gnat_rm.texi: Add documentation for No_Default_Initialization
7171         Replace occurences of "package specification" with "package spec"
7172         Document use of * in Warnings Off string
7173         Update documentation of alignment/component clauses.
7174         Add documentation for Invalid_Value
7175         Document new consistency rule for Optimize_Alignment
7176         Add documentation for Precondition and Postcondition pragmas
7177         Add documentation for Check and Check_Policy pragmas
7178         Document new Enum_Val attribute
7179         Remove requirement for static string in pragma Assert
7180         Add documentation on GNAT.Time_Stamp
7181
7182         * ug_words: add entry for -gnatVe
7183         Add entries for -gnat.p[P] /WARNINGS=[NO]PARAMETER_ORDER
7184         Add entry for -gnatw.e
7185
7186         * debug.adb: Add missing documentation for d.a flag
7187         Document new -gnatd.a switch.
7188         Add documentation for new gnatmake debug switch -df
7189
7190 2008-04-08  Thomas Quinot  <quinot@adacore.com>
7191
7192         * gen-soccon.c: Bump year in copyright notices.
7193
7194         * g-soccon-vxworks.ads: Add new constant IP_PKTINFO
7195
7196 2008-04-08  Eric Botcazou  <ebotcazou@adacore.com>
7197
7198         * ctrl_c.c: Improve handling of ctrl-c on LynxOS and Windows.
7199         Minor reformatting.
7200
7201 2008-04-08  Robert Dewar  <dewar@adacore.com>
7202             Bob Duff  <duff@adacore.com>
7203
7204         * impunit.adb: Add Interfaces.Java.JNI, System.Strings.Stream_Ops,
7205         Ada.Calendar.Conversions, Ada.Dispatching.EDF, GNAT.Time_Stamp
7206
7207         * s-intman-mingw.adb: Minor comment fix -- spell 'explicitly' correctly
7208
7209         * g-trasym.adb: Minor comment fix -- spell 'explicitly' correctly
7210
7211         * g-trasym.ads: Minor comment improvements
7212
7213         * s-stalib.adb: Minor comment fix -- spell 'explicitly' correctly
7214
7215         * a-sequio.ads, a-direio.ads: improve message for tagged type
7216
7217         * a-strunb.ads: Minor reformatting
7218
7219         * a-tifiio.adb: Minor reformatting
7220
7221         * atree.adb (Fix_Parents): Use clearer names for formals
7222         Cleanup and simplify code
7223         Use named notation in calls
7224
7225         * exp_fixd.adb (Do_Multiply_Fixed_Universal): Use named notation in
7226         confusing calls
7227
7228         * uintp.adb: Used named notation for some confusing calls
7229
7230         * bindusg.adb: Minor change in one line of output
7231
7232         * cstand.adb: Minor reformatting of src representation of Standard
7233
7234         * a-assert.ads: Add comment.
7235
7236         * g-decstr.adb: Fix bad indentation
7237
7238         * expander.ads, expander.adb: Code clean up.
7239
7240         * sem_dist.ads: Minor comment improvement
7241
7242         * sem_type.adb, g-dirope.ads, g-exctra.ads, s-valwch.adb,
7243         s-wchstw.adb, targparm.ads, widechar.adb: Minor reformatting
7244
7245         * i-cstrin.adb: Fix casing error in formal parameter name in call
7246
7247 2008-04-08  Ed Schonberg  <schonberg@adacore.com>
7248
7249         * binde.adb (Gather_All_Links, Gather_Dependencies): units that are
7250         mentioned in limited_with_clauses to do create semantic dependencies
7251         even though they appear in the ali file.
7252
7253 2008-04-08  Emmanuel Briot  <briot@adacore.com>
7254
7255         * g-comlin.ads, g-comlin.adb (Expansion): Remove unreachable return
7256         statement.
7257         (Get_Configuration): New subprogram.
7258
7259         * prj-pp.ads, prj-pp.adb (Pretty_Print): new parameters Id and Id_Tree
7260         These optional parameters help preserve the casing of the project's name
7261         when pretty-printing.
7262
7263 2008-04-08  Jerome Lambourg  <lambourg@adacore.com>
7264             Arnaud Charlet  <charlet@adacore.com>
7265
7266         * bindgen.adb (Gen_Adainit_Ada): If the main program is a CIL function,
7267         then use __gnat_set_exit_status to report the returned status code.
7268
7269         * comperr.adb (Compiler_Abort): Convert most bug boxes into clean error
7270         messages on .NET, since some constructs of the language are not
7271         properly supported.
7272
7273         * gnatlink.adb (Gnatlink): In case the command line is too long for the
7274         .NET linker, gnatlink now concatenate all .il files and pass this to
7275         ilasm.
7276
7277 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
7278             Xavier Grave  <grave@ipno.in2p3.fr>
7279
7280         * Makefile.in: Add make ifeq define for mips/mipsel support.
7281         * g-soccon-linux-mips.ads, system-linux-mipsel.ads,
7282         system-linux-mips.ads: New files.
7283
7284 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
7285
7286         * sysdep.c: add __GLIBC__ to the #ifdef preprocessor macros to
7287         detect systems using GNU libc.
7288         * gsocket.h: ditto.
7289         * socket.c: ditto.
7290         * adaint.c: ditto.
7291         * link.c: ditto.
7292
7293 2008-04-07  Aurelien Jarno  <aurelien@aurel32.net>
7294
7295         * s-osinte-linux-kfreebsd.ads (SC_NPROCESSORS_ONLN): New
7296         constant constant for sysconf call.
7297         (bit_field): New packed boolean type used by cpu_set_t.
7298         (cpu_set_t): New type corresponding to the C type with
7299         the same name. Note that on the Ada side we use a bit
7300         field array for the affinity mask. There is not need
7301         for the C macro for setting individual bit.
7302         (pthread_setaffinity_np): New imported routine.
7303         * Makefile.in: Use s-tasinf-linux.ads and s-tasinf-linux.adb
7304         on GNU/kFreeBSD.
7305
7306 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7307
7308         * utils2.c (build_binary_op): Fold ARRAY_REF and ARRAY_RANGE_REF too.
7309
7310 2008-04-07  Eric Botcazou  <ebotcazou@adacore.com>
7311
7312         * gigi.h (create_subprog_type): Remove returns_with_dsp parameter.
7313         * decl.c (gnat_to_gnu_entity): Adjust for above new prototype.
7314         * utils.c (create_subprog_type): Remove returns_with_dsp parameter.
7315         * trans.c (gnat_to_gnu) <N_Return_Statement>: Remove code dealing with
7316         Return by Depressed Stack Pointer.
7317
7318 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7319
7320         * decl.c (is_variable_size): Do not unconditionally return false
7321         on non-strict alignment platforms.
7322
7323 2008-04-06  Eric Botcazou  <ebotcazou@adacore.com>
7324
7325         * decl.c (rest_of_type_decl_compilation_no_defer): New local function
7326         used to process all the variants of the specified type.
7327         (gnat_to_gnu_entity): Invoke rest_of_type_decl_compilation for enumeral
7328         types too.  Call rest_of_type_decl_compilation_no_defer if undeferring.
7329         (rest_of_type_decl_compilation): Likewise.
7330         * utils.c (gnat_pushdecl): Propagate the name to all variants of type.
7331
7332 2008-04-03  Paolo Bonzini  <bonzini@gnu.org>
7333
7334         * gigi.h (insert_block): Kill.
7335         * utils.c (insert_block): Kill.
7336
7337 2008-04-02  Eric Botcazou  <ebotcazou@adacore.com>
7338
7339         * decl.c (gnat_to_gnu_entity) <object>: For a constant object whose
7340         type has self-referential size, get the size from the initializing
7341         expression directly if it is also a constant whose nominal type
7342         has self-referential size.
7343
7344 2008-04-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7345
7346         PR ada/33688
7347         * g-soccon-darwin.ads: Define new constant IP_PKTINFO.
7348
7349         PR ada/33857
7350         * env.c: Always include crt_externs.h if __APPLE__ is defined.
7351         (__gnat_setenv): Use setenv instead of putenv if __APPLE__ is defined.
7352
7353 2008-04-01  Andreas Jaeger  <aj@suse.de>
7354
7355         * g-soccon-linux-ppc.ads: Add new constants SO_REUSEPORT and
7356         IP_PKTINFO.
7357
7358 2008-03-31  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7359
7360         * g-table.adb, g-tasloc.adb, g-traceb.ads,
7361         g-trasym.adb, g-utf_32.adb, gen-soccon.c, gigi.h, gmem.c,
7362         gnatbind.adb, gnatchop.adb, gnatcmd.adb,
7363         gnatcmd.ads, gnatdll.adb, gnatfind.adb,
7364         gnatlink.adb, gnatmem.adb, gprep.adb,
7365         i-cstrea-vms.adb, i-cstrin.adb, i-pacdec.ads,
7366         i-vxwork.ads, impunit.adb, init.c, initialize.c, inline.adb,
7367         layout.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
7368         lib-xref.ads, lib.adb, link.c, live.ads,
7369         make.adb, makegpr.adb, makeutl.adb, math_lib.adb,
7370         mdll-utl.adb, mdll.ads, memroot.adb, memroot.ads,
7371         misc.c, mlib-prj.adb, mlib-tgt-hpux.adb,
7372         mlib-tgt-linux.adb, mlib-tgt-tru64.adb, mlib-tgt.ads,
7373         namet.adb, namet.h, nlists.adb, nlists.ads,
7374         nlists.h, opt.ads, osint-b.ads, osint-c.adb,
7375         osint-c.ads, osint.adb, osint.ads, output.ads,
7376         par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
7377         par-ch4.adb, par-ch5.adb, par-ch6.adb, par-ch9.adb,
7378         par-endh.adb, par-labl.adb, par-prag.adb,
7379         par-sync.adb, par-tchk.adb, par-util.adb,
7380         par.adb, prep.adb, prep.ads, prepcomp.adb, prj-attr.ads,
7381         prj-dect.adb, prj-env.adb, prj-ext.adb, prj-nmsc.adb,
7382         prj-nmsc.ads, prj-pp.adb, prj-proc.adb,
7383         prj-strt.ads, prj-tree.ads, prj.adb, prj.ads: Fix comment typos.
7384
7385 2008-03-31  Eric Botcazou  <ebotcazou@adacore.com>
7386
7387         * decl.c (gnat_to_gnu_entity) <object>: Do not force a non-null
7388         size if it has overflowed.
7389
7390 2008-03-31  Olivier Hainque  <hainque@adacore.com>
7391             Eric Botcazou  <ebotcazou@adacore.com>
7392
7393         * utils2.c (find_common_type): Document assumption on t1/t2 vs
7394         lhs/rhs. Force use of lhs type if smaller, whatever the modes.
7395
7396 2008-03-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
7397
7398         * a-textio.ads, a-witeio.ads, a-ztexio.ads, ali.ads,
7399         einfo.ads, erroutc.adb, erroutc.ads, exp_attr.adb,
7400         exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
7401         exp_pakd.ads, exp_prag.adb, exp_smem.adb,
7402         exp_tss.ads, exp_util.adb, exp_util.ads,
7403         exp_vfpt.adb, freeze.adb, freeze.ads,
7404         frontend.adb, g-alleve.adb, g-altcon.adb,
7405         g-altive.ads, g-alveop.ads, g-alvevi.ads,
7406         g-arrspl.adb, g-busorg.ads, g-calend.adb,
7407         g-calend.ads, g-casuti.ads, g-cgideb.adb,
7408         g-comlin.adb, g-comlin.ads, g-curexc.ads,
7409         g-debpoo.adb, g-debpoo.ads, g-decstr.adb,
7410         g-dirope.adb, g-dirope.ads, g-dynhta.ads,
7411         g-dyntab.adb, g-encstr.ads, g-excact.ads,
7412         g-except.ads, g-expect.ads, g-heasor.adb,
7413         g-hesora.adb, g-hesorg.adb, g-htable.ads,
7414         g-locfil.ads, g-md5.adb, g-md5.ads,
7415         g-memdum.ads, g-moreex.ads, g-os_lib.adb,
7416         g-pehage.adb, g-pehage.ads, g-regexp.adb,
7417         g-regexp.ads, g-regpat.adb, g-regpat.ads,
7418         g-soccon-aix.ads, g-soccon-darwin.ads,
7419         g-soccon-freebsd.ads, g-soccon-hpux-ia64.ads,
7420         g-soccon-hpux.ads, g-soccon-irix.ads,
7421         g-soccon-linux-64.ads, g-soccon-linux-ppc.ads,
7422         g-soccon-linux-x86.ads, g-soccon-lynxos.ads,
7423         g-soccon-mingw.ads, g-soccon-solaris-64.ads,
7424         g-soccon-solaris.ads, g-soccon-tru64.ads,
7425         g-soccon-vms.ads, g-soccon-vxworks.ads,
7426         g-soccon.ads, g-socket.adb, g-socket.ads,
7427         g-socthi-mingw.adb, g-socthi-vms.adb,
7428         g-socthi-vxworks.adb, g-soliop-mingw.ads,
7429         g-soliop-solaris.ads, g-soliop.ads, g-spipat.adb,
7430         g-spipat.ads, g-string.adb, g-stsifd-sockets.adb: Fix comment
7431         typos.
7432
7433 2008-03-27  Eric Botcazou  <ebotcazou@adacore.com>
7434
7435         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Also set the public flag
7436         if the procedure is imported.
7437
7438 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7439
7440         * adaint.c: Fix warnings.
7441
7442 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7443
7444         * g-dirope.ads, g-dirope.adb: (Dir_Type_Value): Moved to spec.
7445
7446 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7447
7448         * a-witeio.adb: Fix problem with Current_Output (introduce Self).
7449         Fix problem of status check for null file
7450
7451 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7452
7453         * s-proinf-irix-athread.ads, s-vxwork-mips.ads,
7454         s-traces.ads, s-vxwork-arm.ads, s-vxwork-ppc.ads, s-vxwork-sparcv9.ads,
7455         s-tasinf-mingw.ads, s-tasinf-linux.ads, s-tasdeb.ads, mlib-tgt.ads,
7456         i-cstrin.ads, uintp.adb, g-catiio.adb, s-vmexta.ads,
7457         s-trafor-default.ads, s-vxwork-m68k.ads: Minor reformatting. Update
7458         comments.
7459
7460 2008-03-26  Thomas Quinot  <quinot@adacore.com>
7461
7462         PR ada/33688
7463         * g-socket.ads, g-socket.adb (Options, Set_Socket_Option,
7464         Get_Socket_Option): Add support for Receive_Packet_Info.
7465
7466         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
7467         g-soccon-irix.ads, g-soccon-hpux.ads, g-soccon-solaris.ads,
7468         g-soccon-vms.ads, g-soccon-mingw.ads, g-soccon-freebsd.ads,
7469         g-soccon-hpux-ia64.ads, g-soccon-solaris-64.ads, g-soccon-darwin.ads,
7470         g-soccon-lynxos.ads, g-soccon-linux-64.ads, g-soccon-linux-x86.ads: Add
7471         new constants SO_REUSEPORT and IP_PKTINFO
7472
7473 2008-03-26  Robert Dewar  <dewar@adacore.com>
7474
7475         * a-taster.adb, s-shasto.adb, s-soflin.adb, s-taasde.adb, s-taenca.adb,
7476         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
7477         a-intnam-lynxos.ads, a-retide.adb, a-intnam-tru64.ads, a-intnam-aix.ads,
7478         a-intnam-irix.ads, a-intnam-hpux.ads, a-intnam-linux.ads,
7479         a-intnam-solaris.ads, a-caldel-vms.adb, a-intnam-vms.ads,
7480         a-excpol-abort.adb, a-intnam-mingw.ads, s-interr.adb, s-interr.ads,
7481         s-intman.ads, s-gloloc.adb, s-osinte-lynxos-3.ads,
7482         s-interr-sigaction.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7483         a-intnam-freebsd.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads,
7484         s-taspri-lynxos.ads, s-osinte-tru64.ads, s-osinte-tru64.ads,
7485         s-taspri-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
7486         s-osinte-hpux-dce.ads, s-taprop-hpux-dce.adb, s-taspri-hpux-dce.ads,
7487         s-osinte-linux.ads, s-osinte-dummy.ads, s-taprop-dummy.adb,
7488         s-taspri-dummy.ads, s-interr-dummy.adb, s-osinte-solaris.ads,
7489         s-osinte-mingw.ads, s-taprop-solaris.adb, s-taspri-solaris.ads,
7490         s-inmaop-vms.adb, s-interr-vms.adb, s-intman-vms.ads, s-osinte-vms.ads,
7491         s-osinte-vms.ads, s-taprop-vms.adb, s-taspri-vms.ads,
7492         s-taspri-mingw.ads, s-interr-vxworks.adb, s-inmaop-posix.adb,
7493         s-intman-vxworks.ads, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
7494         s-taspri-vxworks.ads, s-taspri-posix.ads, a-caldel.adb, a-calend.adb,
7495         a-elchha.adb, a-dynpri.adb, a-except.adb, a-except.ads, a-interr.ads,
7496         a-textio.adb, a-tigeau.ads, atree.adb, s-taprob.adb, s-taprop.ads,
7497         s-tarest.adb, s-tarest.ads, s-tasini.adb, s-taskin.adb, s-taskin.ads,
7498         s-tasque.adb, s-tasren.adb, s-tasren.ads, s-tassta.adb, s-tassta.ads,
7499         s-tasuti.adb, s-tataat.adb, s-tataat.ads, s-tpoben.adb, s-tpoben.ads,
7500         s-tpobop.adb, s-tpobop.ads, s-tposen.adb, s-tposen.ads, s-valrea.adb,
7501         s-valuti.adb, a-intnam-darwin.ads, s-osinte-darwin.ads, s-solita.adb,
7502         a-ztinau.ads, s-osinte-linux-hppa.ads, a-except-2005.adb,
7503         a-except-2005.ads, a-rttiev.adb, s-osinte-vxworks6.ads, s-regexp.adb,
7504         s-tasloc.adb: Minor reformatting.
7505         Update comments.
7506         Remove "used for" sections from comments.
7507
7508 2008-03-26  Robert Dewar  <dewar@adacore.com>
7509
7510         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
7511         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
7512         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
7513         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
7514         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
7515         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
7516         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7517         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
7518         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
7519         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
7520         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
7521         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
7522         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
7523         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
7524         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
7525         double spaced if it fits on one line and otherwise single spaced.
7526
7527 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7528
7529         * s-taprop-irix.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb,
7530         s-taprop-linux.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
7531         s-taprop-posix.adb (Create_Task): Do not attempt to set task priority
7532         or task info if the thread could not be created.
7533
7534 2008-03-26  Arnaud Charlet  <charlet@adacore.com>
7535
7536         * gnatvsn.ads (Library_Version): Bump to 4.4.
7537         (Current_Year): Bump to 2008.
7538
7539 2008-03-26  Robert Dewar  <dewar@adacore.com>
7540
7541         * ali.ads, ali.adb (Optimize_Alignment_Setting): New field in ALI record
7542
7543         * bcheck.adb (Check_Consistent_Optimize_Alignment): New procedure
7544
7545         * debug.adb: Add debug flags d.r and d.v
7546         Add debug flag .T (Optimize_Alignment (Time))
7547         Add debug flag .S (Optimize_Alignment (Space))
7548
7549         * freeze.adb (Freeze_Record_Type): Set OK_To_Reorder_Components
7550         depending on setting of relevant debug flags.
7551         Replace use of Warnings_Off by Has_Warnings_Off
7552         (Freeze_Entity): In circuit for warning on suspicious convention
7553         actuals, do not give warning if subprogram has same entity as formal
7554         type, or if subprogram does not come from source.
7555         (Freeze_Entity): Don't reset Is_Packed for fully rep speced record
7556         if Optimize_Alignment set to Space.
7557
7558         * frontend.adb: Add call to Sem_Warn.Initialize
7559         Add call to Sem_Warn.Output_Unused_Warnings_Off_Warnings
7560         Reset Optimize_Alignment mode from debug switches .S and .T
7561
7562         * layout.adb (Layout_Composite_Object): Rewritten for
7563         Optimize_Aligment pragma.
7564
7565         * lib-writ.ads, lib-writ.adb: New Ox parameter for Optimize_Alignment
7566         mode.
7567
7568         * opt.ads, opt.adb: (Optimize_Alignment): New global switch
7569
7570         * par-prag.adb (N_Pragma): Chars field removed, use Chars
7571         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
7572         this change. Add entry for pragma Optimize_Alignment
7573
7574         * sem_prag.adb (N_Pragma): Chars field removed, use Chars
7575         (Pragma_Identifier (..
7576         instead, adjustments throughout to accomodate this change.
7577         (Process_Compile_Time_Warning_Or_Error): Use !! for generated msg
7578         (Favor_Top_Level): Use new function Is_Access_Subprogram_Type
7579         Add implementation of pragma Optimize_Alignment
7580
7581 2008-03-26  Vincent Celier  <celier@adacore.com>
7582
7583         * a-szuzti.adb, a-swuwti.adb, a-suteio.adb (functions Get_Line):
7584         Improve memory usage to avoid use of stack.
7585
7586 2008-03-26  Robert Dewar  <dewar@adacore.com>
7587
7588         * a-teioed.ads: Correct value of Default_Fill
7589
7590         * a-teioed.adb (Image): Use Fill_Character instead of '*' to fill
7591
7592 2008-03-26  Robert Dewar  <dewar@adacore.com>
7593
7594         * a-ztexio.adb, a-ztexio.ads, a-witeio.ads, a-witeio.adb: Fix problem
7595         with Current_Output (introduce Self).
7596
7597 2008-03-26  Robert Dewar  <dewar@adacore.com>
7598
7599         * checks.adb (Ensure_Valid): Capture valid status if possible
7600         (eliminate checks)
7601
7602 2008-03-26  Robert Dewar  <dewar@adacore.com>
7603
7604         * stand.ads: Deal with reordering of package standard declarations
7605
7606         * cstand.adb: Put package Standard declarations in proper order
7607
7608 2008-03-26  Robert Dewar  <dewar@adacore.com>
7609
7610         * einfo.ads, einfo.adb (N_Pragma): Chars field removed, use Chars
7611         (Pragma_Identifier (.. instead.
7612         (OK_To_Reorder_Components): New flag
7613         (Has_Entries): Code cleanup.
7614         (Warnings_Off_Used): New flag
7615         (Warnings_Off_Used_Unmodified): New flag
7616         (Warnings_Off_Used_Unreferenced): New flag
7617         (Has_Warnings_Off): New function
7618         (Has_Unmodified): New function
7619         (Has_Unreferenced): New function
7620         (Is_Trivial_Subprogram): New flag
7621         (Is_Static_Dispatch_Table_Entity): New attribute.
7622         Change name Access_Subprogram_Type_Kind to Access_Subprogram_Kind
7623         (more consistent with other similar names)
7624         (Access_Subprogram_Type): New classification function
7625
7626 2008-03-26  Robert Dewar  <dewar@adacore.com>
7627
7628         * errout.ads: Document new !! insertion sequence
7629
7630         * errout.adb (N_Pragma): Chars field removed, use Chars
7631         (Pragma_Identifier (..  instead.
7632         Replace use of Warnings_Off by Has_Warnings_Off
7633         (Error_Msg_Internal): Don't delete warning ending in !!
7634
7635 2008-03-26  Robert Dewar  <dewar@adacore.com>
7636
7637         * par.adb (Check_No_Right_Paren): Removed no longer used
7638
7639         * par-ch10.adb (N_Pragma): Chars field removed, use Chars
7640         (Pragma_Identifier (..  instead.
7641
7642         * par-ch10.adb (P_Subunit): Improvement in error recovery and message
7643
7644         * par-tchk.adb, par-ch5.adb, par-ch6.adb, par-ch3.adb,
7645         par-ch4.adb: Minor improvements in error recovery and messages.
7646
7647         * erroutc.adb (Test_Style_Warning_Serious_Msg): Treat style msgs as
7648         non-serious
7649
7650         * par-ch9.adb: Minor improvements in error recovery and messages
7651         (P_Protected): Better error recovery for "protected type x;"
7652
7653         * par-util.adb: Minor improvements in error recovery and messages
7654         (Check_No_Right_Paren): Removed no longer used
7655
7656 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7657
7658         * exp_aggr.adb (Replace_Type): When checking for self-reference, verify
7659         that the prefix of an attribute is the type of the aggregate being
7660         expanded.
7661
7662 2008-03-26  Javier Miranda  <miranda@adacore.com>
7663             Robert Dewar  <dewar@adacore.com>
7664
7665         * exp_attr.adb (N_Pragma): Chars field removed.
7666         (Expand_N_Attribute_Reference): If the designated type associated with
7667         attribute 'Unrestricted_Access is a subprogram entity then replace it
7668         by an E_Subprogram_Type itype.
7669         Implement attribute Old
7670
7671         * sem_attr.ads (Attribute_Class_Array): Move to snames.ads
7672
7673         * sem_attr.adb (Build_Access_Subprogram_Itype): Add documentation.
7674         Replace call to
7675         New_Internal_Entity by call to Create_Itype to centralize calls
7676         building itypes, ad propagate the convention of the designated
7677         subprogram. In addition, disable the machinery cleaning constant
7678         indications from all entities in current scope when 'Unrestricted_Access
7679         corresponds with a node initializing a dispatch table slot.
7680         (Analyze_Attribute): Parameterless attributes returning a string or a
7681         type will not be called with improper arguments, so we can remove junk
7682         code that was dealing with this case.
7683         Implement attribute Old
7684
7685         * snames.ads, snames.h, snames.adb: Add entries for attribute Old
7686         Add entry for pragma Optimize_Alignment
7687         New standard names Sync and Synchronize
7688
7689 2008-03-26  Robert Dewar  <dewar@adacore.com>
7690             Arnaud Charlet  <charlet@adacore.com>
7691
7692         * exp_ch11.adb (Expand_At_End_Handler): Set From_At_End flag on raise
7693         stmt.
7694         (No_Exception_Propagation_Active): New function.
7695         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7696         Update comments, and review all uses of No_Exception_Propagation, which
7697         are now correct and in sync with what gigi expects.
7698
7699         * restrict.ads, restrict.adb (No_Exception_Propagation_Active): New
7700         function.
7701         (Expand_Exception_Handlers): Use No_Exception_Propagation_Active.
7702         Update comments, and review all uses of No_Exception_Propagation, which
7703         are now correct and in sync with what gigi expects.
7704
7705 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7706
7707         * sem_ch3.adb (Access_Definition): If the access type is the return
7708         result of a protected function, create an itype reference for it
7709         because usage will be in an inner scope from the point of declaration.
7710         (Build_Derived_Record_Type): Inherit Reverse_Bit_Order and
7711         OK_To_Reorder_Components.
7712         (Make_Index): If an overloaded range includes a universal integer
7713         interpretation, resolve to Standard.Integer.
7714         (Analyze_Subtype_Indication): Copy Convention to subtype
7715         (Check_Abstract_Interfaces): Complete semantic checks on the legality of
7716         limited an synchronized progenitors in type declaration and private
7717         extension declarations.
7718
7719         * exp_ch13.adb (Expand_N_Freeze_Entity): If the scope of the entity is a
7720         protected subprogram body, determine proper scope from subprogram
7721         declaration.
7722
7723 2008-03-26  Robert Dewar  <dewar@adacore.com>
7724
7725         * exp_ch4.adb (Expand_N_Op_Concat): Remove special tests for
7726         No_Run_Time_Mode
7727
7728 2008-03-26  Gary Dismukes  <dismukes@adacore.com>
7729
7730         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Suppress generation
7731         of a heap allocator for a limited unconstrained function return when
7732         resstriction No_Allocators is active.
7733         (Analyze_Allocator): The restriction No_Allocators is now only checked
7734         on allocators that have Comes_From_Source set, as per RM-H.4(7).
7735
7736         * sem_ch4.adb (Expand_N_Extended_Return_Statement): Suppress generation
7737         of a heap allocator for a limited unconstrained function return when
7738         resstriction No_Allocators is active.
7739         (Analyze_Allocator): The restriction No_Allocators is now only checked
7740         on allocators that have Comes_From_Source set, as per RM-H.4(7).
7741         (Has_Fixed_Op):  If the name in a function call is Standard."*" and the
7742         operands are fixed-point types, the universal_fixed predefined operation
7743         is used, regardless of whether the operand type (s) have a primitive
7744         operation of the same name.
7745
7746 2008-03-26  Javier Miranda  <miranda@adacore.com>
7747
7748         * exp_disp.adb (Make_DT, Make_Secondary_DT): Set attribute
7749         Is_Static_Dispatch_Table
7750         (Build_Dispatch_Tables): Replace calls to Exchange_Entities() by calls
7751         to Exchange_Declarations to exchange the private and full-view. Bug
7752         found working in this issue.
7753         (Expand_Dispatching_Call): Propagate the convention of the subprogram
7754         to the subprogram pointer type.
7755         (Make_Secondary_DT): Replace generation of Prim'Address by
7756         Address (Prim'Unrestricted_Access)
7757         (Make_DT): Replace generation of Prim'Address by
7758         Address (Prim'Unrestricted_Access)
7759         (Make_Disp_*_Bodies): When compiling for a restricted profile, use
7760         simple call form for single entry.
7761         (Make_DT): Handle new contents of Access_Disp_Table (access to dispatch
7762         tables of predefined primitives).
7763         (Make_Secondary_DT): Add support to handle access to dispatch tables of
7764         predefined primitives.
7765         (Make_Tags): Add entities to Access_Dispatch_Table associated with
7766         access to dispatch tables containing predefined primitives.
7767
7768         * exp_ch6.adb (N_Pragma): Chars field removed, use Chars
7769         (Pragma_Identifier (..  instead, adjustments throughout to accomodate
7770         this change.
7771         (Register_Predefined_DT_Entry): Updated to handle the new contents
7772         of attribute Access_Disp_Table (pointers to dispatch tables containing
7773         predefined primitives).
7774
7775         * exp_util.ads, exp_util.adb (Corresponding_Runtime_Package): New
7776         subprogram.
7777         (Find_Interface_ADT): Updated to skip the new contents of attribute
7778         Access_Dispatch_Table (pointers to dispatch tables containing predefined
7779         primitives).
7780
7781         * sem_util.adb (Has_Abstract_Interfaces): Add missing support for
7782         concurrent types.
7783         (Set_Convention): Use new function Is_Access_Subprogram_Type
7784         (Collect_Interfaces_Info): Updated to skip the new contents of attribute
7785         Access_Dispatch_Table (pointers to dispatch tables containing predefined
7786         primitives).
7787
7788         * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): Improve
7789         expanded code avoiding calls to Build_Predef_Prims.
7790         (Build_Set_Predefined_Prim_Op_Address): Improve expanded code avoiding
7791         call to Build_Get_Predefined_Prim_Op_Address.
7792
7793 2008-03-26  Javier Miranda  <miranda@adacore.com>
7794
7795         * exp_ch7.adb (Make_Clean): Code cleanup using the new centralized
7796         subprogram Corresponding_Runtime_Package to know the runtime package
7797         that will provide support to a given protected type.
7798
7799         * exp_ch9.adb (Add_Private_Declarations,
7800         Build_Protected_Subprogram_Call,
7801         Build_Protected_Entry, Build_Simple_Entry_Call,
7802         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
7803         Expand_N_Timed_Entry_Call, Make_Initialize_Protection): Code
7804         cleanup using the new centralized subprogram Corresponding_Runtime
7805         Package to know the runtime package that provides support to
7806         a given protected type.
7807
7808 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7809
7810         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If the component
7811         assignment is within the initialization procedure for a packed array,
7812         and Initialize_Scalars is enabled, compile right-hand side with checks
7813         off, because the value is purposely out of range.
7814
7815 2008-03-26  Vincent Celier  <celier@adacore.com>
7816
7817         * gnatcmd.adb: Add processing for GNAT SYNC
7818
7819         * vms_conv.ads: (Command_Type): Add command Sync
7820
7821         * vms_conv.adb (Initialize): Add Command_List data for new command Sync
7822
7823         * vms_data.ads: Add entries for -gnatw.w
7824         Add qualifier for gnatstub --header-file option
7825         Add switches for GNAT SYNC
7826
7827         * prj-attr.ads, prj-attr.adb: Add new package Synchronize for GNAT SYNC
7828         (Add_Package_Name): New procedure
7829         (Package_Name_List): New function
7830         (Initialize): Add known package names to the list
7831         (Register_New_Package): Add the new package name to the list
7832
7833 2008-03-26  Robert Dewar  <dewar@adacore.com>
7834
7835         * g-pehage.adb, g-regist.adb, g-spipat.ads, g-spipat.adb,
7836         s-asthan.adb, s-parint.adb, s-rpc.adb, s-stchop.adb: Replace
7837         Raise_Exception by "raise with" construct.
7838
7839 2008-03-26  Pascal Obry  <obry@adacore.com>
7840
7841         * Makefile.in: Add proper GNAT.Serial_Communications implementation on
7842         supported platforms.
7843
7844         * Makefile.rtl: Add g-sercom.o.
7845
7846         * impunit.adb: Add g-sercom.adb.
7847
7848         * s-crtl.ads (open): New routine.
7849         (close): Likewise.
7850         (write): Likewise.
7851
7852         * s-osinte-mingw.ads (BYTE): New type.
7853         (CHAR): Likewise.
7854         (OVERLAPPED): Likewise.
7855         (GENERIC_READ): New constant.
7856         (GENERIC_WRITE): Likewise.
7857         (OPEN_EXISTING): Likewise.
7858         (PSECURITY_ATTRIBUTES): Removed this type, use anonymous access
7859         type instead.
7860         (CreateFile): New routine.
7861         (WriteFile): Likewise.
7862         (ReadFile): Likewise.
7863         (CloseHandle): Move next to the other file oriented routines.
7864
7865         * g-sercom.ads: New unit.
7866
7867         * g-sercom.adb: Default implementation, calls to this unit will raise
7868         a program error exception.
7869
7870         * g-sercom-mingw.adb, g-sercom-linux.adb: Windows and
7871         GNU/Linux implementations.
7872
7873 2008-03-26  Robert Dewar  <dewar@adacore.com>
7874
7875         * itypes.adb (Create_Itype): Use new name Access_Subprogram_Kind
7876
7877         * sem_ch13.adb (Validate_Unchecked_Conversion): Give warning for
7878         unchecked conversion for different conventions only for subprogram
7879         pointers or on VMS.
7880
7881 2008-03-26  Vincent Celier  <celier@adacore.com>
7882
7883         * osint-c.adb (Set_Library_Info_Name): Use canonical case file names
7884         to check if the specified object file is correct.
7885
7886 2008-03-26  Thomas Quinot  <quinot@adacore.com>
7887
7888         * sem_cat.adb (Validate_RACW_Primitives): Do not rely on
7889         Comes_From_Source to exclude primitives from being checked. We want to
7890         exclude predefined primitives only, so use the appropriate specific
7891         predicate. Also, flag a formal parameter of an anonymous
7892         access-to-subprogram type as illegal for a primitive operation of a
7893         remote access to class-wide type.
7894
7895 2008-03-26  Vincent Celier  <celier@adacore.com>
7896
7897         * prj-dect.adb (Parse_Package_Declaration): When a package name is not
7898         known, check if it may be a missspelling of a known package name. In
7899         not verbose, not mode, issue warnings only if the package name is a
7900         possible misspelling.
7901         In verbose mode, always issue a warning for a not known package name,
7902         plus a warning if the name is a misspelling of a known package name.
7903
7904         * prj-part.adb (Post_Parse_Context_Clause): Modify so that only non
7905         limited withs or limited withs are parse during one call.
7906         (Parse_Single_Project): Post parse context clause in two passes: non
7907         limited withs before current project and limited withs after current
7908         project.
7909
7910         * prj-proc.adb (Imported_Or_Extended_Project_From): Returns an extended
7911         project with the name With_Name, even if it is only extended indirectly.
7912         (Recursive_Process): Process projects in order: first single withs, then
7913         current project, then limited withs.
7914
7915         * prj-tree.adb (Imported_Or_Extended_Project_Of): Returns an extended
7916         project with the name With_Name, even if it is only extended indirectly.
7917
7918 2008-03-26  Robert Dewar  <dewar@adacore.com>
7919
7920         * scn.adb (Initialize_Scanner): Format messages belong on standard error
7921
7922 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7923
7924         * sem_ch10.adb (Analyze_Compilation_Unit): if a unit in the context is
7925         a generic subprogram that is imported, do not attempt to compile
7926         non-existent body.
7927
7928         * sem_ch12.adb (Instantiate_Subprogram_Body): if the generic is
7929         imported, do not generate a raise_program_error for the non-existent
7930         body.
7931         (Pre_Analyze_Actuals): If an error is detected during pre-analysis,
7932         perform minimal name resolution on the generic to avoid spurious
7933         warnings.
7934         (Find_Actual_Type): the designated type of the actual in a child unit
7935         may be declared in a parent unit without being an actual.
7936
7937 2008-03-26  Robert Dewar  <dewar@adacore.com>
7938
7939         * sem_ch11.adb: Fix No_Exception_Restriction violation for SJLJ
7940         * sinfo.ads, sinfo.adb (From_At_End): New flag
7941
7942 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7943
7944         * sem_ch6.adb (Analyze_Subprogram_Body): Remove spurious check on
7945         operations that have an interface parameter.
7946         (Analyze_Subprogram_Body): Set Is_Trivial_Subprogram flag
7947         Don't treat No_Return call as raise.
7948
7949         * sem_disp.adb (Check_Dispatching_Operations): apply check for
7950         non-primitive interface primitives to access parameters, not to all
7951         parameters of an access type.
7952
7953 2008-03-26  Ed Schonberg  <schonberg@adacore.com>
7954
7955         * sem_ch7.adb (Install_Parent_Private_Declarations): If the private
7956         declarations of a parent unit are made visible when compiling a child
7957         instance, the parent is not a hidden open scope, even though it may
7958         contain other pending instance.
7959
7960         * sem_ch8.adb (Restore_Scope_Stack): If an entry on the stack is a
7961         hidden open scope for some child instance, it does affect the
7962         visibility status of other stach entries.
7963         (Analyze_Object_Renaming): Check that a class-wide object cannot be
7964         renamed as an object of a specific type.
7965
7966 2008-03-26  Robert Dewar  <dewar@adacore.com>
7967
7968         * sem_res.adb (Check_Infinite_Recursion): Diagnose definite infinite
7969         recursion and raise SE directly.
7970         (Resolve_Actuals): Reset Never_Set_In_Source if warnings off is
7971         set for formal type for IN mode parameter.
7972
7973 2008-03-26  Robert Dewar  <dewar@adacore.com>
7974
7975         * sem_warn.ads, sem_warn.adb (Warnings_Off_Pragmas): New table
7976         (Initialize): New procedure
7977         (Output_Warnings_Off_Warnings): New procedure
7978         (Check_References): Suppress certain msgs if Is_Trivial_Subprogram
7979         (Output_Non_Modifed_In_Out_Warnings): Ditto
7980         (Warn_On_Unreferenced_Entity): Ditto
7981
7982 2008-03-26  Vincent Celier  <celier@adacore.com>
7983
7984         * a-direct.adb (Start_Search): Raise Use_Error if the directory is not
7985         readable.
7986
7987 2008-03-26  Matthew Heaney  <heaney@adacore.com>
7988
7989         * a-ciorse.ads, a-cidlli.ads, a-cdlili.ads, a-cihase.ads, a-cohase.ads,
7990         a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-coorse.ads:
7991         Marked with clauses as private, and controlled operations as overriding
7992
7993 2008-03-26  Robert Dewar  <dewar@adacore.com>
7994
7995         * g-byorma.adb (Read_BOM): Reorder tests so that UTF_32 is recognized
7996
7997 2008-03-26  Robert Dewar  <dewar@adacore.com>
7998
7999         * back_end.adb, back_end.ads: Minor reformatting
8000
8001         * bindgen.adb: Minor clarification of comments
8002
8003         * fname.ads: Minor comment fixes
8004
8005         * g-altive.ads, g-catiio.ads, g-trasym.ads, prj.ads,
8006         prj-nmsc.adb, sem_aggr.adb: Minor reformatting
8007
8008         * xeinfo.adb, xnmake.adb, xsinfo.adb, xtreeprs.adb,
8009         xsnames.adb: Remove warnings off pragma no longer needed
8010
8011         * a-catizo.ads, a-calari.ads, a-calfor.adb,
8012         a-calfor.ads: Fix header.
8013
8014 2008-03-26  Tristan Gingold  <gingold@adacore.com>
8015
8016         * init.c: Do not adjust pc for HPARITH on alpha/vms.
8017
8018 2008-03-26  Robert Dewar  <dewar@adacore.com>
8019
8020         * lib-xref.adb: (OK_To_Set_Reference): New function
8021         (Generate_Reference): Don't set referenced from occurrence in Warnings,
8022         Unmodified, or Unreferenced pragma
8023
8024 2008-03-26  Robert Dewar  <dewar@adacore.com>
8025
8026         * alloc.ads: Add entries for Warnings_Off_Pragmas table
8027
8028 2008-03-26  GNAT Script  <nobody@adacore.com>
8029
8030         * Make-lang.in: Makefile automatically updated
8031
8032 2008-03-26  Robert Dewar  <dewar@adacore.com>
8033
8034         * tbuild.ads, tbuild.adb, trans.c, sprint.adb, exp_prag.adb, decl.c,
8035         par-ch2.adb, sem_elab.adb, sem_util.ads (N_Pragma): Chars field
8036         removed, use Chars (Pragma_Identifier (..  instead, adjustments
8037         throughout to accomodate this change.
8038
8039         * s-pooglo.ads, s-pooloc.ads: Minor comment updates
8040
8041         * exp_dbug.adb: Use Sem_Util.Set_Debug_Info_Needed (not
8042         Einfo.Set_Needs_Debug_Info)
8043
8044 2008-03-26  Robert Dewar  <dewar@adacore.com>
8045
8046         * gnat_ugn.texi: Add documentation for -gnatw.w/-gnatw.W
8047         Add description for the new gnatstub option '--header-file'
8048         clarification of -gnatwz/-gnatwZ
8049         Add a "Irix-Specific Considerations" section to document the need to
8050         set LD_LIBRARY_PATH when using the default shared runtime library.
8051         Added documentation for both gcov and gprof.
8052
8053         * gnat_rm.texi: Document that pragma Compile_Time_Warning generates
8054         messages that are not suppressed when clients are compiled.
8055         Add documentation of s-pooglo s-pooloc
8056         Document the new GNAT.Serial_Communications API.
8057         Add documentation for 'Old attribute
8058         Add description of pragma Optimize_Alignment
8059
8060         * ug_words: Add entries for -gnatw.w -gnatw.W
8061
8062         * usage.adb: Add line for -gnatw.w (warn on warnings off)
8063
8064 2008-03-25  Eric Botcazou  <ebotcazou@adacore.com>
8065
8066         Revert
8067         2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8068         PR ada/35186
8069         * decl.c (maybe_pad_type): Avoid padding an integral type when
8070         bumping its alignment is sufficient.
8071
8072 2008-03-25  Arnaud Charlet  <charlet@adacore.com>
8073
8074         * exp_ch6.adb, exp_disp.adb: Update copyright notice.
8075         Fix wrong formatting (lines too long)
8076
8077 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8078
8079         * 9drpc.adb, a-caldel-vms.adb, a-caldel.adb,
8080         a-calend-vms.adb, a-calend.adb, a-calend.ads,
8081         a-calfor.adb, a-chahan.ads, a-chtgke.adb,
8082         a-cihama.ads, a-ciorse.adb, a-clrefi.ads,
8083         a-cohama.ads, a-comlin.ads, a-coorse.adb,
8084         a-crbtgk.adb, a-direct.adb, a-except-2005.adb,
8085         a-except-2005.ads, a-except.adb, a-except.ads,
8086         a-exexda.adb, a-exexpr-gcc.adb, a-exexpr.adb,
8087         a-exextr.adb, a-filico.ads, a-finali.ads,
8088         a-intnam-aix.ads, a-intnam-solaris.ads, a-ngcefu.adb,
8089         a-ngelfu.adb, a-numaux-darwin.adb, a-numeri.ads,
8090         a-sequio.ads, a-strbou.ads, a-strfix.adb,
8091         checks.adb, exp_ch3.adb, exp_ch4.adb,
8092         exp_ch4.ads, exp_ch5.adb, exp_ch6.adb,
8093         exp_ch6.ads, exp_ch7.adb, exp_ch7.ads,
8094         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb,
8095         exp_dbug.ads, exp_disp.adb, exp_dist.adb,
8096         exp_dist.ads, exp_fixd.adb, exp_fixd.ads: Fix comment typos.
8097
8098 2008-03-24  Robert Dewar  <dewar@adacore.com>
8099
8100         * s-tpopsp-posix.adb, s-tpopsp-solaris.adb, s-tpopsp-posix-foreign.adb,
8101         s-tpopsp-lynxos.adb, s-tpopde-vms.ads, s-tpopde-vms.adb,
8102         s-tpopsp-vxworks.adb, s-casi16.adb, s-caun16.adb, s-inmaop.ads,
8103         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-tpinop.adb,
8104         s-tpinop.ads, s-tporft.adb, a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb,
8105         a-crbtgk.ads, a-crbtgk.adb, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
8106         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
8107         a-cgcaso.adb, a-cgaaso.adb, a-ciormu.adb, a-cihase.adb, a-swuwha.ads,
8108         a-rbtgso.ads, a-cgaaso.ads, a-cgaaso.ads, a-ciorma.adb, a-chtgke.ads,
8109         a-chtgke.adb, a-llfzti.ads, a-ztenau.adb, a-ztenau.ads, a-stzhas.ads,
8110         a-szbzha.ads, a-szbzha.adb, a-crdlli.ads, a-crdlli.ads, a-crdlli.adb,
8111         i-forbla-darwin.adb, i-forbla.ads, s-regexp.adb, a-nllrar.ads,
8112         a-nlrear.ads, a-nucoar.ads, a-nurear.ads, i-forlap.ads, s-gearop.adb,
8113         s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, s-gecola.ads,
8114         s-gerebl.adb, s-gerela.ads, a-swuwha.adb, i-forbla-unimplemented.ads,
8115         double spaced if it fits on one line and otherwise single spaced.
8116
8117 2008-03-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8118
8119         PR documentation/15479
8120         * Make-lang.in (doc/gnat_ugn.texi) Renamed from ...
8121         (doc/gnat_ugn_unw.texi): ... this, and adjusted.
8122         (doc/gnat_ugn.info): Renamed from ...
8123         (doc/gnat_ugn_unw.info): ... this.
8124         (doc/gnat_ugn.dvi): Renamed from ...
8125         (doc/gnat_ugn_unw.dvi): ... this.
8126         (doc/gnat_ugn.pdf): Renamed from ...
8127         (doc/gnat_ugn_unw.pdf): ... this.
8128         (ADA_INFOFILES, ADA_PDFFILES, ada.install-info, ada.dvi):
8129         Adjusted.
8130         * gnat_ugn.texi (FILE): Hard-code gnat_ugn; set filename
8131         unconditionally to gnat_ugn.info.  Fix cross references to the
8132         GNAT Reference Manual.  Convert links to the GCC, GDB, Emacs,
8133         and GNU make manuals to be proper texinfo links.
8134         * gnat_rm.texi: Fix cross references to the GNAT User's Guide.
8135
8136 2008-03-21  Olivier Hainque  <hainque@adacore.com>
8137
8138         * trans.c (Attribute_to_gnu) <'length>: Compute as (hb < lb)
8139         ? 0 : hb - lb + 1 instead of max (hb - lb + 1, 0).
8140
8141 2008-03-21  Eric Botcazou  <ebotcazou@adacore.com>
8142
8143         * trans.c (addressable_p): Add notes on addressability issues.
8144
8145 2008-03-21  Olivier Hainque  <hainque@adacore.com>
8146             Ed Schonberg  <schonberg@adacore.com>
8147
8148         * trans.c (addressable_p): Accept COND_EXPR when both arms
8149         are addressable.
8150         (gnat_gimplify_expr): Let the gimplifier handle &COND_EXPR.
8151         (call_to_gnu): Do not use name reference in the error message
8152         for a misaligned by_reference_parameter. The actual may be a
8153         general expression.
8154
8155 2008-03-18  Paolo Bonzini  <bonzini@gnu.org>
8156
8157         * misc.c (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Delete.
8158
8159 2008-03-15  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8160
8161         * gnat_rm.texi (Implementation Defined Characteristics)
8162         (Wide_Text_IO, Wide_Wide_Text_IO): Add @var annotations where
8163         appropriate.
8164         * gnat_ugn.texi (Wide Character Encodings, Switches for gnatbind)
8165         (Switches for gnatchop, Installing a library): Likewise.
8166
8167 2008-03-10  Eric Botcazou  <ebotcazou@adacore.com>
8168
8169         * trans.c (emit_range_check): Do not emit the check if the base type
8170         of the expression is the type against which its range must be checked.
8171
8172 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
8173
8174         * decl.c (maybe_pad_type): Use value_factor_p.
8175
8176 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
8177
8178         * lang.opt (nostdlib): Move around.
8179         * misc.c (gnat_handle_option): Fix formatting.
8180         (gnat_dwarf_name): Move around.
8181         * trans.c (Case_Statement_to_gnu): Fix formatting.
8182         (gnat_to_gnu): Likewise.
8183         * utils.c (aggregate_type_contains_array_p): Likewise.
8184         (create_subprog_decl): Likewise.
8185
8186 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
8187
8188         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Do not
8189         bother propagating the TYPE_USER_ALIGN flag when creating a JM type.
8190
8191 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
8192
8193         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: Do not force
8194         BIGGEST_ALIGNMENT when capping the alignment of records with
8195         strict alignment and size clause.
8196
8197 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
8198
8199         * lang-specs.h: Pass -gnatwa if -Wall is passed.
8200         * misc.c (gnat_handle_option) <OPT_Wall>: Expand into -Wunused
8201         and -Wuninitialized.
8202         (gnat_post_options): Clear warn_unused_parameter.
8203
8204 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
8205
8206         * utils.c (finish_record_type): Clear DECL_BIT_FIELD on sufficiently
8207         aligned bit-fields, bumping the alignment of the record type if deemed
8208         profitable.
8209         (value_factor_p): Return false instead of 0.
8210
8211 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
8212
8213         * decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: Add support
8214         for scalar types with small alignment.
8215
8216 2008-03-08  Eric Botcazou  <ebotcazou@adacore.com>
8217
8218         * trans.c (Loop_Statement_to_gnu): Set the SLOC of the loop label
8219         from that of the front-end's end label.
8220         (gnat_gimplify_stmt) <LOOP_STMT>: Set the SLOC of the backward goto
8221         from that of the loop label.
8222
8223 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
8224
8225         * decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Add
8226         comment for the packed array type case.
8227         * utils.c (build_template): Use a loop to strip padding or
8228         containing records for justified modular types.
8229
8230 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
8231
8232         * decl.c (gnat_to_gnu_entity): Issue a warning on suspiciously
8233         large alignments specified for types.
8234         (validate_alignment): Minor cleanup.
8235
8236 2008-03-07  Eric Botcazou  <ebotcazou@adacore.com>
8237
8238         * decl.c (MAX_FIXED_MODE_SIZE): Define if not already defined.
8239         (gnat_to_gnu_entity) <E_Record_Type>: Try to get a smaller form of
8240         the component for packing, if possible, as well as if a component
8241         size clause is specified.
8242         <E_Record_Subtype>: For an array type used to implement a packed
8243         array, get the component type from the original array type.
8244         Try to get a smaller form of the component for packing, if possible,
8245         as well as if a component size clause is specified.
8246         (round_up_to_align): New function.
8247         (make_packable_type): Add in_record parameter.
8248         For a padding record, preserve the size.  If not in_record and the
8249         size is too large for an integral mode, attempt to shrink the size
8250         by lowering the alignment.
8251         Ditch the padding bits of the last component.
8252         Compute sizes and mode manually, and propagate the RM size.
8253         Return a BLKmode record type if its size has shrunk.
8254         (maybe_pad_type): Use MAX_FIXED_MODE_SIZE instead of BIGGEST_ALIGNMENT.
8255         Use Original_Array_Type to retrieve the type in case of an error.
8256         Adjust call to make_packable_type.
8257         (gnat_to_gnu_field): Likewise.
8258         (concat_id_with_name): Minor tweak.
8259         * trans.c (larger_record_type_p): New predicate.
8260         (call_to_gnu): Compute the nominal type of the object only if the
8261         parameter is by-reference.  Do the conversion actual type -> nominal
8262         type if the nominal type is a larger record.
8263         (gnat_to_gnu): Do not require integral modes on the source type to
8264         avoid the conversion for types with identical names.
8265         (addressable_p): Add gnu_type parameter.  If it is specified, do not
8266         return true if the expression is not addressable in gnu_type.
8267         Adjust recursive calls.
8268         * utils.c (finish_record_type): Remove dead code.
8269
8270 2008-03-05  Eric Botcazou  <ebotcazou@adacore.com>
8271
8272         PR ada/35186
8273         * decl.c (maybe_pad_type): Avoid padding an integral type when
8274         bumping its alignment is sufficient.
8275
8276 2008-03-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8277
8278         * gnatfind.adb, gnatxref.adb: Fix argument parsing typos.
8279         * s-auxdec-empty.adb, s-auxdec.adb: Fix typos in copyright
8280         statement.
8281         * a-ngcoar.adb, a-ngrear.adb, g-awk.adb, g-debpoo.adb,
8282         gprep.adb, make.adb, makegpr.adb, par-ch6.adb, prj-nmsc.adb,
8283         sem_attr.adb, sem_ch4.adb, sem_ch8.adb: Fix typos in ada source
8284         code output strings.
8285         * sem_type.adb, system-vms-ia64.ads, system-vms.ads,
8286         system-vms_64.ads: Fix typos in ada source code comments.
8287         * sinfo-cn.adb: Remove incomplete sentence.
8288
8289         PR documentation/15479
8290         * gnat_rm.texi, gnat_ugn.texi: Avoid standalone `non' word.
8291
8292 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
8293
8294         PR ada/22255
8295         * s-fileio.adb (Reset): Do not raise Use_Error if mode isn't changed.
8296
8297 2008-02-27  Samuel Tardieu  <sam@rfc1149.net>
8298
8299         PR ada/34799
8300         * sem_ch13.adb (Analyze_Record_Representation_Clause): Check
8301         that underlying type is present.
8302
8303 2008-02-26  Tom Tromey  <tromey@redhat.com>
8304
8305         * misc.c (internal_error_function): Remove test of
8306         USE_MAPPED_LOCATION.
8307         * trans.c (gigi): Remove test of USE_MAPPED_LOCATION.
8308         (Sloc_to_locus): Remove old location code.
8309
8310 2008-02-25  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8311
8312         * gnat_rm.texi, gnat_ugn.texi: Fix spacing after `e.g.' and
8313         `i.e.' by adding comma or `@:' as appropriate.
8314         * gnat_rm.texi (Pragma Wide_Character_Encoding): Instead of
8315         plain characters `C', use `@samp{C}'.
8316         * gnat_ugn.texi (File Naming Rules, About gnatkr)
8317         (Krunching Method): Likewise.
8318
8319         * gnat_ugn.texi (Conventions): List environment variables and
8320         metasyntactic variables.
8321         (Compiling Programs): Fix notation of metasyntactic variables.
8322         Add @file where appropriate.  Use @file for file extensions,
8323         @samp for strings.
8324         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, use @samp
8325         instead of @file, @env instead of @code.
8326
8327 2008-02-24  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8328
8329         PR documentation/15479
8330         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, replace `..'
8331         and `...' with `@dots{}' or `@enddots{}'.
8332
8333         PR documentation/15479
8334         * gnat_rm.texi, gnat_ugn.texi: Where appropriate, add @command,
8335         use @command instead of @code, @option instead of @samp or @code,
8336         @code instead of @var, @samp instead of @file.
8337
8338         PR documentation/15479
8339         * gnat_ugn.texi (Using gnatmake in a Makefile): Do not ignore errors
8340         in Makefile rules, by using `&&' rather than `;'.
8341
8342 2008-02-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
8343
8344         PR documentation/15479
8345         * gnat_ugn.texi: In non-code, avoid space before colon.
8346         (Regular Expressions in gnatfind and gnatxref): Fix indentation.
8347         (Examples of gnatxref Usage): Use @command{vi} instead of
8348         @file{vi}.
8349         (Character Set Control): Do not use @code for UTF-8.
8350         (Validity Checking): Fix typo "NaNs" instead of "NaN's".  Do not
8351         use @code for IEEE.
8352         * gnat_rm.texi (Aggregates with static bounds): Fix typo in code
8353         sample.
8354         * gnat_rm.texi, gnat_ugn.texi: Fix typos.  Bump copyright years.
8355
8356 2008-02-11  Joel Sherrill  <joel.sherrill@oarcorp.com>
8357
8358         PR ada/35143
8359         * env.c: Add __rtems__ to if defined.
8360         * s-osinte-rtems.adb: Add To_Target_Priority.  Fix formatting.
8361         * s-osinte-rtems.ads: Add To_Target_Priority prototype and
8362         PTHREAD_SCOPE_PROCESS/PTHREAD_SCOPE_SYSTEM constants.  Add
8363         pragma Convention as required.
8364         * gsocket.h: Make compile in and out of RTS.
8365         * Makefile.in: Add system-rtems.ads.  Build DEC extensions.
8366         Use g-soccon-rtems.ads.
8367         * g-soccon-rtems.ads, system-rtems.ads: New files.
8368
8369 2008-02-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8370
8371         PR other/35107
8372         * Make-lang.in (gnat1): Add $(GMPLIBS).
8373
8374 2008-01-26  Eric Botcazou  <ebotcazou@adacore.com>
8375
8376         * decl.c (components_to_record): Improve comment.
8377
8378 2008-01-22  Eric Botcazou  <ebotcazou@adacore.com>
8379
8380         * decl.c (components_to_record): Do not reuse the empty union type
8381         if there is a representation clause on the record.
8382         * trans.c (addressable_p): Return true for INTEGER_CST.
8383
8384 2008-01-21  Eric Botcazou  <ebotcazou@adacore.com>
8385
8386         * trans.c (gnat_to_gnu) <N_Free_Statement>: Use POINTER_PLUS_EXPR
8387         in pointer arithmetics.
8388         * utils2.c (build_allocator): Likewise.
8389
8390 2008-01-17  Eric Botcazou  <ebotcazou@adacore.com>
8391
8392         * utils.c (build_function_stub): Properly build the call expression.
8393
8394 2008-01-14  Eric Botcazou  <ebotcazou@adacore.com>
8395
8396         * decl.c (gnat_to_gnu_entity) <object>: Process renamings
8397         before converting the expression to the type of the object.
8398         * trans.c (maybe_stabilize_reference) <CONSTRUCTOR>: New case.
8399         Stabilize constructors for special wrapping types.
8400
8401 2008-01-13  Eric Botcazou  <ebotcazou@adacore.com>
8402
8403         * trans.c (call_to_gnu): Invoke the addressable_p predicate only
8404         when necessary.  Merge some conditional statements.  Update comments.
8405         Rename unchecked_convert_p local variable to suppress_type_conversion.
8406         Do not suppress conversions in the In case.
8407         (addressable_p) <VIEW_CONVERT_EXPR>: Do not take alignment issues
8408         into account on non strict-alignment platforms.
8409
8410 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
8411
8412         * utils.c (aggregate_type_contains_array_p): New predicate.
8413         (create_field_decl): In a packed record, force byte alignment
8414         for fields without specified position that contain an array.
8415
8416 2008-01-12  Eric Botcazou  <ebotcazou@adacore.com>
8417
8418         * utils.c (unchecked_convert): Fold the VIEW_CONVERT_EXPR expression.
8419
8420 2008-01-10  John David Anglin  <dave.anglin.@nrc-cnrc.gc.ca>
8421
8422         PR ada/34466
8423         * s-osinte-linux-hppa.ads (SC_NPROCESSORS_ONLN): New constant for
8424         sysconf call.
8425         (bit_field): New packed boolean type used by cpu_set_t.
8426         (cpu_set_t): New type corresponding to the C type with
8427         the same name. Note that on the Ada side we use a bit
8428         field array for the affinity mask. There is not need
8429         for the C macro for setting individual bit.
8430         (pthread_setaffinity_np): New imported routine.
8431
8432 2008-01-03  Tero Koskinen  <tero.koskinen@iki.fi>
8433
8434         PR ada/34647
8435         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
8436         on OpenBSD as is done on other BSD systems.
8437
8438         PR ada/34645
8439         * sysdep.c (__gnat_ttyname, getc_immediate_nowait,
8440         getc_immediate_common): Treat OpenBSD as FreeBSD regarding immediate
8441         I/O.
8442
8443         PR ada/34644
8444         * env.c (__gnat_clearenv): Treat OpenBSD as other BSD systems missing
8445         clearenv().
8446
8447         PR ada/34646
8448         * init.c (__gnat_error_handler, __gnat_install_handler,
8449         __gnat_init_float): Define for OpenBSD.
8450
8451         * initialize.c (__gnat_initialize): Define for OpenBSD.
8452
8453 2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
8454
8455         PR ada/34553
8456         * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
8457         instead of mktemp() or tmpnam() on NetBSD.
8458
8459 2007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
8460
8461         * trans.c (call_to_gnu): Make the temporary for non-addressable
8462         In parameters passed by reference.
8463         (addressable_p): Return true for STRING_CST and CALL_EXPR.
8464
8465 2007-12-19  Robert Dewar  <dewar@adacore.com>
8466
8467         * g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
8468         Add pragma Warnings (Off) for unassigned IN OUT arguments
8469
8470         * sem_warn.adb (Output_Reference): Suppress messages for internal names
8471         (Check_References): Extensive changes to tune up warnings
8472         (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
8473         (Has_Pragma_Unmodifed_Check_Spec): New function
8474         (Check_References): Implement pragma Unmodified
8475         (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
8476
8477         * par-prag.adb: Dummy entry for pragma Unmodified
8478
8479         * sem_prag.adb: Implement pragma Unmodified
8480
8481         * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
8482         (Proc_Next_Component_Or_Discriminant): Fix typo.
8483         Update comments.
8484
8485         * sem_util.adb (Note_Possible_Modification): Add processinng for pragma
8486         Unmodified.
8487         (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
8488         because the former already takes care of discarding the result.
8489         (Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
8490         Add comment.
8491
8492         * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
8493
8494 2007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
8495
8496         * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
8497         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
8498         system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
8499         system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
8500         system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8501         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
8502         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
8503         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
8504         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8505         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
8506         (Dynamic_Trampolines_Used): Delete.
8507
8508         * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
8509         Turn on stack probing mechanism on LynxOS.
8510
8511 2007-12-19  Bob Duff  <duff@adacore.com>
8512
8513         * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
8514         the resulting tail recursion by hand. This prevents running out of
8515         memory on deeply nested concatenations, since Field2 is where the left
8516         operand of concatenations is stored.
8517         Fix bug (was returning OK_Orig in some cases). Fix return subtype to
8518         clarify that it can only return OK or Abandon.
8519
8520         * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
8521         operand by iteration, in order to avoid running out of memory on
8522         deeply-nested concatenations. Use the Parent pointer to get back up the
8523         tree.
8524         (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
8525          Resolve_Op_Concat_Rest): New procedures split out of
8526         Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
8527         clearer.
8528
8529         * checks.adb (Remove_Checks): Use Traverse_Proc instead of
8530         Traverse_Func, because the former already takes care of discarding the
8531         result.
8532
8533         * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
8534         because the former already takes care of discarding the result.
8535         (Remove_Warning_Messages): Use appropriate subtype for Status and
8536         Discard
8537
8538 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
8539
8540         * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
8541         discriminants forces expansion of the aggregate into assignments.
8542         (Init_Record_Controller):  If the type of the aggregate is untagged and
8543         is not inherently limited, the record controller is not limited either.
8544
8545 2007-12-19  Robert Dewar  <dewar@adacore.com>
8546
8547         * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
8548         handling compile time known size of record or array (case of front end
8549         layout active, e.g. in GNAAMP).
8550
8551 2007-12-19  Javier Miranda  <miranda@adacore.com>
8552
8553         * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
8554         that forces the construction of static dispatch tables in case of
8555         record subtypes.
8556
8557 2007-12-19  Robert Dewar  <dewar@adacore.com>
8558
8559         * exp_ch9.adb (Null_Statements): Moved to library level
8560         (Trivial_Accept_OK): New function
8561         (Expand_Accept_Declaration): Use Trivial_Accept_OK
8562         (Expand_N_Accept_Statement): Use Trivial_Accept_OK
8563
8564 2007-12-19  Robert Dewar  <dewar@adacore.com>
8565
8566         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
8567         in complex case where array is Volatile.
8568
8569 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
8570
8571         * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
8572         properly the Ada2005 rules concerning when the current instance of a
8573         record type is aliased.
8574
8575 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
8576
8577         * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
8578         mangled declaration
8579         (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
8580         declarations.
8581         (P_Variant_Part): Cleaner patch for parenthesized discriminant
8582
8583 2007-12-19  Vincent Celier  <celier@adacore.com>
8584
8585         * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
8586         package is not known
8587
8588         * prj-attr.ads (Unknown_Package): New constant
8589         Do not crash when an unknown package is in several projects
8590
8591         * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
8592         ignored
8593
8594         * prj-nmsc.adb (Check): Remove obsolete code related to no longer
8595         existing package Language_Processing.
8596
8597 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
8598             Gary Dismukes  <dismukes@adacore.com>
8599             Samuel Tardieu  <sam@rfc1149.net>
8600
8601         PR ada/15803, ada/15805
8602         * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
8603         illegal access subtypes when there is a constrained partial view.
8604         (Check_For_Premature_Usage): New procedure inside
8605         Access_Subprogram_Declaration for checking that an access-to-subprogram
8606         type doesn't reference its own name within any formal parameters or
8607         result type (including within nested anonymous access types).
8608         (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
8609         (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
8610         context is an access_to_variable, the expression cannot be an
8611         access_to_constant.
8612
8613 2007-12-19  Bob Duff  <duff@adacore.com>
8614
8615         * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
8616         (Analyze_Concatenation): Use iteration instead of recursion in order
8617         to avoid running out of stack space for deeply nested concatenations.
8618
8619 2007-12-19  Ed Schonberg  <schonberg@adacore.com>
8620             Gary Dismukes  <dismukes@adacore.com>
8621
8622         * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
8623         whose renamed entity is a subprogram that requires overriding.
8624         (Premature_Usage): Test for the case of N_Full_Type_Declaration when
8625         issuing an error for premature usage and issue a message that says
8626         'type' rather than 'object'.
8627
8628 2007-12-19  Gary Dismukes  <dismukes@adacore.com>
8629
8630         PR ada/34149
8631         * sem_disp.adb (Check_Dispatching_Call): Augment existing test for
8632         presence of a statically tagged operand (Present (Static_Tag)) with
8633         test for Indeterm_Ancestor_Call when determining whether to propagate
8634         the static tag to tag-indeterminate operands (which forces dispatching
8635         on such calls).
8636         (Check_Controlling_Formals): Ada2005, access parameters can have
8637         defaults.
8638         (Add_Dispatching_Operation, Check_Operation_From_Private_View): do
8639         not insert subprogram in list of primitive operations if already there.
8640
8641 2007-12-19  Tristan Gingold  <gingold@adacore.com>
8642
8643         * utils.c (create_var_decl_1): call rest_of_decl_compilation only for
8644         global variable.
8645
8646 2007-12-19  Thomas Quinot  <quinot@adacore.com>
8647
8648         Part of PR ada/33688
8649         * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
8650         datagram info on Linux.
8651
8652 2007-12-19  Vincent Celier  <celier@adacore.com>
8653
8654         * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
8655         that the source path name is always found in the dependencies.
8656
8657 2007-12-19  Robert Dewar  <dewar@adacore.com>
8658
8659         * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
8660         Fix name of Wide_Wide_Latin_1/9 file names
8661         Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
8662         Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
8663         Add missing documentation for Ada.Command_Line.Response_File
8664         Update list of warning letters for Warnings pragma
8665         Add documentation for pragma Unmodified
8666
8667 2007-12-19  Samuel Tardieu  <sam@rfc1149.net>
8668
8669         * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
8670
8671 2007-12-17  Arnaud Charlet  <charlet@adacore.com>
8672
8673         * s-vxwork-alpha.ads: Removed, no longer used.
8674
8675 2007-12-15  Jakub Jelinek  <jakub@redhat.com>
8676
8677         * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
8678
8679 2007-12-13  Samuel Tardieu  <sam@rfc1149.net>
8680
8681         PR ada/34360
8682         * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
8683         mlib-tgt-specific.adb.
8684
8685 2007-12-13  Bob Duff  <duff@adacore.com>
8686
8687         * trans.c (Attribute_to_gnu): Check for violations of the
8688         No_Implicit_Dynamic_Code restriction. This checking used to be done in
8689         the front end, but is moved here so we can make it more accurate.
8690
8691 2007-12-13  Pascal Obry  <obry@adacore.com>
8692
8693         * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
8694          version is provided for older GNU/Linux distribution not
8695          supporting thread affinity sets.
8696
8697         * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
8698         call.
8699         (bit_field): New packed boolean type used by cpu_set_t.
8700         (cpu_set_t): New type corresponding to the C type with
8701         the same name. Note that on the Ada side we use a bit
8702         field array for the affinity mask. There is not need
8703         for the C macro for setting individual bit.
8704         (pthread_setaffinity_np): New imported routine.
8705
8706         * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
8707         no null.
8708         (Create_Task): Set the processor affinity mask if information
8709         is present.
8710
8711         * s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
8712
8713 2007-12-13  Robert Dewar  <dewar@adacore.com>
8714
8715         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
8716         s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
8717         s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
8718         s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
8719         s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
8720         s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
8721         s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
8722         i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
8723         for subprogram pointers.
8724
8725         * g-ctrl_c.adb: New file.
8726
8727         * g-ctrl_c.ads (Install_Handler): New body.
8728
8729         * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
8730         instead of obsolete function Is_Always_Inlined.
8731         (Freeze_Entity): check for tagged type in imported C subprogram
8732         (Freeze_Entity): check for 8-bit boolean in imported C subprogram
8733         (Freeze_Entity): check for convention Ada subprogram pointer in
8734         imported C subprogram.
8735         (Freeze_Fixed_Point_Type): In the case of a base type where the low
8736         bound would be chopped off and go from negative to zero, force
8737         Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
8738         bound) so that the size computation for the base type will take
8739         negative values into account.
8740
8741 2007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
8742             Bob Duff  <duff@adacore.com>
8743             Tristan Gingold  <gingold@adacore.com>
8744
8745         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
8746         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
8747         system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
8748         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
8749         system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
8750         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
8751         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
8752         system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
8753         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
8754         system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
8755         system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
8756         (Always_Compatible_Rep): New flag to control trampolines globally.
8757         (Dynamic_Trampolines_Used): New flag for implementing the
8758         No_Implicit_Dynamic_Code restriction more correctly (not yet used,
8759         and not yet set correctly for some targets).
8760
8761         * s-taprop-vxworks.adb: Use stack limit method of stack checking.
8762         Simply indirectly call s-stchop when a task is created.
8763
8764         * ali.ads:
8765         New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
8766         appears as an argument (entries A) in an ALI file.
8767
8768         * fe.h (Stack_Check_Limits): Declare new target parameter.
8769         (Check_Implicit_Dynamic_Code_Allowed): New procedure.
8770
8771         * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
8772         This variable is declared in C to be sure not subject to elaboration
8773         code.
8774         (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
8775         Storage_Error.
8776
8777         * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
8778         (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
8779
8780         * s-stchop.ads: Add comments.
8781
8782         * s-stchop-vxworks.adb: Package almost fully rewritten to use stack
8783         limit method of stack checking.
8784
8785         * s-stchop-limit.ads: New file.
8786
8787 2007-12-13  Robert Dewar  <dewar@adacore.com>
8788
8789         * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
8790         a-cihama.adb, g-awk.adb,
8791         s-inmaop-posix.adb: Update handling of assigned value/unreferenced
8792         warnings
8793
8794         * exp_smem.adb: Update handling of assigned value/unreferenced warnings
8795
8796         * sem.adb: Update handling of assigned value/unreferenced warnings
8797
8798         * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
8799
8800         * lib-xref.ads: Improve documentation for k xref type
8801
8802         * lib-xref.adb:
8803         Update handling of assigned value/unreferenced warnings
8804         (Generate_Reference): Warning for reference to entity for which a
8805         pragma Unreferenced has been given should be unconditional.
8806         If the entity is a discriminal, mark the original
8807         discriminant as referenced.
8808
8809         * sem_warn.ads, sem_warn.adb
8810         (Check_One_Unit): Test Renamed_In_Spec to control giving warning for
8811         no entities referenced in package
8812         (Check_One_Unit): Don't give message about no entities referenced in
8813         a package if a pragma Unreferenced has appeared.
8814         Handle new warning flag -gnatw.a/-gnatw.A
8815         Update handling of assigned value/unreferenced warnings
8816
8817         * atree.h: Add flags up to Flag247
8818         (Flag231): New macro.
8819
8820 2007-12-13  Jose Ruiz  <ruiz@adacore.com>
8821
8822         * adaint.h: (__gnat_plist_init): Not defined for RTX.
8823
8824         * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
8825         RTX systems.
8826
8827         * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
8828         (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
8829         EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
8830         GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
8831
8832         * mingw32.h:
8833         Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
8834
8835         * sysdep.c (winflush_function for RTX): Procedure that does nothing
8836         since we only have problems with Windows 95/98, which are not
8837         supported by RTX.
8838         (__gnat_ttyname): Return the empty string on Nucleus, just as
8839         done on vxworks.
8840
8841 2007-12-13  Robert Dewar  <dewar@adacore.com>
8842
8843         * a-textio.adb, a-textio.ads:
8844         Extensive changes to private part for wide character encoding
8845
8846         * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
8847         (Look_Ahead): Fix mishandling of encoded sequences
8848         Move declaration of Wch_Con to private part (should not be visible)
8849
8850         * ali.adb (Scan_ALI): Set default encoding method to brackets instead of
8851         UTF-8. Probably this is never used, but if it is, brackets is
8852         clearly correct.
8853
8854         * bindgen.adb (Get_WC_Encoding): New procedure to properly handle
8855         setting wide character encoding for no main program case and when
8856         encoding is specified using -W?
8857         Initialize stack limit of environment task if stack limit method of
8858         stack checking is enabled.
8859         (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
8860         (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
8861         (Get_Main_Unit_Name): New function.
8862         (Gen_Adainit_Ada): Add call to main program for .NET when needed.
8863         (Gen_Output_File): Set Bind_Main_Program to True for .NET
8864
8865         * bindusg.adb: Add line for -Wx switch
8866
8867         * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
8868         Add comments
8869         Add new useful constant WC_Longest_Sequences
8870
8871         * switch-b.adb: Clean up handling of -Wx switch
8872         For -gnatWx, set Wide_Character_Encoding_Method_Specified
8873
8874         * switch-c.adb: -gnatg activates warning on assertion errors
8875         For -gnatWx, set Wide_Character_Encoding_Method_Specified
8876
8877         * s-wchcon.adb: (Is_Start_Of_Encoding): New function
8878
8879 2007-12-13  Robert Dewar  <dewar@adacore.com>
8880             Ed Schonberg  <schonberg@adacore.com>
8881
8882         * a-ngcoty.adb: New pragma Fast_Math
8883
8884         * opt.adb: New pragma Fast_Math
8885
8886         * par-prag.adb:
8887         Add Implemented_By_Entry to the list of pragmas which do not require any
8888         special processing.
8889         (Favor_Top_Level): New pragma.
8890         New pragma Fast_Math
8891
8892         * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
8893         (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
8894         Expand_Allocator_Expression): Take into account VM_Target
8895         (Expand_Attribute, case 'Identity):  Handle properly the case where
8896         the prefix is a task interface.
8897         New pragma Fast_Math
8898
8899         * par.adb (Next_Token_Is): New function
8900         (P_Pragma): Add Skipping parameter
8901         (U_Left_Paren): New procedure
8902         (U_Right_Paren): New procedure
8903         New pragma Fast_Math
8904
8905         * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
8906         subunit
8907         New pragma Fast_Math
8908
8909         * sem_prag.adb: Add significance value to table Sig_Flag for pragma
8910         Implemented_By_Entry.
8911         (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
8912         (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
8913         items, since it can apply to more than one overloadable entity. Set
8914         new flag Has_Pragma_Inline_Always for Inline_Always case.
8915         (Analyze_Pragma, case Complex_Representation): Improve error message.
8916         (Analyze_Pragma, case Assert): When assertions are disabled build the
8917         rewritten code with Sloc of expression rather than pragma, so new
8918         warning about failing is not deleted.
8919         (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
8920         protected types and update error message to reflect that. Test whether
8921         the protected type is allowed for the pragma (an error is issued if the
8922         type has any entries, or components that do not have preelaborable
8923         initialization).
8924         New pragma Fast_Math
8925         (Analyze_Pragma, case No_Return): Handle generic instance
8926
8927         * snames.h, snames.ads, snames.adb:
8928         Add new predefined name for interface primitive _Disp_Requeue.
8929         New pragma Fast_Math
8930
8931         * a-tags.ads, a-tags.adb: New calling sequence for
8932         String_To_Wide_[Wide_]String
8933         (Secondary_Tag): New subprogram.
8934
8935         * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
8936         from Exp_Attr
8937         New calling sequence for String_To_Wide_[Wide_]String
8938         (Expand_Image_Attribute): Major rewrite. New calling sequence avoids
8939         the use of the secondary stack for image routines.
8940
8941         * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
8942         calling sequence for String_To_Wide_[Wide_]String
8943
8944         * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
8945         Ada 95 mode
8946         (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
8947         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8948
8949         * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
8950         (P_Formal_Part): Use Skipping parameter in P_Pragma call
8951         to improve error recovery
8952
8953         * par-util.adb (Next_Token_Is): New function
8954         (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
8955
8956         * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
8957         semicolon if missing
8958         (P_Pragma): Implement new Skipping parameter
8959         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8960         Fix location of flag for unrecognized pragma message
8961
8962         * par-tchk.adb (U_Left_Paren): New procedure
8963         (U_Right_Paren): New procedure
8964
8965 2007-12-13  Geert Bosch  <bosch@adacore.com>
8966
8967         * a-tifiio.adb:
8968         (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
8969         the second or later Scaled_Divide would omit leading zeroes,
8970         resulting in too few digits produced and a Layout_Error as result.
8971         (Put): Initialize Pos.
8972
8973 2007-12-13  Robert Dewar  <dewar@adacore.com>
8974
8975         atree.ads, atree.adb (Flag231..Flag247): New functions
8976         (Set_Flag231..Set_Flag247): New procedures
8977         (Basic_Set_Convention): Rename Set_Convention to be
8978         Basic_Set_Convention
8979         (Nkind_In): New functions
8980         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8981
8982         * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
8983         instead
8984          of obsolete function Is_Always_Inlined
8985         (Register_Predefined_DT_Entry): Initialize slots of the second
8986         secondary dispatch table.
8987         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8988         (Expand_N_Function_Call): Remove special provision for stack checking.
8989
8990         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
8991         Include _Disp_Requeue in the list of predefined operations.
8992         (Find_Interface_ADT): Modified to fulfill the new specification.
8993         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8994
8995         * par-ch4.adb, nlists.ads, nlists.adb:
8996         Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
8997
8998         * sinfo.ads, sinfo.adb: (Nkind_In): New functions
8999         Fix location of flag for unrecognized pragma message
9000
9001         * sem_ch7.adb: Use Nkind_In
9002
9003 2007-12-13  Vincent Celier  <celier@adacore.com>
9004
9005         * opt.ads:
9006         Indicate what flags are used by the Project Manager, gprbuild and
9007         gprclean.
9008         (Opt.Follow_Links_For_Dirs): New flag
9009         (Warn_On_Assertion_Failure): New flag
9010         (Wide_Character_Encoding_Method_Specified): New flag
9011         (Suppress_All_Inlining): New switch set by -fno-inline
9012         (Real_VMS_Target): New flag
9013         New pragma Fast_Math
9014
9015 2007-12-13  Robert Dewar  <dewar@adacore.com>
9016
9017         * back_end.adb: Recognize -fno-inline
9018
9019 2007-12-13  Robert Dewar  <dewar@adacore.com>
9020
9021         * checks.adb: Fix optimization problem with short-circuited form
9022
9023 2007-12-13  Bob Duff  <duff@adacore.com>
9024
9025         * clean.adb (Usage): Add line for -aP
9026         (Check_Version_And_Help): Change Check_Version_And_Help to be generic,
9027         with a parameter "procedure Usage", instead of passing a pointer to a
9028         procedure. This is to eliminate trampolines (since the Usage procedure
9029         is often nested in a main procedure, and it would be inconvenient to
9030         unnest it).
9031
9032         * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
9033         to be generic, with a parameter "procedure Callback (...)", instead of
9034         passing a pointer to a procedure. This is to eliminate trampolines
9035         (since the Callback procedure is usually nested).
9036
9037         * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
9038         gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
9039         (Check_Version_And_Help): Change Check_Version_And_Help to be generic.
9040
9041         * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
9042         Use the generic Heap_Sort_G instead of Heap_Sort_A.
9043
9044 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
9045
9046         * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
9047         (Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
9048         (Write_Entry_Flags): Add an entry for Implemented_By_Entry.
9049         (Renamed_In_Spec): New flag
9050         (Has_Pragma_Inline_Always): New flag
9051         Add missing doc for pragma Obsolescent_Warning
9052         Add missing doc for 17 additional unused flags (230-247)
9053         (Is_Derived_Type): Remove condition "not Is_Generic_Type".
9054         Alphabetize with clauses.
9055         Separate Is_Thunk and Has_Thunks flags
9056         (Write_Entity_Flags): Add forgotten entry for Has_Thunks
9057         (Related_Interface): Renamed to Related_Type.
9058         (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
9059         (Set_Is_Flag): Restrict the assertion.
9060
9061 2007-12-13  Vincent Celier  <celier@adacore.com>
9062
9063         * errout.adb (Output_Source_Line): Do not keep a trailing space after
9064         the source line number if the source line is empty.
9065
9066 2007-12-13  Geert Bosch  <bosch@adacore.com>
9067
9068         * eval_fat.adb (Decompose_Int): Handle argument of zero.
9069         (Compose): Remove special casing of zero.
9070         (Exponent): Likewise.
9071         (Fraction): Likewise.
9072         (Machine): Likewise.
9073         (Decompose): Update comment.
9074
9075 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
9076
9077         * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
9078         limited ancestor part, initialize controllers of enclosing record
9079         before expanding ancestor aggregate.
9080         (Gen_Assign): If a component of the aggregate is box-initialized, add
9081         code to call Initialize if the component is controlled, and explicit
9082         assignment of null if the component is an access type.
9083
9084         Handle properly aggregates for limited types that appear in object
9085         declarations when the aggregate contains controlled values such as
9086         protected types.
9087         When expanding limited aggregates into individual components, do not
9088         call Adjust on controlled components that are limited.
9089
9090 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
9091
9092         * expander.adb: Take into account N_Subprogram_Renaming_Declaration
9093
9094 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
9095
9096         * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
9097         predefined primitive _Disp_Requeue.
9098         (Make_Predefined_Primitive_Specs): Create the spec for predefined
9099         primitive _Disp_Requeue.
9100         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
9101         type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
9102         (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
9103         an interface type. In case of limited interfaces we now declare all the
9104         predefined primitives associated with synchronized interfaces as
9105         abstract.
9106         (Predef_Spec_Or_Body): For interface types generate abstract subprogram
9107         declarations.
9108         (Predefined_Primitive_Bodies): Add body of "=" if the parent of the
9109         tagged type is an interface type and there is no user-defined equality
9110         function.
9111         Add also bodies of predefined primitives associated with synchronized
9112         interfaces.
9113         (Freeze_Record_Type): Do not build bodies of predefined primitives of
9114         interface types because they are now defined abstract.
9115         Add missing documentation.
9116         (Expand_Record_Controller): Update occurrence of Related_Interface
9117         to Related_Type.
9118         (Build_Offset_To_Top_Functions): Do nothing in case of VM.
9119         (Expand_N_Object_Declaration): Take into account VM_Target when handling
9120         class wide interface object declaration.
9121         (Expand_Previous_Access_Type): Do not create a duplicate master entity
9122         if the access type already has one.
9123         (Expand_N_Object_Declaration): Defend against attempt to validity check
9124         generic types. Noticed for -gnatVcf specified with previous errors.
9125
9126 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
9127
9128         * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
9129         Expand_Allocator_Expression): Take into account VM_Target
9130
9131         * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
9132         secondary stack when VM_Target /= No_VM
9133
9134 2007-12-13  Javier Miranda  <miranda@adacore.com>
9135             Ed Schonberg  <schonberg@adacore.com>
9136
9137         * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
9138         Is_Complation_Unit by Is_Library_Level_Entity in the code
9139         that decides if the static dispatch tables need to be built.
9140         (Wrap_Transient_Declaration): Do not generate a finalization call if
9141         this is a renaming declaration and the renamed object is a component
9142         of a controlled type.
9143
9144 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
9145
9146         * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
9147         In the case where the renamed subprogram is a dereference, call
9148         Force_Evaluation on the prefix.
9149
9150 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
9151             Ed Schonberg  <schonberg@adacore.com>
9152
9153         * exp_ch9.adb (Expand_N_Asynchronous_Select,
9154         Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
9155         comment reformatting.
9156         (Set_Privals): Inherit aliased flag from formal. From code reading.
9157         (Build_Simple_Entry_Call): Out parameters of an access type are passed
9158         by copy and initialized from the actual. This includes entry parameters.
9159         (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
9160         and Ada 2005 models of requeue.
9161         (Null_Statements): Still connsider do-end block null if it contains
9162         Unreferenced and Warnings pragmas.
9163         (Expand_N_Accept_Statement): Do not optimize away null do end if
9164         dispatching policy is other than defaulted.
9165         (Expand_N_Timed_Entry_Call): When the triggering statement is a
9166         dispatching call, manually analyze the delay statement.
9167         (Find_Parameter_Type): Move subprogram to Sem_Util.
9168
9169 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
9170             Javier Miranda  <miranda@adacore.com>
9171
9172         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
9173         _Disp_Requeue occupies dispatch table slot number 15. Move
9174         _Disp_Timed_Select to slot 16.
9175         (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
9176         generate the spec and body of _Disp_Reqeueue.
9177         (Make_DT): Build and initialize the second dispatch table.
9178         Handle initialization of RC_Offset when the parent
9179         is a private type with variable size components.
9180         (Make_Secondary_DT): Complete documentation. Add support to
9181         initialize the second dispatch table.
9182         (Make_Tags): Generate the tag of the second dispatch table.
9183         (Register_Primitive): Add support to register primitives in the
9184         second dispatch table.
9185
9186 2007-12-13  Pascal Obry  <obry@adacore.com>
9187
9188         * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
9189         Windows. This signal is used by gnatmake to kill child processes for
9190         example.
9191
9192 2007-12-13  Javier Miranda  <miranda@adacore.com>
9193
9194         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
9195         support for generic dispatching constructor calls in which we need to
9196         locate the tag of a secondary dispatch table associated with an
9197         interface type to properly dispatch the call.
9198         (Expand_N_Attribute_Reference [case Address],
9199         Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
9200         handling of VM targets.
9201
9202 2007-12-13  Robert Dewar  <dewar@adacore.com>
9203             Ed Schonberg  <schonberg@adacore.com>
9204
9205         * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
9206         assert fail
9207
9208         * ug_words: Add entries for -gnatw.a -gnatw.A
9209
9210         * sem_res.adb (Set_String_Literal_Subtype): If the context of the
9211         literal is a subtype with non-static constraints, use the base type of
9212         the context as the base of the string subtype, to prevent type
9213         mismatches in gigi.
9214         (Resolve_Actuals): If the actual is an entity name, generate a
9215         reference before the actual is resolved and expanded, to prevent
9216         spurious warnings on formals of enclosing protected operations.
9217         (Analyze_Overloaded_Selected_Component): If type of prefix if
9218         class-wide, use visible components of base type.
9219         (Resolve_Selected_Component): Ditto.
9220         (Resolve_Short_Circuit): Detect case of pragma Assert argument
9221         evaluating to False, and issue warning message.
9222
9223         * usage.adb: Add lines for -gnatw.a and -gnatw.A
9224
9225 2007-12-13  Emmanuel Briot  <briot@adacore.com>
9226
9227         * g-calend.ads (No_Time): New constant, to represent an uninitialized
9228         time value
9229
9230         * g-catiio.ads, g-catiio.adb (Value): Added support for more date
9231         formats.
9232         (Month_Name_To_Number): New subprogram
9233
9234         * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
9235         letter to upper-case.
9236
9237 2007-12-13  Robert Dewar  <dewar@adacore.com>
9238             Ed Schonberg  <schonberg@adacore.com>
9239
9240         * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
9241
9242         * layout.adb (Resolve_Attribute, case 'Access): If designated type of
9243         context is a limited view, use non-limited view when available. If the
9244         non-limited view is an unconstrained array, this enforces consistency
9245         requirements in 3.10.2 (27).
9246         (Layout_Type): For an access type whose designated type is a limited
9247         view, examine its declaration to determine if it is an unconstrained
9248         array, and size the access type accordingly.
9249         (Layout_Type): Do not force 32-bits for convention c subprogram
9250         pointers in -gnatdm mode, only if real vms target.
9251
9252         * sem_attr.adb (Analyze_Access_Attribute): Use new flag
9253         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
9254         (Analyze_Access_Attribute,Attribute_Address): Remove checks for
9255         violations of the No_Implicit_Dynamic_Code restriction.
9256         (Resolve_Attribute, case 'Access): If designated type of context is a
9257         limited view, use non-limited view when available. If the non-limited
9258         view is an unconstrained array, this enforces consistency requirements
9259         in 3.10.2 (27).
9260         (Layout_Type): For an access type whose designated type is a limited
9261         view, examine its declaration to determine if it is an unconstrained
9262         array, and size the access type accordingly.
9263
9264 2007-12-13  Vincent Celier  <celier@adacore.com>
9265
9266         * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
9267         object directory of main project does not exist.
9268         On VMS, correctly set then environment variable for the source
9269         directories.
9270
9271 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
9272
9273         * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
9274         set to True this procedure will create the value of type REG_EXPAND_SZ.
9275         It was only possible to create REG_SZ values before.
9276
9277 2007-12-13  Robert Dewar  <dewar@adacore.com>
9278
9279         * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
9280         g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
9281         namet-sp.adb, namet-sp.ads: New files.
9282
9283         * g-speche.adb: Use generic routine in g-spchge
9284
9285         * s-wchcnv.ads, s-wchcnv.adb:
9286         Minor code cleanup (make formal type consistent with spec)
9287
9288         * namet.adb: Update comments.
9289
9290         * par-endh.adb (Evaluate_End_Entry): Use new
9291         Namet.Sp.Is_Bad_Spelling_Of function
9292
9293         * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
9294
9295         * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
9296         ancestor is an access type initialized with a box, set its type
9297         explicitly, for use in subsequent expansion.
9298         (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
9299         function
9300
9301 2007-12-13  Robert Dewar  <dewar@adacore.com>
9302
9303         * g-spipat.adb (Break): Fix accessibility error (vsn taking not null
9304         access Vstring)
9305
9306 2007-12-13  Robert Dewar  <dewar@adacore.com>
9307
9308         * inline.adb (Back_End_Cannot_Inline): Use new flag
9309         Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
9310
9311         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
9312         Has_Pragma_Inline_Always instead.
9313         of obsolete function Is_Always_Inlined
9314         (Build_Body_To_Inline): Same change
9315         (Cannot_Inline): Same change
9316         Do not give warning on exception raise in No_Return function
9317
9318         * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
9319         component has two inconsistent component clauses in the same record
9320         representation clause, favor the message that complains about
9321         duplication rather than inconsistency.
9322         Update comments.
9323         (Record_Representation_Clause): Do not warn on missing component
9324         clauses for inherited components of a type extension.
9325         (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
9326         an overloadable item if it is a pragma that can apply to multiple
9327         overloadable entities (e.g. Inline) because a pragma cannot be on
9328         more than one chain at a time.
9329         (Validate_Unchecked_Conversion): Add code to warn on unchecked
9330         conversion where one of the operands is Ada.Calendar.Time.
9331         (Analyze_Attribute_Definition_Clause): Fix typo in error message.
9332         For now, ignore Component_Size clause on VM targets, as done for
9333         pragma Pack.
9334
9335 2007-12-13  Emmanuel Briot  <briot@adacore.com>
9336             Vincent Celier  <celier@adacore.com>
9337
9338         * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
9339         string
9340         (Must_Check_Configuration, Default_Language_Is_Ada): new flags in
9341         prj.ads
9342         (Hash): Move instantiation of System.HTable.Hash from spec to body
9343         (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
9344         systems, since we do not need to recompute the Name_Id for the canonical
9345         file name.
9346         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
9347         as a parameter. This parameter is in fact always "ada" in all calls, and
9348         we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
9349         while loading a project with 40000 files
9350
9351         * prj-attr.adb: Fix name of attribute Dependency_Driver
9352         Change the kind of indexing for attribute Root
9353
9354         * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
9355         variables already declared, in case constructions.
9356
9357         * prj-env.adb (Initialize): Reset Current_Source_Path_File and
9358         Current_Object_Path_File to No_Path.
9359
9360         * prj-ext.adb (Initialize_Project_Path): In multi language mode, use
9361         ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
9362
9363         * prj-makr.adb: new parameter Current_Dir
9364
9365         * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
9366         Ada sources when language is not Ada.
9367         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
9368         (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
9369         (Must_Check_Configuration, Default_Language_Is_Ada): new flags.
9370         (Locate_Directory): Always resolve links when computing Canonical_Path
9371         (Look_For_Sources): Make sure that Name_Buffer contains the file name
9372         in Source_Files before checking for the presence of a directory
9373         separator.
9374         Optimize calls to Name_Find when on case sensitive systems.
9375         (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
9376         as a parameter.
9377         (Prj.Nmsc.Check): new parameter Current_Dir
9378         (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
9379         cannot be empty and the spec suffix cannot be the same as the body or
9380         separate suffix.
9381         (Get_Unit): When a file name can be of several unit kinds (spec, body or
9382         subunit), always consider the longest suffix.
9383         (Check_Configuration): Do not issue an error if there is no compiler
9384         for a language. Just issue a warning and ignore the sources for the
9385         language.
9386         (Check_Library_Attributes): Only check Library_Dir if Library_Name is
9387         not empty.
9388         (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
9389         (Unit_Exceptions): New hash table
9390         (Check_Naming_Schemes): Check if a file that could be a unit because of
9391         the naming scheme is not in fact a source because there is an exception
9392         for the unit.
9393         (Look_For_Sources): Put the unit exceptions in hash table
9394         Unit_Exceptions
9395         (Get_Unit_Exceptions): Give initial value No_Source to local variable
9396         Other_Part to avoid exception when code is compiled with validity
9397         checking.
9398         (Get_Sources_From_File): Check that there is no directory information
9399         in the file names.
9400         (Look_For_Sources): Check that there is no directory information in the
9401         list of file names in Source_Files.
9402         (Look_For_Sources): In multi-language mode, do not allow exception file
9403         names that are excluded.
9404         (Excluded_Sources_Htable): New hash table
9405         (Search_Directories.Check_File): New procedure to simplify
9406         Search_Directories.
9407         (Search_Directories): Do not consider excluded sources
9408         (Look_For_Sources): Populate Excluded_Sources_Htable before calling
9409         Search_Directories.
9410         (Get_Exceptions): Set component Lang_Kind of Source_Data
9411         (Get_Unit_Exceptions): Ditto
9412         (Search_Directories): Ditto
9413
9414         * prj-pars.adb: new parameter Current_Dir
9415
9416         * prj-part.ads, prj-part.adb:
9417         Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
9418         (Opt.Follow_Links_For_Dirs): New flag
9419         (Project_Path_Name_Of): Cache information returned by this routine as
9420         Locate_Regular_File is a costly routine. The code to output a log
9421         information and the effective call to Locate_Regular_File is now
9422         factorized into a routine (code clean-up).
9423         (Parse, Parse_Single_Project): new parameter Current_Dir
9424         When main project file cannot be found, indicate in the error
9425         message the project path that was used to do the search.
9426
9427         * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
9428         (Prj.Proc.Process*): new parameter Current_Dir
9429
9430         * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
9431
9432 2007-12-13  Bob Duff  <duff@adacore.com>
9433
9434         * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
9435         procedure to be called from the back end to check the
9436         No_Implicit_Dynamic_Code restriction.
9437
9438 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
9439
9440         * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
9441         Fixes another case where RTE_Available_Call was ignored instead of being
9442         taken into account.
9443         (Load_Fail): Ditto.
9444
9445         * rtsfind.ads: Add new entries.
9446
9447 2007-12-13  Robert Dewar  <dewar@adacore.com>
9448
9449         * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
9450         g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
9451
9452         * scn.adb: Implement BOM recognition
9453
9454 2007-12-13  Thomas Quinot  <quinot@adacore.com>
9455             Ed Schonberg  <schonberg@adacore.com>
9456
9457         * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
9458         subprogram body that acts as its own spec may not have a non-private
9459         WITH clause on a private sibling.
9460         (Build_Unit_Name): If the parent unit in the name in a with_clause on a
9461         child unit is a renaming, create an implicit with_clause on that
9462         parent, and not on the unit it renames, to prevent visibility errors
9463         in the current unit.
9464
9465 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
9466
9467         * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
9468         renaming declaration, use the Slocs of the formal parameters from the
9469         declaration of the formal subprogram when creating the formal parameter
9470         entities in the renaming declaration.
9471         (Analyze_Formal_Type_Declaration): Change the placement of the error
9472         message concerning illegal known discriminants. It is now posted on the
9473         type rather than on the first discriminant. This change ensures early
9474         error report.
9475         (Freeze_Subprogram_Body): If the generic subprogram is nested within
9476         the package body that contains the instance, do not generate an
9477         out-of-place freeze node for the enclosing package.
9478         (Collect_Previous_Instantiations): Ignore internal instantiations
9479         generated for formal packages.
9480         (Validate_Derived_Type_Instance): Add a check that when a formal
9481         derived type is Known_To_Have_Preelab_Init then the actual type must
9482         have preelaborable initialization, and issue an error when this
9483         condition is violated.
9484
9485 2007-12-13  Robert Dewar  <dewar@adacore.com>
9486
9487         * s-imenne.adb, s-imenne.ads: New files.
9488
9489         * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
9490         s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
9491         s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
9492         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
9493         s-imgwch.ads: New calling sequence for Image routines to avoid sec
9494         stack usage.
9495
9496 2007-12-13  Javier Miranda  <miranda@adacore.com>
9497             Ed Schonberg  <schonberg@adacore.com>
9498
9499         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
9500         generation of spurious error if parent is an interface type; caused
9501         because predefined primitive bodies will be generated later by
9502         Freeze_Record_Type.
9503         (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
9504         flag.
9505         (Derive_Subprograms): Handle derivations of predefined primitives
9506         after all the user-defined primitives to ensure that they are
9507         found in proper order in instantiations.
9508         (Add_Interface_Tag_Components, Inherit_Components): Update occurrences
9509         of Related_Interface to Related_Type.
9510         (Record_Type_Declaration): Minor reordering of calls to decorate the
9511         Tag component because the entity must have set its Ekind attribute
9512         before setting its Is_Tag attribute.
9513         (Analyze_Subtype_Declaration): In the case of subtypes with
9514         Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
9515
9516 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
9517             Ed Schonberg  <schonberg@adacore.com>
9518
9519         * sem_ch4.adb (Analyze_Selected_Component): Include the requeue
9520         statement to the list of contexts where a selected component with a
9521         concurrent tagged type prefix should yield a primitive operation.
9522         (Find_Primitive_Operation): Handle case of class-wide types.
9523         (Analyze_Overloaded_Selected_Component): If type of prefix is
9524         class-wide, use visible components of base type.
9525         (Resolve_Selected_Component): Ditto.
9526         (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
9527         formal of a generic subprogram. find candidate interpretations by
9528         scanning the list of generic formal declarations.:
9529         (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
9530         type from a limited_with_clause, and the full view is available, use it
9531         for subsequent semantic checks.
9532         (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
9533         (Find_Primitive_Operation): New function.
9534         (Analyze_Overloaded_Selected_Component): insert explicit dereference
9535         only once if several interpretations of the prefix yield an access type.
9536         (Try_Object_Operation): Code and comment cleanup.
9537         (Analyze_Selected_Component): Reorder local variables. Minot comment and
9538         code reformatting. When the type of the prefix is tagged concurrent, a
9539         correct interpretation might be available in the primitive and
9540         class-wide operations of the type.
9541
9542 2007-12-13  Robert Dewar  <dewar@adacore.com>
9543             Ed Schonberg  <schonberg@adacore.com>
9544
9545         * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
9546         renaming entry as subprogram using rename-as-body if subprogram spec
9547         frozen.
9548         (Use_One_Type): The clause is legal on an access type whose designated
9549         type has a limited view.
9550         (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
9551         (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
9552         (Analyze_Renamed_Primitive_Operation): new procedure to determine the
9553         operation denoted by a selected component.
9554         (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
9555         it can be an expression, possibly overloaded, that returns a task or
9556         an access to one.
9557
9558 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
9559             Gary Dismukes  <dismukes@adacore.com>
9560
9561         * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
9562         requeue statement is dispatching. Do not emit an error when the name is
9563         not an entry and the context is a dispatching select. Add code to
9564         perform subtype conformance between the formals of the current entry
9565         and those of the target interface primitive.
9566         (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
9567         Timed_Entry_Call): Analyze the triggering statement as the first step of
9568         the processing. If this is a dispatching select, postpone the analysis
9569         of all select statements until the Expander transforms the select. This
9570         approach avoids generating duplicate identifiers after the Expander has
9571         replicated some of the select statements. In case the Expander is
9572         disabled, perform regular analysis.
9573         (Check_Triggering_Statement): New routine.
9574         (Analyze_Requeue): Exclude any interpretations that are not entries when
9575         checking overloaded names in a requeue. Also test type conformance for
9576         matching interpretations rather than requiring subtype conformance at
9577         that point to conform with the RM's resolution rule for requeues.
9578
9579 2007-12-13  Ed Schonberg  <schonberg@adacore.com>
9580
9581         * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
9582         inherited operation is a defaulted tag-indeterminate call, and there is
9583         a statically tagged actual, use the static tag as a controlling actual
9584         for the defaulted actual.
9585
9586 2007-12-13  Geert Bosch  <bosch@adacore.com>
9587
9588         * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
9589         context, so do not call Check_Non_Static_Context.
9590
9591 2007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
9592
9593         * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
9594         whether formal E is an entity which may have parameters.
9595
9596 2007-12-13  Bob Duff  <duff@adacore.com>
9597             Javier Miranda  <miranda@adacore.com>
9598             Robert Dewar  <dewar@adacore.com>
9599
9600         * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
9601         (Set_Convention): New procedure to set the Convention flag, and in
9602         addition make sure the Favor_Top_Level flag is kept in sync (all
9603         foreign-language conventions require Favor_Top_Level = True).
9604         (Collect_Abstract_Interfaces): Update occurrences of Related_Interface
9605         to Related_Type.
9606         (Collect_Interfaces_Info): Minor update to handle the two secondary
9607         dispatch tables. Update occurrence of Related_Interface to Related_Type.
9608         (Generate_Parent_Ref): Add parameter to specify entity to check
9609         (Is_Preelaborable_Expression): Allow the name of a discriminant to
9610         initialize a component of a type with preelaborable initialization.
9611         This includes the case of a discriminal used in such a context.
9612         (Is_Dependent_Component_Of_Mutable_Object): Take into account the
9613         latest Ada 2005 rules about renaming and 'Access of
9614         discriminant-dependent components.
9615         (Check_Nested_Access): Add handling when there are no enclosing
9616         subprograms (e.g. case of a package body).
9617         (Find_Parameter_Type): Factor routine from several other compiler files.
9618         Remove routine from Find_Overridden_Synchronized_Primitive.
9619
9620 2007-12-13  Thomas Quinot  <quinot@adacore.com>
9621
9622         * sinput.adb (Get_Source_File_Index): Add assertion to guard against
9623         an invalid access to an uninitialized slot in the
9624         Source_File_Index_Table.
9625
9626 2007-12-13  Thomas Quinot  <quinot@adacore.com>
9627
9628         * sinput-l.adb (Load_File): Disable style checks when preprocessing.
9629
9630 2007-12-13  Bob Duff  <duff@adacore.com>
9631
9632         * s-soflin.ads: Apply new pragma Favor_Top_Level to all
9633         access-to-subprogram types in this package.
9634
9635 2007-12-13  Olivier Hainque  <hainque@adacore.com>
9636
9637         * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
9638         with Stack_Grows_Down in System.Parameters. Rename Array_Address into
9639         Stack_Overlay_Address and document that we are using an internal
9640         abstraction.
9641         (Byte_Size, Unsigned_32_Size): Remove, now useless.
9642         (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
9643         consistently throughout the various implementation pieces.
9644
9645         * s-stausa.adb (Stack_Slots): New type, abstraction for the stack
9646         overlay we are using to fill the stack area with patterns.
9647         (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
9648         (Push_Index_Step_For, Pop_Index_Step_For): Likewise.
9649         (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
9650
9651 2007-12-13  Robert Dewar  <dewar@adacore.com>
9652
9653         * s-stoele.adb ("mod"): mod negative value raises Constraint_Error
9654
9655 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
9656
9657         * s-tassta.adb:
9658         (Create_Task): Take into account tasks created by foreign threads.
9659         Code clean up: use constants instead of hard coded values.
9660
9661 2007-12-13  Robert Dewar  <dewar@adacore.com>
9662
9663         * styleg.adb (Check_Comment): More liberal rules for comment placement
9664
9665 2007-12-13  Olivier Hainque  <hainque@adacore.com>
9666
9667         * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
9668         of Procedure Value instead of Frame Pointer as the invocation
9669         identifier associated with the instruction pointer in each traceback
9670         entry.
9671
9672         * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
9673         TB_Entry_For): Revert back to use of Procedure Value instead of Frame
9674         Pointer as the invocation identifier passed to tbk$symbolize.
9675
9676         * s-traent-vms.ads, s-traent-vms.adb
9677         (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
9678         Procedure Value instead of Frame Pointer as the invocation identifier
9679         passed to tbk$symbolize.
9680
9681 2007-12-13  Robert Dewar  <dewar@adacore.com>
9682
9683         * tbuild.ads, tbuild.adb:
9684         Fix location of flag for unrecognized pragma message
9685
9686 2007-12-13  Robert Dewar  <dewar@adacore.com>
9687
9688         * treepr.ads, treepr.adb: (pl): implement use of positive value
9689         shorthands
9690
9691 2007-12-13  Robert Dewar  <dewar@adacore.com>
9692
9693         * xeinfo.adb: Remove warnings
9694         * xnmake.adb: Remove warnings
9695         * xsinfo.adb: Remove warnings
9696         * xtreeprs.adb: Remove warnings
9697         * xsnames.adb: Remove warnings
9698
9699         * a-ngcoar.adb: Fix typo.
9700         * s-interr.adb: Minor reformatting
9701         * env.c: Minor reformatting.
9702         * g-bytswa.adb: Minor reformatting.
9703         * g-rannum.ads: Minor documentation improvements
9704         * s-tasinf-mingw.adb: Minor header fix
9705         * a-clrefi.adb: Minor reformatting
9706         * g-sttsne.ads: Minor documentation improvement
9707         * g-sttsne-locking.ads: Minor documentation improvement
9708         * g-soliop-solaris.ads: Minor documentation improvement
9709         * g-soliop-mingw.ads: Minor documentation improvement
9710         * g-soliop.ads: Minor documentation improvement
9711         * exp_aggr.ads: Minor reformatting
9712         * debug.adb: Add documentation for the gprbuild debug flags
9713         * exp_ch2.adb: Use Nkind_In to simplify code throughout
9714         * exp_pakd.adb: Minor reformatting
9715
9716         * g-altive.ads, g-alleve.adb: Remove assertions.
9717         Add comment about minor differences between targets regarding
9718         floating-point operations.
9719
9720         * g-thread.adb: Remove pragma unreferenced.
9721         * lib.ads: Minor reformatting
9722         * par-ch9.adb: Minor reformatting of error messages
9723         * sem_case.adb: Minor reformatting
9724         * s-fileio.adb: Minor reformattinng
9725         * s-vmexta.ads: Minor typo
9726         * vxaddr2line.adb:
9727         Take into account 'Success' value as per new GNAT warning.
9728
9729 2007-12-13  Vincent Celier  <celier@adacore.com>
9730
9731         * a-direct.adb (Create_Path): Always take '/' as a directory separator,
9732         even on Windows
9733
9734 2007-12-13  Robert Dewar  <dewar@adacore.com>
9735             Bob Duff  <duff@adacore.com>
9736
9737         * gnat_ugn.texi: Dcoument new rules for style check comment alignment
9738         Document that suffixes may be terminations of each others
9739         Add doc for -gnatw.a and -gnatw.A
9740         Document gnatbind -Wx switch
9741         Document BOM recognition
9742         Document pragma Implemented_By_Entry.
9743         Document new units.
9744
9745         * gnat_rm.texi: (Favor_Top_Level): Document new pragma.
9746         Add doc for pragma Unreferenced suppressing no entities referenced msg
9747         Add documentation of GNAT.Directory_Operations.Iteration
9748         Add documentation of GNAT.Random_Numbers
9749         Add documentation for pragma Shared.
9750         Correct documentation for Bit_Order
9751         Add documentation for the Pool_Address attribute.
9752         Fix and improve documentation of pragma machine_attribute.
9753         New pragma Fast_Math
9754         Document BOM recognition
9755
9756         * vms_data.ads: Add entries for -gnatw.a -gnatw.A
9757         Add /Wide_Character_Encoding for binder
9758         Add qualifier for the new gnatpp option --no-separate-loop-then
9759
9760 2007-12-13  Matthew Heaney  <heaney@adacore.com>
9761
9762         * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
9763         which generic formal operations are called for each operation.
9764
9765 2007-12-13  Olivier Hainque  <hainque@adacore.com>
9766
9767         * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
9768         (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
9769
9770 2007-12-13  Emmanuel Briot  <briot@adacore.com>
9771
9772         * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
9773         Reference_Dir unless we actually need it.
9774
9775 2007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
9776             Tristan Gingold  <gingold@adacore.com>
9777
9778         * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
9779
9780         * s-osprim-vms.adb,
9781         a-calend-vms.adb: Remove pragma warning off and add pragma
9782         unreferenced.
9783
9784 2007-12-13  Robert Dewar  <dewar@adacore.com>
9785
9786         * impunit.adb: Add entries for missing units
9787
9788         * Makefile.rtl: Add new run-time units.
9789
9790         * Make-lang.in:  Update dependencies.
9791
9792 2007-12-13  Bob Duff  <duff@adacore.com>
9793
9794         * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
9795         types, set Can_Use_Internal_Rep appropriately, based on
9796         Always_Compatible_Rep_On_Target.
9797
9798 2007-12-13  Gary Dismukes  <dismukes@adacore.com>
9799             Arnaud Charlet  <charlet@adacore.com>
9800
9801         * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
9802         it to the front end and setting the aamp_target environment variable
9803         to the switch's argument to ensure that gnaampbind and gnaamplink will
9804         take the specified library into account.
9805         (Make): Only set Check_Object_Consistency to False for JVM, not for CIL
9806         target, since the CIL compiler supports an "object" file (.il files).
9807
9808 2007-12-13  Vincent Celier  <celier@adacore.com>
9809
9810         * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
9811         (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
9812
9813 2007-12-13  Geert Bosch  <bosch@adacore.com>
9814
9815         * s-parame-vxworks.adb:
9816         Update comments to reflect usage of this package by Nucleus.
9817
9818 2007-12-13  Arnaud Charlet  <charlet@adacore.com>
9819
9820         * i-vxwork.ads: Kill new warning on Convention C, since changing the
9821         spec would break code.
9822
9823         * i-forbla-unimplemented.ads, vx_stack_info.c: New files.
9824
9825         * system-vxworks-alpha.ads: Removed.
9826
9827 2007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
9828
9829         * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
9830
9831 2007-12-09  Samuel Tardieu  <sam@rfc1149.net>
9832
9833         PR ada/34366
9834         * sem_ch3.adb (Designates_T): New function.
9835         (Mentions_T): Factor reusable part of the logic into Designates_T.
9836         Consider non-access parameters and access and non-access result.
9837         (Check_Anonymous_Access_Components): Set ekind of anonymous access to
9838         E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
9839
9840         * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
9841
9842 2007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
9843
9844         PR ada/34361
9845         * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
9846         the new implementation of target-specific calls.
9847
9848 2007-12-07  Olivier Hainque  <hainque@adacore.com>
9849
9850         * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
9851         the designated full view, only follow a second level Full_View link
9852         for Non_Limited_Views of from_limited_with references.
9853
9854 2007-12-07  Samuel Tardieu  <sam@rfc1149.net>
9855
9856         PR ada/15805
9857         * sem_ch6.adb (Process_Formals): Prevent an access type formal
9858         to be initialized with an access to constant object.
9859
9860         * sem_ch3.adb (Analyze_Object_Declaration): Signal an error
9861         when an access to constant is used to initialize an access
9862         value.
9863
9864         PR ada/21346
9865         * a-direct.adb (Compose): Containing_Directory can be an empty string.
9866
9867 2007-12-07  Olivier Hainque  <hainque@adacore.com>
9868
9869         PR ada/34173
9870         * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
9871         the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
9872         this is from an alignment clause on the GNAT entity.
9873         * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
9874         to distinguish the case where we set it from the type's alignment.
9875         When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
9876         whether this alignment was set from an explicit alignment clause.
9877
9878 2007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
9879
9880         * decl.c (make_packable_type): Revert last change.
9881         (gnat_to_gnu_field): Avoid setting size and position multiple times.
9882         * utils.c (finish_record_type): Retrieve the real name of the type.
9883
9884 2007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
9885
9886         * trans.c (lvalue_required_p): Take base node directly instead
9887         of its parent.  Rename second parameter to 'gnu_type'.
9888         <N_Indexed_Component>: Return 0 if the node isn't the prefix.
9889         <N_Slice>: Likewise.
9890         (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
9891         Adjust calls to lvalue_required_p.
9892
9893 2007-12-05  Samuel Tardieu  <sam@rfc1149.net>
9894
9895         PR ada/21489
9896         * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
9897         parameters of an entry call.
9898
9899 2007-12-03  Robert Dewar  <dewar@adacore.com>
9900             Samuel Tardieu  <sam@rfc1149.net>
9901
9902         PR ada/34287
9903         * sem_util.adb (Safe_To_Capture_Value): Do not capture values
9904         of variables declared in a library-level package.
9905
9906 2007-12-02  Samuel Tardieu  <sam@rfc1149.net>
9907
9908         * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
9909         of Empty_String'Unchecked_Access.
9910
9911         * Makefile.in: Add support for sh4-linux.
9912
9913         * system-linux-sh4.ads: New file.
9914
9915 2007-12-01  Kostik Belousov  <kostikbel@ukr.net>
9916
9917         PR ada/33722
9918         * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
9919         and its argument must not be free()ed.
9920
9921 2007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
9922
9923         * decl.c (make_packable_type): Retrieve the real name of the type.
9924         (maybe_pad_type): Simplify similar code.
9925
9926 2007-11-28  Samuel Tardieu  <sam@rfc1149.net>
9927
9928         PR ada/15804
9929         * par-ch3.adb (P_Variant_Part): Signal an error when anything other
9930         than an identifier is used after "case" in a variant_part.
9931
9932         PR ada/17318
9933         * par-ch4.adb (Is_Parameterless_Attribute): New map.
9934         (P_Name, Scan_Apostrophe block): Parse left parenthesis following
9935         attribute name or not depending on the new map.
9936
9937         * sem-attr.adb (Analyze_Attribute): Parameterless attributes
9938         returning a string or a type will not be called with improper
9939         arguments.
9940
9941         * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
9942
9943         * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
9944
9945         PR ada/32792
9946         * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
9947         Signal an error when attribute argument is a fixed-point value of
9948         an unknown type.
9949
9950         PR ada/22559
9951         * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
9952         a derived ordinary fixed point type.
9953
9954         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
9955         RM_Size when a Small clause is found.
9956
9957 2007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
9958
9959         PR 34081/C++
9960         * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
9961         Pass 'false' for the new allocate_struct_function parameter.
9962         * utils.c (build_function_stub): Likewise.
9963
9964 2007-11-25  Richard Guenther  <rguenther@suse.de>
9965
9966         * utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
9967         (gnat_poplevel): Likewise.
9968
9969 2007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
9970
9971         * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
9972         strict alignment, no alignment clause and a known static size, cap
9973         the type alignment to the greatest power of 2 factor of the size.
9974         (gnat_to_gnu_field): If the field has a component clause, is aliased
9975         or of a type with strict alignment, require that its size be equal to
9976         that of the type.
9977         (validate_size): Use the type size as the minimum size for a type with
9978         strict alignment.
9979
9980 2007-11-23  Samuel Tardieu  <sam@rfc1149.net>
9981
9982         * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
9983         s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
9984         s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
9985         Use 'Access instead of 'Unchecked_Access in second and third
9986         arguments of pthread_sigmask.
9987
9988 2007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
9989
9990         * decl.c (ceil_alignment): New function.
9991         (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
9992         (make_packable_type): Likewise.
9993
9994 2007-11-22  Olivier Hainque  <hainque@adacore.com>
9995
9996         * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
9997         to fit in 80 columns.
9998
9999 2007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
10000
10001         * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
10002         * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
10003
10004 2007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
10005
10006         PR ada/34098
10007         * misc.c (gnat_adjust_rli): Delete.
10008         (gnat_init): Do not initialize the translation code here.
10009         Do not call set_lang_adjust_rli.
10010         * trans.c (init_code_table): Make static.
10011         (gnat_init_stmt_group): Delete.
10012         (gigi): Initialize the translation code entirely here.
10013         Emit debug info for the common types here instead of...
10014         * utils.c (gnat_init_decl_processing): ...here.
10015         * gigi.h (init_code_table): Delete.
10016         (gnat_init_stmt_group): Likewise.
10017
10018 2007-11-16  Olivier Hainque  <hainque@adacore.com>
10019
10020         * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
10021         retrieving an allocator return value from a super-aligned address from
10022         here to ...
10023         * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
10024         expect a super-aligned address for a fat or thin pointer.
10025
10026 2007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
10027
10028         * trans.c (call_to_gnu): Always set the source location on the call
10029         expression.  If the function returns-by-target, also set it on the
10030         address expression.
10031
10032 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
10033
10034         * adaint.c, init.c, initialize.c, link.c: Remove system-specific
10035         sections of non-supported Interix target.
10036
10037         * s-osinte-interix.ads: Removed.
10038
10039         * i-cstrin.ads (chars_ptr): Make it a C convention type.
10040
10041 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
10042
10043         * a-tasatt.adb: Add a comment at the beginning of the package
10044         explaining why in general 'Unchecked_Access must be used instead
10045         of 'Access.
10046
10047         * sem_prag.adb (Process_Convention): Move the test for the
10048         entity on which the Convention pragma applies down to also
10049         forbid pragma Convention on enumeration literals reached
10050         through renamings.
10051
10052 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
10053
10054         * a-tasatt.adb: Revert previous change for this file as it will
10055         generate an error when this package is instantiated from a
10056         local context.
10057
10058 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
10059
10060         * a-tasatt.adb: Type Wrapper should be declared in comment instead
10061         of already declared type Node_Access.
10062         Use 'Access instead of 'Unchecked_Access when applicable. Local
10063         lifetime is the one of the package.
10064         (Set_Value): W is allocated on the heap.
10065
10066         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
10067         applicable.
10068         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
10069         access type.
10070         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
10071         access type.
10072
10073         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
10074         applicable.
10075         (elaboration code): Timer_Queue lifetime is the one of the
10076         package.
10077
10078         * tracebak.c (i386 alternative): Remove useless comparaison
10079         which is always false; LOWEST_ADDRESS is 0 and is never greater
10080         than an unsigned integer.
10081
10082         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
10083         embedded check for "Ada_Version >= Ada_05".
10084
10085 2007-11-07  Olivier Hainque  <hainque@adacore.com>
10086
10087         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
10088         craft and expand comment.
10089
10090 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
10091
10092         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
10093
10094 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
10095
10096         * misc.c (gnat_handle_option): Replace call to abort with
10097         call to gcc_unreachable.
10098         (gnat_init): Likewise.
10099         (gnat_expand_expr): Likewise.
10100         (fp_prec_to_size): Likewise.
10101         (fp_size_to_prec): Likewise.
10102
10103 2007-10-23  Richard Guenther  <rguenther@suse.de>
10104
10105         PR bootstrap/33608
10106         * tracebak.c: #undef abort after including system.h.
10107
10108 2007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
10109
10110         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
10111         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
10112         for win32 targets.
10113         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
10114
10115 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
10116
10117         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
10118         Set the protection status of the guard page based on the value of On.
10119
10120         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
10121
10122         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
10123         (Exit_Task): Pass False to Hide_Yellow_Zone.
10124
10125 2007-10-15  Robert Dewar  <dewar@adacore.com>
10126
10127         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
10128         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
10129         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
10130         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
10131         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
10132         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
10133         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
10134         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
10135         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
10136         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
10137         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
10138         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
10139         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
10140         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
10141         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
10142         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
10143         Minor reformatting.
10144         Add Unreferenced and Warnings (Off) pragmas for cases of
10145         variables modified calls where they are IN OUT or OUT parameters and
10146         the resulting values are not subsequently referenced. In a few cases,
10147         we also remove redundant code found by the new warnings.
10148
10149         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
10150         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
10151         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
10152         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
10153         warning controlled by -gnatw.o that warns on cases of out parameter
10154         values being ignored.
10155
10156 2007-10-15  Geert Bosch  <bosch@adacore.com>
10157
10158         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
10159
10160         * expect.c: Initial port to arm-mentor-nucleus.
10161         Use kill for __gnat_kill() on VMS.
10162
10163 2007-10-15  Emmanuel Briot  <briot@adacore.com>
10164
10165         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
10166         value.
10167         (Xref_Record): Change type for Line, since in the case of a reference to
10168         a predefined entity (as happens for array index types), the line is set
10169         to 0.
10170         Add support for parsing multiple array index types info, or
10171         multiple inherited interfaces info. This information cannot be stored
10172         in Xref_Entity_Record, which only supports a single instance of Tref_*,
10173         and is therefore stored in the list of references instead. It has a
10174         special treatement later on in tools that use this information.
10175
10176 2007-10-15  Tristan Gingold  <gingold@adacore.com>
10177
10178         * debug.adb: Document use of -gnatd.a and -gnatd.I
10179
10180         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
10181
10182 2007-10-15  Javier Miranda  <miranda@adacore.com>
10183
10184         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
10185         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
10186         care of access to class-wide interface types plus removal of bizarre
10187         conversion of tagged object to access type (reported by Gary
10188         Dismukes). After this patch there is no need to perform any
10189         additional management on these nodes in Expand_Interface_Actuals.
10190
10191         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
10192         that handles use of 'Access and 'Unchecked_Access applied to
10193         actuals covering interface types. Such code is now
10194         centralized in Expand_N_Attribute_Reference.
10195
10196 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
10197
10198         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
10199         of tagged types whose ultimate ancestor is a CPP type.
10200         (Freeze_Array_Type): For a packed array type, generate an initialization
10201         procedure if the type is public, to handle properly a client that
10202         specifies Normalize_Scalars.
10203
10204 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
10205
10206         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
10207         inside a generic body, retrieve the full view of the entry family
10208         discrete subtype if available.
10209
10210 2007-10-15  Thomas Quinot  <quinot@adacore.com>
10211
10212         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
10213         attempt to generate stubs for hidden primitive operations.
10214
10215 2007-10-15  Vincent Celier  <celier@adacore.com>
10216
10217         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
10218         returning None, used when there is no platform specific body for
10219         MLib.Tgt.Specific.
10220
10221 2007-10-15  Bob Duff  <duff@adacore.com>
10222
10223         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
10224         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
10225         the generic Heap_Sort_G, in order to avoid trampolines.
10226
10227 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
10228             Jose Ruiz  <ruiz@adacore.com>
10229
10230         * vx_stack_info.c: New file.
10231
10232         * i-forbla-unimplemented.ads: New file.
10233
10234         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
10235         for unsupported configurations; use it on VMS targets instead of the
10236         real one.
10237         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
10238         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
10239         used by VxWorks targets to have access to task-specific data and be
10240         able to extract the stack boundaries for stack checking.
10241         Use system-vms-ia64.ads on ivms.
10242
10243         * Make-lang.in: Update dependencies.
10244
10245         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
10246         (vx_stack_info.c).
10247
10248 2007-10-15  Vincent Celier  <celier@adacore.com>
10249
10250         * snames.adb, snames.ads: Add new standard name runtime_library_dir
10251
10252         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
10253
10254         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
10255
10256         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
10257         the source is unknown.
10258
10259         * prj-ext.adb: Spelling error fix
10260
10261         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
10262         95 reserved word in its name.
10263         (Process_Project_Level_Array_Attributes): Process new attribute
10264         Runtime_Library_Dir.
10265
10266         * prj-part.adb (Parse_Single_Project): Do not check the name of the
10267         config project against the user project names.
10268
10269         * prj-proc.adb (Expression): In multi-language mode, indexes that do
10270         not include a dot are always case insensitive.
10271         (Process_Declarative_Items): Ditto
10272         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
10273         detected.
10274
10275         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
10276         True, compare both indexes in lower case.
10277
10278 2007-10-15  Robert Dewar  <dewar@adacore.com>
10279
10280         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
10281
10282 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
10283
10284         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
10285         association for an access component, add an association with null as
10286         the expression. Remove testing for array subtypes and the setting in
10287         that case of Ctyp to the array component type, which prevented proper
10288         inclusion of an association for null-initialized arrays. Collapse
10289         condition that tests for array subtypes into just a test of
10290         Is_Partially_Initialized_Type (which already covers arrays anyway).
10291
10292 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
10293
10294         * sem_ch12.adb: Minor code reformatting.
10295         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
10296         find the parent package which may have been hidden by local
10297         declarations.
10298
10299 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
10300
10301         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
10302         flag of derived concurrent types, taking into account the flag setting
10303         on the parent subtype and any new set of discriminants.
10304
10305 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
10306
10307         * sem_ch4.adb: Minor code and comment reformatting.
10308         (Analyze_Allocator): When the designated type of an unconstrained
10309         allocator is a record with unknown discriminants or an array with
10310         unknown range bounds, emit a detailed error message depending on the
10311         compilation mode and whether the designated type is limited.
10312
10313 2007-10-15  Tristan Gingold  <gingold@adacore.com>
10314
10315         * system-vms-ia64.ads: New file.
10316
10317         * system-vms_64.ads: Minor comment fix.
10318
10319 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
10320
10321         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
10322         body generated for a function with a controlling result that is a null
10323         extension, discard the generated body in favor of the current explicit
10324         one.
10325
10326 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
10327
10328         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
10329         examining its original form, to handle properly operator calls that
10330         have been rewritten.
10331
10332 2007-10-15  Olivier Hainque  <hainque@adacore.com>
10333
10334         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
10335         instead of a procedure value in each traceback entry.
10336
10337         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
10338         instead of procedure value to TBK$SYMBOLIZE.
10339
10340         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
10341         field.
10342         (TB_Entry_For): Account for the PV/FP renaming.
10343
10344         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
10345         add comment.
10346         (Null_TB_Entry): Account for change of component name.
10347         (PV_For): Rename as FP_For.
10348
10349 2007-10-15  Tristan Gingold  <gingold@adacore.com>
10350
10351         * trans.c (gnat_to_gnu): Remove the padding structure more often.
10352         This optimize assignment to over-aligned record.
10353
10354 2007-10-15  Emmanuel Briot  <briot@adacore.com>
10355
10356         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
10357         interfaces.
10358
10359         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
10360         type, for dispatching calls.
10361
10362 2007-10-15  Vincent Celier  <celier@adacore.com>
10363             Robert Dewar  <dewar@adacore.com>
10364
10365         * gnat_ugn.texi: Add documentation for switches --version and --help
10366         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
10367         gnatxref, gnatfind, gnatls, and gnatclean.
10368         Document -gnatw.o.
10369         Mention attribute Excluded_Source_Dirs
10370         Replace obsolescent attribute Locally_Removed_Files with attribute
10371         Excluded_Source_Files.
10372         Improve documentation of -u (gnatbind)
10373         Document how to do reliable stack checking for the environmental task
10374         on iVMS.
10375
10376         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
10377         Document attribute Excluded_Source_Files and indicate that attribute
10378         Locally_Removed_Files is obsolescent.
10379
10380 2007-10-15  Thomas Quinot  <quinot@adacore.com>
10381
10382         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
10383
10384         * gen-soccon.c:
10385         Update documentation to note that OpenVMS 8.3 or later must be used
10386         to generate g-soccon-vms.ads.
10387
10388         * atree.adb: Add ??? comment
10389
10390         * exp_util.adb: Minor reformatting.
10391         Add ??? comment in Kill_Dead_Code.
10392
10393 2007-10-15  Robert Dewar  <dewar@adacore.com>
10394
10395         * errout.ads: Comment clarification
10396
10397         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
10398         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
10399
10400         * lib.ads: Comment update
10401
10402         * init.c: Minor reformatting.
10403
10404         * sem_attr.adb: Minor formatting
10405
10406         * osint-b.ads: Minor reformatting
10407
10408         * sem_ch9.adb: Implement -gnatd.I switch
10409
10410         * g-comlin.adb: (Start): Fix handling of empty command line.
10411
10412         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
10413         even when -rules follows the -cargs section.
10414
10415 2007-10-08  Ollie Wild  <aaw@google.com>
10416
10417         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
10418         gnat_return_tree.
10419         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
10420         gnat_return_tree.
10421         (gnat_eh_runtime_type): Removed.
10422         (gnat_return_tree): New function.
10423
10424 2007-10-08  Ben Elliston  <bje@au.ibm.com>
10425
10426         PR ada/33454
10427         Revert:
10428         2007-08-31  Ben Elliston  <bje@au.ibm.com>
10429
10430         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
10431         when compiling for powerpc64-*-linux.
10432         * system-linux-ppc64.ads: New file.
10433
10434 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
10435
10436         Mapped location support
10437         * back_end.adb (Call_Back_End): Pass information about source
10438         files instead of units to gigi.
10439         * gigi.h (struct File_Info_Type): New.
10440         (gigi): Rename and change type of number_units parameter, change
10441         type of file_info_ptr parameter.
10442         * trans.c (number_files): New global variable.
10443         (gigi): Rename and change type of number_units parameter, change
10444         type of file_info_ptr parameter.
10445         If mapped location support is enabled, create the isomorphic mapping
10446         between source files and line maps.
10447         (Sloc_to_locus): If mapped location support is enabled, translate
10448         source location into mapped location.
10449         (annotate_with_node): Rename into set_expr_location_from_node.
10450         Call set_expr_location instead of annotate_with_locus.
10451         (Pragma_to_gnu): Adjust for above change.
10452         (Loop_Statement_to_gnu): Likewise.
10453         (call_to_gnu): Likewise.
10454         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
10455         (gnat_to_gnu): Likewise.
10456         (add_stmt_with_node): Likewise.
10457         (add_cleanup): Likewise.
10458         * utils.c (gnat_init_decl_processing): Do not set input_line.
10459
10460 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
10461
10462         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
10463         (Applicable_Use): Emit a warning when a package tries to use itself.
10464         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
10465         is already in use or the package where it is declared is in use or is
10466         declared in the current package.
10467         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
10468
10469         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
10470         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
10471         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
10472
10473 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
10474
10475         * a-calend-vms.adb, a-calend.adb:
10476         Add a section on leap seconds control along with two entities used to
10477         enable and disable leap seconds support. The array Leap_Second_Times is
10478         now constant and contains hard time values pre-generated. Remove
10479         all elaboration code used to populate the table of leap seconds.
10480
10481         * bindgen.adb:
10482         Add entity Leap_Seconds_Support to the list of global run-time variables
10483         along with a comment on its usage and values.
10484         (Gen_Adainit_Ada): Add code to generate the declaration and import of
10485         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
10486         or one (enabled) depending on the presence of binder switch "-y".
10487         (Gen_Adainit_C): Add code to generate the declaration of external int
10488         __gl_leap_seconds_support. Set is value to zero (disabled) or one
10489         (enabled) depending on the presence of binder switch "-y".
10490
10491         * init.c: Add __gl_leap_seconds_support to the list of global values
10492         computed by the binder.
10493
10494 2007-09-26  Jerome Guitton  <guitton@adacore.com>
10495
10496         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
10497         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
10498          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
10499         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
10500
10501         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
10502
10503         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
10504         function which can be called by the debugger to interrupt the tasks of
10505         an Ada application asynchronously, as needed on VxWorks.
10506         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
10507
10508         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
10509         renamed from Stop_All_Tasks. Update comments.
10510         (Stop_All_tasks): New function declaration.
10511
10512 2007-09-26  Olivier Hainque  <hainque@adacore.com>
10513
10514         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
10515         #include <utime.h> and #define GCC_RESOURCE_H before
10516         #include <sys/wait.h>.
10517         Add more protections in __gnat_translate_vms.
10518
10519         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
10520         #include <sys/wait.h>.
10521
10522 2007-09-26  Thomas Quinot  <quinot@adacore.com>
10523             Sergey Rybin  <rybin@adacore.com>
10524
10525         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
10526
10527         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
10528         where it belongs.
10529
10530         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
10531
10532         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
10533         where it belongs.
10534
10535         * sem_dist.ads: Minor comment fix
10536
10537         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
10538
10539 2007-09-26  Javier Miranda  <miranda@adacore.com>
10540             Eric Botcazou  <ebotcazou@adacore.com>
10541
10542         * a-tags.adb:
10543         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
10544          indirection added to the HT_Link component of the TSD. This is required
10545          to statically allocate the TSD.
10546
10547         * a-tags.ads:
10548         Minor reordering of the declarations in the private part. Required to
10549         add a level of indirection to the contents of the TSD component HT_Link.
10550         This is required to statically allocate the TSD.
10551
10552         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
10553         Is_Statically_Allocated set from constant objects.
10554         Do not make exported constants created by the compiler volatile.
10555         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
10556         as read-only.
10557
10558         * trans.c (Identifier_to_gnu): For constants, unshare initializers
10559         before returning them.
10560
10561         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
10562         public part of the package.
10563         (Make_DT): Move HT_Link component out of the TSD record. For this
10564         purpose Make_DT now declares a separate object that stores the
10565         HT_Link value, and initializes the TSD component with the address
10566         of this new object. The addition of this level of indirection is
10567         required to statically allocate the TSD because the TSD cannot
10568         have variable components.
10569         (Expand_Interface_Conversion): Improve the expanded code.
10570         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
10571
10572         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
10573         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
10574         if we are building static dispatch tables then we must not generate
10575         extra code to register the primitive because the dispatch table will
10576         be built at the end of the library package; otherwise we notify that
10577         we cannot build the static dispatch table.
10578
10579 2007-09-26  Robert Dewar  <dewar@adacore.com>
10580
10581         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
10582         overlays.
10583
10584         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
10585         (Analyze_Record_Representation_Clause): Suppress junk warning for
10586         missing component clause.
10587         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
10588         tests for controlled type overlay to composites with controlled
10589         components.
10590         (Analyze_Record_Representation_Clause): Add reference for component name
10591
10592 2007-09-26  Javier Miranda  <miranda@adacore.com>
10593             Gary Dismukes  <dismukes@adacore.com>
10594
10595         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
10596         for thunks associated with interface types.
10597
10598         * einfo.ads: Improve documentatation of Is_Internal
10599         (Is_Thunk): New attribute applicable to subprograms. True for thunks
10600         associated with interface types.
10601         Extensive comment fixes regarding flags that appear in all entities. The
10602         documentation is now consistent for all such flags (there were a number
10603         of errors in the documentation in this regard).
10604
10605         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
10606
10607         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
10608         of these procedures are passed a function call that already has
10609         build-in-place actuals (testing new flag
10610         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
10611         the case where processing continues.
10612         (Expand_Call): If the call is generated from a thunk body then we
10613         propagate the extra actuals associated with the accessibility
10614         level of the access type actuals.
10615
10616         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
10617         of each extra formal of a protected operation to reference the
10618         corresponding extra formal of the subprogram denoted by the
10619         operation's Protected_Body_Subprogram.
10620
10621         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
10622         N_Function_Call nodes.
10623
10624 2007-09-26  Robert Dewar  <dewar@adacore.com>
10625
10626         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
10627
10628         * debug.adb: Add d.s flag.
10629
10630 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
10631
10632         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
10633         debug variable so that it won't be initialized when pragma
10634         Initialize_Scalars is in effect.
10635
10636 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
10637
10638         * freeze.adb (Freeze_Entity): Remove check for preelaborable
10639         initialization of a full view. This is moved to
10640         Analyze_Package_Specification.
10641
10642         * sem_ch7.adb (Analyze_Package_Specification): Add check for
10643         preelaborable initialization of a full view in entity loop.
10644         (Uninstall_Declarations): If entity is a use-visible compilation unit,
10645         its child units are use-visible only if they are visible child units.
10646
10647         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
10648         whether an expression can be used within a type declaration that
10649         requires preelaborable init.
10650         (Check_Components): Replace inline code that does partial checking for
10651         preelaborable default expressions with call to
10652         Is_Preelaborable_Expression.
10653         (Has_Preelaborable_Initialization): In the case of a generic actual
10654         subtype, (that is, Is_Generic_Actual is True), return the result of
10655         applying Has_Preelaborable_Initialization to the generic actual's base
10656         type.
10657
10658 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
10659
10660         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
10661         call to Jan_1_Day _Of_Week to optimize its performance.
10662         (Is_Leap): Move the routine to the scope of Week_In_Year.
10663         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
10664         weekday on which January 1 falls of Year - 1 and Year + 1. This function
10665         avoids calling Time_Of and Split, thus making it more efficent.
10666         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
10667
10668         * g-calend.ads (Week_In_Year): Change comment to reflect new
10669         implementation.
10670
10671 2007-09-26  Emmanuel Briot  <briot@adacore.com>
10672
10673         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
10674         Command_Line): New types
10675         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
10676         support for defining how switches can be grouped on a command line (as
10677         is the case for -gnatw... for GNAT), and how simple switches can be
10678         used as aliases for more complex switches (-gnatwa is same as
10679         -gnatwbcef...)
10680         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
10681         (Start, Current_*): New subprograms
10682         Added support for parsing an array of strings in addition to the real
10683         command line.
10684         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
10685          be moved from the body to the private part of the spec.
10686         (*): All subprograms now have an extra parameter with default value to
10687         specify which parser should be used. For backward compatibility, it
10688         defaults to parsing the command line of the application. They were also
10689         modified to properly handle cases where each of the argument does not
10690         start at index 1 (which is always true for Ada.Command_Line, but not
10691         when processing any Argument_List).
10692         (Free): New subprogram
10693         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
10694         Argument): New subprograms
10695         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
10696         special characters like ':', '=',... are now handled in a single place,
10697         which makes the code more extensible eventually.
10698         (Getopt, Full_Switch): When the switch was returned as part of the
10699         special character '*', make sure it is prepended by the switch character
10700         ('-' in general), so that the application knows whether "foo" or "-foo"
10701         was specified on the command line.
10702
10703 2007-09-26  Florian Villoing  <villoing@adacore.com>
10704
10705         * g-dirope.adb (Remove_Dir): In case we are removing directories
10706         recursively, make sure that if an exception is raised during the
10707         processing, the current working directory is reset to its initial
10708         value before propagating the exception.
10709
10710 2007-09-26  Vincent Celier  <celier@adacore.com>
10711
10712         * gnatbind.adb: If there are several ALI files specified and there is
10713         a main program to bind, the first ALI is expected to contain the main
10714         subprogram and the names of the binder generated files will be derived
10715         from the first ALI file name.
10716         (Gnatbind): Fix insertion character in invocation of Error_Msg
10717
10718 2007-09-26  Vincent Celier  <celier@adacore.com>
10719
10720         * gnatcmd.adb (Check_Files): Do not include sources that have been
10721         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
10722
10723 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10724
10725         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
10726         information about each of its index types, following the type
10727         reference for its component type.
10728
10729 2007-09-26  Vincent Celier  <celier@adacore.com>
10730
10731         * make.adb: (Kill): New procedure (__gnat_kill imported)
10732         (Running_Compile, Outstanding_Compiles): Global variables that
10733         were previously local to procedure Compile_Sources.
10734         (Sigint_Intercepted): Send signal SIGINT to all outstanding
10735         compilation processes.
10736
10737         (Gnatmake): If project files are used, create the mapping of all the
10738         sources, so that the correct paths will be found.
10739
10740         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
10741
10742 2007-09-26  Vincent Celier  <celier@adacore.com>
10743
10744         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
10745
10746         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
10747         Replace components Compiler_Min_Options and Binder_Min_Options with
10748         Compiler_Required_Switches and Binder_Required_Switches in record
10749         Language_Config.
10750         Remove components Default_Language and Config in Project_Tree_Data,
10751         no longer used.
10752
10753         * prj-attr.adb: New attributes Required_Switches (<language>) in
10754         packages Compiler and Binder.
10755
10756         * prj-nmsc.adb: Major rewrite of the processing of configuration
10757         attributes for gprbuild. No impact on GNAT tools.
10758
10759         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
10760         process configuration attributes: this is done in Prj.Nmsc.Check.
10761         (Recursive_Process): Make a full copy of packages inherited from project
10762         being extended, instead of a shallow copy.
10763         (Process_Project_Tree_Phase_1): New procedure
10764         (Process_Project_Tree_Phase_1): New procedure
10765         (Process): Implementation now uses the two new procedures
10766
10767         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
10768         from the project config, not the tree config that no longer exists.
10769
10770 2007-09-26  Vincent Celier  <celier@adacore.com>
10771
10772         * Make-lang.in: Update dependencies..
10773
10774 2007-09-26  Vincent Celier  <celier@adacore.com>
10775
10776         * osint.adb, osint.ads: Minor reformatting
10777
10778         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
10779
10780 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
10781
10782         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
10783         message to cite use of <> in aggregate component associations rather
10784         than wrongly indicating use of limited aggregates.
10785
10786 2007-09-26  Robert Dewar  <dewar@adacore.com>
10787
10788         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
10789         Address_Taken.
10790
10791 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10792
10793         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
10794         ancestor of the derived type, the operations are inherited from the
10795         primary dispatch table of the parent.
10796         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
10797         when the context is an explicit type conversion.
10798
10799 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10800
10801         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
10802         rule for qualified expressions properly, to detect improper conversions
10803         and resolve some cases of overloading.
10804
10805 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
10806
10807         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
10808         proper kind of reference to the primitive operation, for better source
10809         navigation.
10810         (Valid_Conversion): A tagged conversion is legal if both operands are
10811         tagged.
10812
10813 2007-09-26  Robert Dewar  <dewar@adacore.com>
10814
10815         * sem_warn.adb (Check_References): Catch more cases of unreferenced
10816         packages.
10817
10818 2007-09-26  Vincent Celier  <celier@adacore.com>
10819
10820         * snames.adb, snames.ads: Change Include_Option to Include_Switches
10821
10822 2007-09-26  Robert Dewar  <dewar@adacore.com>
10823
10824         * s-wchstw.adb: provide messages for run time unit exceptions
10825
10826         * a-witeio.adb: Minor reformatting
10827
10828         * exp_ch13.adb: Minor reformatting
10829
10830 2007-09-26  Sergey Rybin  <rybin@adacore.com>
10831
10832         * vms_data.ads: Revise gnatmetric qualifiers.
10833         Add qualified for the new gnatbind option '-y'
10834
10835         * gnat_ugn.texi: Revise the gnatmetric section.
10836         Add entry for new gnatbind option '-y'.
10837
10838         * gnat_rm.texi: Minor spelling correction.
10839         Document restriction on overlaying controlled types
10840
10841 2007-09-26  Vincent Celier  <celier@adacore.com>
10842
10843         * makegpr.adb (Link_Executables): Do not fail when the root project has
10844         no sources, but is an extending project.
10845
10846 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
10847
10848         * trans.c: Fix misplaced #define.
10849
10850 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
10851
10852         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
10853         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
10854
10855 2007-09-21  Olivier Hainque  <hainque@adacore.com>
10856
10857         * utils.c (type_for_nonaliased_component_p): Return false for
10858         all AGGREGATE_TYPEs.
10859
10860 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
10861
10862         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
10863         object covered by 13.3(19) volatile.
10864
10865 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
10866
10867         PR ada/26797
10868         PR ada/32407
10869         * utils.c (unchecked_convert): Use a subtype as the intermediate type
10870         in the special VIEW_CONVERT_EXPR case.
10871
10872 2007-09-12  Robert Dewar  <dewar@adacore.com>
10873
10874         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
10875
10876         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
10877         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
10878         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
10879         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
10880         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
10881         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
10882         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
10883         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
10884         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
10885         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
10886         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
10887         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
10888         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
10889         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
10890         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
10891         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
10892         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
10893         pragma Compiler_Unit and adds it to relevant library units.
10894
10895 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
10896
10897         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
10898         a box need not correspond to any component.
10899
10900 2007-09-12  Robert Dewar  <dewar@adacore.com>
10901
10902         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
10903         the tasking version of the Ada run time when foreign threads are
10904         present and there are no explicit Ada tasks or tasking constructs.
10905
10906         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
10907
10908 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
10909
10910         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
10911         the usage of switch -y.
10912
10913         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
10914         when switch -y is present.
10915
10916         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
10917         leap seconds in Ada.Calendar and its children.
10918
10919 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
10920
10921         * a-extiti.ads (Timer): The discriminant is a "not null access
10922         constant" in the Reference Manual.
10923         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
10924
10925 2007-09-12  Robert Dewar  <dewar@adacore.com>
10926
10927         * a-swuwha.adb: Remove junk RM header
10928
10929 2007-09-12  Vincent Celier  <celier@adacore.com>
10930
10931         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
10932         indicator
10933
10934         * g-bytswa.ads: Minor reformatting
10935
10936 2007-09-12  Thomas Quinot  <quinot@adacore.com>
10937
10938         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
10939         Add new constant Thread_Blocking_IO, always True by default, set False
10940         on a per-runtime basis.
10941         (Need_Netdb_Buffer): New constant.
10942
10943 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
10944
10945         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
10946         Added renames for corresponding functions in System.Partition_Interface.
10947
10948 2007-09-12  Doug Rupp  <rupp@adacore.com>
10949
10950         * Makefile.in: Remove VMS specific System.CRTL packages which are no
10951         longer needed.
10952
10953         * s-crtl-vms64.ads: Removed.
10954
10955 2007-09-12  Olivier Hainque  <hainque@adacore.com>
10956
10957         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
10958         with discriminant constraints, generalize the code for BIT_FIELDs
10959         to PACKED fields of constant size and propagate DECL_PACKED.
10960
10961 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
10962
10963         * decl.c (array_type_has_nonaliased_component): New predicate.
10964         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
10965         set the TYPE_NONALIASED_COMPONENT flag on the type.
10966         <E_Array_Subtype>: Likewise.
10967         * gigi.h (type_for_nonaliased_component_p): Declare.
10968         * utils.c (type_for_nonaliased_component_p): New predicate.
10969         (create_field_decl): Invoke the above predicate to set the
10970         DECL_NONADDRESSABLE_P flag on the field.
10971
10972 2007-09-11  Javier Miranda  <miranda@adacore.com>
10973
10974         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
10975         in library level record type entities if we are generating statically
10976         allocated dispatch tables.
10977
10978         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
10979         importing/exporting the _tag declaration by new code
10980         importing/exporting the dispatch table wrapper. This change allows us
10981         to statically allocate of the TSD.
10982         (Make_DT.Export_DT): New procedure.
10983         (Build_Static_DT): New function.
10984         (Has_DT): New function.
10985
10986         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
10987         True_Constant and Current_Value. Required to statically
10988         allocate the dispatch tables.
10989         (Check_Allocator): Make function iterative instead of recursive.
10990         Also return inner allocator node, when present, so that we do not have
10991         to look for that node again in the caller.
10992
10993 2007-09-11  Jan Hubicka  <jh@suse.cz>
10994
10995         * misc.c (gnat_expand_body): Kill.
10996         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
10997
10998 2007-09-10  Robert Dewar  <dewar@adacore.com>
10999
11000         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
11001         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
11002         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
11003         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
11004         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
11005         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
11006         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
11007         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
11008         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
11009         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
11010         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
11011         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
11012         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
11013         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
11014         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
11015         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
11016         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
11017         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
11018         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
11019         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
11020         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
11021         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
11022         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
11023         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
11024         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
11025         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
11026         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
11027         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
11028         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
11029         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
11030         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
11031         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
11032         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
11033         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
11034         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
11035         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
11036         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
11037         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
11038         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
11039         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
11040         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
11041         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
11042         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
11043         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
11044         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
11045         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
11046         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
11047         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
11048         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
11049         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
11050         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
11051         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
11052         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
11053         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
11054         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
11055         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
11056         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
11057         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
11058         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
11059         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
11060         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
11061         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
11062         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
11063         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
11064         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
11065         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
11066         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
11067         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
11068         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
11069         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
11070         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
11071         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
11072         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
11073         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
11074         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
11075         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
11076         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
11077         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
11078         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
11079         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
11080         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
11081         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
11082         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
11083
11084 2007-09-10  Emmanuel Briot  <briot@adacore.com>
11085
11086         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
11087         classes ("[]").
11088
11089 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
11090
11091         * adaint.c (__gnat_translate_vms): new function.
11092
11093 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
11094             Thomas Quinot  <quinot@adacore.com>
11095
11096         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
11097         create an abstract subprogram in the case of 'Input. For 'Output we now
11098         create a real spec/body when the type is abstract, since it can
11099         potentially be called.
11100         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
11101         body for 'Output when the type is abstract (only the creation of the
11102         body for 'Input is excluded when the type is abstract).
11103         (Stream_Operation_OK): Add an additional condition in the return
11104         statement, so that False will be returned for TTS_Stream_Input if the
11105         associated tagged type is an abstract extension. Add comments for
11106         return statement.
11107         (Expand_N_Object_Declaration): For the case of a shared passive
11108         variable, insert init proc call only after the shared variable
11109         procedures have been processed, because the IP call needs to undergo
11110         shared passive variable reference expansion, which requires these
11111         procedures to be available (and elaborated).
11112
11113 2007-09-10  Vincent Celier  <celier@adacore.com>
11114
11115         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
11116         parameter Runtime_Project.
11117
11118 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
11119
11120         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
11121         given a box association, the type of the component is discriminated,
11122         and the value of the discriminant is the discriminant of the enclosing
11123         type, retrieve its value from the aggregate itself, where it must have
11124         been supplied.
11125
11126         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
11127         to remove other spurious ambiguities on arithmetic operations involving
11128         literals and addresses, on systems where Address is a visible integer
11129         type, when the operator is called in functional notation.
11130         (Try_Primitive_Operation): Within an instance, a call in prefixed form
11131         is legal when the types match, even if the operation is currently
11132         hidden.
11133
11134 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
11135
11136         * sem_ch12.adb (Build_Local_Package): A formal package with no
11137         associations is legal if all formals have defaults. It is not
11138         equivalent to a formal declared with a box.
11139
11140 2007-09-10  Sergey Rybin  <rybin@adacore.com>
11141
11142         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
11143
11144 2007-09-10  Sergey Rybin  <rybin@adacore.com>
11145
11146         * gnat_ugn.texi: Add description of the new '-lratio' option
11147         Update 7.3.1 section about availability of the feature.
11148
11149 2007-09-10  Thomas Quinot  <quinot@adacore.com>
11150
11151         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
11152         inserted node.
11153
11154 2007-09-10  Olivier Hainque  <hainque@adacore.com>
11155
11156         * Makefile.in: (mips-irix section): Activate build of libgmem.
11157
11158 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
11159
11160         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
11161         x87 registers.
11162
11163 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
11164
11165         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
11166         a debug renaming declaration specially.
11167
11168 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
11169
11170         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
11171         which a constant renaming is treated as a normal object declaration.
11172         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
11173         the N_Indexed_Component case.
11174         <N_Indexed_Component>: Fall through to above case.
11175         <N_Object_Renaming_Declaration>: Return true for all composite types.
11176
11177 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
11178
11179         * decl.c (make_packable_type): If the new type has been given BLKmode,
11180         try again to get an integral mode for it.
11181
11182 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
11183
11184         Re-apply accidentally reverted change:
11185
11186         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
11187
11188         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
11189         get_action_description_for): Replace _Unwind_Word with _uleb128_t
11190         and _Unwind_SWord with _sleb128_t.
11191
11192 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
11193
11194         * trans.c (convert_with_check): Update call to real_2expN.
11195
11196 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
11197
11198         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
11199         * utils.c (end_subprog_body): Likewise.
11200
11201 2007-09-03  Nick Clifton  <nickc@redhat.com>
11202
11203         * Make-lang.in: Change copyright header to refer to version 3 of
11204         the GNU General Public License and to point readers at the
11205         COPYING3 file and the FSF's license web page.
11206         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
11207         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
11208         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
11209         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
11210         Likewise.
11211
11212 2007-08-31  Vincent Celier  <celier@adacore.com>
11213
11214         PR ada/4720
11215
11216         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
11217         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
11218         (Check_Version_And_Help): New procedure in package Switch to process
11219         switches --version and --help.
11220         Use Check_Version_And_Help in GNAT tools
11221
11222         * make.adb:  Ditto.
11223         (Compile_Sources): Make sure that sources that are "excluded" are not
11224         compiled.
11225         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
11226         project file is used.
11227         (Version_Switch): Remove, moved to Switch
11228         (Help_Switch): Remove, moved to Switch
11229         (Display_Version): Remove, moved to Switch
11230
11231         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
11232         package Switch to process switches --version and --help.
11233         (Display_Version): New procedure
11234
11235         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
11236
11237 2007-08-31  Javier Miranda  <miranda@adacore.com>
11238
11239         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
11240         internal tags.
11241
11242 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
11243
11244         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
11245         (Mark_Non_Null): If the node for which we just generated an access check
11246         is a reference to an *in* parameter and the reference appears in the
11247         declarative part of a subprogram body, mark the node as known non null.
11248
11249 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
11250
11251         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
11252         structure of E_Exception to reflect the new flag.
11253         (Is_Raised, Set_Is_Raised): New inlined routines.
11254         Update the usage of available flag to reflect the addition of Is_Raised.
11255         (Is_Raised, Set_Is_Raised): Bodies of new routines.
11256         (Write_Entity_Flags): Write the status of flag Is_Raised.
11257         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
11258         spurious ambiguities when integer literals appear in the context of an
11259         address type that is a visible integer type.
11260
11261         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
11262         exceptions never being raised.
11263         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
11264         explicitly raised.
11265
11266 2007-08-31  Javier Miranda  <miranda@adacore.com>
11267
11268         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
11269         statement when compiling under restriction No_Exceptions_Proparation.
11270
11271 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
11272
11273         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
11274         initialization aggregate for the type, generate itype references for
11275         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
11276
11277 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
11278
11279         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
11280         library-level package renaming, pass the declaration associated with
11281         the renaming's special debug variable to Qualify_Entity_Names to ensure
11282         that its encoded name is properly qualified.
11283
11284         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
11285         occurring in the list of entities to qualify, and do not attempt to
11286         traverse an entity list in that case. Variables associated with
11287 `       library-level package renamings can now occur in the table.
11288
11289         * exp_dbug.ads: Revise documentation of the encoding for renaming
11290         declarations.
11291
11292 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11293
11294         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
11295         access type points to an unconstrained array.
11296
11297 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
11298
11299         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
11300         conversion.
11301
11302         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
11303         simple redundant qualifications. The check is performed whenever the
11304         expression is a non-overloaded identifier.
11305         (Resolve_Type_Conversion): Enchance the redundant type conversion check
11306         to include loop parameters.
11307         (Valid_Conversion): Avoid generation of spurious error message.
11308
11309 2007-08-31  Bob Duff  <duff@adacore.com>
11310
11311         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
11312         concatenations of string literals into a single literal, in order to
11313         avoid very deep recursion in the front end, which was causing stack
11314         overflow.
11315
11316         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
11317         string, and the right operand is a string literal (the case of "" &
11318         "..."), optimize by avoiding copying the right operand -- just use the
11319         value of the right operand directly.
11320
11321         * stringt.adb (Store_String_Chars): Optimize by growing the
11322         String_Chars table all at once, rather than appending characters one by
11323         one.
11324         (Write_String_Table_Entry): If the string to be printed is very long,
11325         just print the first few characters, followed by the length. Otherwise,
11326         doing "pn(n)" in the debugger can take an extremely long time.
11327
11328         * sem_prag.adb (Process_Interface_Name): Replace loop doing
11329         Store_String_Char with Store_String_Chars.
11330
11331 2007-08-31  Vincent Celier  <celier@adacore.com>
11332
11333         * prj-attr.adb: Add new attribute Excluded_Source_Files
11334
11335         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
11336         Locally_Removed_Files.
11337
11338         * snames.ads, snames.adb: New standard name Excluded_Source_Files
11339
11340 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
11341
11342         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
11343         clauses of subunits, ignore limited_with_clauses that are illegal and
11344         have not been fully analyzed.
11345
11346 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
11347
11348         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
11349         flag, for effiency. It is called when analyzing arithmetic operators
11350         and also for actuals in calls that are universal_integers. The flag is
11351         set for the predefined type address, and for any type or subtype
11352         derived from it.
11353
11354         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
11355         Universal_Integer, when the formal is a descendent of address and the
11356         call appears in user code.
11357         (Analyze_Selected_Component): if the prefix is a private extension, the
11358         tag component is visible.
11359
11360         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
11361         entity flag.
11362
11363 2007-08-31  Robert Dewar  <dewar@adacore.com>
11364
11365         * s-fileio.adb (Open): Normalize file name to lower case in non-case
11366         sensitive file name systems to avoid unexpected mismatch in Vista.
11367
11368 2007-08-31  Vincent Celier  <celier@adacore.com>
11369
11370         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
11371
11372 2007-08-31  Vincent Celier  <celier@adacore.com>
11373
11374         * symbols-vms.adb (Initialize): Read symbol files with continuation
11375         lines
11376         (Finalize): If symbol is long, split the line
11377
11378 2007-08-31  Vincent Celier  <celier@adacore.com>
11379
11380         * fmap.ads: Minor comment updates
11381
11382 2007-08-31  GNAT Script  <nobody@adacore.com>
11383
11384         * Make-lang.in: Makefile automatically updated
11385
11386 2007-08-31  Bob Duff  <duff@adacore.com>
11387
11388         * sinfo.ads: Minor comment fix.
11389
11390 2007-08-31  Thomas Quinot  <quinot@adacore.com>
11391
11392         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
11393         with implementation.
11394         Documentation cleanup only.
11395
11396 2007-08-31  Sergey Rybin  <rybin@adacore.com>
11397
11398         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
11399         gnatpp '--separate-stmt-name' option.
11400         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
11401         option.
11402
11403         * gnat_ugn.texi: Add description for the new gnatpp
11404         '--separate-stmt-name' and '--use-on-new-line' options.
11405
11406 2007-08-31  Ben Elliston  <bje@au.ibm.com>
11407
11408         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
11409         when compiling for powerpc64-*-linux.
11410         * system-linux-ppc64.ads: New file.
11411
11412 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
11413
11414         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
11415         NetBSD.
11416
11417 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11418
11419         * misc.c (gnat_type_max_size): Constify.
11420
11421 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
11422
11423         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
11424         associated with Standard_Debug_Renaming_Type, to be used as the type of
11425         the special variables whose names provide debugger encodings for
11426         renaming declarations.
11427
11428         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
11429         (Set_Debug_Renaming_Link): Change to set Node25.
11430         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
11431         (Write_Field25_Name): Add case for E_Variable to output
11432         "Debug_Renaming_Link".
11433         (Write_Field23_Name): Correct the output string for "Limited_View".
11434
11435         * exp_dbug.adb: Add with and use of Tbuild.
11436         (Debug_Renaming_Declaration): Replace creation of an enumeration type
11437         and literal with creation of a variable of type
11438         Standard_Debug_Renaming_Type whose name encodes both the renamed object
11439         and the entity of the renaming declaration.
11440         (Qualify_Entity_Name): Add the delayed qualification of the entity name
11441         part of the name of a variable that has a Debug_Renaming_Link.
11442
11443         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
11444         special type to be associated with variables that provide debugger
11445         encodings for renaming declarations.
11446
11447 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
11448             Ed Schonberg  <schonberg@adacore.com>
11449             Javier Miranda  <miranda@adacore.com>
11450
11451         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
11452         ancestor part given by an aggregate to test for an unchecked conversion,
11453         since this can occur in some cases when the ancestor part is a function
11454         call, and we don't want to fall into the recursive call to this
11455         procedure in that case.
11456
11457         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
11458         stream attributes on limited types to account for user-specified
11459         attributes as well as whether Input (resp. Output) becomes available
11460         due to Read (resp. Write) being available for the type. Change Boolean
11461         variable to the more accurate name
11462         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
11463         double-"not" predicate at beginning of return statement to more
11464         understandable form.
11465
11466         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
11467         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
11468         in a block statement and use that as the first statement of the
11469         expanded return rather than incorrectly using the handled sequence as
11470         the first statement.
11471
11472         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
11473         operation, generate an explicit freeze node for it rather than
11474         generating extra formals, to ensure that gigi has the proper order of
11475         elaboration for anonymous subtypes in the signature of the subprograms.
11476         (Build_In_Place_Formal): Move assertion to beginning of loop.
11477         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
11478         applied to a function call (occurs for some cases of 'Input).
11479         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
11480         applied to a function call (occurs for some cases of 'Input).
11481
11482         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
11483         2005, generate an extended return statement enclosing the result object
11484         and 'Read call.
11485
11486         * freeze.adb (Freeze_Record_Type): Extend the current management of
11487         components that are access type with an allocator as default value: add
11488         missing support to the use of qualified expressions of the
11489         allocator (which also cause freezing of the designated type!)
11490         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
11491         dispatching operation, since extra formals may be needed by calls to
11492         build-in-place functions (such as stream 'Input).
11493
11494         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
11495         formals for 'Constrained and accessibility level in the case of a
11496         predefined dispatching operation.
11497
11498         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
11499         point, no need to find the parent node.
11500
11501 2007-08-16  Javier Miranda  <miranda@adacore.com>
11502
11503         * exp_attr.adb (Attribute_Priority): Add missing support for entries
11504         and entry barriers.
11505
11506 2007-08-16  Javier Miranda  <miranda@adacore.com>
11507
11508         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
11509         is not really required and can introduce regression with the debugger.
11510         The original problem is fixed with the patch written for checks.adb.
11511
11512 2007-08-16  Thomas Quinot  <quinot@adacore.com>
11513
11514         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
11515         Range_Check on Allocated_Table.
11516
11517 2007-08-16  Vincent Celier  <celier@adacore.com>
11518
11519         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
11520         Including_Non_Switch set to False.
11521         (Gnatmake): For the compiler, call Test_If_Relative_Path with
11522         Including_Non_Switch set to False.
11523
11524         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
11525         parameter Including_Non_Switch, defaulted to True. When
11526         Including_Non_Switch is False, options that are not switches and
11527         appear as relative path are not converted to absolute paths.
11528
11529 2007-08-16  Nicolas Roche  <roche@adacore.com>
11530
11531         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
11532         makefiles
11533
11534         * Make-lang.in: Update dependencies
11535
11536 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
11537
11538         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
11539         currently inspected is a selected component, retrieve the entity of
11540         its selector.
11541         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
11542         from the immediate ancestor of Main_Unit_Entity.
11543         (Install_Limited_Withed_Unit): Do not install the limited view of
11544         package P if P is reachable through an ancestor chain from package C
11545         and C also has a with clause for P in its body.
11546         (Has_Limited_With_Clause): New routine.
11547         (Has_With_Clause): New routine.
11548
11549 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
11550
11551         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
11552         generic for an enclosing instance is a global reference, even though
11553         its scope is the enclosing instance.
11554
11555 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
11556             Javier Miranda  <miranda@adacore.com>
11557
11558         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
11559         initialize a limited object.
11560         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
11561         13/2 and 14/2.
11562         Make sure Has_Complex_Representation is inherited by derived type.
11563
11564 2007-08-16  Robert Dewar  <dewar@adacore.com>
11565
11566         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
11567         exception case
11568
11569 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
11570
11571         * sem_disp.adb (Check_Dispatching_Operation): If the operation
11572         implements an operation inherited from a progenitor interface, verify
11573         that they are subtype-conformant.
11574
11575 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
11576             Bob Duff  <duff@adacore.com>
11577             Nicolas Setton  <setton@adacore.com>
11578
11579         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
11580         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
11581         the statement which is being resolved comes from a predefined library
11582         unit, all non-predefined library interpretations are skipped.
11583         (Resolve_Op_Concat): If string concatenation was folded in the parser,
11584         but the "&" is user defined, give an error, because the folding would
11585         be wrong.
11586
11587         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
11588         the parser has folded a long sequence of concatenations of string
11589         literals.
11590
11591         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
11592         and "JMP_BUF" variables as artificial.
11593         (N_String_Literal): Do not use alloca for very long string literals. Use
11594         xmalloc/free instead. Otherwise the stack might overflow.
11595
11596         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
11597         compiler.
11598
11599 2007-08-16  Vincent Celier  <celier@adacore.com>
11600
11601         * vms_conv.adb (Process_Argument): Ensure that project related options
11602         are not put in the -cargs section when using GNAT COMPILE.
11603
11604 2007-08-16  Robert Dewar  <dewar@adacore.com>
11605
11606         * gnat_ugn.texi: Add note on preprocessing (output file not written)
11607
11608 2007-08-16  Thomas Quinot  <quinot@adacore.com>
11609
11610         * a-tags.adb: Minor reformatting.
11611
11612 2007-08-16  Bob Duff  <duff@adacore.com>
11613
11614         * sem_type.ads, sem_ch4.adb: Minor reformatting.
11615
11616 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11617
11618         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
11619         s-osinte-interix.ads, system-interix.ads: Removed.
11620
11621 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
11622
11623         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
11624         calls to Check_Within_Time_Bounds.
11625         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
11626         (Difference): Account for possible rounding of the resulting difference
11627
11628 2007-08-14  Robert Dewar  <dewar@adacore.com>
11629
11630         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
11631         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
11632         s-osinte-solaris.adb, s-osinte-solaris.ads,
11633         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
11634
11635         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
11636         switch -gnatyS. Enable -gnatyS in GNAT style check mode
11637
11638 2007-08-14  Robert Dewar  <dewar@adacore.com>
11639             Ed Schonberg  <schonberg@adacore.com>
11640
11641         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
11642         Suppress unmodified in-out parameter warning in some cases
11643         This patch is a also fairly significant change to the way suppressible
11644         checks are handled.
11645
11646         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
11647         needed for access to concurrent record types generated by the expander.
11648         (Generate_Range_Check): When generating a temporary to capture the
11649         value of a conversion that requires a range check, set the type of the
11650         temporary before rewriting the node, so that the type is always
11651         properly placed for back-end use.
11652         (Apply_Float_Conversion_Check): Handle case where the conversion is
11653         truncating.
11654         (Get_Discriminal): Code reformatting. Climb the scope stack looking
11655         for a protected type in order to examine its discriminants.
11656
11657 2007-08-14  Robert Dewar  <dewar@adacore.com>
11658             Gary Dismukes  <dismukes@adacore.com>
11659             Ed Schonberg  <schonberg@adacore.com>
11660             Thomas Quinot  <quinot@adacore.com>
11661
11662         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
11663         a-stwisu.adb, a-strsup.adb: Fix warnings for range
11664         tests optimized out.
11665
11666         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
11667         (Get_Allocator_Final_List): For the case of an anonymous access type
11668         that has a specified Associated_Final_Chain, do not go up to the
11669         enclosing scope.
11670         (Expand_N_Type_Conversion): Test for the case of renamings of access
11671         parameters when deciding whether to apply a run-time accessibility
11672         check.
11673         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
11674         aggregate code before allocator, and ahead of declaration for
11675         temporary, to prevent access before elaboration when the allocator is
11676         an actual for an access parameter.
11677         (Expand_N_Type_Conversion): On an access type conversion involving an
11678         access parameter, do not apply an accessibility check when the
11679         operand's original node was an attribute other than 'Access. We now
11680         create access conversions for the expansion of 'Unchecked_Access and
11681         'Unrestricted_Access in certain cases and clearly accessibility should
11682         not be checked for those.
11683
11684         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
11685         includes a type conversion of a packed component that has been expanded,
11686         recover the original expression for the object, and use this expression
11687         in the post-call assignment statement, so that the assignment is made
11688         to the object and not to a back-end temporary.
11689         (Freeze_Subprogram): In case of primitives of tagged types not defined
11690         at the library level force generation of code to register the primitive
11691         in the dispatch table. In addition some code reorganization has been
11692         done to leave the implementation clear.
11693         (Expand_Call): When expanding an inherited implicit conversion,
11694         preserve the type of the inherited function after the intrinsic
11695         operation has been expanded.
11696
11697         * exp_ch2.ads, exp_ch2.adb
11698         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
11699         of an entry formal appearing in an assignment statement does not assign
11700         to the formal.
11701         (Expand_Current_Value): Instead of calling a routine to determine
11702         whether the prefix of an attribute reference should be optimized or
11703         not, prevent the optimization of such prefixes all together.
11704
11705         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
11706         component whose prefix is known to be of an access type is an implicit
11707         dereference and does not assign to the prefix.
11708
11709 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11710             Robert Dewar  <dewar@adacore.com>
11711
11712         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
11713         itype is visited, make an entry into table to link associated node and
11714         new itype.
11715         Add comments and correct harmless error in Build_NCT_Hash_Tables
11716         (Array_Aggr_Subtype): Associate each itype created for an index type to
11717         the corresponding range construct, and not to the aggregate itself. to
11718         maintain a one-to-one correspondence between itype and its associated
11719         node, to prevent errors when complex expression is copied.
11720         Fix mishandling of multiple levels of parens
11721
11722         * sem_aggr.adb: Create a limited view of an incomplete type, to make
11723         treatment of limited views uniform for all visible declarations in a
11724         limited_withed package.
11725         (New_Copy_Tree): If hash table is being used and itype is visited,
11726         make an entry into table to link associated node and new itype.
11727         (Resolve_Record_Aggregate): Do not add an others box association for a
11728         discriminated record component that has only discriminants, when there
11729         is a box association for the component itself.
11730
11731         * par-ch4.adb: Fix mishandling of multiple levels of parens
11732
11733 2007-08-14  Robert Dewar  <dewar@adacore.com>
11734
11735         * comperr.adb: Fix problem with suppressing warning messages from gigi
11736
11737         * erroutc.ads, erroutc.adb, errout.ads,
11738         errout.adb (Write_Eol): Remove trailing spaces before writing the line
11739         (Write_Eol_Keep_Blanks): New procedure to write a line, including
11740         possible trailing spaces.
11741         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
11742         Fix problem with suppressing warning messages from back end
11743         Improve handling of deleted warnings
11744
11745         * gnat1drv.adb:
11746         Fix problem with suppressing warning messages from back end
11747         Handle setting of Static_Dispatch_Tables flag.
11748
11749         * prepcomp.adb:
11750         Fix problem with suppressing warning messages from back end
11751
11752         * exp_intr.adb: Improve handling of deleted warnings
11753
11754 2007-08-14  Robert Dewar  <dewar@adacore.com>
11755
11756         * debug.adb: Improve -gnatdI to cover all cases of serialization
11757         Add documentation of dZ, d.t
11758
11759         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
11760         serialization.
11761         (Sprint_Node_Actual): Generate new output associated with implicit
11762         importation and implicit exportation of object declarations.
11763
11764 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11765             Robert Dewar  <dewar@adacore.com>
11766             Javier Miranda  <miranda@adacore.com>
11767             Gary Dismukes  <dismukes@adacore.com>
11768
11769         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
11770         to make treatment of limited views uniform for all visible declarations
11771         in a limited_withed package.
11772         Improve warnings for in out parameters
11773         (Set_Related_Interaface/Related_Interface): Allow the use of this
11774         attribute with constants.
11775         (Write_Field26_Name): Handle attribute Related_Interface in constants.
11776         Warn on duplicate pragma Preelaborable_Initialialization
11777
11778         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
11779         generation of a freezing node to ensure proper management of null
11780         excluding access types in the backend.
11781         (Create_Extra_Formals): Test base type of the formal when checking for
11782         the need to add an extra accessibility-level formal. Pass the entity E
11783         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
11784         originally being done in a couple of cases), to ensure that the
11785         Extra_Formals list gets set on the entity E when the first entity is
11786         added.
11787         (Conforming_Types): Add missing calls to Base_Type to the code that
11788         handles anonymous access types. This is required to handle the
11789         general case because Process_Formals builds internal subtype entities
11790         to handle null-excluding access types.
11791         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11792         functions that need it, even when not marked Requires_Overriding.
11793         Improve warnings for in out parameters
11794         (Analyze_Function_Return): Warn for disallowed null return
11795         Warn on return from procedure with unset out parameter
11796         Ensure consistent use of # in error messages
11797         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
11798         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
11799         the implicit conversion of the expression done for anonymous access
11800         types. This is required to generate the code of the null excluding
11801         check (if required).
11802
11803         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
11804         A formal parameter is never publicly referenceable outside of its body.
11805         (Check_References): For an unreferenced formal parameter in an accept
11806         statement, use the same warning circuitry as for subprogram formal
11807         parameters.
11808         (Warn_On_Unreferenced_Entity): New subprogram, taken from
11809         Output_Unreferenced_Messages, containing the part of that routine that
11810         is now reused for entry formals as described above.
11811         (Goto_Spec_Entity): New function
11812         (Check_References): Do not give IN OUT warning for dispatching operation
11813         Improve warnings for in out parameters
11814         (Test_Ref): Check that the entity is not undefinite before calling
11815         Scope_Within, in order to avoid infinite loops.
11816         Warn on return from procedure with unset out parameter
11817         Improved warnings for unused variables
11818
11819 2007-08-14  Robert Dewar  <dewar@adacore.com>
11820             Javier Miranda  <miranda@adacore.com>
11821             Gary Dismukes  <dismukes@adacore.com>
11822
11823         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
11824         (Expand_N_Attribute_Reference): Further unify the handling of the
11825         three forms of access attributes, using common code now for all three
11826         cases. Add a test for the case of applying an access attribute to
11827         an explicit dereference when the context is an access-to-interface
11828         type. In that case we need to apply the conversion to the prefix
11829         of the explicit dereference rather than the prefix of the attribute.
11830         (Attribute_Version, UET_Address): Set entity as internal to ensure
11831         proper dg output of implicit importation.
11832         (Expand_Access_To_Type): Removed.
11833         (Expand_N_Attribute_Reference): Merge the code from the three cases
11834         of access attributes, since the processing is largely identical for
11835         these cases. The substantive fix here is to process the case of a
11836         type name prefix (current instance case) before handling the case
11837         of interface prefixes.
11838
11839 2007-08-14  Thomas Quinot  <quinot@adacore.com>
11840             Ed Schonberg  <schonberg@adacore.com>
11841             Javier Miranda  <miranda@adacore.com>
11842             Robert Dewar  <dewar@adacore.com>
11843
11844         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
11845         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
11846         type that is an anonymous access to controlled object, establish
11847         an associated finalization chain to avoid corrupting the global
11848         finalization list when a dynamically allocated object designated
11849         by such a component is deallocated.
11850         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
11851         functions that need it, even when not marked Requires_Overriding.
11852         (Initialize_Tag): Replace call to has_discriminants by call to
11853         Is_Variable_Size_Record in the circuitry that handles the
11854         initialization of secondary tags.
11855         (Is_Variable_Size_Record): New implementation.
11856         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
11857         Suppress_Initialization pragma for a derived type.
11858         (Is_Variable_Size_Record): New subprogram.
11859         (Build_Offset_To_Top_Functions): New implementation that simplifies the
11860         initial version of this routine and also fixes problems causing
11861         incomplete initialization of the table of interfaces.
11862         (Build_Init_Procedure): Improve the generation of code to initialize the
11863         the tag components of secondary dispatch tables.
11864         (Init_Secondary_Tags): New implementation that simplifies the previous
11865         version of this routine.
11866         (Make_DT): Add parameter to indicate when type has been frozen by an
11867         object declaration, for diagnostic purposes.
11868         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
11869         diagnose attemps to freeze a subprogram when some untagged type of its
11870         profile is a private type whose full view has not been analyzed yet.
11871         (Freeze_Array_Type): Generate init proc for packed array if either
11872         Initialize or Normalize_Scalars is set.
11873         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
11874         constructing the new profile, copy the null_exclusion indicator for each
11875         parameter, to ensure full conformance of the new body with the spec.
11876
11877         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
11878         Create wrappers for constructor functions that need it, even when not
11879         marked Requires_Overriding.
11880         (Covers): Handle properly designated types of anonymous access types,
11881         whose non-limited views are themselves incomplete types.
11882         (Add_Entry): Use an entity to store the abstract operation which hides
11883         an interpretation.
11884         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
11885         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
11886         initialization aggregate.
11887         (Function_Interp_May_Be_Hidden): Rename to
11888         Function_Interp_Has_Abstract_Op.
11889         (Has_Compatible_Type): Remove machinery that skips interpretations if
11890         they are labeled as potentially hidden by an abstract operator.
11891         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
11892         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
11893         (Write_Overloads): Output the abstract operator if present.
11894         (Add_Entry): Before inserting a new entry into the interpretation table
11895         for a node, determine whether the entry will be disabled by an abstract
11896         operator.
11897         (Binary_Op_Interp_May_Be_Hidden): New routine.
11898         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
11899         aggregate.
11900         (Function_Interp_May_Be_Hidden): New routine.
11901         (Has_Compatible_Type): Do not consider interpretations hidden by
11902         abstract operators when trying to determine whether two types are
11903         compatible.
11904         (Has_Hidden_Interp): New routine.
11905         (Set_May_Be_Hidden_Interp): New routine.
11906         (Write_Overloads): Write the status of flag May_Be_Hidden.
11907
11908 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
11909             Javier Miranda  <miranda@adacore.com>
11910
11911         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
11912         types declared in the declarative part of a nested package body or in
11913         the proper body of a stub.
11914         (Set_All_DT_Position): Add missing check to avoid wrong assignation
11915         of the same dispatch table slot to renamed primitives.
11916         (Make_Select_Specific_Data_Table): Handle private types.
11917         (Tagged_Kind): Handle private types.
11918         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
11919         output of implicit importation and exportation.
11920         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
11921         first formal of the thunk is always associated with the controlling
11922         type. In addition perform the following code cleanup: remove formal
11923         Thunk_Alias which is no longer required, cleanup evaluation of the
11924         the controlling type, and update the documentation.
11925         Replace occurrence of Default_Prim_Op_Count by
11926         Max_Predef_Prims. Addition of compile-time check to verify
11927         that the value of Max_Predef_Prims is correct.
11928         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
11929         (Make_DT): Add parameter to indicate when type has been frozen by an
11930         object declaration, for diagnostic purposes.
11931         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
11932         construction of statically allocated dispatch tables.
11933         (Make_DT): In case of library-level tagged types export the declaration
11934         of the primary tag. Remove generation of tags (now done by Make_Tags).
11935         Additional modifications to handle non-static generation of dispatch
11936         tables. Take care of building tables for asynchronous interface types
11937         (Make_Tags): New subprogram that generates the entities associated with
11938         the primary and secondary tags of Typ and fills the contents of Access_
11939         Disp_Table. In case of library-level tagged types imports the forward
11940         declaration of the primary tag that will be declared later by Make_DT.
11941         (Expand_Interface_Conversion): In case of access types to interfaces
11942         replace an itype declaration by an explicit type declaration to avoid
11943         problems associated with the scope of such itype in transient blocks.
11944
11945 2007-08-14  Robert Dewar  <dewar@adacore.com>
11946             Ed Schonberg  <schonberg@adacore.com>
11947             Javier Miranda  <miranda@adacore.com>
11948
11949         * exp_util.ads, exp_util.adb:
11950         This patch replaces a number of occurrences of explicit tests for N_Null
11951         with calls to Known_Null. This improves tracking of null values, since
11952         Known_Null also catches null constants, and variables currently known to
11953         be null, so we get better tracking.
11954         (Ensure_Defined): create an itype reference only in the scope of the
11955         itype.
11956         (Side_Effect_Free): A selected component of an access type that
11957         denotes a component with a rep clause must be treated as not
11958         side-effect free, because if it is part of a linked structure its
11959         value may be affected by a renaming.
11960         (Expand_Subtype_From_Expr): For limited objects initialized with build
11961         in place function calls, do nothing; otherwise we prematurely introduce
11962         an N_Reference node in the expression initializing the object, which
11963         breaks the circuitry that detects and adds the additional arguments to
11964         the called function. Bug found working in the new patch for statically
11965         allocated dispatch tables.
11966         (Is_Library_Level_Tagged_Type): New subprogram.
11967         (Remove_Side_Effects): If the expression of an elementary type is an
11968         operator treat as a function call.
11969         (Make_Literal_Range): If the index type of the array is not integer, use
11970         attributes properly to compute the constraint on the resulting aggregate
11971         which is a string.
11972
11973         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
11974         class-wide type whose base type is an incomplete private type, leave
11975         class-wide type unfrozen so that freeze nodes can be generated
11976         properly at a later point.
11977         (Freeze_Entity, array case): Handle case of pragma Pack and component
11978         size attributre clause for same array.
11979
11980 2007-08-14  Vincent Celier  <celier@adacore.com>
11981
11982         * prj.ads, prj.adb: Update Project Manager to new attribute names for
11983         gprbuild.
11984         Allow all valid declarations in configuration project files
11985         (Reset): Initialize all tables and hash tables in the project tree data
11986         Major update of the Project Manager and of the project aware tools,
11987         including gprmake, so that the same sources in the GNAT repository
11988         can be used by gprbuild.
11989         (Slash_Id): Change type to be Path_Name_Type
11990         (Slash): Return a Path_Name_Type instead of a File_Name_Type
11991
11992         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
11993         gprbuild.
11994         Update Project Manager to new attribute names for ghprbuild
11995         Allow all valid declarations in configuration project files
11996         Major update of the Project Manager and of the project aware tools,
11997         including gprmake, so that the same sources in the GNAT repository
11998         can be used by gprbuild.
11999
12000         * prj-com.ads:
12001         Major update of the Project Manager and of the project aware tools,
12002         including gprmake, so that the same sources in the GNAT repository
12003         can be used by gprbuild.
12004
12005         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
12006         insensitive flag for attributes with optional index.
12007         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
12008         array attribute, put the index in lower case.
12009         Update Project Manager to new attribute names for ghprbuild
12010         Allow all valid declarations in configuration project files
12011         Major update of the Project Manager and of the project aware tools,
12012         including gprmake, so that the same sources in the GNAT repository
12013         can be used by gprbuild.
12014
12015         * prj-env.ads, prj-env.adb:
12016         Major update of the Project Manager and of the project aware tools,
12017         including gprmake, so that the same sources in the GNAT repository
12018         can be used by gprbuild.
12019         (Get_Reference): Change type of parameter Path to Path_Name_Type
12020
12021         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
12022         removing '-' from the path to start with the first character of the
12023         next directory.
12024         Major update of the Project Manager and of the project aware tools,
12025         including gprmake, so that the same sources in the GNAT repository
12026         can be used by gprbuild.
12027         Major update of the Project Manager and of the project aware tools,
12028         including gprmake, so that the same sources in the GNAT repository
12029         can be used by gprbuild.
12030
12031         * prj-nmsc.ads, prj-nmsc.adb:
12032         Update Project Manager to new attribute names for ghprbuild
12033         Allow all valid declarations in configuration project files
12034         (Search_Directories): Detect subunits that are specified with an
12035         attribute Body in package Naming. Do not replace a source/unit in the
12036         same project when the order of the source dirs are known. Detect
12037         duplicate sources/units in the same project when the order of the
12038         source dirs are not known.
12039         (Check_Ada_Name): Allow all identifiers that are not reserved words
12040         in Ada 95.
12041         Major update of the Project Manager and of the project aware tools,
12042         including gprmake, so that the same sources in the GNAT repository
12043         can be used by gprbuild.
12044         (Look_For_Sources): If the list of sources is empty, set the object
12045         directory of non extending project to nil.
12046         Change type of path name variables to be Path_Name_Type
12047         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
12048         otherwise creating missing directories will fail.
12049
12050         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
12051         prj-part.ads, prj-part.adb:
12052         Major update of the Project Manager and of the project aware tools,
12053         including gprmake, so that the same sources in the GNAT repository
12054         can be used by gprbuild.
12055
12056         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
12057         insensitive flag for attributes with optional index.
12058         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
12059         array attribute, put the index in lower case.
12060         (Parse_Variable_Reference): Allow the current project name to be used in
12061         the prefix of an attribute reference.
12062
12063         * prj-util.ads, prj-util.adb
12064         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
12065         defaulted to False. When True, always check against indexes in lower
12066         case.
12067
12068         * snames.ads, snames.h, snames.adb:
12069         Update Project Manager to new attribute names for gprbuild
12070         Allow all valid declarations in configuration project files
12071
12072 2007-08-14  Robert Dewar  <dewar@adacore.com>
12073             Ed Schonberg  <schonberg@adacore.com>
12074
12075         * opt.ads: Warning for non-local exception propagation now off by
12076         default
12077         New switch -gnatI to disable representation clauses
12078         Implement new pragma Implicit_Packing
12079
12080         * usage.adb:
12081         Warning for non-local exception propagation now off by default
12082         Add warning for unchecked conversion of pointers wi different
12083         conventions.
12084         New switch -gnatI to disable representation clauses
12085
12086         * usage.adb: new switch -gnatyS
12087
12088         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
12089         note that aggregates of anonymous array types are not flagged.
12090         -gnatwc now includes membership tests optimized away
12091         -gnatw.x warnings are now off by default
12092         Added conditional compilation Appendix
12093         Add documentation of -gnatI
12094         Add documentation for new -gnatyS style check
12095         Update documentation about SAL and auto-init on Windows.
12096
12097         * gnat_rm.texi:
12098         Add documentation for pragma Check_Name and 'Enabled attribute
12099         Document that Eliminate on dispatching operation is ignored
12100         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
12101         Document pragma Main
12102         Document pragma Implicit_Packing
12103
12104         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
12105         different conventions
12106         New switch -gnatI to disable representation clauses
12107
12108         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
12109         recognized, report the invalid characters including "-gnat" instead of
12110         just the first character in the switch.
12111         New switch -gnatI to disable representation clauses
12112         Set Warn_On_Object_Renames_Function true for -gnatg
12113
12114         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
12115         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
12116         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
12117         to switch -aP (add directory to project search dir).
12118
12119         * par-prag.adb: Implement new pragma Implicit_Packing
12120
12121         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
12122         type as having a non-standard representation, to force expansion on
12123         conversion to related types.
12124         (Analyze_Pragma): Warn on misspelled pragma
12125         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
12126         Ensure consistent use of # in error messages
12127         Implement pragma Implicit_Packing
12128
12129 2007-08-14  Olivier Hainque  <hainque@adacore.com>
12130             Eric Botcazou  <ebotcazou@adacore.com>
12131
12132         * targtyps.c (get_target_maximum_default_alignment): New function.
12133         Maximum alignment
12134         that the compiler might choose by default for a type or object.
12135         (get_target_default_allocator_alignment): New function. Alignment known
12136         to be honored by the target default allocator.
12137         (get_target_maximum_allowed_alignment): New function. Maximum alignment
12138         we might accept for any type or object on the target.
12139         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
12140
12141         * gigi.h (get_target_maximum_default_alignment): Declare new function.
12142         (get_target_default_allocator_alignment): Likewise.
12143         (get_target_maximum_allowed_alignment): Likewise.
12144
12145         PR ada/19037
12146         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
12147         result of a function call, first try to use a stabilized reference for
12148         a constant renaming too.
12149         (validate_alignment): Use target_maximum_allowed_alignment instead of
12150         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
12151         (gnat_to_gnu_entity): Use common nodes directly.
12152         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
12153         alignment and size for the object.
12154         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
12155         and N_Procedure_Call_Statement.
12156         (takes_address): Rename to lvalue_required_p, add third parameter
12157         'aliased' and adjust recursive calls.
12158         <N_Indexed_Component>: Update 'aliased' from the array type.
12159         <N_Selected_Component>: New case.
12160         <N_Object_Renaming_Declaration>: New Likewise.
12161         (Identifier_to_gnu): Adjust for above changes.
12162         (maybe_stabilize_reference) <CONST_DECL>: New case.
12163
12164         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
12165         between type variants.
12166         (build_simple_component_ref): Likewise.
12167         (build_call_alloc_dealloc): Use target_default_allocator_alignment
12168         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
12169         aligning type circuitry for allocations from the default storage pool.
12170         (build_allocator): Likewise.
12171         (build_simple_component_ref): Manually fold the reference for a
12172         constructor if the record type contains a template.
12173
12174         * utils.c (value_zerop): Delete.
12175         (gnat_init_decl_processing): Emit debug info for common types.
12176         (rest_of_record_type_compilation): If a union contains a field
12177         with a non-constant qualifier, treat it as variable-sized.
12178         (finish_record_type): Give the stub TYPE_DECL a name.
12179         (rest_of_record_type_compilation): Likewise.
12180         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
12181         types are equivalent array types.
12182         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
12183         even if the type is not passed by reference.
12184         (static_ctors, static_dtors): Delete.
12185         (end_subprog_body): Do not record constructors and destructors.
12186         (build_global_cdtor): Delete.
12187         (gnat_write_global_declarations): Do not call build_global_cdtor.
12188
12189         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
12190         -fRTS=rtp is specified.
12191         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
12192         specified.
12193
12194         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
12195         of the personality function with SJLJ exceptions.
12196
12197         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
12198         the name of the personality function with SJLJ exceptions.
12199
12200 2007-08-14  Robert Dewar  <dewar@adacore.com>
12201             Ed Schonberg  <schonberg@adacore.com>
12202
12203         * par.ads, par.adb: Improve handling of extra right parens.
12204         (Par): Remove flag From_Limited_With_Clause.
12205
12206         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
12207         Improve handling of extra right parens.
12208
12209 2007-08-14  Robert Dewar  <dewar@adacore.com>
12210
12211         * par-tchk.adb (TF_Semicolon): Improve error recovery
12212
12213 2007-08-14  Robert Dewar  <dewar@adacore.com>
12214             Ed Schonberg  <schonberg@adacore.com>
12215
12216         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
12217         enumeration type, mark all literals as referenced.
12218         (Eval_Attribute, case 'Image): If the argument is an enumeration
12219         literal and names are available, constant-fold but mark nevertheless as
12220         non-static.
12221         Clean up function names.
12222         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
12223         comment.
12224         (Requires_Simple_Name_Prefix): Removed.
12225
12226 2007-08-14  Robert Dewar  <dewar@adacore.com>
12227             Ed Schonberg  <schonberg@adacore.com>
12228
12229         * sem_ch11.adb: Improved warnings for unused variables
12230
12231         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
12232         is a synchronized interface, the derived type is limited.
12233         (Analyze_Object_Declaration): Mark the potential coextensions in the
12234         definition and expression of an object declaration node.
12235         (Build_Derived_Type): For the completion of a private type declaration
12236         with a derived type declaration, chain the parent type's representation
12237         items to the last representation item of the derived type (not the
12238         first one) if they are not present already.
12239         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
12240         object declaration of forward references to tags.
12241         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
12242         subprogram types can appear as access discriminants of synchronized
12243         types.
12244         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
12245         given in prefixed form as a selected component.
12246         (Process_Discriminants): If not all discriminants have defaults, place
12247         error message on a default that is present.
12248         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
12249         extend a synchronized tagged type.
12250         Improved warnings for unused variables
12251         (Is_Visible_Component): Fix a visibility hole on a component inherited
12252         by a private extension when parent is itself declared as a private
12253         extension, and the derivation is in a child unit.
12254         (Find_Hidden_Interface): Move spec from the package body.
12255
12256 2007-08-14  Robert Dewar  <dewar@adacore.com>
12257             Ed Schonberg  <schonberg@adacore.com>
12258
12259         * sem_ch5.adb: Improve warnings on redundant assignments
12260
12261         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
12262         parameter
12263         (Is_Synchronized_Tagged_Type): New subprogram that returns true
12264         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
12265         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
12266         is set to False. Improves handling of Known_[Not_]Null.
12267         (Wrong_Type): Special case address arithmetic attempt
12268         (Collect_Abstract_Interfaces): Add new formal to allow collecting
12269         abstract interfaces just using the partial view of private types.
12270         (Has_Abstract_Interfaces): Add new formal to allow checking types
12271         covering interfaces using the partial view of private types.
12272         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
12273         component still needs to be defined in this case, but is never
12274         initialized as VMs are using other dispatching mechanisms.
12275         (Abstract_Interface_List): For a protected type, use base type to get
12276         proper declaration.
12277         Improve warnings on redundant assignments
12278         (Is_Variable): Handle properly an implicit dereference of a prefixed
12279         function call.
12280         (Build_Actual_Subtype): If this is an actual subtype for an
12281         unconstrained formal parameter, use the sloc of the body for the new
12282         declaration, to prevent anomalises in the debugger.
12283
12284 2007-08-14  Robert Dewar  <dewar@adacore.com>
12285
12286         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
12287         dispatching operation
12288
12289 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12290             Gary Dismukes  <dismukes@adacore.com>
12291
12292         * exp_aggr.ads,
12293         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
12294         expanded aggregate code before allocator, and ahead of declaration for
12295         temporary, to prevent access before elaboration when the allocator is
12296         an actual for an access parameter.
12297         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
12298         the TSD and the table of interfaces.
12299         (Convert_To_Assignments): Augment the test for delaying aggregate
12300         expansion for limited return statements to include the case of extended
12301         returns, to prevent creation of an unwanted transient scope.
12302         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
12303         (Expand_Array_Aggregate): Handle aggregates associated with
12304         statically allocated dispatch tables.
12305         (Expand_Record_Aggregate): Handle aggregates associated with
12306         statically allocated dispatch tables.
12307         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
12308         of anonymous access type.
12309
12310 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12311
12312         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
12313         is a variable that renames a slice, use the variable itself in the
12314         expannsion when the renamed expression itself may be modified between
12315         the declaration of the renaming and the array assignment.
12316
12317 2007-08-14  Jerome Guitton  <guitton@adacore.com>
12318
12319         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
12320         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
12321         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
12322         New functions; dummy implementations.
12323
12324         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
12325         functions, used to implement the multi-tasks mode routines on VxWorks.
12326
12327         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
12328         New functions, thin
12329         binding to the VxWorks routines which have changed between VxWorks 5
12330         and 6.
12331         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
12332         which are not callable from a RTP.
12333
12334         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
12335         implemented for the multi-tasks mode on VxWorks 5 and 6.
12336
12337         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
12338
12339         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
12340         functions.
12341
12342 2007-08-14  Vincent Celier  <celier@adacore.com>
12343
12344         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
12345         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
12346         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
12347         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
12348         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
12349         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
12350         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
12351         procedure.
12352         (Major_Id_Name): New function.
12353         mlib-tgt.ads/mlib.tgt.adb:
12354         (Library_Major_Minor_Id_Supported): New function, default returns True
12355         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
12356         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
12357         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
12358         Implementation of Library_Major_Minor_Id_Supported returns False
12359         clean.adb:
12360         (Clean_Library_Directory): If major/minor ids are supported, clean all
12361         library files.
12362         Major update of the Project Manager and of the project aware tools,
12363         including gprmake, so that the same sources in the GNAT repository
12364         can be used by gprbuild.
12365
12366 2007-08-14  Olivier Hainque  <hainque@adacore.com>
12367
12368         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
12369         (GCC_ZCX_Support): Switch to True.
12370
12371         * s-intman-solaris.adb (Notify_Exception): Call
12372         Adjust_Context_For_Raise before raising, as expected for signal
12373         handlers in general.
12374
12375         * s-intman-posix.adb (Notify_Exception): Remove declaration of
12376         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
12377         to other implementation bodies.
12378
12379         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
12380         be visible by multiple implementation bodies.
12381
12382         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
12383         only for conditions coming from hardware.
12384         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
12385         adjustments to signal context prior to exception raise from signal
12386         handler.
12387         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
12388         mode.
12389         Solaris section: (__gnat_adjust_context_for_raise): New function.
12390         Implementation of the machine context adjustments to perform prior to
12391         raise from a signal handler. Version for both sparc and x86.
12392         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
12393         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
12394         prior to raising as expected for any handler, before possible nested
12395         faults to make sure all the contexts in a chain have been adjusted by
12396         the time we propagate.
12397
12398 2007-08-14  Pascal Obry  <obry@adacore.com>
12399
12400         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
12401         (SYSTEM_INFO): New record.
12402         (SetThreadIdealProcessor): New imported routine needed for supporting
12403         task_info pragma on Windows.
12404
12405         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
12406         info can be applied to the current host.
12407         (Create_Task): Set the ideal processor if information is present.
12408
12409         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
12410         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
12411
12412 2007-08-14  Olivier Hainque  <hainque@adacore.com>
12413
12414         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
12415         stack size and initial stack pointer value for a given task.
12416         (Enter_Task): Get the stack attributes of the task we are entering and
12417         let the stack checking engine know about them.
12418
12419         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
12420         Let the stack-checking engine know about the initial sp value and stack
12421         size associated with the current task.
12422         (Set_Stack_Info): If a stack base has been notified for the current
12423         task, honor it. Fallback to the previous less accurate method otherwise.
12424
12425         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
12426
12427 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12428
12429         * sem_ch10.adb: Create a limited view of an incomplete type, to make
12430         treatment of limited views uniform for all visible declarations in a
12431         limited_withed package.
12432         Set flag indicating that a subprogram body for a child unit has a
12433         generated spec.
12434         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
12435         separate declaration, remove the unit name from visibility after
12436         compilation, so that environment is clean for subsequent compilations.
12437         (Install_Limited_Context_Clauses): Do not install a
12438         limited_private_with_clause unless the current unit is a body or a
12439         private child unit.
12440         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
12441         in the same fashion.
12442         (Install_Limited_Withed_Unit): Do not install a limited with clause if
12443         it applies to the declaration of the current package body.
12444         (Remove_Private_With_Clauses): If there is a regular with_clause for
12445         the unit, delete Private_With_Clause from context, to prevent improper
12446         hiding when processing subsequent nested packages and instantiations.
12447
12448 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
12449
12450         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
12451         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
12452         representing absolute path names.
12453         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
12454
12455         * cstreams.c (__gnat_full_name for VxWorks): Use
12456         __gnat_is_absolute_path to detect whether we need to add the current
12457         directory to normalize the path.
12458
12459 2007-08-14  Javier Miranda  <miranda@adacore.com>
12460
12461         * a-tags.ads,
12462         a-tags.adb (Displace): Associate a message with the raised CE
12463         exception.
12464         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
12465         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
12466         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
12467         spec.
12468         (Default_Prim_Op_Count): Removed.
12469         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
12470         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
12471         Remove pragma Inline_Always.
12472
12473         * rtsfind.ads (Default_Prim_Op_Count): Removed
12474         (Max_Predef_Prims): New entity
12475         (RE_Expanded_Name): Removed
12476         (RE_HT_Link): Removed
12477         (RE_Iface_Tag): Remmoved
12478         (RE_Ifaces_Table): Removed
12479         (RE_Interfaces_Array): Removed
12480         (RE_Interface_Data_Element): Removed
12481         (RE_Nb_Ifaces): Removed
12482         (RE_RC_Offset): Removed
12483         (RE_Static_Offset_To_Top): Removed
12484
12485         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
12486         formal.
12487         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
12488         Prim_Op_Count by Max_Predef_Prims.
12489
12490 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12491             Vincent Celier  <celier@adacore.com>
12492
12493         * binde.adb (Elab_All_Links): Remove unnecessary call to
12494         Generic_Separately_Compiled (if a unit satisfies this predicate, there
12495         won't be an associated Afile).
12496         (Elab_All_Links): Fail if a referenced unit cannot be found
12497
12498         * bindgen.adb:
12499         Fix comments in bindgen regarding consistency checks done in Bcheck:
12500         the checks are made across units within a partition, not across several
12501         partitions.
12502         Fix generation of C binder file for VxWorks.
12503
12504         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
12505         Generic_May_Lack_ALI, more descriptive of the current use of the
12506         predicate, and update documentation.
12507
12508         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
12509         reorganization and documentation update for the case of predefined
12510         library generics (for which we do not reference an Afile).
12511
12512 2007-08-14  Robert Dewar  <dewar@adacore.com>
12513
12514         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
12515         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
12516         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
12517         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
12518         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
12519         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
12520         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
12521         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
12522         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
12523         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
12524         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
12525         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
12526         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
12527         g-altcon.adb: Minor reformatting
12528
12529         ada-tree.h: Delete empty line.
12530
12531         ali.ads: Minor reformatting
12532         Clarification of comments.
12533         Minor spelling correction
12534
12535         * exp_dbug.adb: Add Warnings Off to suppress new warning
12536
12537         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
12538         formal
12539
12540         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
12541         value
12542
12543         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
12544
12545         * a-textio.ads: Reorder the standard input/output/error declarations
12546         for consistency.
12547
12548         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
12549
12550         * par-ch2.adb: Recognize RM specially in errout
12551         Change 'R'M to RM in all error messages
12552
12553         * scng.adb: Recognize RM specially in errout
12554
12555         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
12556         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
12557
12558         * s-direio.adb: Add missing routine header box.
12559
12560         * sem_attr.ads: Add ??? comments
12561
12562         * sem_eval.adb: Recognize RM specially in errout
12563         Change 'R'M to RM in all error messages
12564
12565         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
12566
12567         * s-tasinf.ads: Fix minor comment typo.
12568
12569         * a-cihama.adb: Minor comment addition
12570
12571         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
12572         formal
12573
12574         * s-tasinf-tru64.ads: Fix minor comment typo.
12575
12576         * itypes.ads: Comment update.
12577
12578         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
12579         anymore.
12580
12581         * argv.c: Added protection against null gnat_argv and gnat_envp.
12582
12583         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
12584         warning message when Tolerate_Consistency_Errors is True.
12585
12586         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
12587         Any_Id, as this subprogram is only applicable to *type* entities (it
12588         sets RM_Size). Instead initialize just Esize and Alignment.
12589
12590 2007-08-14  Bob Duff  <duff@adacore.com>
12591
12592         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
12593         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
12594         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
12595         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
12596         a-coorse.ads (Next): Applied pragma Inline.
12597         Make all Containers packages Remote_Types (unless they are already
12598         Pure).
12599         (Previous): applied pragma Inline
12600         (Elements_Type): is now a record instead of an array
12601
12602 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12603
12604         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
12605         of Set_Item.
12606         (Set_Item): When the new item is an element of the currently allocated
12607         table passed by reference, save a copy on the stack if we're going
12608         to reallocate. Also, in Table.Set_Item, make sure we test the proper
12609         variable to determine whether to call Set_Last.
12610
12611         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
12612         symbols-vms.adb, symbols-processing-vms-alpha.adb,
12613         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
12614         some occurrences of the pattern
12615            T.Increment_Last;
12616            T.Table (T.Last) := Value;
12617         with a cleaner call to
12618            T.Append (Value);
12619
12620 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12621             Gary Dismukes  <dismukes@adacore.com>
12622             Thomas Quinot  <quinot@adacore.com>
12623
12624         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
12625         derived type with interface progenitors use the analyzed formal as the
12626         parent of the actual, to create renamings for all the inherited
12627         operations in Derive_Subprograms.
12628         (Collect_Previous_Instances): new procedure within of
12629         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
12630         unit being loaded, to ensure that the generation of global symbols is
12631         consistent in different compilation modes.
12632         (Is_Tagged_Ancestor): New function testing the ancestor relation that
12633         takes progenitor types into account.
12634         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
12635         traversing over the primitives of the formal and actual types to locate
12636         any abstract subprograms of the actual type that correspond to a
12637         nonabstract subprogram of the formal type's ancestor type(s), and issue
12638         an error if such is found.
12639         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
12640         Instantiate_Package_Body, Instantiate_Subprogram_Body):
12641         Remove bogus guard around calls to Inherit_Context.
12642         (Reset_Entity): If the entity is the selector of a selected component
12643         that denotes a named number, propagate constant-folding to the generic
12644         template only if the named number is global to the generic unit.
12645         (Set_Instance_Env): Only reset the compilation switches when compiling
12646         a predefined or internal unit.
12647
12648 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12649
12650         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
12651         parameter to determine whether operation applies to the prefix.
12652         (Complete_Object_Operation): If actual has an access type and
12653         controlling formal is not an in_parameter, reject the actual if it is
12654         an access_to_constant type.
12655         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
12656         type, the candidate operations are found in the scope of declaration of
12657         the type, because the type has no primitive subprograms.
12658         (Analyze_Selected_Component): If prefix is class-wide, and root type is
12659         a private extension, only examine visible components before trying to
12660         analyze as a prefixed call.
12661         Change Entity_List to Type_To_Use, for better readability.
12662         (Has_Fixed_Op): Use base type when checking whether the type of an
12663         operator has a user-defined multiplication/division
12664         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
12665         user-defined operators are available for fixed-point types.
12666
12667 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12668             Ed Schonberg  <schonberg@adacore.com>
12669
12670         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
12671         formal At_Any_Place indicating, when True, that we want to test for
12672         availability of the stream attribute at any place (as opposed to the
12673         current visibility context only).
12674         (Missing_Read_Write_Attributes): A stream attribute is missing for the
12675         purpose of enforcing E.2.2(8) only if it is not available at any place.
12676         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
12677         when checking the legality of an extension aggregate in a preelaborable
12678         package. Treat the literal null as a valid default expression in a
12679         component declaration for a type with preelaborable initialization.
12680         A limited interface is a legal progenitor for the designated type of a
12681         remote access to class-wide type.
12682
12683 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12684             Ed Schonberg  <schonberg@adacore.com>
12685
12686         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
12687         reference): Use correct entity as denoted entity for the selector of
12688         the rewritten node.
12689         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
12690         setting the Referenced_As_LHS flag for entities that are implicitly
12691         dereferenced.
12692         (Find_Type): If the type is an internally generated incomplete type,
12693         mark the full view as referenced, to prevent spurious warnings.
12694         (Find_Selected_Component, Has_Components): Handle properly non-limited
12695         views that are themselves incomplete types.
12696         Handle interfaces visible through limited-with clauses.
12697         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
12698         subprogram generic actual for which we have generated a renaming.
12699         Warn when the renaming introduces a homonym of
12700         the renamed entity, and the renamed entity is directly visible.
12701
12702 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12703             Hristian Kirtchev  <kirtchev@adacore.com>
12704
12705         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
12706         appear in the subtree to the current allocator if it is not a static
12707         coextension.
12708         (Resolve_Allocator): Perform cleanup if resolution has determined that
12709         the allocator is not a coextension.
12710         (Resolve): Skip an interpretation hidden by an abstract operator only
12711         when the type of the interpretation matches that of the context.
12712         (Resolve): When looping through all possible interpretations of a node,
12713         do not consider those that are hidden by abstract operators.
12714         (Resolve_Actuals): When verifying that an access to class-wide object
12715         is an actual  for a controlling formal, ignore anonymous access to
12716         subprograms whose return type is an access to class_wide type.
12717         (Resolve_Slice): If the prefix of the slice is a selected component
12718         whose type depends on discriminants, build its actual subtype before
12719         applying range checks on the bounds of the slice.
12720         (Valid_Conversion): In an instance or inlined body, compare root types,
12721         to prevent anomalies between private and public views.
12722         (Resolve): Improve error message for ambiguous fixed multiplication
12723         expressions that involve universal_fixed multiplying operations.
12724
12725 2007-08-14  Javier Miranda  <miranda@adacore.com>
12726             Hristian Kirtchev  <kirtchev@adacore.com>
12727
12728         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
12729         location to allow the correct generation of errors in case of
12730         restrictions applied to the expanded code.
12731         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
12732         function if the condition does not reference them.
12733         (Expand_Entry_Body_Declarations): Mark the index constant as having a
12734         valid value.
12735
12736 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12737             Pablo Oliveira  <oliveira@adacore.com>
12738
12739         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
12740         typecode parameters for a union (in a variant record), remove
12741         extraneous layer of Any wrapping for member label.
12742         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
12743         elabration statements, register the package with the name server
12744         at the beginning, not at the end, of the elaboration statements so
12745         that they can create remote access to subprogram values that designate
12746         remote subprograms from the package.
12747
12748 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12749
12750         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
12751         values to compute the number of seconds since the Unix Epoc in order to
12752         account for Daylight Savings Time. Perform special processing for dates
12753         that are earlier than the Unix Epoc to obtain a negative number.
12754
12755 2007-08-14  Emmanuel Briot  <briot@adacore.com>
12756
12757         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
12758         switches.
12759
12760 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
12761
12762         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
12763         binder-generated file is not in Ada.
12764         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
12765         recorded in the ALI file.
12766         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
12767
12768 2007-08-14  Vincent Celier  <celier@adacore.com>
12769
12770         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
12771         (Output_Source): Do nothing if parameter is No_Sdep_Id
12772
12773         * make.adb (Gnatmake): Do not rebuild an archive simply because a
12774         shared library it imports has a later time stamp.
12775         (Check): Resolve the symbolic links in the path name of the object
12776         directory.
12777         Check that the ALI file is in the correct object directory
12778         Check if a file name does not correspond to the mapping of units
12779         to file names.
12780         (Display_Version): New procedure
12781         (Initialize): Process switches --version and --help
12782         Use type Path_Name_Type for path name
12783
12784 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
12785
12786         * impunit.adb: Re-organize System.Random_Numbers and
12787         GNAT.Random_Numbers and add to builds.
12788
12789         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
12790
12791         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
12792
12793         * a-assert.ads, a-assert.adb: New files.
12794
12795 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
12796
12797         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
12798         if AAMP_On_Target is True, then the size of the type encompasses two
12799         addresses (a static link and a subprogram address), except in the case
12800         of library-level access types.
12801
12802 2007-08-14  Vincent Celier  <celier@adacore.com>
12803
12804         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
12805         writing the line.
12806         (Write_Eol_Keep_Blanks): New procedure to write a line, including
12807         possible trailing spaces.
12808         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
12809
12810 2007-08-14  Javier Miranda  <miranda@adacore.com>
12811
12812         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
12813         null-excluding access types.
12814
12815 2007-08-14  Javier Miranda  <miranda@adacore.com>
12816
12817         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
12818         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
12819         of private types add missing check on matching interfaces in the
12820         partial and full declarations.
12821         (Analyze_Protected_Type): Code cleanup.
12822         (Analyze_Task_Type): Code cleanup.
12823
12824 2007-08-14  Javier Miranda  <miranda@adacore.com>
12825
12826         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
12827         generated interface thunk.
12828
12829 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12830
12831         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
12832         obsolescent warning on application of 'Class to an incomplete type.
12833
12834         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
12835         prevent obsolescent warning on application of 'Class to an incomplete
12836         type.
12837
12838 2007-08-14  Pascal Obry  <obry@adacore.com>
12839
12840         * s-fileio.adb (Is_Open): Add check for usability of the underlying
12841         file stream.
12842
12843 2007-08-14  Cyrille Comar  <comar@adacore.com>
12844
12845         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
12846         since it is potentially used in cases implying double finalization of
12847         the same object.
12848
12849 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
12850
12851         * s-tasini.adb (Get_Stack_Info): Move this function to
12852         System.Soft_Links.Tasking because it is common to the full and the
12853         restricted run times.
12854         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
12855         in SSL.Tasking.Init_Tasking_Soft_Links.
12856
12857         * s-solita.adb (Get_Stack_Info): Function moved from
12858         System.Tasking.Initialization because it is common to the full and the
12859         restricted run times.
12860         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
12861
12862 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
12863
12864         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
12865         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
12866         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
12867         parameter.
12868
12869         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
12870         guard to 12K.
12871
12872 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
12873
12874         * s-veboop.adb (SU): New named number initialized to
12875         System.Storage_Unit.
12876         (True_Val): The initialization expression is revised to use SU (=
12877         Storage_Unit) rather than assuming 8 for the component size of an
12878         unpacked Boolean array.
12879
12880 2007-08-14  Tristan Gingold  <gingold@adacore.com>
12881
12882         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
12883
12884         * tb-ivms.c: New file.
12885
12886         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
12887
12888 2007-08-14  Geert Bosch  <bosch@adacore.com>
12889
12890         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
12891         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
12892         Add required linker pragmas for automatically linking with the gnalasup
12893         linear algebra support library, and the systems math library.
12894         Rename cdot to cdotu and zdot to zdotu.
12895         Update header comment to describe purpose of package.
12896
12897 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12898
12899         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
12900         an explicitly specified Associated_Final_Chain, use that list.
12901         (Expand_N_Package_Body): Build dispatch tables of library level tagged
12902         types.
12903         (Expand_N_Package_Declaration): Build dispatch tables of library level
12904         tagged types. Minor code cleanup.
12905
12906 2007-08-14  Vincent Celier  <celier@adacore.com>
12907
12908         * gnatchop.adb (Terminate_Program): Remove exception and use
12909         Types.Terminate_Program instead.
12910
12911         * osint.ads, osint.adb (Current_Exit_Status): New global variable
12912         (Find_Program_Name): Added protection against empty name.
12913         (OS_Exit_Through_Exception): New procedure
12914
12915         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
12916         (OS_Exit_Default): New procedure that contains the previous
12917         implementation of procedure OS_Exit.
12918         (Final_Value): Remove obsolete Interix stuff.
12919
12920 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12921
12922         * g-socket.ads: Reorganize example code so that it also works on
12923         Windows XP.
12924
12925 2007-08-14  Tristan Gingold  <gingold@adacore.com>
12926
12927         * g-trasym.ads: AIX now supports symbolic backtraces.
12928
12929 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12930
12931         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
12932         units being loaded to detect circularities. A circularity may be
12933         present even if the current chain of pending units to load starts from
12934         a limited_with_clause.
12935
12936         * lib-load.ads: Change profile of Load_Unit to use a with_clause
12937         rather than a boolean flag, in order to detect circularities in
12938         with_clauses.
12939
12940         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
12941         than propagating the From_Limited_With flag, in order to handle
12942         properly circularities involving with_clauses.
12943
12944 2007-08-14  Nicolas Setton  <setton@adacore.com>
12945
12946         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
12947         warnings.
12948
12949 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
12950
12951         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
12952         to build for libgnala.
12953         libgnat: Add rules to build libgnala.a
12954         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
12955         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
12956         Add s-osinte-vxworks-kernel.adb to the target pairs of the
12957         kernel run-time lib for VxWorks 6, which would provide a different
12958         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
12959         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
12960         running ZCX by default.
12961         Add g-sttsne-locking to LynxOS version.
12962         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
12963         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
12964
12965         * system-darwin-x86.ads: New file.
12966
12967         * Make-lang.in: Delete files before copying onto them, so if they are
12968         read-only, the copy won't fail.
12969         Update dependencies
12970
12971 2007-08-14  Pascal Obry  <obry@adacore.com>
12972
12973         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
12974         naming scheme.
12975
12976 2007-08-14  Vincent Celier  <celier@adacore.com>
12977
12978         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
12979         (Gcc): Initialize Gcc_Name at the first call
12980
12981 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
12982
12983         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
12984         with_clauses of the enclosing unit when analyzing the package
12985         specification of a nested instance.
12986
12987 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
12988
12989         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
12990         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
12991         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
12992         layout of N_Allocator.
12993
12994 2007-08-14  Thomas Quinot  <quinot@adacore.com>
12995
12996         * rtsfind.adb (Check_RPC): Add PCS version check.
12997
12998         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
12999         (Gnat_Free_Software): New function.
13000
13001         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
13002         the PCS_Version value from s-parint, used to check that it is consistent
13003         with what exp_dist expects.
13004
13005         * s-parint.ads (PCS_Version): New entity for checking consistency
13006         between exp_dist and PCS.
13007
13008         * gen-soccon.c: (SO_REUSEPORT): New constant.
13009
13010 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
13011
13012         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
13013         variable Sub_Second to Duration in order to accomodate a larger range
13014         of arithmetic operations.
13015
13016 2007-08-14  Bob Duff  <duff@adacore.com>
13017
13018         * g-sttsne-locking.ads: Move comments from spec to body.
13019         * g-sttsne-locking.adb: Move comments from spec to body.
13020         * g-sttsne-vxworks.ads: Removed.
13021         * g-sttsne-vxworks.adb: Removed.
13022
13023 2007-08-11  Ian Lance Taylor  <iant@google.com>
13024
13025         * misc.c (gnat_get_alias_set): Change return type to
13026         alias_set_type.
13027
13028 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13029
13030         * decl.c, utils2.c: Fix whitespace in last change.
13031
13032 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13033
13034         * decl.c (compare_field_bitpos): Constify.
13035         * utils2.c (compare_elmt_bitpos): Likewise.
13036
13037 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
13038
13039         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
13040         anonymous access type.
13041         (pthread_sigmask): Now take an access sigset_t.
13042
13043 2007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
13044
13045         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
13046
13047 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
13048
13049         PR tree-optimization/25737
13050         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
13051
13052 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13053
13054         * trans.c (Attribute_to_gnu): When subtracting an
13055         offset from a pointer, use POINTER_PLUS_EXPR with
13056         NEGATE_EXPR instead of MINUS_EXPR.
13057         (gnat_to_gnu): Likewise.
13058         * utils.c (convert): When converting between
13059         thin pointers, use POINTER_PLUS_EXPR and sizetype
13060         for the offset.
13061         * utils2.c (known_alignment): POINTER_PLUS_EXPR
13062         have the same semantics as PLUS_EXPR for alignment.
13063         (build_binary_op): Add support for the semantics of
13064         POINTER_PLUS_EXPR's operands.
13065         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
13066
13067 2007-06-11  Rafael Ávila de Espíndola  <espindola@google.com>
13068
13069         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
13070         of get_signed_or_unsigned_type.
13071         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
13072
13073 2007-06-11  Bob Duff  <duff@adacore.com>
13074             Thomas Quinot  <quinot@adacore.com>
13075
13076         * g-stsifd-sockets.adb (Create): Work around strange behavior of
13077         'bind' on windows that causes 'connect' to fail intermittently, by
13078         retrying the 'bind'.
13079         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
13080
13081 2007-06-10  Duncan Sands  <baldrick@free.fr>
13082
13083         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
13084         than to void, for the fields when making a new fat pointer type.
13085         (gnat_substitute_in_type): Now substitute_in_type.
13086         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
13087         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
13088         * utils.c (update_pointer_to): Update fat pointers by updating the
13089         dummy node pointers used for the fields.
13090
13091 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13092             Bob Duff  <duff@adacore.com>
13093
13094         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
13095         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
13096         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
13097         constant Thread_Blocking_IO, always True by default, set False
13098         on a per-runtime basis.
13099         (Need_Netdb_Buffer): New constant.
13100
13101         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
13102         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
13103         files.
13104
13105         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
13106         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
13107         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
13108         child package Task_Safe_NetDB
13109         (Host_Error_Messages): Add stub body.
13110         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
13111
13112         * g-soccon-mingw.ads: Add Windows-specific constants.
13113         (Need_Netdb_Buffer): New constant.
13114         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
13115         wrapper and import inet_addr(3) from the standard sockets library
13116         directly instead.
13117         (In_Addr): Add alignment clause.
13118         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
13119
13120 2007-06-06  Robert Dewar  <dewar@adacore.com>
13121
13122         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
13123         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
13124         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
13125         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
13126         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
13127         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
13128         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
13129         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
13130         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
13131         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
13132         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
13133         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
13134         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
13135         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
13136         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
13137         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
13138         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
13139         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
13140         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
13141         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
13142         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
13143         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
13144         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
13145         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
13146         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
13147         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
13148         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
13149         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
13150         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
13151         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
13152         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
13153         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
13154         Unchecked_* by Ada.Unchecked_*
13155
13156 2007-06-06  Robert Dewar  <dewar@adacore.com>
13157
13158         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
13159         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
13160         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
13161         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
13162         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
13163         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
13164
13165         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
13166         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
13167         s-tasloc.adb, s-tasloc.ads: New files.
13168
13169 2007-06-06  Bob Duff  <duff@adacore.com>
13170
13171         * g-expect-vms.adb:
13172         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
13173         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
13174         (Send_Signal, Close): Raise Invalid_Process if the process id is
13175         invalid.
13176         (Pattern_Matcher_Access): Is now a general access type to be able to
13177         use aliased string.
13178
13179 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13180             Arnaud Charlet  <charlet@adacore.com>
13181
13182         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
13183         (SIGEMT is now used instead of SIGTERM on AIX).
13184
13185         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
13186         (Time_Slice_Supported): Set to True.
13187         Use SIGEMT instead of SIGTERM as SIGADAABORT.
13188
13189 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13190
13191         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
13192         (Time, Time)): Use To_Relative_Time rather than manual calculation to
13193         express the bounds of Duration as Time. Raise Time_Error when the
13194         result is greater or equal to the higher bound of Duration (on the
13195         margin case).
13196         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
13197         Ada_High_And_Leaps.
13198         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
13199         Ada_High_And_Leaps.
13200         ("-" (Time, Time)): Reorder code.
13201         (All_Leap_Seconds): Removed.
13202         (Arithmetic_Operations.Add): Remove sign related kludge.
13203         (Arithmetic_Operations.Difference): Control the leaps seconds processing
13204         with flag Leap_Support.
13205         (Arithmetic_Operations.Subtract): Remove sign related kludge.
13206         (Check_Within_Time_Bounds): New procedure.
13207         (Clock): Control the leap seconds processing with flag Leap_Support.
13208         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
13209         (Formatting_Operations.Split): Control the leap seconds processing with
13210         flag Leap_Support.
13211         (Formatting_Operations.Time_Of): Control the leaps seconds processing
13212         with flag Leap_Support. Adjust the year, month and day (if applicable)
13213         when the value of day seconds designates a new day.
13214         (Split): Use parameter associations for better readability. Integrate
13215         flag Is_Ada_05.
13216         (Time_Of): Use parameter associations for better readability. Integrate
13217         flag Is_Ada_05.
13218
13219         * a-calfor.adb (Split): Use parameter associations for better
13220         readability. Integrate flag Is_Ada_05.
13221         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
13222         better readability. Integrate flag Is_Ada_05.
13223
13224 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
13225
13226         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
13227         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
13228         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
13229         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
13230         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
13231         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
13232         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
13233         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
13234         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
13235         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
13236         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
13237         time when entering this routine to detect a backward clock setting
13238         (manual setting or DST adjustment), to avoid waiting for a longer delay
13239         than needed.
13240         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
13241         Remove handling of deferred priority change, and replace by setting the
13242         task priority directly, as required by AI-188.
13243         Update comments.
13244         (Max_Task_Image_Length): New constant.
13245         Replace Warnings (Off) by Unreferenced pragma, cleaner.
13246         (Dynamic_Priority_Support): Removed, no longer needed.
13247         (Poll_Base_Priority_Change): Ditto.
13248         (Set_Ceiling): Add this procedure to change the ceiling priority
13249         associated to a lock. This is a dummy implementation because dynamic
13250         priority ceilings are not supported by the underlying system.
13251
13252         * a-dynpri.adb (Set_Priority): Take into account case where Target is
13253         accepting a RV with its priority boosted.
13254         Remove handling of deferred priority change, and replace by setting the
13255         task priority directly, as required by AI-188.
13256
13257         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
13258         Succeeded = True.
13259         Remove handling of deferred priority change, and replace by setting the
13260         task priority directly, as required by AI-188.
13261         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
13262         of Self_Id earlier.
13263
13264         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
13265         (Poll_Base_Priority_Change): Removed.
13266         Code clean up: use SSL.Current_Target_Exception.
13267
13268         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
13269         to run as this is a potentially dispatching point.
13270         (Call_Synchronous): Use Local_Defer_Abort.
13271         (Callable): Relax assertion.
13272         (Selective_Wait): Relax assertion in case abort is not allowed.
13273         Remove handling of deferred priority change, and replace by setting the
13274         task priority directly, as required by AI-188.
13275
13276         * s-tasuti.adb (Make_Passive): Adjust assertions.
13277         Remove handling of deferred priority change, and replace by setting the
13278         task priority directly, as required by AI-188.
13279
13280 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
13281
13282         * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
13283         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
13284         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
13285         system-vxworks-mips.ads, system-vxworks-alpha.ads,
13286         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
13287         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
13288         system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
13289         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
13290         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
13291         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
13292         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
13293         This patch changes the largest non-binary modulus from 2**31-1 to
13294         2**32-1.
13295         (Compiler_System_Version): Removed, no longer used.
13296         Clean up system files by removing flags only used on a single target.
13297         Also remove obsolete flags, only used during bootstrap from system.ads
13298         (Address): Add a pragma Preelaborable_Initialization.
13299
13300         * system-aix.ads:  Ditto.
13301         (GCC_ZCX_Support): Set to true.
13302         Update priority range on AIX and map Ada priorities to target
13303         priorities appropriately for different scheduling policies.
13304
13305         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
13306
13307 2007-06-06  Vincent Celier  <celier@adacore.com>
13308
13309         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
13310         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
13311
13312         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
13313         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
13314         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
13315         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13316         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
13317         MLib.Tgt, containing the default versions of the exported subprograms.
13318         For each platform, create a specific version of the body of new child
13319         package MLib.Tgt.Specific that contains only the body of subprograms
13320         that are different from the default.
13321         (Archive_Builder_Append_Options): New function.
13322
13323 2007-06-06  Matthew Gingell  <gingell@adacore.com>
13324
13325         * s-osinte-aix.adb: Map Ada priorities to target priorities
13326         appropriately for different scheduling policies.
13327
13328 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
13329
13330         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
13331         its C counterpart.
13332         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
13333         Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
13334
13335 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
13336
13337         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
13338         Noop on VMS, added for interface commonality.
13339
13340 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
13341             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13342             Olivier Hainque  <hainque@adacore.com>
13343
13344         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
13345         renamed expression of a full renaming at toplevel.
13346         (gnat_to_gnu_entity, case object): If not defining, do not look inside
13347         the values the constant is initialized to if it is an N_Allocator.
13348         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
13349         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
13350         (make_aligning_type): Accept an extra ROOM argument for storage to be
13351         made available before the aligned field, and an extra BASE_ALIGN
13352         argument for callers to pass the alignment guaranteed to be honored for
13353         the whole aligning object. Avoid call to finish_record_type, which only
13354         interferes with the sizes we want to set.
13355         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
13356         make_aligning_type for super-aligned objects on stack.
13357         (components_to_record): Pass the adjusted size of the type when creating
13358         fields in the qualified union for the variant part.
13359         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
13360         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
13361         packed array type.
13362         (maybe_pad_type): Set TYPE_USER_ALIGN.
13363         (make_aligning_type): Likewise.
13364         ALIGN argument is unsigned int.
13365         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
13366         (gnat_to_gnu_param): Likewise, for parameters.
13367         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
13368         if it is constant and stems from a function call.
13369         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
13370         of the record is specified.  Adjust accordingly.
13371         (adjust_packed): New static function.
13372         (gnat_to_gnu_field): Use it to adjust the packedness setting.
13373         (components_to_record): Likewise.
13374         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
13375         side-effects if the object is deemed constant.
13376         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
13377         type instead of merely finalizing it.  Tidy.
13378         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
13379         <E_Access_Type>: Likewise.
13380         (defer_debug_incomplete_list): Rename to defer_finalize_list.
13381         (defer_debug_level): Delete.
13382         (gnat_to_gnu_entity) <debug_deferred>: Likewise
13383         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
13384         type.
13385         <E_Record_Type>: Do not explicitly defer finalizing the type.
13386         Adjust for write_record_type_debug_info renaming.
13387         <E_Subprogram_Type>: Likewise.
13388         Finalize deferred types right after deferred incomplete types are
13389         expanded.
13390         (rest_of_type_decl_compilation): New global function.
13391         (components_to_record): Rename defer_debug parameter to do_not_finalize.
13392         (components_to_record): Propagate the packedness to the fields of the
13393         qualified union type if there is a variant part.
13394         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
13395         instead of inline code to adjust the XUT field offsets.
13396         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
13397         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
13398         and write the debug info if the type derives from a discriminated one.
13399         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
13400         <E_Array_Subtype>: Likewise.
13401         <E_String_Literal_Subtype>: Likewise.
13402         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
13403         an alignment clause.
13404         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
13405         before giving warning.
13406         (prepend_one_attribute_to): New function, helper to prepend an attribute
13407         to an attribute list.
13408         (gnat_to_gnu_entity) <E_Procedure>: Use it.
13409         (prepend_attributes): Likewise.
13410         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
13411         <E_Array_Type>: Declare the padding type for the element type, if any.
13412         <E_Array_Subtype>: Likewise.
13413         (defer_limited_with): New variable.
13414         (Gigi_Equivalent_Type): New function.
13415         (gnat_to_gnu_entity): Use it at start and use result throughout.
13416         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
13417         Gigi_Equivalent_Type, support Limited_With, allow two levels of
13418         indirection, precompute if unconstrained array to simplify logic, and
13419         use defer_limited_with to defer elaboration of some types from limited
13420         with.
13421         (finalize_from_with_types): New function.
13422
13423 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
13424             Eric Botcazou  <ebotcazou@adacore.com>
13425             Tristan Gingold  <gingold@adacore.com>
13426             Olivier Hainque  <hainque@adacore.com>
13427
13428         * trans.c (Identifier_to_gnu): Change test for deferred constant by
13429         adding guard that the entity is an E_Constant before testing presence
13430         of Full_view (and remove unnecessary test that entity is not a type).
13431         For a CONST_DECL used by reference, manually retrieve
13432         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
13433         (struct language_function): Move from utils.c to here.
13434         (struct parm_attr): New structure.
13435         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
13436         (f_parm_attr_cache): New macro.
13437         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
13438         expressions for the 'First, 'Last and 'Length attributes of the
13439         unconstrained array IN parameters.
13440         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
13441         Allocate the information structure for the function earlier, as well
13442         as the language-specific part.
13443         If the parameter attributes cache has been populated, evaluate the
13444         cached expressions on entry.
13445         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
13446         N_Procedure_Call_Statement and N_Indexed_Component.
13447         (Pragma_to_gnu): Translate inspection_point to an asm statement
13448         containaing a comment and a reference to the object (either its address
13449         for BLKmode or its value).
13450         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
13451         to go to DECL_INITIAL. Together with the size constraint relaxation
13452         in create_var_decl, enlarges the set of situations in which an
13453         identifier may be used as an initializer without implying elaboration
13454         code.
13455         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
13456         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
13457         node.
13458         (maybe_stabilize_reference): Remove lvalues_only parameter.
13459         (gnat_stabilize_reference): Adjust for above change.
13460         (gnat_to_gnu): Do not set location information on the result
13461         if it is a reference.
13462         (add_cleanup): Add gnat_node parameter and set the location of the
13463         cleanup to it.
13464         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
13465         (Exception_Handler_to_gnu_zcx): Likewise.
13466         (gigi): Remove the cgraph node if the elaboration procedure is empty.
13467         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
13468         the former right after the latter.
13469         (start_stmt_group): Make global.
13470         (end_stmt_group): Likewise.
13471         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
13472         vars.
13473         (gnu_program_error_label_stack): Likewise.
13474         (gigi): Initialize them.
13475         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
13476         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
13477         New cases.
13478         (push_exception_label_stack): New function.
13479         (takes_address): New function.
13480
13481         * utils.c (struct language_function): Move to trans.c from here.
13482         (unchecked_convert): Do not wrap up integer constants in
13483         VIEW_CONVERT_EXPRs.
13484         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
13485         the latter for aggregate types, unexpected by later passes, and relax an
13486         arbitrary size constraint on the former.
13487         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
13488         to compare the sizes.
13489         (convert_vms_descriptor): When converting to a fat pointer type, be
13490         prepared for a S descriptor at runtime in spite of a SB specification.
13491         (shift_unc_components_for_thin_pointers): New function.
13492         (write_record_type_debug_info): For variable-sized fields, cap the
13493         alignment of the pointer to the computed alignment.
13494         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
13495         If REP_LEVEL is 2, do not compute the sizes.
13496         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
13497         (build_unc_object_type): Likewise.
13498         (declare_debug_type): New function.
13499
13500         * ada-tree.def: USE_STMT: removed (not emitted anymore).
13501
13502         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
13503         no statement is expandable anymore.
13504         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
13505         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
13506         when the user requested it explicitely.
13507         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
13508         to 0 for Ada.
13509         (get_alias_set): Return alias set 0 for a type if
13510         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
13511
13512         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
13513         (DECL_FUNCTION_STUB): New accessor macro.
13514         (SET_DECL_FUNCTION_STUB): New setter macro.
13515
13516         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
13517
13518         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
13519         declarations.
13520
13521 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
13522
13523         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
13524         Rename to Abort_Task_Interrupt to be able to keep the same interface
13525         as the rest of the targets.
13526
13527         * s-osinte-vxworks.ads s-osinte-vxworks.adb
13528         (To_VxWorks_Priority): Remove explicit "in" mode indicator
13529
13530         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
13531         New files.
13532
13533 2007-06-06  Robert Dewar  <dewar@adacore.com>
13534
13535         * a-chahan.ads: Remove obsolescent pragmas
13536
13537         * a-chlat1.ads: Minor reformatting
13538
13539 2007-06-06  Robert Dewar  <dewar@adacore.com>
13540
13541         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
13542         for Errout
13543
13544         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
13545         implementation
13546
13547         * errout.ads (Finalize): Changed interface
13548         (Output_Messages): New procedure
13549         (Compilation_Errors): New Interface
13550
13551         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
13552         Finalize/Output_Messages interface for Errout
13553         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
13554         Errout.
13555
13556 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13557             Olivier Hainque  <hainque@adacore.com>
13558             Robert Dewar  <dewar@adacore.com>
13559
13560         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
13561         check.
13562         (Raise_Current_Excep): Call Debug_Raise_Exception just before
13563         propagation starts, to let debuggers know about the event in a reliable
13564         fashion.
13565         (Local_Raise): Moved to System.Exceptions
13566         More convenient to have this as a separate unit
13567
13568         * s-except.adb, s-except.ads: New files.
13569
13570         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
13571         Debug_Unhandled_Exception in System.Exceptions where it belongs
13572         together with a couple of other debug helpers.
13573         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
13574         the former Unhandled_Exception.
13575
13576         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
13577         (Warn_No_Exception_Propagation): New procedure
13578         (Warn_If_No_Propagation): Rewritten for new warning generation
13579         (Expand_Exception_Handlers): New warning generation
13580         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
13581         (Add_Exception_Label): Use Special_Exception_Package_Used for test
13582         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
13583         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
13584         even if restriction is set (makes life easier in Check_Returns)
13585         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
13586         checking exception identities.
13587         (Expand_Local_Exception_Handlers): Do not optimize when all others case
13588         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
13589         block for handler (used by Check_Returns)
13590         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
13591         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
13592         remove all exception handlers when optimizing local raise statements.
13593         (Find_Local_Handler): Use Get_Renamed_Entity
13594         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
13595         marked analyzed after expanding exception handlers, do not generate
13596         redundant cleanup actions, because they have been constructed already.
13597
13598 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13599
13600         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
13601         presence of this categorization pragma is mandated by the language.
13602         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
13603         for this type.
13604
13605 2007-06-06  Vincent Celier  <celier@adacore.com>
13606             Robert Dewar  <dewar@adacore.com>
13607
13608         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
13609         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
13610         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
13611         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
13612         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
13613         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
13614         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
13615         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
13616         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
13617         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
13618         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
13619         ali.ads, ali.adb:
13620         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
13621         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
13622         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
13623         Use variables of types File_Name_Type and Unit_Name_Type in error
13624         messages.
13625         (Get_Name): Add parameter Ignore_Special, and set it reading file name
13626         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
13627         here.
13628         Define flags Flag217-Flag230 with associated subprograms
13629         (Flag_Word5): New record type.
13630         (Flag_Word5_Ptr): New access type.
13631         (To_Flag_Word5): New unchecked conversion.
13632         (To_Flag_Word5_Ptr): Likewise.
13633         (Flag216): New function.
13634         (Set_Flag216): New procedure.
13635
13636 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
13637
13638         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
13639         instead of 'Size.
13640
13641         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
13642
13643 2007-06-06  Javier Miranda  <miranda@adacore.com>
13644
13645         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
13646         the package.
13647         (Object_Specific_Data_Array): This is now internal to the package.
13648         (Object_Specific_Data): This is now internal to the package.
13649         (Select_Specific_Data_Element): This is now internal to the package.
13650         (Select_Specific_Data_Array): This is now internal to the package.
13651         (Select_Specific_Data): This is now internal to the package.
13652         (Offset_To_Top_Function_Ptr): This is now public.
13653         (To_Offset_To_Top_Function_Ptr): Removed.
13654         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
13655          local to subprogram Offset_To_Top.
13656         (Predefined_DT): Removed.
13657         (Typeinfo_Ptr): Removed.
13658         (OSD): This function is now internal to this package.
13659         (SSD): This function is now internal to this package.
13660         (DT): New function that displaces the pointer to the table of primitives
13661          to get access to the enclosing wrapper record.
13662         (IW_Membership): Code cleanup.
13663         (Offset_To_Top): Code cleanup.
13664         (Predefined_DT): Removed.
13665         (Register_Interface_Tag): Removed.
13666         (Set_Interface_Table): Removed.
13667         (Set_Offset_Index): Removed.
13668         (Set_Offset_To_Top): Code cleanup.
13669         (Set_OSD): Removed.
13670         (Set_Signature): Removed.
13671         (Set_SSD): Removed.
13672         (Set_Tagged_Kind): Removed.
13673         (Typeinfo_Ptr): Removed.
13674         (TSD): Removed.
13675         (Displace): Add missing check on null actual.
13676
13677         * exp_disp.ads, exp_disp.adb
13678         (Select_Expansion_Utilities): Removed.
13679         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
13680         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
13681         the interface requires a new parameter.
13682         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
13683         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
13684         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
13685         Done to remove package Select_Expansion_Utilities.
13686         (Make_DT): New implementation for statically allocated dispatch tables.
13687         (Make_Secondary_DT): Moved to the scope of Make_DT.
13688         (Register_Primitive): Code cleanup plus incoporate the use of the new
13689         function DT_Address_Attribute.
13690         (Expand_Interface_Thunk): The profile of this subprogram has been
13691         changed to return the Thunk_Id and the corresponding code.
13692         (Fill_DT_Entry): Removed. Its functionality is now provided by
13693         subprogram Register_Primitive.
13694         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
13695         subprogram Register_Primitive.
13696         (Register_Primitive): New subprogram that incorporates the previous
13697         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
13698         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
13699         was only required to call Make_DT_Access_Action, which is now removed.
13700         (Ada_Actions): Removed
13701         (Action_Is_Proc): Removed
13702         (Action_Nb_Arg): Removed
13703         Replace all the calls to Make_DT_Access_Action by direct calls to
13704         Make_Procedure_Call_Statement or Make_Function_Call.
13705         (Set_DTC_Entity_Value): New subprogram.
13706         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
13707         (Expand_Interface_Thunk): Add missing support for primitives that are
13708         functions with a controlling result (case in which there is no need
13709         to generate the thunk).
13710
13711         * exp_atag.ads, exp_atag.adb
13712         (Build_DT): New subprogram that displaces the pointer to reference the
13713         base of the wrapper record.
13714         (Build_Typeinfo_Offset): Removed.
13715         (RTE_Tag_Node): Removed.
13716         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
13717         (Build_Get_RC_Offset): Removed.
13718         (Build_Inherit_Predefined_Prims): Removed.
13719         (Build_Inherit_TSD: Removed.
13720         (Build_New_TSD): Removed.
13721         (Build_Set_External_Tag): Removed.
13722         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
13723         (Build_Set_Prim_Op_Address): Add documentation.
13724         (Build_Set_TSD): Removed.
13725
13726         * rtsfind.ads, rtsfind.adb
13727         (Load_Fail): If load fails and we are not in configurable run-time
13728         mode, then raise Unrecoverable_Error.
13729         (Text_IO_Kludge): Generate an error message if a run-time library is
13730         not available in a given run-time (ie. zfp run-time).
13731         (RTE_Record_Component): Add code to check that the component we search
13732         for is not found in two records in the given run-time package.
13733         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
13734         (RE_DT_Predef_Prims_Offset): New entity
13735         (RE_Static_Offset_To_Top): New entity
13736         (RE_HT_Link): New entity.
13737         (System_Address_Image): Addition of this run-time package.
13738         (RE_Address_Image): New entity.
13739         (RE_Abstract_Interface): Removed.
13740         (RE_Default_Prim_Op_Count): Removed.
13741         (RE_DT_Entry_Size): Removed.
13742         (RE_DT_Min_Prologue_Size): Removed.
13743         (RE_DT_Prologue_Size): Removed.
13744         (RE_Ifaces_Table_Ptr): Removed.
13745         (RE_Interface_Data_Ptr): Removed.
13746         (RE_Type_Specific_Data): Removed.
13747         (RE_Primary_DT): Removed.
13748         (RE_Register_Interface_Tag): Removed.
13749         (RE_Set_Offset_Index): Removed.
13750         (RE_Set_OSD): Removed.
13751         (RE_Set_SSD): Removed.
13752         (RE_Set_Signature): Removed.
13753         (RE_Set_Tagged_Kind): Removed.
13754         (RE_Address_Array): New entity.
13755         (RE_DT): New entity.
13756         (RE_Iface_Tag): New entity.
13757         (RE_Interfaces_Table): New entity.
13758         (RE_No_Dispatch_Table): New entity.
13759         (RE_NDT_Prims_Ptr): New entity.
13760         (RE_NDT_TSD): New entity.
13761         (RE_Num_Prims): New entity.
13762         (RE_Offset_To_Top_Function_Ptr): New entity.
13763         (RE_OSD_Table): New entity.
13764         (RE_OSD_Num_Prims): New entity.
13765         (RE_Predef_Prims): New entity
13766         (RE_Predef_Prims_Table_Ptr): New entity.
13767         (RE_Primary_DT): New entity.
13768         (RE_Signature): New entity.
13769         (RE_SSD): New entity.
13770         (RE_TSD): New entity.
13771         (RE_Type_Specific_Data): New entity.
13772         (RE_Tag_Kind): New entity.
13773
13774 2007-06-06  Thomas Quinot  <quinot@adacore.com>
13775
13776         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
13777         C imported variable.
13778         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
13779         on entry.
13780
13781 2007-06-06  Robert Dewar  <dewar@adacore.com>
13782
13783         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
13784         character
13785
13786 2007-06-06  Vincent Celier  <celier@adacore.com>
13787
13788         * a-tifiio.adb (Put, internal): For negative numbers, check that there
13789         is room for at least one digit and the minus sign.
13790         (Put.Put_Character): Never put a character outside of the range of
13791         string To.
13792
13793 2007-06-06  Olivier Hainque  <hainque@adacore.com>
13794             Eric Botcazou  <ebotcazou@adacore.com>
13795
13796         * utils2.c (build_allocator): Provide the extra arguments to
13797         make_aligning_type for super-aligned objects allocated from the default
13798         pool. Leave enough room for a pointer before the aligning field, and
13799         store the system's allocator return value there.
13800         (build_call_alloc_dealloc): When releasing a super-aligned object,
13801         retrieve the system's allocator return value from where build_allocator
13802         has stored it, just ahead of the adjusted address we are passed.
13803         (build_call_raise): Handle properly the generation of line numbers when
13804         the node is marked No_Location.
13805         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
13806         by using DECL_UID on ties.
13807         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
13808         main variant.
13809         (build_call_raise): Handle converting exception into goto; support new
13810         argument KIND.
13811         (build_component_ref): Add new arg to build_call_raise.
13812
13813 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
13814
13815         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
13816         "." in the case of nnn.xxx when nnn terminates with an underscore.
13817         Parse the remaining "#" or ":" in the case of nnn#.xxx#
13818
13819 2007-06-06  Robert Dewar  <dewar@adacore.com>
13820
13821         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
13822
13823 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
13824             Vincent Celier  <celier@adacore.com>
13825             Robert Dewar  <dewar@adacore.com>
13826
13827         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
13828         needed.
13829         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
13830         ((destructor)) for adafinal, even when switch -a is used.
13831         Do not issue pragma Linker_Destructor for adafinal when switch -a is
13832         used.
13833         (Gen_Object_Files_Options): Add formatting of Linker Options, when
13834         Output_Linker_Option_List is set. Suppress this formatting when
13835         Zero_Formatting is set.
13836         Add case for CLI_Target.
13837         (System_Restrictions_Used): New flag, used to avoid generating with of
13838         System_Restrictions and initialization of the data unless there is
13839         some use of System.Restrictions in the partition.
13840         (Check_System_Restrictions_Used): New procedure
13841
13842         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
13843         since we only with this unit in the binder file if it is used elsewhere
13844         in the partition.
13845
13846 2007-06-06  Vincent Celier  <celier@adacore.com>
13847
13848         * bindusg.adb: Add line for @<response file>
13849         Add lines for new switches -R and -Z
13850
13851         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
13852         hierarchy in the list of files of the closure when -R is used
13853         (Gnatbind): Accept arguments starting with '@' to indicate response
13854         files and take the arguments from the response files.
13855         If List_Closure is set, display the referenced files
13856
13857 2007-06-06  Javier Miranda  <miranda@adacore.com>
13858             Robert Dewar  <dewar@adacore.com>
13859             Ed Schonberg  <schonberg@adacore.com>
13860
13861         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
13862         which the address-clause is applied to in-mode actuals (allowed by
13863         13.1(22)).
13864         (Apply_Discriminant_Check): Do not generate a check if the type is
13865         constrained by a current instance.
13866         (Activate_Division_Check): New procedure
13867         (Activate_Overflow_Check): New procedure
13868         (Activate_Range_Check): New procedure
13869         Call these new Activate procedures instead of setting flags directly
13870         (Apply_Array_Size_Check): Removed, no longer needed.
13871         Code clean up: remove obsolete code related to GCC 2.
13872         (Get_E_Length): Protect against bomb in case scope is standard
13873         (Selected_Range_Checks): If the node to be checked is a conversion to
13874         an unconstrained array type, and the expression is a slice, use the
13875         bounds of the slice to construct the required constraint checks.
13876         Improve NOT NULL error messages
13877         (Apply_Constraint_Check): If the context is a null-excluding access
13878         type, diagnose properly the literal null.
13879
13880 2007-06-06  Pascal Obry  <obry@adacore.com>
13881
13882         * clean.adb (Clean_Archive): Use untouched casing for the archive name
13883         and the corresponding .deps file.
13884         (Clean_Interface_Copy_Directory): Use untouched casing for the library
13885         src directory. Minor code-clean-up. Use untouched casing for files
13886         read into the library src dir.
13887         (Clean_Library_Directory): Idem.
13888         (Parse_Cmd_Line): Accept new switch -aP
13889
13890 2007-06-06  Javier Miranda  <miranda@adacore.com>
13891             Ed Schonberg  <schonberg@adacore.com>
13892             Robert Dewar  <dewar@adacore.com>
13893             Eric Botcazou  <ebotcazou@adacore.com>
13894             Arnaud Charlet  <charlet@adacore.com>
13895
13896         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
13897         applicable to types that have the With_Type flag set. Returns the
13898         non-limited view of the type, if available, otherwise the type itself.
13899         For class-wide types, there is no direct link in the tree, so we have
13900         to retrieve the class-wide type of the non-limited view of the Etype.
13901         New attributes Static_Initialization and Static_Elaboration_Desired.
13902         Remove the pragma Thread_Body, and the associated flag
13903         Is_Thread_Body in entities, and all related code.
13904         (Suppress_Value_Tracking_On_Call): New flag
13905         E_Exception has Esize and Alignment fields
13906         (Universal_Aliasing): New function.
13907         (Set_Universal_Aliasing): New procedure.
13908         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
13909         (Check_Nested_Access): New procedure.
13910         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
13911         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
13912         (Related_Interface): New attribute. Present in dispatch table pointer
13913         components of records. Set to point to the entity of the corresponding
13914         interface type.
13915         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
13916         (Original_Access_Type): Remove, not needed.
13917         (Root_Type): Handle properly subtypes of class-wide-types.
13918         Update comments.
13919
13920         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
13921         class-wide types visible through limited-with clauses.
13922         (Try_Primitive_Operation): When examining all primitive operations of a
13923         tagged type, do not consider subprograms labeled as hidden unless they
13924         belong to a private generic type with a tagged parent.
13925         (Try_Object_Operation): Extensive rewriting, to handle properly various
13926         overloading cases, when several ancestors may have class-wide operations
13927         that are possible candidates, and when the overloaded functions return
13928         array types and have defaulted parameters so that the call may be
13929         interpreted as an indexing.
13930         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
13931         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
13932         successive actuals before analyzing the call itself.
13933         (Try_Primitive_Operation): A primitive operation is compatible with the
13934         prefix if the prefix has a synchronized type and the type of the formal
13935         is its corresponding record, as can be the case when the primitive
13936         operation is declared outside of the body of the type.
13937         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
13938         perform homonym traversal, looking for class-wide operation matches
13939         (formerly done in statements of Try_Class_Wide_Operation). Matches on
13940         access parameters are now restricted to anonymous access types.
13941         (Mark_Allocator): An allocator with a discriminant association parent is
13942         a coextension.
13943         (Try_One_Prefix_Interpretation): If the type of the object is
13944         incomplete, as can be happen when it is a limited view obtained through
13945         a limited_with_clause, the selected component is not part of a prefixed
13946         call.
13947         (Complete_Object_Operation): Diagnose properly an object that is not
13948         aliased when the corresponding controlling formal is an access
13949         parameter.
13950         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
13951         ambiguous calls in prefixed notation, where two primitives differ only
13952         in that the controlling argument of one is an access parameter.
13953
13954         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
13955         whether a function that returns an unconstrained type can be inlined.
13956         (Process_Formals): Diagnose properly the illegal use of an incomplete
13957         type in the profile of an access_to_subprogram declaration.
13958         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
13959         operations are attached to the corresponding record.
13960         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
13961         When processing a primitive of a concurrent type which implements an
13962         interface change the type of all controlling formals to that of the
13963         corresponding record type.
13964         (Check_Synchronized_Overriding): Relax the conditional logic when trying
13965         to determine the tagged type to which a primitive belongs.
13966         (Check_Conventions): Capture condition to ignore a primitive operation
13967         (which is shared between the loop in Check_Conventions and the one in
13968         Check_Convention) in a new local function Skip_Check.
13969         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
13970         confusion with Check_Conventions' own Prim_Op local variable.
13971         (Create_Extra_Formals): Test for a tagged result type rather than a
13972         controlling result when determining whether to add a BIP_Alloc_Form
13973         formal and a BIP_Final_List formal to the function.
13974         (Check_Conformance); For parameters that are anonymous access types,
13975         subtype conformance requires that the not null and the constant
13976         indicators must match
13977         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
13978         to retrieve the appropriate type when processing a concurrent type
13979         declared within a generic. Minor comment reformatting. Change invocation
13980         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
13981         mitive.
13982         (Analyze_Subprogram_Body): If the return type of a function is an
13983         anonymous access to the limited view of a class-wide type, and the
13984         non-limited view of the type is available, update the type of the
13985         function so that code can be generated.
13986         (Process_Formals): In case of access-subtype itype whose designated
13987         type is also an itype (situation that happens now with access to
13988         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
13989         attribute to avoid backend problems.
13990         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
13991         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
13992         anonymous types' designated types are same before testing
13993         Subtypes_Statically_Match.
13994         (Create_Extra_Formals): Test for a named access parameter that is a
13995         controlling formal as an additional condition for adding an
13996         accessibility level formal. This can occur in the subp type created for
13997         dispatching calls in Expand_Dispatching_Call, and allows calling
13998         Create_Extra_Formals from that procedure rather than special-casing the
13999         extra formals there.
14000         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
14001         when the function has a controlling result.
14002         (Check_Returns): Add much more knowledge of the optimization of local
14003         raise statements to gotos, to retain proper warnings in this case.
14004         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
14005         nodes when looking for last statement.
14006
14007         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
14008         class-wide types visible through limited with clauses.
14009         (Add_One_Interp): If the operands are anonymous access types, the
14010         predefined operator on universal_access is immediately visibles
14011         (Find_Unique_Type): Handle anonymous access to subprogram types just as
14012         other anonymous access types.
14013         (Disambiguate): Take into account CIL convention.
14014         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
14015
14016 2007-06-06  Robert Dewar  <dewar@adacore.com>
14017
14018         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
14019         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
14020         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
14021         Fix lower bound of tables.
14022         Add rep clauses.
14023
14024         * nlists.adb: Ditto.
14025         (Prev_Node, Next_Node): Change index type to Int so that it properly
14026         covers the range First_Node_Id - 1 up.
14027
14028 2007-06-06  Javier Miranda  <miranda@adacore.com>
14029             Ed Schonberg  <schonberg@adacore.com>
14030             Bob Duff  <duff@adacore.com>
14031             Hristian Kirtchev  <kirtchev@adacore.com>
14032
14033         * exp_aggr.ads, exp_aggr.adb:
14034         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
14035         in extension aggregates.
14036         (Flatten): Other conditions being met, an aggregate is static if the
14037         low bound given by component associations is different from the low
14038         bound of the base index type.
14039         (Packed_Array_Aggregate_Handled): If the component type is itself a
14040         packed array or record, the front-end must expand into assignments.
14041         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
14042         Init_Pr, instead of Ancestor_Is_Expression.
14043         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
14044         coextension chain root, either generate a list controller or use the
14045         already existing one.
14046         (Static_Array_Aggregate): New procedure to construct a positional
14047         aggregate that can be handled by the backend, when all bounds and
14048         components are compile-time known constants.
14049         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
14050         types covering interface types into assignments.
14051         (Replace_Type): move to Build_Record_Aggr_Code.
14052         (Expand_Record_Aggr_Code): if the target of the aggregate is an
14053         interface type, convert to the definite type of the aggregate itself,
14054         so that needed components are visible.
14055         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
14056         components and the context is an extended return statement do not
14057         create a transient block for it, to prevent premature finalization
14058         before the return is executed.
14059         (Gen_Assign): Do not generate a call to deep adjust routine if the
14060         component type is itself an array of controlled (sub)-components
14061         initialized with an inner aggregate.
14062         (Component_Check): New name for Static_Check. This name is now more
14063         appropriate, and documentation is added which was missing.
14064         (Component_Check): Add test for bit aligned component value
14065         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
14066         Tagged_Comps, name is more appropriate given added function below.
14067         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
14068
14069 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
14070             Javier Miranda  <miranda@adacore.com>
14071             Robert Dewar  <dewar@adacore.com>
14072
14073         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
14074         Terminated: Add unchecked type conversion from System.Address to
14075         System.Tasking.Task_Id when calling the predefined primitive
14076         _disp_get_task_id.
14077         Disable new Ada 05 accessibility check for JVM.NET targets, which
14078         cannot be implemented in a practical way.
14079         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
14080         the sources always references the tag of the actual object. Therefore,
14081         if 'Tag is applied in the sources to class-wide interface objects we
14082         generate code that displaces "this" to reference the base of the object.
14083         (Expand_N_Attribute_Reference, case Size): Return specified size if
14084         known to front end.
14085         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
14086         has code that displaces the pointer of the object to manage interface
14087         types. However this code must not be executed when the prefix is a
14088         subprogram. This bug caused the wrong expansion of the internally
14089         generated assignment that fills the dispatch table when the primitive
14090         is a function returning a class-wide interface type.
14091         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
14092         Set_Attribute_Name for Name_Unaligned_Valid.
14093
14094 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14095             Gary Dismukes  <dismukes@adacore.com>
14096
14097         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
14098         If the initialization is the equivalent aggregate of the initialization
14099         procedure of the type, do not remove it.
14100         (Expand_N_Attribute_Definition_Clause): Exclude access variables
14101         initialized to null from having their expression reset to empty and
14102         note this exception in the comment.
14103
14104 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
14105             Robert Dewar  <dewar@adacore.com>
14106             Ed Schonberg  <schonberg@adacore.com>
14107             Gary Dismukes  <dismukes@adacore.com>
14108
14109         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
14110         Add "with" and "use" clauses for Sem_Attr.
14111         (Expand_Current_Value): Do not replace occurences of attribute
14112         references where the prefix must be a simple name.
14113
14114         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
14115         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
14116         Attribute_Requires_Simple_Name_Prefix.
14117         (Name_Modifies_Prefix): Body of new function.
14118         (Requires_Simple_Name_Prefix): Body of new function.
14119         (Resolve_Attribute, case Access): Improve error message for case of
14120         mismatched conventions.
14121         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
14122         incomplete type.
14123         (Analyze_Attribute, case 'Access): If the type of the prefix is a
14124         constrained subtype for a nominal unconstrained type, use its base type
14125         to check for conformance with the context.
14126         (Resolve_Attribute): Remove test of the access type being associated
14127         with a return statement from condition for performing accessibility
14128         checks on access attributes, since this case is now captured by
14129         Is_Local_Anonymous_Access.
14130         (Analyze_Access_Attribute): Set Address_Taken on entity
14131         (Analyze_Attribute, case Address): Set Address_Taken on entity
14132         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
14133         validating an access attribute whose prefix is a current instance.
14134         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
14135         applied to dispatching operations, if freezing is required then we set
14136         the attribute Has_Delayed_Freeze in the prefix's entity.
14137         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
14138         current scope if access of local subprogram taken
14139         (Analyze_Access_Attribute): Check legality of self-reference even if the
14140         expression comes from source, as when a single component association in
14141         an aggregate has a box association.
14142         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
14143         the prefix if it is a protected operation and the attribute is
14144         Unrestricted_Access.
14145         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
14146         reference to the base type of the context, to force a constraint check
14147         when the context is an access subtype with an explicit constraint.
14148         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
14149         node is rewritten as an interface conversion. leave unanalyzed after
14150         resolution, to ensure that type checking against the context will take
14151         place.
14152
14153 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14154             Javier Miranda  <miranda@adacore.com>
14155             Robert Dewar  <dewar@adacore.com>
14156
14157         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
14158         wrapper when the full view of the controlling type of an inherited
14159         function that dispatches on result implements interfaces.
14160         (Expand_N_Object_Declaration): In cases where the type of the
14161         declaration is anonymous access, create finalization list for it.
14162         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
14163         if the object has no explicit initialization, to match description of
14164         functionality of pragam Persistent_BSS.
14165         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
14166         new function to build static aggregates, to replace initialization call
14167         when static initialization is desired.
14168         (Freeze_Type): Generate a list controller for an access type whenever
14169         its designated type has controlled anonymous access discriminants.
14170         (Build_Equivalent_Aggregate): New procedure to compute a static
14171         aggregate to be used as default initialization for composite types,
14172         instead of a generating a call to the initialization procedure for the
14173         type.
14174         (Build_Initialization_Call): When available, replace a call to the
14175         initialization procedure with a copy of the equivalent static aggregate
14176         for the type.
14177         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
14178         declarations for objects of a class-wide interface type, rather than
14179         just identifiers, to prevent visibility problems.
14180         (Expand_N_Object_Declaration): When expanding the declaration for an
14181         object of a class-wide interface type, preserve the homonym chain of
14182         the original entity before exchanging it with that of the generated
14183         renaming declaration.
14184         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
14185         active, because there is no way to handle the exception.
14186         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
14187         to do a minimum decoration of the Access_Disp_Table list.
14188         (Expand_Record_Controller): Avoid the addition of the controller between
14189         the component containing the tag of a secondary dispatch table and its
14190         adjacent component that stores the offset to the base of the object.
14191         This latter component is only generated when the parent type has
14192         discriminants ---documented in Add_Interface_Tag_Components).
14193         (Apply_Array_Size_Check): Removed, no longer needed.
14194         (Expand_N_Full_Type_Declaration): If the type has anonymous access
14195         components, create a Master_Entity for it only if it contains tasks.
14196         (Build_Init_Procedure): Suppress the tag assignment compiling under
14197         no run-time mode.
14198         (Freeze_Record_Type): Remove code associated with creation of dispatch
14199         table.
14200         (Init_Secondary_Tags): Update type of actuals when generating calls to
14201         Ada.Tags.Set_Offset_To_Top
14202         (Stream_Operation_OK): Disable use of streams compiling under no
14203         run-time mode
14204         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
14205         if Has_Init_Expression set.
14206         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
14207         Register_Primitive, which provides the same functionality.
14208         (Requires_Init_Proc): Return false in case of interface types.
14209         (Add_Secondary_Tables): Use the new attribute Related_Interface to
14210         cleanup the code.
14211         (Predefined_Primitive_Freeze): Do not assume that an internal entity
14212         is always associated with a predefined primitive because the internal
14213         entities associated with interface types are not predefined primitives.
14214         Therefore, the call to Is_Internal is replaced by a call to the
14215         function Is_Predefined_Dispatching_Operation.
14216         (Make_Eq_If): When generating the list of comparisons for the
14217         components of a given variant, omit the controller component that is
14218         present if the variant has controlled components.
14219
14220 2007-06-06  Javier Miranda  <miranda@adacore.com>
14221             Hristian Kirtchev  <kirtchev@adacore.com>
14222             Bob Duff  <duff@adacore.com>
14223
14224         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
14225         handle the creation of finalization lists and calls for nested
14226         coextensions when the root of the chains is part of a return statement.
14227         (Inside_A_Return_Statement): New function inside Complete_Coextension_
14228         Finalization.
14229         (Expand_Record_Equality): Skip components that are interface types.
14230         (Displace_Allocator_Pointer): Add missing support for interface subtypes
14231         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
14232         with Rewrite_Coextension. Change the condition for detecting coextension
14233         root nodes.
14234         (Is_Local_Access_Discriminant): Removed.
14235         (Rewrite_Coextension): New routine which rewrites a static coextension
14236         as a temporary and uses its unrestricted access in the construction of
14237         the outer object.
14238         (Complete_Coextension_Finalization): New routine. Generate finalization
14239         attachment calls to all delayed coextensions.
14240         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
14241         the allocator is not a coextension itself and has delayed coextensions.
14242         If the current allocator is controlled, but also a coextension, delay
14243         the generation of the finalization attachment call.
14244         Rename local variable "Node" to "Nod" in order to avoid confusion with
14245         "Elists.Node".
14246         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
14247         limited types that are not inherently limited. Such an allocator is
14248         illegal, but is generated by the expander for a return statement, to
14249         copy the result onto the secondary stack. This is the only case where a
14250         limited object can be copied. Generate code to displace the pointer
14251         to the object if the qualified expression is a class-wide interface
14252         object. Such displacement was missing and hence the copy of the object
14253         was wrong.
14254         (Apply_Accessibility_Check): Handle allocated objects initialized in
14255         place.
14256         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
14257         and Expand_Allocator_Expression. Allocating class-wide interface objects
14258         this routine displaces the pointer to the allocated object to reference
14259         the component referencing the corresponding secondary dispatch table.
14260         Expand_Allocator_Expression): Add missing support to allocate class-wide
14261         interface objects initialized with a qualified expression.
14262         (Get_Allocator_Final_List): Test for an anonymous access type that is a
14263         function result type, and use the finalization list associated with the
14264         function scope in that case (such an anonymous type should not be
14265         treated like an access parameter's type).
14266
14267 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14268             Gary Dismukes  <dismukes@adacore.com>
14269             Javier Miranda  <miranda@adacore.com>
14270
14271         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
14272         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
14273         required exception handler.
14274         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
14275         properly the case of a function whose return type is a limited
14276         class-wide interface type. Modify the code of the accessibility
14277         check to handle class-wide interface objects. In this case we need to
14278         displace "this" to reference the primary dispatch table to get access
14279         to the TSD of the object (to evaluate its accessibility level).
14280         (Expand_N_Extended_Return_Statement): Test for a tagged result type
14281         rather than a controlling result as one of the conditions for
14282         generating tests of the implicit BIP_Alloc_Form formal. The
14283         initialization assignment is also handled according to whether the
14284         result is tagged instead of controlling.
14285         In the case where the init assignment is inserted in the "then" part of
14286         the allocation conditional, rewrite the target to be a dereference of
14287         the implicit BIP_Object_Access formal.
14288         If the returned value is unconstrained and created on the secondary
14289         stack, mark the enclosing block and function so that the secondary
14290         stack is not reclaimed on return.
14291         Treat returns from functions with controlling results similarly to
14292         returns from functions with unconstrained result subtypes.
14293         If the object returned is unconstrained, and an allocator must be
14294         created for it, analyze the allocator once the block for the extended
14295         return is installed, to ensure that finalizable components
14296         of the expression use the proper finalization list. Guard the call to
14297         Move_Final_List with a check that there is something to finalize.
14298         (Make_Tag_Ctrl_Assignment): Use "old" handling
14299         of controlled type assignment for virtual machines, since new code uses
14300         unsupported features (such as direct access to bytes in memory).
14301
14302 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
14303             Ed Schonberg  <schonberg@adacore.com>
14304
14305         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
14306         accessibility actual, check for the case of an aliased object that has
14307         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
14308         we fall into processing for the attribute rather than the name of the
14309         object.
14310         (Expand_Inline_Call): If an actual is a literal, and the corresponding
14311         formal has its address taken in the body, create a temporary to capture
14312         value.  If the return type is a limited interface, do not treat the
14313         return value as Controlled.
14314         (Is_In_Place_Function):  If the return type is a limited interface,
14315         treat as returning in place. The actual returned object may not always
14316         be limited, but the caller has to assume that it is returned in place.
14317         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
14318         context of an allocator, use the correct finalization chain (that is,
14319         the chain belonging to the access type, rather than the chain belonging
14320         to the current scope).
14321         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
14322         result type rather than a controlling result as a precondition for
14323         adding an allocation form actual to a build-in-place call.
14324         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
14325         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
14326         primitive in the dispatch tables. This work is now done by Make_DT when
14327         the type is frozen.
14328         (Register_Predefined_DT_Entry): Removed.
14329         (Add_Return): If end label is not present, use sloc of last statement
14330         for generated return statement in procedure, for better gdb behavior
14331         on expanded code.
14332         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
14333         object address nodes to ensure proper processing by routines like
14334         Insert_After*.
14335         (Expand_Call): Fix generation of validity check for parameter
14336         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
14337         the allocation form parameter if the result subtype is constrained,
14338         except when the function has a controlling result.
14339         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
14340         rather than Is_Controlled and Has_Controlled_Component, since we want to
14341         include class-wide result types in this treatment. Also test for a
14342         controlling result, since that also requires passing a finalization
14343         list.
14344         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
14345         even when the result subtype is constrained, to handle calls involving
14346         controlling results.
14347         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
14348         is now called even when the result subtype is constrained, to handle
14349         calls involving controlling results.
14350         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
14351         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
14352         now performs the test).
14353         (Make_Build_In_Place_Call_In_Object_Declaration):
14354         Add_Alloc_Form_Actual_* is now called even when the result subtype is
14355         constrained, to handle calls involving controlling results.
14356         (Add_Return): Accomodate rewritten pattern from local raise to goto
14357         transformation, so that we still recognize an transfer statement
14358         and do the right thing here in that case.
14359         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
14360         and end of subprogram code.
14361         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
14362         support for primitives that are functions (without formals) with a
14363         controlling result.
14364         (Inherited_From_Formal): If the actual subtype has not generic parent
14365         type, it is not an actual for a formal derived type, and there is no
14366         operation to inherit from the formal.
14367
14368 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14369             Thomas Quinot  <quinot@adacore.com>
14370
14371         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
14372         inserted cleanup code appropriately for GDB use.
14373         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
14374         exception handler for Deep_Adjust or Deep_Finalize.
14375         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
14376         Raise_From_Controlled_Operation is available, use a call to that
14377         subprogram instead of a plain "raise Program_Error" node to raise
14378         Program_Error if an exception is propagated from an Adjust or Finalize
14379         operation.
14380         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
14381         appears in the optional statement list of a triggering alternative, the
14382         scope actions can be inserted directly there, and not in the list that
14383         includes the asynchronous select itself.
14384
14385 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14386             Robert Dewar  <dewar@adacore.com>
14387             Hristian Kirtchev  <kirtchev@adacore.com>
14388
14389         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
14390         generated exception handler appropriately when debugging generated code.
14391         Deal properly with No_Exception_Propagation restriction mode.
14392         (Expand_N_Abort_Statement): Add an unchecked type conversion from
14393         System.Address to System.Tasking.Task_Id when processing the result of
14394         the predefined primitive _disp_get_task_id.
14395         (Expand_N_Asynchronous_Select): Clarify comment.
14396         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
14397         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
14398         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
14399         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
14400         privals and for generated call to Complete_Entry_Body, for better gdb
14401         behavior.
14402         (Copy_Result_Type): Utility to construct a parameter and result profile
14403         for protected functions whose return type is an anonymous access to
14404         subprogram.
14405         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
14406         call the above.
14407         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
14408         point when the local-raise-to-goto transformation has taken place.
14409
14410 2007-06-06  Javier Miranda  <miranda@adacore.com>
14411             Nicolas Setton  <setton@adacore.com>
14412
14413         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
14414         functionality when the backend is generating code.
14415         Otherwise any serious error
14416         reported by the backend calling the frontend routine Error_Msg
14417         changes the Compilation_Mode to Check_Semantics, disables the
14418         functionality of this routine and causes the generation of
14419         spureous additional errors.
14420
14421         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
14422         debugging information now generated by the compiler for fat-pointer
14423         types.
14424         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
14425         DWARF2/3.
14426         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
14427
14428 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14429
14430         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
14431         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
14432         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
14433         For a remote call to a function with a classwide return type, apply an
14434         E.4(18) check to the returned value.
14435         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
14436         stream attributes of the designated type of an RACW, as they are not
14437         dispatching primitive operations.
14438
14439 2007-06-06  Geert Bosch  <bosch@adacore.com>
14440
14441         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
14442         negative literal
14443         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
14444         positive
14445         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
14446         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
14447         positive
14448         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
14449
14450 2007-06-06  Javier Miranda  <miranda@adacore.com>
14451
14452         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
14453         attribute compiling package Ada.Tags under No_Run_Time_Mode.
14454
14455 2007-06-06  Javier Miranda  <miranda@adacore.com>
14456
14457         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
14458         deallocation of class-wide interface objects.
14459         (Expand_Dispatching_Constructor_Call): Take into account that if the
14460         result of the dispatching constructor is an interface type, the
14461         function returns a class-wide interface type; otherwise the returned
14462         object would be actual. The frontend previously accepted returning
14463         interface types because Expand_Interface_Actuals silently performed
14464         the management of the returned type "as if" it were a class-wide
14465         interface type.
14466         (Expand_Dispatching_Constructor_Call): Replace call to
14467         Make_DT_Access_Action by direct call to Make_Function_Call.
14468
14469 2007-06-06  Robert Dewar  <dewar@adacore.com>
14470             Ed Schonberg  <schonberg@adacore.com>
14471
14472         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
14473         compute masking constant, since we now set Esize properly to the
14474         underlying size.
14475         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
14476         to match the alignment.
14477         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
14478         packed arrays of 8 bits or less.
14479
14480         * freeze.adb (Freeze_Entity): When freezing the formals of a
14481         subprogram, freeze the designated type of a parameter of an access type
14482         only if it is an access parameter.
14483         Increase size of C convention enumeration object
14484         (Freeze_Entity, array type case): Make sure Esize value is properly
14485         adjusted for the alignment if it is known.
14486         (Freeze_Entity, array type case): When checking bit packed arrays for
14487         the size being incorrect, check RM_Size, not Esize.
14488         (Freeze_Record_Type): Check for bad discriminated record convention
14489         (In_Exp_Body): Return true if the body is generated for a subprogram
14490         renaming, either an attribute renaming or a renaming as body.
14491         (Check_Itype): If the designated type of an anonymous access component
14492         is a non-protected subprogram type, indicate that it is frozen, to
14493         prevent out-of-scope freeze node at some subsequent call.
14494         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
14495         only if the subprogram is neither imported nor exported, as well as the
14496         NCA descriptor class if the subprogram is exported.
14497
14498 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14499             Arnaud Charlet  <charlet@adacore.com>
14500             Robert Dewar  <dewar@adacore.com>
14501             Gary Dismukes  <dismukes@adacore.com>
14502
14503         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
14504         default initialization on an imported object, when there is no
14505         initialization call generated for it.
14506         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
14507         restriction
14508
14509         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
14510         Static_Elaboration_Desired.
14511         Remove pragma Thread_Body.
14512         Implement a new pragma No_Body
14513         Removes the Explicit_Overriding pragma
14514         Remove Optional_Overriding pragma
14515         (Prag): Deal with Universal_Aliasing.
14516         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14517         Pragma_CIL_Constructor): New names.
14518
14519         * sem_cat.adb (Validate_Object_Declaration): An initialization that
14520         uses the equivalent aggregate of a type must be treated as an implicit
14521         initialization.
14522         (Get_Categorization): Check a unit for pragma Preelaborate only if it
14523         has none of the other categories.
14524         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
14525         to apply Import to an object renaming declaration.
14526
14527         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
14528         from a C++ class should be declared as limited and that it will be
14529         considererd limited.
14530         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
14531         should be declared as limited and that it will be considererd limited.
14532         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
14533         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
14534         (Analyze_Pragma): Deal with Universal_Aliasing.
14535         (Sig_Flags): Likewise.
14536         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
14537         (Overflow_Checks_Unsuppressed): New flag.
14538         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
14539         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
14540         case of JVM or .NET targets, and compiling user code.
14541         Add debugging convenience routine rv
14542
14543 2007-06-06  Robert Dewar  <dewar@adacore.com>
14544
14545         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
14546         are interface type.
14547         (Build_Elementary_Input_Call): For floating-point use right type in the
14548         absence of strange size or stream size clauses.
14549         (Build_Elementary_Write_Call): Same fix
14550         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
14551         set to value that does not match base type size.
14552
14553 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14554
14555         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
14556         object of a limited type can be initialized with a call to a function
14557         that returns in place. If the limited type has unknown discriminants,
14558         and the underlying type is a constrained composite type, build an actual
14559         subtype from the function call, as is done for private types.
14560         (Side_Effect_Free): An expression that is the renaming of an object or
14561         whose prefix is the renaming of a object, is not side-effect free
14562         because it may be assigned through the renaming and its value must be
14563         captured in a temporary.
14564         (Has_Controlled_Coextensions): New routine.
14565         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
14566         as is done for other limited types.
14567         (Non_Limited_Designated_Type): new predicate.
14568         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
14569         objects.
14570         Remove all handling of with_type clauses.
14571
14572         * par-ch10.adb: Remove all handling of with_type clauses.
14573
14574         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
14575         checksum if the main source could not be parsed.
14576         (Loat_Unit): When processing a child unit, determine properly whether
14577         the parent unit is a renaming when the parent is itself a child unit.
14578         Remove handling of with_type clauses.
14579
14580         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
14581         (Set_Is_Static_Coextension): New procedure.
14582         (Has_Local_Raise): New function
14583         (Set_Has_Local_Raise): New procedure
14584         (Renaming_Exception): New field
14585         (Has_Init_Expression): New flag
14586         (Delay_Finalize_Attach): Remove because flag is obsolete.
14587         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
14588         Remove all handling of with_type clauses.
14589         (Exception_Junk): Can now be set in N_Block_Statement
14590
14591 2007-06-06  Vincent Celier  <celier@adacore.com>
14592             Robert Dewar  <dewar@adacore.com>
14593
14594         * frontend.adb (Frontend): Return immediately if the main source could
14595         not be parsed, because of preprocessing errors.
14596
14597         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
14598         (Gnat1drv): Exit with errors if the main source could not be parsed,
14599         because of preprocessing errors.
14600         (Check_Rep_Info): New procedure
14601
14602 2007-06-06  Robert Dewar  <dewar@adacore.com>
14603
14604         * g-hesorg.ads, g-heasor.ads,
14605         g-busorg.ads, g-bubsor.ads: Update documentation
14606         GNAT.Heap/Bubble_Sort_G is now pure
14607
14608 2007-06-06  Robert Dewar  <dewar@adacore.com>
14609
14610         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
14611
14612 2007-06-06  Robert Dewar  <dewar@adacore.com>
14613             Ed Schonberg  <schonberg@adacore.com>
14614
14615         * g-comlin.ads, g-comlin.adb:
14616         Add new warning for renaming of function return objects
14617
14618         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
14619         (Tree_Read): Use size of object instead of type'object_size, since the
14620         latter is incorrect for packed array types.
14621         (Tree_Write): Same fix
14622
14623         * opt.ads: Add new warning for renaming of function return objects
14624         (Generating_Code): New boolean variable used to indicate that the
14625         frontend as finished its work and has called the backend to process
14626         the tree and generate the object file.
14627         (GCC_Version): Is now private
14628         (Static_Dispatch_Tables): New constant declaration.
14629         (Overflow_Checks_Unsuppressed): New flag.
14630         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
14631         (List_Closure): New flag for gnatbind (-R)
14632         Zero_Formatting: New flag for gnatbind (-Z)
14633         (Special_Exception_Package_Used): New flag.
14634         (Warn_On_Unrepped_Components): New flag.
14635
14636         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
14637         unit is a compilation unit, rather than relying on its scope, so that
14638         Standard can be renamed.
14639         (Analyze_Object_Renaming): Add new warning for renaming of function
14640         return objects.
14641         Also reject attempt to rename function return object in Ada 83 mode.
14642         (Attribute_Renaming): In case of tagged types, add the body of the
14643         generated function to the freezing actions of the type.
14644         (Find_Type): A protected type is visible right after the reserved word
14645         "is" is encountered in its type declaration. Set the entity and type
14646         rather than emitting an error message.
14647         (New_Scope): Properly propagate Discard_Names to inner scopes
14648         (Check_Nested_Access): New procedure.
14649         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
14650         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
14651
14652         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
14653         Add new warning for renaming of function return objects
14654         (Check_References): Suppress warnings for objects whose type or
14655         base type has Warnings suppressed.
14656         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
14657         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
14658
14659 2007-06-06  Vincent Celier  <celier@adacore.com>
14660             Emmanuel Briot  <briot@adacore.com>
14661             Olivier Hainque  <hainque@adacore.com>
14662
14663         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
14664         absolute value of Header.Block_Size when displaying the freed physical
14665         memory in traces.
14666         (Allocate): Compute Storage_Address using Integer_Address, not
14667         Storage_Offset, because the range of Storage_Offset may not be large
14668         enough.
14669         (Configure): New parameter Low_Level_Traces
14670         (Allocate, Deallocation, Free_Physically): Added low-level traces
14671         (Configure): new parameter Errors_To_Stdout.
14672         (Output_File): new subprogram
14673         (Deallocate, Dereference): Send error messages to the proper stream
14674         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
14675         documented. Previous code would send it to the current output file
14676         defined in GNAT.IO, which might not be stdout
14677         (Is_Valid): Adjust comment to mention that a positive reply means that
14678         Header_Of may be used to retrieve the allocation header associated with
14679         the subprogram Storage address argument. Return False early if this
14680         address argument is misaligned.
14681
14682 2007-06-06  Vincent Celier  <celier@adacore.com>
14683
14684         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
14685         switch -P
14686         (ASIS_Main): New global variable
14687         (Get_Closure): New procedure
14688         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
14689         check, metric or pretty. Call Get_Closure in this case.
14690         (Check_Files): For GNAT LIST, check all sources of all projects when
14691         All_Projects is True.
14692         (GNATCmd): Accept -U for GNAT LIST
14693
14694 2007-06-06  Vincent Celier  <celier@adacore.com>
14695
14696         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
14697         has been specified
14698         Correct error message when invocation of the linker fails
14699         Add explicit size clause for the C imported variables
14700         Object_List_File_Supported and Using_GNU_Linker to emphasize that
14701         we expect char size.
14702         Read target parameters earlier, since this is needed to set
14703         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
14704         targets.
14705
14706 2007-06-06  Vincent Celier  <celier@adacore.com>
14707
14708         * gnatls.adb:
14709         Add 3 spaces before the default project directory when displaying
14710         the project search path.
14711         Add new command line switch '-l' to display license information.
14712
14713 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
14714
14715         * gmem.c: Add support for timestamps on memory operations.
14716
14717         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
14718         operations (not used currently, just foundation for future
14719         enhancements). Add possibility to perform full dump of gmem.out file.
14720         (Print_Back_Traces): Declare accesses to root arrays constants since
14721         they aren't modified.
14722         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
14723
14724 2007-06-06  Vincent Celier  <celier@adacore.com>
14725
14726         * gnatsym.adb: Update Copyright notice
14727         (Parse_Cmd_Line): Accept new switch -D
14728         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
14729          file.
14730
14731         * prj.ads (Policy): New policy Direct
14732         (Yes_No_Unknown): New enumeration type
14733         (Project_Data): New component Libgnarl_Needed
14734
14735         * prj-nmsc.adb (Check_For_Source): When recording a source file make
14736         use the untouched pathname casing.
14737         (Get_Directories): Ensure that the Display_Exec_Directory is using the
14738         proper casing on non case-sensitive platforms like Windows.
14739         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
14740         on all platforms, as it is not possible to know which one is allowed
14741         before processing the project files.
14742         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
14743         specified when symbol policy is Direct. Check that when there is a
14744         symbol file defined (either by default or with attribute
14745         Library_Symbol_File) it is not the same as the reference symbol file.
14746         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
14747         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
14748         extending projects.
14749         (Record_Ada_Source): Record a source that has been locally removed in an
14750         imported project.
14751
14752         * symbols.ads (Policy): New policy Direct
14753
14754         * symbols-vms.adb (Initialize): Take new policy Direct in case
14755         statement
14756
14757 2007-06-06  Vincent Celier  <celier@adacore.com>
14758
14759         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
14760         Correct obvious bug (return Dir; instead of return Directory;).
14761         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
14762
14763 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14764
14765         * g-pehage.adb (Produce): Open output files in Binary mode, so that
14766         they have UNIX line endings (LF only) even on Windows, and thus pass
14767         all GNAT style checks.
14768
14769 2007-06-06  Emmanuel Briot  <briot@adacore.com>
14770
14771         * g-regpat.adb (Quote): Fix improper quoting of '.'
14772
14773 2007-06-06  Thomas Quinot  <quinot@adacore.com>
14774
14775         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
14776         default, set False on a per-runtime basis.
14777         (Need_Netdb_Buffer): New constant.
14778
14779         * g-socket.ads, g-socket.adb: Import new package
14780         GNAT.Sockets.Thin.Task_Safe_NetDB.
14781         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
14782         binding to obtain proper message.
14783         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
14784         Replace various occurrences of Arry (Arry'First)'Address with the
14785         equivalent Arry'Address (GNAT always follows implementation advice from
14786         13.3(14)).
14787         (Get_Host_By_Address, Get_Host_By_Name,
14788         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
14789         instead, rely on platform-specific task safe netdb operations provided
14790         by g-socthi.
14791
14792         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
14793         parameter Process_Blocking_IO.
14794         (Host_Error_Messages): Add stub body.
14795         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
14796         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
14797         Safe_Getservbyport): Move functions into new child package
14798         Task_Safe_NetDB.
14799         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
14800         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
14801         (In_Addr): Add alignment clause.
14802
14803 2007-06-06  Robert Dewar  <dewar@adacore.com>
14804
14805         * g-trasym.ads, g-traceb.ads: Update list of supported targets
14806         Add note about symbolic traceback
14807
14808 2007-06-06  Pascal Obry  <obry@adacore.com>
14809
14810         * hostparm.ads (Normalized_CWD): Use the host directory separator
14811         instead of the hardcoded forward slash which is not the proper
14812         character on Windows for example.
14813         (Java_VM): Removed.
14814
14815 2007-06-06  Vincent Celier  <celier@adacore.com>
14816             Arnaud Charlet  <charlet@adacore.com>
14817
14818         * a-clrefi.adb, a-clrefi.ads: New files
14819
14820         * impunit.adb: Add s-os_lib in the list of user visible units.
14821         (Non_Imp_File_Names_95): Add a-clrefi to this list
14822         Remove obsolete run-time entries.
14823         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
14824          "a-exetim" -- Ada.Execution_Time
14825          "a-extiti" -- Ada.Execution_Time.Timers
14826
14827         * mlib-prj.ads, mlib-prj.adb
14828         (Build_Library): Use untouched object dir and library dir. At the
14829         same time makes sure that the checks are done using the canonical
14830         form. Removes hard-coded directory separator and use the proper host
14831         one instead.
14832         (Process_Project): Do not look in object directory to check if libgnarl
14833         is needed for a library, if there is no object directory.
14834         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
14835         linking.
14836         (Build_Library): When invoking gnatbind, use a response file if the
14837         total size of the arguments is too large.
14838
14839         * Makefile.rtl: (g-sttsne): New object file.
14840         Add entry for a-clrefi, s-utf_32, System.Exceptions
14841
14842         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
14843         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
14844         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
14845         Change g-string to s-string, g-os_lib to s-os_lib
14846         Change all g-utf_32 references to s-utf_32
14847
14848 2007-06-06  Tristan Gingold  <gingold@adacore.com>
14849             Olivier Hainque  <hainque@adacore.com>
14850
14851         * init.c: Do not adjust IP of an imported VMS exception of ia64.
14852         LIB$STOP is called to raise an exception and the IP of the exception
14853         is the instruction right after the call.
14854         (__gnat_adjust_context_for_raise, AIX): Implement.
14855         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
14856          adjust_context_for_raise before Raise_From_Signal_Hanler.
14857         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
14858         siginfo is passed to the handler, necessary to let the zcx propagation
14859         engine unwind past it.
14860
14861 2007-06-06  Olivier Hainque  <hainque@adacore.com>
14862
14863         * initialize.c (__gnat_initialize for vxworks):  Update documentation
14864         on the ZCX support, using different sets of crtstuff objects than with
14865         GCC 3.4.
14866
14867 2007-06-06  Robert Dewar  <dewar@adacore.com>
14868
14869         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
14870         spec from body
14871         (Layout_Type): Fix recomputation of size from alignment.
14872
14873 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
14874             Javier Miranda  <miranda@adacore.com>
14875
14876         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
14877         association in an instance.
14878         (Copy_Generic_Node): If the node is a string literal, no need to copy
14879         its descendants.
14880         (Is_Generic_Formal): For a formal subprogram, the declaration is the
14881         grandparent of the entity.
14882         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
14883         to simplify handling of formal interfaces that derive from other formal
14884         interfaces.
14885         (Instantiate_Subprogram_Body): The defining unit name of the body of
14886         the instance should be a defining identifier.
14887         (Install_Formal_Packages): make global to the package, for use in
14888         instantiations of child units.
14889         (Analyze_Package_Instantiation): Do not attempt to set information on an
14890         enclosing master of an entry when expansion is disabled.
14891         (Instantiate_Type): If the actual is a tagged synchronized type and the
14892         generic ancestor is an interface, create a generic actual for the
14893         corresponding record.
14894         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
14895         declaration, to ensure that the interface list is processed correctly.
14896         (Inline_Instance_Body): If enclosing scope is an instance body, remove
14897         its entities from visibiility as well.
14898         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
14899         given with a named association, analyze the expression only, not the
14900         discriminant association itself.
14901         (Reset_Entity): If the analysis of a selected component is transformed
14902         into an expanded name in the prefix of a call with parameters, do not
14903         transform the original node into an expanded name, to prevent visibility
14904         errors in the case of nested generics.
14905         (Check_Private_View): For an array type, check whether the index types
14906         may need exchanging.
14907
14908 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
14909             Vincent Celier  <celier@adacore.com>
14910
14911         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
14912         since both are separated.
14913         Add support for imported CIL packages.
14914         Add further special handling of "value_type" for CIL.
14915         Add special handling of pragma Import for CIL.
14916
14917         * make.ads, make.adb: When switch -eS is used, direct all outputs to
14918         standard output instead of standard error, except errors.
14919         (Absolute_Path): Use untouched casing for the parent directory.
14920         (Add_Library_Search_Dir): Use the untouched directory name.
14921         (Add_Source_Search_Dir): Idem.
14922         (Change_To_Object_Directory): Update output to use proper casing.
14923         (Create_Binder_Mapping_File): Use the untouched filename to set
14924         ALI_Name.
14925         (Gnatmake): Use untouched library and executable directory names.
14926         (Insert_Project_Sources): Use untouched filename for spec and body.
14927         (Is_In_Object_Directory): Use untouched object directory.
14928         (Mark_Directory): Idem.
14929         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
14930         contains the non-canonical filename in all cases.
14931         (Change_To_Object_Directory): In verbose mode, display the name of the
14932         object directory we're changing to.
14933         (Compile_Sources): Make sure, when a project file is used, to compile
14934         the body of the unit, when there is one, even when only the spec is
14935         recorded in an ALI file.
14936         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
14937         spec to the body.
14938         (Report_Compilation_Failed): New procedure
14939         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
14940         procedures moved from the spec to the body.
14941         (Extract_Failure): Removed, not used
14942         Replace explicit raises of exception Bind_Failed and Link_Failed with
14943         calls to Make_Failed with the proper message.
14944         Replace explicit raises of exception Compilation_Failed with calls to
14945         procedure Report_Compilation_Failed.
14946         (Initialize): Create mapping files unconditionally when using project
14947         files.
14948
14949         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
14950         Pragma_CIL_Constructor): New names.
14951
14952         * targparm.ads, targparm.adb
14953         (Compiler_System_Version): Removed, no longer used.
14954         (Get_Target_Parameters): Relax checks on system.ads validity. Add
14955         handling of two new system flags: JVM and CLI.
14956
14957 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
14958             Arnaud Charlet  <charlet@adacore.com>
14959
14960         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
14961         time, use the default s-interr body that provides interrupt support
14962         based on signals.
14963         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
14964         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
14965         g-soccon.ads, and s-taprop.adb for the marte run time.
14966         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
14967         timers are supported on marte.
14968         (EH_MECHANISM for marte): Do not use ZCX.
14969         (THREADSLIB for marte): Use -lmarte.
14970         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
14971         Add mlib-tgt-specific.o to gnatmake objects
14972         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
14973         longer of MLib.Tgt.
14974         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
14975         6, either kernel or rtp, use a specialized version of s-osinte.ads.
14976
14977 2007-06-06  Pascal Obry  <obry@adacore.com>
14978
14979         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
14980
14981 2007-06-06  Vincent Celier  <celier@adacore.com>
14982
14983         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
14984         separator, use instead the proper host directory separator.
14985         (Copy_ALI_Files): Make sure that an already existing ALI file in the
14986         ALI copy dir is writable, before doing the copy.
14987
14988         * mlib-utl.ads, mlib-utl.adb:
14989         (Gcc): If length of command line is too long, put the list of object
14990         files in a response file, if this is supported by the platform.
14991         (Ar): If invocation of the archive builder is allowed to be done in
14992         chunks and building it in one shot would go above an OS dependent
14993         limit on the number of characters on the command line, build the archive
14994         in chunks.
14995
14996 2007-06-06  Vincent Celier  <celier@adacore.com>
14997
14998         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
14999         of specified object file is not equal to base name of source.
15000
15001 2007-06-06  Javier Miranda  <miranda@adacore.com>
15002             Hristian Kirtchev  <kirtchev@adacore.com>
15003             Ed Schonberg  <schonberg@adacore.com>
15004
15005         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
15006         the full type declaration.
15007         (Analyze_Component_Declaration): Add local variable E to capture the
15008         initialization expression of the declaration. Replace the occurences of
15009         Expression (N) with E.
15010         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
15011         limited interface object with a function call.
15012         (Array_Type_Declaration): If the declaration lacks subtype marks for
15013         indices, create a simple index list to prevent cascaded errors.
15014         (Is_Null_Extension): Ignore internal components created for secondary
15015         tags when checking whether a record extension is a null extension.
15016         (Check_Abstract_Interfaces): Add missing support for interface subtypes
15017         and generic formals.
15018         (Derived_Type_Declaration): Add missing support for interface subtypes
15019         and generic formals.
15020         (Analyze_Object_Declaration): If an initialization expression is
15021         present, traverse its subtree and mark all allocators as static
15022         coextensions.
15023         (Add_Interface_Tag_Component): When looking for components that may be
15024         secondary tags, ignore pragmas that can appear within a record
15025         declaration.
15026         (Check_Abstract_Overriding): an inherited function that dispatches on
15027         result does not need to be overriden if the controlling type is a null
15028         extension.
15029         (Mentions_T): Handle properly a 'class attribute in an anonymous access
15030         component declaration, when the prefix is an expanded name.
15031         (Inherit_Component): If the derivation is for a private extension,
15032         inherited components remain visible and their ekind should not be set
15033         to Void.
15034         (Find_Type_Of_Object): In the case of an access definition, always set
15035         Is_Local_Anonymous_Access. We were previously not marking the anonymous
15036         access type of a return object as a local anonymous type.
15037         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
15038         range with character literal bounds.
15039         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
15040         (Access_Subprogram_Declaration): Indicate that the type declaration
15041         depends on an incomplete type only if the incomplete type is declared
15042         in an open scope.
15043         (Analyze_Subtype_Declaration): Handle properly subtypes of
15044         synchronized types that are tagged, and that may appear as generic
15045         actuals.
15046         (Access_Subprogram_Declaration): An anonymous access to subprogram can
15047         appear as an access discriminant in a private type declaration.
15048         (Add_Interface_Tag_Components): Complete decoration of the component
15049         containing the tag of a secondary dispatch table and the component
15050         containing the offset to the base of the object (this latter component
15051         is only generated when the parent type has discriminants --as documented
15052         in this routine).
15053         (Inherit_Components): Use the new decoration of the tag components to
15054         improve the condition that avoids inheriting the components associated
15055         with secondary tags of the parent.
15056         (Build_Discriminanted_Subtype): Indicate to the backend that the
15057         size of record types associated with dispatch tables is known at
15058         compile time.
15059         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
15060         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
15061         to include task, protected, and synchronized interfaces as limited
15062         interfaces.
15063         (Process_Discriminants): Remove the setting of
15064         Is_Local_Anonymous_Access on the type of (anonymous) access
15065         discriminants of nonlimited types.
15066         (Analyze_Interface_Type_Declaration): Complete the decoration of the
15067         class-wide entity it is is already present. This situation occurs if
15068         the limited-view has been previously built.
15069         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
15070         field.
15071         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
15072         Related_Interface.
15073
15074 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
15075
15076         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
15077         of the type that specify the position of interface tags when the type
15078         inherits discriminated array components from the parent type.
15079         If a component is initialized with a box, check for the presence of a
15080         default expression in its declaration before using its default
15081         initialization procedure.
15082         (Resolve_Record_Aggregate): If a component is box-initialized, and the
15083         component type has a discriminants, create a partial aggregate for it
15084         by copying the discriminants of the component subtype.
15085         Reject attempt to initialize a discriminant with a box.
15086         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
15087         associated with dispatch tables is known at compile time.
15088         (Get_Value): If an association in a record aggregate has a box
15089         association, and the corresponding record component has a default
15090         expression, always copy the default expression, even when the
15091         association has a single choice, in order to create a proper
15092         association for the expanded aggregate.
15093
15094 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
15095             Robert Dewar  <dewar@adacore.com>
15096
15097         * par-ch12.adb (P_Generic_Associations): The source position of an
15098         Others association is that of the others keyword, not that of the token
15099         that follows the box.
15100         (P_Formal_Type_Definition): Handle formal access types that carry a
15101         not null indicator.
15102
15103         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
15104         multiple identifier are present, save Scan_State before scanning the
15105         colon, to ensure that separate trees are constructed for each
15106         declaration.
15107         (P_Identifier_Declarations): For object declaration, set new flag
15108         Has_Init_Expression if initialization expression present.
15109         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
15110         Improve NOT NULL error messages
15111
15112 2007-06-06  Robert Dewar  <dewar@adacore.com>
15113
15114         * par-ch4.adb: (P_Name): Recover from literal used as name
15115
15116 2007-06-06  Vincent Celier  <celier@adacore.com>
15117
15118         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
15119         defaulted to False.
15120         In the "not" case, recursive call with Complemented set to True.
15121         Do not allow "or" or "and" operators when Complemented is True.
15122
15123 2007-06-06  Vincent Celier  <celier@adacore.com>
15124
15125         * prj.adb (Project_Empty): Gives default value for new component
15126         Libgnarl_Needed
15127
15128         * prj-attr.ads: Minor reformatting
15129
15130         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
15131         directory using the untouched casing.
15132         (For_All_Source_Dirs): Idem.
15133
15134         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
15135         directories specified with switches -aP.
15136         (Add_Search_Project_Directory): New procedure
15137         (Initialize_Project_Path): Put the directories in table
15138         Search_Directories in the project search path.
15139         (Initialize_Project_Path): For VMS, transform into canonical form the
15140         project path.
15141
15142 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
15143
15144         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
15145         true if configurable run-time or No_Run_Time is set.
15146         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
15147         processing an unit which is not the one being compiled.
15148
15149 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
15150
15151         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
15152         Replace UC by Ada.UC
15153
15154         * s-bitops.adb: Get rid of System.Pure_Exceptions.
15155         Replace UC by Ada.UC
15156
15157 2007-06-06  Robert Dewar  <dewar@adacore.com>
15158
15159         * scng.adb: (Check_End_Of_Line): Deal with very long lines
15160
15161 2007-06-06  Robert Dewar  <dewar@adacore.com>
15162
15163         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
15164         Remove no longer used nodes.
15165
15166 2007-06-06  Javier Miranda  <miranda@adacore.com>
15167             Ed Schonberg  <schonberg@adacore.com>
15168             Robert Dewar  <dewar@adacore.com>
15169
15170         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
15171         on obsolescent withed unit in case of limited-withed units.
15172         (Analyze_Compilation_Unit): Add guard to code that removed an
15173         instantiation from visibility, to prevent compiler aborts when
15174         instantiation is abandoned early on.
15175         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
15176         current unit being analyzed, and Distinguish local incomplete types
15177         from limited views of types declared elsewhere.
15178         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
15179         to state that the class-wide entity is shared by the limited-view
15180         and the full-view.
15181         (Analyze_With_Clause): Improve placement of flag for case of
15182         unimplemented unit.
15183         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
15184         manner similar to GNAT.Current_Exception. This is a violation of
15185         restriction (No_Exception_Propagation), and also inhibits the
15186         optimization of local raise to goto.
15187         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
15188         and if so set Most_Recent_Exception_Used flag in Opt, and also check
15189         for violation of restriction No_Exception_Propagation.
15190
15191 2007-06-06  Javier Miranda  <miranda@adacore.com>
15192             Hristian Kirtchev  <kirtchev@adacore.com>
15193             Gary Dismukes  <dismukes@adacore.com>
15194
15195         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
15196         use of entity Exception_Occurrence if it is not available in the
15197         target run-time.
15198
15199         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
15200         concurrent types are declared within an Ada 2005 generic, build their
15201         corresponding record types since they are needed for overriding-related
15202         semantic checks.
15203         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
15204         protected type does not implement a task interface or a nonlimited
15205         interface.
15206         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
15207         type does not implement a protected interface or a nonlimited interface.
15208         (Single_Task_Declaration, Single_Protected_Declaration): use original
15209         entity for variable declaration, to ensure that debugging information
15210         is correcty generated.
15211         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
15212         routines if the expander is not active.
15213         (Analyze_Task_Body): Mark all handlers to stop optimization of local
15214         raise, since special things happen for task exception handlers.
15215
15216         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
15217         concurrent types declared within a generic.
15218         (Check_Dispatching_Operation): Do not emit warning about late interface
15219         operations in the context of an instance.
15220         (Check_Dispatching_Call): Remove restriction against calling a
15221         dispatching operation with a limited controlling result.
15222         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
15223         Register_Interface_DT_Entry by calls to Register_Primitive.
15224         (Check_Dispatching_Formals): Handle properly a function with a
15225         controlling access result.
15226
15227 2007-06-06  Robert Dewar  <dewar@adacore.com>
15228             Arnaud Charlet  <charlet@adacore.com>
15229
15230         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
15231         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
15232         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
15233         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
15234         message when using a VM, since this attribute is not supported.
15235         (Analyze_Record_Representation_Clause): Give unrepped component warnings
15236
15237         * usage.adb: Add new warning for renaming of function return objects
15238         Indicate that -gnatwp and -gnatwP concern front-end inlining
15239         Add line for -gnatyg
15240         Add usage information for -gnatw.c/C
15241
15242 2007-06-06  Robert Dewar  <dewar@adacore.com>
15243             Ed Schonberg  <schonberg@adacore.com>
15244
15245         * sem_ch5.adb
15246         (Find_Var): Do not consider function call in test for infinite loop
15247         warning if warnings set off for function entity.
15248         (One_Bound): Do not create a temporary for a loop bound if it is a
15249         character literal.
15250         (Analyze_Assignment): Traverse the right hand side of an assignment and
15251         mark all allocators as static coextensions.
15252         (Analyze_Assignment): Exempt assignments involving a dispatching call
15253         to a function with a controlling access result from the check requiring
15254         the target to be class-wide.
15255
15256 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
15257             Ed Schonberg  <schonberg@adacore.com>
15258             Robert Dewar  <dewar@adacore.com>
15259             Javier Miranda  <miranda@adacore.com>
15260
15261         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
15262         chain of coextensions when an allocator serves as the root of such a
15263         chain.
15264         (Propagate_Coextensions): Remove the test for the root being an
15265         allocator.
15266         (Resolve_Allocator): Add condition to ensure that all future decoration
15267         occurs on an allocator node. Add processing and cleanup for static
15268         coextensions.
15269         (Valid_Conversion): If the operand type is the limited view of a
15270         class-wide type, use the non-limited view is available to determine
15271         legality of operation.
15272         (Ambiguous_Character): move to spec, for use elsewhere.
15273         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
15274         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
15275         character literals.
15276         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
15277         Do_Division_Check flag explicitly.
15278         (Resolve_Actuals): If the actual is of a synchronized type, and the
15279         formal is of the corresponding record type, this is a call to a
15280         primitive operation of the type, that is declared outside of the type;
15281         the actual must be unchecked-converted to the type of the actual
15282         (Resolve_Call): Kill all current values for any subprogram call if
15283         flag Suppress_Value_Tracking_On_Call is set.
15284         (Resolve_Type_Conversion): Generate error message the the operand
15285         or target of interface conversions come from a limited view.
15286         (Check_Infinite_Recursion): Ignore generated calls
15287         (Check_Allocator_Discrim_Accessibility): New procedure for checking
15288         that an expression that constrains an access discriminant in an
15289         allocator does not denote an object with a deeper level than the
15290         allocator's access type.
15291         (Resolve_Allocator): In the case of an allocator initialized by an
15292         aggregate of a discriminated type, check that associations for any
15293         access discriminants satisfy accessibility requirements by calling
15294         Check_Allocator_Discrim_Accessibility.
15295         (Resolve_Equality_Op): Handle comparisons of anonymous access to
15296         subprogram types in the same fashion as other anonymous access types.
15297         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
15298         message that is not a continuation message.
15299         (Resolve_Type_Conversion): Add missing support for conversion to
15300         interface type.
15301         (Resolve_Actuals): Introduce a transient scope around the call if an
15302         actual is a call to a function returning a limited type, because the
15303         resulting value must be finalized after the call.
15304         (Resolve_Actuals): If the call was given in prefix notations, check
15305         whether an implicit 'Access reference or implicit dereference must be
15306         added to make the actual conform to the controlling formal.
15307
15308 2007-06-06  Robert Dewar  <dewar@adacore.com>
15309             Javier Miranda  <miranda@adacore.com>
15310
15311         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
15312         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
15313         overriding of an inherited private subprogram now there is no need to
15314         inherit its dispatching slot and reduce the size of the dispatch table.
15315         Set_All_DT_Position now ensures that the same slot is now assigned to
15316         both entities. This is required to statically build the dispatch table.
15317         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
15318         of calling Set_All_DT_Position to re-evaluate the position of the
15319         entries in the dispatch table. Such reevaluation is not desired if
15320         the tagged type is already frozen.
15321
15322 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
15323             Gary Dismukes  <dismukes@adacore.com>
15324             Robert Dewar  <dewar@adacore.com>
15325             Javier Miranda  <miranda@adacore.com>
15326
15327         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
15328         reference acts as an lvalue when the attribute name modifies the prefix
15329         (Is_Coextension_Root): New routine.
15330         (Mark_Static_Coextensions): New routine.
15331         (Type_Access_Level): Revise code for checking the level of the
15332         anonymous access type of a return object.
15333         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
15334         (Matches_Prefixed_View_Profile): Remove the no longer necessary
15335         retrieval of the corresponding controlling record type.
15336         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
15337         concurrent types declared within a generic as well as class wide types.
15338         Emit a mode incompatibility error whenever a protected entry or routine
15339         override an interface routine whose first parameter is not of mode
15340         "out", "in out" or access to variable.
15341         (Overrides_Synchronized_Primitive): Rename to
15342         Find_Overridden_Synchronized_Primitive.
15343         (Collect_Interface_Components): New subprogram that collects all the
15344         components of a tagged record containing tags of secondary dispatch
15345         tables.
15346         (Add_Global_Declaration): New procedure
15347         (Abstract_Interface_List): Handle properly the case of a subtype of a
15348         private extension.
15349         (Type_Access_Level): In the case of a type whose parent scope is a
15350         return statement, call Type_Access_Level recursively on the enclosing
15351         function's result type to determine the level of the return object's
15352         type.
15353         (Build_Elaboration_Entity): Build name of elaboration entity from the
15354         scope chain of the entity, rather than the unit name of the file name.
15355         (Check_Nested_Access): New procedure.
15356         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
15357         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
15358         (Get_Renamed_Entity): Utility routine for performing common operation
15359         of chasing the Renamed_Entity field of an entity.
15360
15361 2007-06-06  Robert Dewar  <dewar@adacore.com>
15362
15363         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
15364         elaboration model
15365         (Check_A_Call): Add check for entry call which was causing blowup
15366
15367 2007-06-06  Olivier Hainque  <hainque@adacore.com>
15368
15369         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
15370         special code on ia64-vms to handle major incompatibilities between the
15371         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
15372         this routine with a very different set of arguments and expectations on
15373         the return value.
15374
15375 2007-06-06  Thomas Quinot  <quinot@adacore.com>
15376
15377         * socket.c (__gnat_close_signalling_fd): New function.
15378         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
15379         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
15380         New supporting functions for task safe Netdb operations.
15381
15382 2007-06-06  Thomas Quinot  <quinot@adacore.com>
15383             Olivier Hainque  <hainque@adacore.com>
15384
15385         * a-except-2005.ads, a-except-2005.adb
15386         (Raise_From_Controlled_Operation): New procedure in
15387         (private part of) Ada.Exceptions (standard runtime version). Used to
15388         provide informational exception message when Program_Error is raised as
15389         a result of an Adjust or Finalize operation propagating an exception.
15390         (Rmsg_28): Fix description for E.4(18) check.
15391         (Raise_Current_Excep): Call Debug_Raise_Exception just before
15392         propagation starts, to let debuggers know about the event in a reliable
15393         fashion.
15394         Take the address of E and dereference to make sure it is homed on stack
15395         and prevent the stores from being deleted, necessary for proper
15396         debugger behavior on "break exception" hits.
15397         (Local_Raise): Moved to System.Exceptions
15398
15399         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
15400         exception message from the current occurrence and raise Program_Error
15401         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
15402
15403 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
15404             Arnaud Charlet  <charlet@adacore.com>
15405
15406         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
15407         lock, if needed.
15408
15409         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
15410         priority associated to a lock.
15411
15412         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
15413         assertion to take into account case of no abort restriction.
15414         (Initialize_Protection_Entries): Add initialization for the field
15415         New_Ceiling associated to the protected object.
15416         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
15417         needed.
15418
15419         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
15420         since this function needs to be set consistently with Update_Exception.
15421
15422         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
15423         since this function needs to be set consistently with Update_Exception.
15424
15425         * s-taskin.ads: Update comments on
15426         Interrupt_Server_Blocked_On_Event_Flag.
15427         (Unbind_Handler): Fix handling of server_task wakeup
15428         (Server_Task): Set self's state so that Unbind_Handler can take
15429         appropriate actions.
15430         (Common_ATCB): Now use a constant from System.Parameters to determine
15431         the max size of the Task_Image field.
15432
15433         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
15434         Initialize_Analyzer function.
15435         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
15436         take into account case of no abort restriction.
15437         ([Vulnerable_]Complete_Master): Modify assertion.
15438
15439         * s-tataat.adb (Finalize): Use the nestable versions of
15440         Defer/Undefer_Abort.
15441
15442         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
15443
15444         * s-tpobop.ads: Update comments.
15445
15446         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
15447         of locking the object manually, to avoid inconsistencies between
15448         Lock/Unlock_Entry assertions.
15449
15450         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
15451         terminating
15452         application and System.Parameters.No_Abort is True.
15453         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
15454         (Unbind_Handler): Fix handling of server_task wakeup
15455         (Server_Task): Set self's state so that Unbind_Handler can take
15456         appropriate actions.
15457
15458 2007-06-06  Thomas Quinot  <quinot@adacore.com>
15459
15460         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
15461         declarations instead of an explicit null body, for conciseness.
15462
15463 2007-06-06  Robert Dewar  <dewar@adacore.com>
15464
15465         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
15466         illegal aggregate and the type is still Any_Composite.
15467         (Subtypes_Statically_Match): Fix problem of empty discriminant list
15468
15469 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
15470
15471         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
15472         to prevent subsequent expansion.
15473
15474 2007-06-06  Robert Dewar  <dewar@adacore.com>
15475
15476         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
15477
15478 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
15479             Robert Dewar  <dewar@adacore.com>
15480
15481         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
15482         exceptions.
15483         (Write_Itype): Handle case of string literal subtype, which
15484         comes up in this context.
15485         (Update_Itype): when debugging expanded code, update sloc of itypes
15486         associated with defining_identifiers and ranges, for gdb use.
15487         (Sprint_Node_Actual): Add static keyword to object or exception
15488         declaration output if Is_Statically_Allocated is True.
15489         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
15490         or task body, so that the tree carries the proper Sloc information for
15491         debugging use.
15492         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
15493
15494 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
15495
15496         * s-secsta.adb (Chunk): Ensure this object has a static size known at
15497         compile time, to avoid dynamic memory allocation
15498         (Elaboration code): Only use dynamic memory allocation when needed.
15499
15500 2007-06-06  Quentin Ochem  <ochem@adacore.com>
15501
15502         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
15503         "Overflow_Guard".
15504         (Stack_Analyzer): Added field "Overflow_Guard"
15505         (Task_Result): Added field "Overflow_Guard".
15506         (Index_Str): New constant.
15507         (Task_Name_Str): New constant.
15508         (Actual_Size_Str): New constant.
15509         (Pattern_Array_Element_Size): New constant.
15510         (Get_Usage_Range): New subprogram.
15511         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
15512         Now align the output.
15513         Added comments.
15514         (Initialize): Added value for Overflow_Guard.
15515         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
15516         Update the value of the overflow guard according to the actual
15517         beginning of the pattern array.
15518         (Initialize_Analyzer): Added parameter Overflow_Guard.
15519         Take this parameter into accound when computing the max size.
15520         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
15521         (Report_Result): Removed extra useless procedure.
15522         Updated call to Output_Result.
15523         Moved full computation of the Task_Result here.
15524
15525 2007-06-06  Thomas Quinot  <quinot@adacore.com>
15526
15527         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
15528         Thread_Blocking_IO, always True by default, set False on a per-runtime
15529         basis.
15530         Add Windows-specific constants
15531         Add new constant Need_Netdb_Buffer.
15532         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
15533         not, whether to use getXXXbyYYY_r.
15534
15535         * gsocket.h: Add new constant Need_Netdb_Buffer.
15536         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
15537         not, whether to use getXXXbyYYY_r.
15538
15539 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
15540
15541         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
15542         than their first call.
15543         Add type Dummy_Communication_Block used in the generation of the pre-
15544         defined dispatching primitive _disp_asynchronous_select.
15545         (Storage_Element): Put Pragma Universal_Aliasing on it.
15546
15547 2007-06-06  Vincent Celier  <celier@adacore.com>
15548
15549         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
15550         function.
15551
15552         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
15553         letter if it is not followed by a '/' or a '\'.
15554         (Windows): New Boolean function
15555
15556         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
15557         Ada 2005.
15558         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
15559         drive letter.
15560         (Containing_Directory): Raise Use_Error when the directory is a root
15561         directory.
15562         (Extension): When returning the result, use a conversion to Result_Type,
15563         not a qualification.
15564
15565 2007-06-06  Robert Dewar  <dewar@adacore.com>
15566
15567         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
15568         (Set_Style_Check_Options): Recognize new -gnatyg style switch
15569
15570         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
15571         Warn_On_Non_Local_Exception to False, to turn off warnings for
15572         No_Exception_Propagation in ZFP runtime.
15573         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
15574         back-ends.
15575         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
15576
15577 2007-06-06  Vincent Celier  <celier@adacore.com>
15578
15579         * switch-b.adb (Scan_Binder_Switches): Add processing for new
15580         switches -R and -Z
15581
15582         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
15583         (Scan_Make_Switches): Recognize new switch -aP
15584
15585 2007-06-06  Matthew Gingell  <gingell@adacore.com>
15586             Jose Ruiz  <ruiz@adacore.com>
15587
15588         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
15589         VxWorks task descriptor in the Ada run time, call a C subprogram
15590         (__gnat_get_stack_info) that extracts the required information.
15591
15592         * sysdep.c: Back out temporary lynxos workaround.
15593         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
15594         time the stack information associated to the currently executing task.
15595         Only VxWorks systems require this function.
15596
15597 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
15598
15599         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
15600         add the stack bias if the offset is computed from a frame address.
15601         (__gnat_backtrace): Adjust for above change.
15602
15603 2007-06-06  Thomas Quinot  <quinot@adacore.com>
15604
15605         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
15606         PE_Non_Transportable_Actual.
15607         (By_Descriptor_Last): New constant.
15608         (By_Copy_Return): Likewise.
15609
15610 2007-06-06  Vincent Celier  <celier@adacore.com>
15611
15612         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
15613         is.
15614
15615         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
15616         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
15617         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
15618         Add missing comment for /OPTIMIZE=SPACE
15619         Add entry for OPTIMIZE=SPACE
15620         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
15621         Add documentation for new qualifiers corresponding to -gnatw.c/.C
15622
15623 2007-06-06  Vincent Celier  <celier@adacore.com>
15624             Robert Dewar  <dewar@adacore.com>
15625
15626         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
15627         -gnatw.C)
15628
15629         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
15630         Document gnatbind switch -a
15631         (case Constructions): Document that variables declarations are allowed
15632         for previously declared variables.
15633         Fix external lib project example
15634         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
15635         Indicate that "#if not X or Y then" is not allowed in input files to
15636         gnatprep.
15637         Document gnatw.x and gnatw.X warning flags
15638         Mention -Winline switch to activate warnings when back-end inlining is
15639         ineffective.
15640         Add gnatcheck rule descriptions
15641         Describe how to use the GNAT driver to call a tool on a closure.
15642         Describe how to run project-wide checks or metrics.
15643         Document gnatbind's -R option
15644         Updated to account for Ada 2005 support
15645
15646         * gnat_rm.texi (Case Construction): Allow variable declarations for
15647         previously declared variables.
15648         (Representation Clauses and Pragmas): Lift restriction on alignment
15649         clauses for record types.
15650         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
15651         Document No_Exception_Propagation restriction
15652         Document No_Body pragma
15653         Updated to account for Ada 2005 support; corrected some typos
15654         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
15655
15656         * gnat-style.texi: Make it clear that we never use mode IN for
15657         procedures or functions
15658
15659         * ug_words: Add entries for -gnatw.x and -gnatw.X
15660         Add entries for -gnatw.c/.C
15661
15662 2007-06-06  Pascal Obry  <obry@adacore.com>
15663             Vincent Celier  <celier@adacore.com>
15664
15665         * makegpr.adb (Add_Archive_Path): Use untouched object and library
15666         dirs and library name.
15667         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
15668         comments.
15669         (Build_Library): Idem.
15670         (Compile_Individual_Sources): Idem.
15671         (Compile_Link_With_Gnatmake): Idem.
15672         (Compile_Sources): Idem.
15673         (Get_Imported_Directories): Idem.
15674         (Link_Executables): Idem. Same change for the executable dir.
15675         (Check_Compilation_Needed): C_Source_Path new variable containing
15676         the canonical form of Source_Path to check against the source names
15677         in the dependency file.
15678         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
15679         verbose mode, display the name of the object directory we're changing
15680         to.
15681         (Saved_Switches): New name of table X_Switches
15682         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
15683         (Usage): New line for switch -aP
15684         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
15685         testing if a directory should be added to the search path.
15686
15687 2007-06-06  Javier Miranda  <miranda@adacore.com>
15688
15689         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
15690         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
15691         declaration after freezing point of all its associated tagged types;
15692         otherwise such types are frozen too early.
15693
15694 2007-06-06  Robert Dewar  <dewar@adacore.com>
15695
15696         * a-reatim.adb: Documentation addition
15697
15698         * g-cgideb.adb: Minor code reorganization
15699
15700         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
15701         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
15702         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
15703
15704         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
15705         function.  Change name New_Scope to Push_Scope
15706         (Get_Debug_Flag_K): Remove unused obsolete function.
15707
15708         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
15709         Push_Scope.
15710
15711         * makeusg.adb: Update Copyright notice
15712         Add line for switch -aP
15713
15714         * makeusg.adb: Fix wording of some usage messages
15715
15716         * s-assert.adb (Raise_Assert_Failure): Add call to
15717         Debug_Raise_Assert_Failure.
15718
15719         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
15720         (2, Standard'Alignment) for compatibility with AAMP (where alignment
15721         is restricted to 1).
15722
15723         * s-wchjis.adb: Remove use of System.Pure_Exceptions
15724
15725         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
15726         node location to No_Location when we're not debugging the expanded
15727         code.
15728
15729 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
15730
15731         * misc.c (enumerate_modes): Consider log2_b to always be one.
15732
15733 2007-05-14  Rafael Ávila de Espíndola  <espindola@google.com>
15734
15735         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
15736
15737 2007-05-02  Pascal Obry  <obry@adacore.com>
15738
15739         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
15740         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
15741         encoding support of Stream_IO.
15742         (Write_Unit): Idem.
15743
15744         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
15745         filename and corresponding encoding to match the OS requirement.
15746         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
15747         routine will fail on specific devices like CON: AUX: ...
15748
15749         PR ada/29856: Add missing braces
15750
15751 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15752
15753         PR ada/31660
15754         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
15755
15756 2007-04-21  Jan Hubicka  <jh@suse.cz>
15757
15758         * misc.c (gnat_expand_body): Don't call target for destructors,
15759         avoid redundant check on syntax errors.
15760
15761 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
15762
15763         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
15764         instead of checking GIMPLE_STMT_P in chain_next.
15765
15766 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
15767
15768         PR ada/31576
15769         * system-linux-alpha.ads: Disable constant condition warning for the
15770         Default_Bit_Order variable.
15771         * system-linux-s390.ads: Likewise.
15772         * system-linux-s390x.ads: Likewise.
15773         * system-linux-sparc.ads: Likewise.
15774
15775 2007-04-06  Javier Miranda  <miranda@adacore.com>
15776             Matt Heaney  <heaney@adacore.com>
15777             Robert Dewar  <dewar@adacore.com>
15778
15779         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
15780         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
15781         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
15782         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
15783         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
15784         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
15785         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
15786         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
15787         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
15788         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
15789         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
15790         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
15791         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
15792         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
15793         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
15794         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
15795         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
15796         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
15797         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
15798         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
15799         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
15800         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
15801         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
15802         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
15803         s-taprop-tru64.adb, s-taprop-irix.adb,
15804         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
15805         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
15806         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
15807         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
15808         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
15809         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
15810         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
15811         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
15812         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
15813         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
15814         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
15815         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
15816         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
15817         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
15818         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
15819         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
15820         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
15821         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
15822         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
15823         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
15824         access types.
15825         Update documentation.
15826         Minor rewording.
15827
15828 2007-04-06  Robert Dewar  <dewar@adacore.com>
15829
15830         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
15831         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
15832         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
15833         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
15834         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
15835         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
15836         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
15837         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
15838         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
15839         system-hpux-ia64.ads, targparm.adb,
15840         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
15841
15842         * system.ads: Move Functions_Return_By_DSP to obsolete section,
15843         kept for bootstrap purposes only.
15844
15845 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
15846
15847         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
15848         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
15849         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
15850         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
15851
15852 2007-04-06  Robert Dewar  <dewar@adacore.com>
15853
15854         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
15855         (Local_Raise): New dummy procedure called when a raise is converted
15856         to a local goto. Used for debugger to detect that the exception
15857         is raised.
15858
15859         * debug.adb: Document new d.g flag (expand local raise statements to
15860         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
15861
15862         * exp_sel.adb: Use Make_Implicit_Exception_Handler
15863
15864         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
15865         suppress warnings for unused handlers.
15866         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
15867         warnings for raise statements not handled locally.
15868         (Get_RT_Exception_Entity): New function
15869         (Get_Local_Call_Entity): New function
15870         (Find_Local_Handler): New function
15871         (Warn_If_No_Propagation): New procedure
15872         (Expand_At_End_Handler): Call Make_Implicit_Handler
15873         (Expand_Exception_Handlers): Major additions to deal with local handlers
15874         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
15875         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
15876         for local raise
15877
15878         * exp_ch11.ads (Get_RT_Exception_Entity): New function
15879         (Get_Local_Call_Entity): New function
15880
15881         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
15882         of restrictions that the binder will never suggest adding.
15883
15884         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
15885         to No_Elist.
15886
15887         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
15888         be with'ed in the presence of pragma Restriction
15889         (No_Exception_Propagation).
15890
15891         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
15892
15893         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
15894         parameter, then the handler is not a suitable target for a local raise,
15895         and this is a violation of restriction No_Exception_Propagation.
15896         (Analyze_Handled_Statements): Analyze choice parameters in exception
15897         handlers before analyzing statement sequence (needed for proper
15898         detection of local raise statements).
15899         (Analyze_Raise_Statement): Reraise statement is a violation of the
15900         No_Exception_Propagation restriction.
15901
15902         * s-rident.ads: Add new restriction No_Exception_Propagation
15903
15904         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
15905         function, like Make_Exception_Handler but sets Local_Raise_Statements
15906         to No_List.
15907         (Add_Unique_Serial_Number): Deal with case where this is called during
15908         processing of configuration pragmas.
15909
15910 2007-04-06  Thomas Quinot  <quinot@adacore.com>
15911             Pat Rogers  <rogers@adacore.com>
15912             Pascal Obry  <obry@adacore.com>
15913
15914         * g-stsifd-sockets.adb: New file.
15915
15916         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
15917         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
15918         g-socthi-vms.adb: Move signalling
15919         fd management to a nested package, so that they can conveniently be
15920         moved to a subunit that is shared across Windows, VMS, and VxWorks
15921         (Ada implementation) or completed with imported bodies from socket.c
15922         (UNIX case).
15923         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
15924         subprograms.
15925         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
15926         the signalling file descriptor.
15927         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
15928         signalling file descriptor.
15929         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
15930         instead of creating a pair of sockets for signalling here.
15931
15932         * g-socthi.adb: Ditto.
15933         Set the runtime process to ignore SIGPIPEs on platforms that support
15934         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15935
15936         * g-socthi-mingw.adb: Ditto.
15937         (WS_Version): Use Windows 2.2.
15938         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15939
15940         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
15941         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
15942
15943         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
15944         added GNAT byte swapping facility
15945         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
15946
15947         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
15948
15949         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
15950         New subprograms.
15951         (__gnat_create_signalling_fds): New subprogram.
15952         Set the runtime process to ignore SIGPIPEs on platforms that support
15953         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
15954
15955 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
15956             Vincent Celier  <celier@adacore.com>
15957
15958         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
15959         New version of Ada.Calendar which supports the new upper bound of Ada
15960         time (2399-12-31 86_399.999999999).
15961         The following modifications have been made to the package:
15962          - New representation of time as count of nanoseconds since the start of
15963            Ada time (1901-1-1 0.0).
15964          - Target independent Split and Time_Of routines which service both
15965            Ada 95 and Ada 2005 code.
15966          - Target independent interface to the Ada 2005 children of Calendar.
15967          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
15968          - Handling of non-leap centenial years.
15969          - Updated clock function.
15970          - Updated arithmetic and comparison operators.
15971
15972         * a-caldel.adb (To_Duration): Add call to target independent routine in
15973         Ada.Calendar to handle the conversion of time to duration.
15974
15975         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
15976         (UTC Offset).
15977         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
15978         set off to 0.
15979         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
15980         targets do not have a natural time zone, GMT is used as a default.
15981         (__gnat_get_task_options): New.
15982
15983         * a-direct.adb (Modification_Time): Add with and use clauses for
15984         Ada.Calendar and Ada.
15985         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
15986         since it is no longer needed.
15987         (Duration_To_Time): Removed.
15988         (OS_Time_To_Long_Integer): Removed.
15989         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
15990         Formatting Time_Of routines which automatically handle time zones,
15991         buffer periods and leap seconds.
15992
15993         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
15994         target independent routines in Ada.Calendar.
15995
15996         * a-calfor.ads, a-calfor.adb:
15997         Code cleanup and addition of validity checks in various routines.
15998         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
15999         Ada.Calendar.
16000
16001         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
16002         independent routine in Ada.Calendar.
16003
16004 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16005
16006         * adaint.c:
16007         (convert_addresses): Adjust prototype and dummy definition to expect an
16008          extra file_name argument.
16009
16010         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
16011         filling the now expected file_name argument with the appropriate
16012         argv[0] expansion.
16013         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
16014         (tracebk): Array of void * instead of char *, corresponding to what
16015          convert_addresses expects.
16016         (exename): New static global, to hold the executable file name to be
16017         used in all convert_addresses invocations.
16018         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
16019         change.
16020         (__gnat_gmem_a2l_initialize): Resolve exename.
16021         (__gnat_convert_addresses): Use exename as the convert_addresses
16022         file_name argument.
16023
16024         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
16025         "convert_addresses", now expecting a filename argument. Import the
16026         necessary entities to compute the filename to use and pass it to
16027         convert_addresses.
16028
16029 2007-04-06  Matt Gingell  <gingell@adacore.com>
16030
16031         * system-aix.ads: Back out previous change.
16032         (Functions_Return_By_DSP): Removed
16033
16034 2007-04-06  Pascal Obry  <obry@adacore.com>
16035
16036         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
16037         or the monotonic used by Ada.Real_Time) to compute the sleep duration
16038         on Windows.
16039
16040 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
16041
16042         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
16043         function. Its value changes in different VxWorks versions, and it is
16044         now handled by the function __gnat_get_task_options.
16045
16046         * s-taprop-vxworks.adb (Create_Task): Call the function
16047         __gnat_get_task_options to get the required options for creating a task.
16048
16049 2007-04-06  Pascal Obry  <obry@adacore.com>
16050             Thomas Quinot  <quinot@adacore.com>
16051
16052         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
16053         dealing with filename.
16054         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
16055         filename from a standard string to a wide-string depending on the
16056         encoding value.
16057         (__gnat_freopen): Idem.
16058         (__gnat_current_time): New function (wrapper for time(3) standard C
16059         function).
16060
16061         * g-os_lib.ads (Current_Time): New function. Returns the current
16062         system time as an OS_Time value.
16063
16064         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
16065         (Monotonic_Clock): Same.
16066
16067 2007-04-06  Quentin Ochem  <ochem@adacore.com>
16068
16069         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
16070         not on a natural.
16071         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
16072
16073 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
16074
16075         * a-retide.adb: Add elaboration code to ensure that the tasking run
16076         time is initialized when using delay operations even when no task is
16077         created.
16078
16079 2007-04-06  Javier Miranda  <miranda@adacore.com>
16080
16081         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
16082         component Num_Prim_Ops.
16083         (Set_Num_Prim_Ops): Removed.
16084         Remove all the assertions because all the routines of this
16085         package are inline always.
16086         (Get_Offset_Index): Add support to primary dispatch tables.
16087         Move the documentation about the dispatch table to a-tags.ads
16088         (Set_External_Tag): Removed
16089         (Inherit_TSD): Removed.
16090         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
16091         moved to a-tags.ads
16092         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
16093         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
16094         of the TSD field "Table" because this field has been renamed to
16095         "Ifaces_Table".
16096         (Inherit_CPP_DT): Removed.
16097         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
16098         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
16099         declarations have been moved to a-tags.ads
16100         (Check_Size): Removed.
16101         (Expanded_Name): Updated to get access to the new field of TSD
16102         containing the address of the expanded name.
16103         (Get_Access_Level/Set_Access_Level): Removed.
16104         (Get_Predefined_Prim_Op_Address): Removed.
16105         (Set_Predefined_Prim_Op_Address): Removed.
16106         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
16107         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
16108         (Set_Expanded_Name): Removed.
16109         (Inherit_DT): Removed.
16110         (Inherit_CPP_DT): Removed.
16111         (Set_RC_Offset): Removed.
16112         (Set_TSD): Removed.
16113         (Base_Address): New function that displaces "this" to point to the base
16114         of the object (that is, to point to the primary tag of the object).
16115
16116 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16117             Javier Miranda  <miranda@adacore.com>
16118
16119         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
16120         anonymous access component, do not create a master_id if type already
16121         has one, as may happen if the type is a subcomponent of a packed array
16122         type.
16123         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
16124         Initialize_Tag): Remove code associated with the old CPP pragmas.
16125         CPP_Virtual and CPP_Vtable are no longer supported.
16126         (Build_Offset_To_Top_Internal): Add support for concurrent record types
16127         (Build_Offset_To_Top_Functions): Add support for concurrent record types
16128         (Freeze_Record_Type): Remove call to
16129         Init_Predefined_Interface_Primitives.
16130         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
16131         code required to initialize the tags of the secondary dispatch tables.
16132         This leaves the algoritm more clear.
16133         (Init_Secondary_Tags): Add support for concurrent record types
16134         (Make_Predefined_Primitive_Specs): Code cleanup.
16135         (Predefined_Primitive_Bodies): Code cleanup.
16136         (Build_Master_Renaming): New local subprogram.
16137         (Expand_N_Full_Type_Declaration): Build the master_id associated with
16138         anonymous access to task type components.
16139         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
16140         subtype indication are resolved during analysis, and must not be done
16141         here.
16142         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
16143
16144 2007-04-06  Geert Bosch  <bosch@adacore.com>
16145             Ed Schonberg  <schonberg@adacore.com>
16146             Javier Miranda  <miranda@adacore.com>
16147             Bob Duff  <duff@adacore.com>
16148
16149         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
16150         for conversion of a Float_Type'Truncation to integer.
16151
16152         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
16153         check if a node is an attribute that can be handled directly by the
16154         back end.
16155         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
16156         attributes that can be handled directly by the back end.
16157         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
16158         use new predicate Is_Access_Protected_Subprogram_Type.
16159         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
16160         and Unchecked_Union if it is generated as part of the default  Output
16161         procedure for a type with default discriminants.
16162         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
16163         if we are compiling under restriction No_Dispatching_Calls.
16164         (Constrained): Use Underlying_Type, in case the type is private without
16165         discriminants, but the full type has discriminants.
16166         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
16167         call to Build_Get_Access_Level.
16168         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
16169         interface objects requires a call to the run-time subprogram that
16170         returns the base address of the object.
16171         (Valid_Conversion): Improve error message on illegal attempt to store
16172         an anonymous access to subprogram value into a record component.
16173
16174         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
16175         null".
16176         (Simplify_Type_Conversion): New procedure that performs simplification
16177         of Int_Type (Float_Type'Truncation (X)).
16178         (Resolve_Type_Conversion): Call above procedure after resolving operand
16179         and before performing checks. This replaces the existing ineffective
16180         code in Exp_Ch4.
16181         (Set_String_Literal_Subtype): When creating the internal static lower
16182         bound subtype for a string literal, use a newly created copy of the
16183         subtree representing the lower bound.
16184         (Resolve_Call): Exclude build-in-place function calls from transient
16185         scope treatment. Update comments to describe this exception.
16186         (Resolve_Equality_Op): In case of dispatching call check violation of
16187         restriction No_Dispatching_Calls.
16188         (Resolve_Call): If the call returns an array, the context imposes the
16189         component type of the array, and the function has one non-defaulted
16190         parameter, rewrite the call as the indexing of a call with a single
16191         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
16192         in prefix form.
16193         (Resolve_Actuals): If an actual is an allocator for an access parameter,
16194         the master of the created object is the innermost enclosing statement.
16195         (Remove_Conversions): For a binary operator, check if type of second
16196         formal is numeric, to check if an abstract interpretation is present
16197         in the case of exponentiation as well.
16198
16199 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16200             Bob Duff  <duff@adacore.com>
16201
16202         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
16203         copying a parameter list in a call, set properly the First_Named_Formal
16204         and Next_Named_Formal fields in the new list and in the enclosing call.
16205         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
16206         names, to ease typing in the debugger. Improve comments.
16207         (Watch_Node): New variable, intended to be set in the debugger.
16208         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
16209         called when the watched node is created.
16210         (New_Node_Debugging_Output): Combined version of local procedures
16211         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
16212         with a parameter so that conditional breakpoints like "if Node = 12345"
16213         work.
16214         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
16215         Add Elist1 function
16216
16217 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16218             Ed Schonberg  <schonberg@adacore.com>
16219             Gary Dismukes  <dismukes@adacore.com>
16220
16221         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
16222         required for a conversion between two access-to-unconstrained-array
16223         types.
16224         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
16225         to discriminant constraints on discriminant objects. This rule must
16226         apply as well to discriminants of protected types in private components.
16227         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
16228         object of a null-excluding access type then don't require the
16229         the object declaration to have an expression and don't emit a
16230         run-time check.
16231
16232 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
16233             Eric Botcazou  <botcazou@adacore.com>
16234
16235         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
16236         and made constant.
16237
16238         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
16239         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
16240         carry any.
16241
16242         * fe.h (Compiler_Abort): Add third parameter.
16243
16244         * misc.c (internal_error_function): Build third argument from current
16245         input location and pass it to Compiler_Abort.
16246
16247 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
16248
16249         * cstand.adb (Create_Standard): When the target's storage unit size is
16250         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
16251         Standard_String.
16252
16253 2007-04-06  Nicolas Roche  <roche@adacore.com>
16254
16255         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
16256         absolute path can have the following form: device:/a/b. In this case
16257         '/' should be inserted between the path and the filename.
16258
16259 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16260             Eric Botcazou  <botcazou@adacore.com>
16261
16262         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
16263         VAR_DECL to a CONST_DECL we make for a public constant when we know the
16264         corresponding definition has created the so made visible variable.
16265         Handle anonymous access to protected subprogram.
16266         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
16267         object with an address clause volatile.  Re-enable original fix.
16268         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
16269         too.
16270         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
16271         associated with either the Equivalent or Root type, instead of the
16272         naked type node.
16273         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
16274         subtree for every field of a global record type.
16275         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
16276         discriminants, invoke again variable_size on its newly computed sizes.
16277
16278 2007-04-06  Robert Dewar  <dewar@adacore.com>
16279             Thomas Quinot  <quinot@adacore.com>
16280             Ed Schonberg  <schonberg@adacore.com>
16281             Bob Duff  <duff@adacore.com>
16282
16283         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
16284         (Next_Component_Or_Discriminant): New function and procedure
16285         (First_Index, First_Literal, Master_Id,
16286         Set_First_Index, Set_First_Literal, Set_Master_Id):
16287         Add missing Ekind assertions.
16288         (Is_Access_Protected_Subprogram_Type): New predicate.
16289         (Has_RACW): New entity flag, set on package entities to indicate that
16290         the package contains the declaration of a remote accecss-to-classwide
16291         type.
16292         (E_Return_Statement): This node type has the Finalization_Chain_Entity
16293         attribute, in case the result type has controlled parts.
16294         (Requires_Overriding): Add this new flag, because "requires
16295         overriding" is subtly different from "is abstract" (see AI-228).
16296         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
16297         Is_Abstract_Type. Make sure these are called only when appropriate.
16298         (Has_Pragma_Unreferenced_Objects): New flag
16299
16300         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
16301         class-wide, the tag of the right-hand side must be an exact match, not
16302         an ancestor of that of the object on left-hand side.
16303         (Move_Activation_Chain): New procedure to create the call to
16304         System.Tasking.Stages.Move_Activation_Chain.
16305         (Expand_N_Extended_Return_Statement): Generate code to call
16306         System.Finalization_Implementation.Move_Final_List at the end of a
16307         return statement if the function's result type has controlled parts.
16308         Move asserts to Build_In_Place_Formal.
16309         (Move_Final_List): New function to create the call statement.
16310         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
16311         tagged type, replace generation of call to the run-time subprogram
16312         CW_Membership by call to Build_CW_Membership.
16313         (Expand_N_Return_Statement): Replace generation of call to the run-time
16314         subprogram Get_Access_Level by call to Build_Get_Access_Level.
16315         (Expand_N_Simple_Function_Return): Replace generation of call to the
16316         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
16317
16318         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
16319         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
16320         access to protected operations.
16321         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
16322         master and chain actual parameters to a build-in-place function call
16323         involving tasks.
16324         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
16325         statement.
16326         (Make_Build_In_Place_Call_In_Allocator,
16327         Make_Build_In_Place_Call_In_Anonymous_Context,
16328         Make_Build_In_Place_Call_In_Assignment,
16329         Make_Build_In_Place_Call_In_Object_Declaration): Call
16330         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
16331         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
16332         stubbed procedure with a null body, replace the call with a null
16333         statement without using the full inlining machinery, for efficiency
16334         and to avoid invalid values in source file table entries.
16335
16336         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
16337         renamings of calls to build-in-place functions.
16338
16339         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
16340         provides the functionality of RTE_Available to record components.
16341         (RTU_Entity): The function Entity has been renamed to RTU_Entity
16342         to avoid undesired overloading.
16343         (Entity): New subprogram that returns the entity for the referened
16344         unit. If this unit has not been loaded, it returns Empty.
16345         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
16346         Remove no longer used entities.
16347         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
16348         (RE_Type_Specific_Data): New entity.
16349         (RE_Move_Any_Value): New entity.
16350         (RE_TA_A, RE_Get_Any_Type): New entities.
16351         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
16352          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
16353          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
16354         (Entity): New subprogram that returns the entity for the referened
16355         unit. If this unit has not been loaded, it returns Empty.
16356         (RTE): Addition of a new formal that extends the search to the scopes
16357         of the record types found in the chain of the package.
16358
16359         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
16360         "abstract subprograms must be visible" message, whether or not the type
16361         is an interface; that is, remove the special case for interface types.
16362         (Analyze_Function_Return): Remove error message "return of task objects
16363         is not yet implemented" because this is now implemented.
16364         (Create_Extra_Formals): Add the extra master and activation chain
16365         formals in case the result type has tasks.
16366         Remove error message "return of limited controlled objects is not yet
16367         implemented".
16368         (Create_Extra_Formals): Add the extra caller's finalization list formal
16369         in case the result type has controlled parts.
16370         (Process_Formals): In case of access formal types there is no need
16371         to continue with the analysis of the formals if we already notified
16372         errors.
16373         (Check_Overriding_Indicator): Add code to check overriding of predefined
16374         operators.
16375         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
16376         flags for formals that do not require them,.
16377         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
16378         hidden entity is use visible or directly visible.
16379         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
16380         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
16381         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
16382         New_Overloaded_Entity): Split Is_Abstract flag into
16383         Is_Abstract_Subprogram and Is_Abstract_Type.
16384
16385         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
16386         a return statement's finalization list to the caller's list, used for
16387         build-in-place functions with result type with controlled parts.
16388         Remove no longer used entities.
16389
16390         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
16391         longer needed, because the full type is now limited, and therefore a
16392         pass-by-reference type.
16393         (Foreign_Task_Level): New constant.
16394
16395         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
16396         move tasks from the activation chain belonging to a return statement to
16397         the one passed in by the caller, and update the master to the one
16398         passed in by the caller.
16399         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
16400         of unactivated tasks, so we don't kill the ones that are being returned
16401         by a build-in-place function.
16402         (Create_Task): Ignore AI-280 for foreign threads.
16403
16404 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16405             Robert Dewar  <dewar@adacore.com>
16406             Bob Duff  <duff@adacore.com>
16407             Gary Dismukes  <dismukes@adacore.com>
16408
16409         * errout.adb (Unwind_Internal_Type): Use predicate
16410         Is_Access__Protected_Subprogram_Type.
16411
16412         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
16413         (Freeze_Entity, packed array case): Do not override explicitly set
16414         alignment and size clauses.
16415         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
16416         the enclosing subprogram is a child unit body that acts as a spec.
16417         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
16418         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
16419         Remove all code for DSP option
16420
16421         * layout.adb (Layout_Record_Type): Use First/
16422         Next_Component_Or_Discriminant
16423         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
16424         to handle properly the anonymous access case.
16425
16426         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
16427         for all access attributes, because overload resolution should work the
16428         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
16429         causes the error message for the ambiguous "X'Access = Y'Access" and
16430         "X'Unrestricted_Access = Y'Access" and so forth to match.
16431         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
16432         now that anonymous access to protected operations have their own kind.
16433         (Resolve_Attribute): In case of dispatching call check the violation of
16434         restriction No_Dispatching_Calls.
16435         (Check_Array_Type): Check new -gnatyA array index style option
16436
16437         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
16438         attempt to derive from a synchronized tagged type.
16439         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
16440         type, inherit the class-wide type already created, because it may
16441         already have been used in a self-referential anonymous access component.
16442         (Mentions_T): Recognize self-referential anonymous access components
16443         that use (a subtype of) the class-wide type of the enclosing type.
16444         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
16445         Derived_Type for Prev formal on call to
16446         Check_Anonymous_Access_Components rather than Empty.
16447         (Make_Incomplete_Type_Declaration): Add test for case where the type has
16448         a record extension in deciding whether to create a class-wide type,
16449         rather than just checking Tagged_Present.
16450         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
16451         to stand-alone object declarations as well as component declarations.
16452         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
16453         prevent accidental overwriting when enclosing package appears in
16454         a limited_with_clause.
16455         (Array_Type_Declaration): If the component type is an anonymous access,
16456         the associated_node for the itype is the type declaration itself.
16457         (Add_Interface_Tag_Components): Modified to support concurrent
16458         types with abstract interfaces.
16459         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
16460         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
16461         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
16462         to complete the decoration of synchronized interface types. Add also
16463         a call to Check_Abstract_Interfaces to verify the ARM rules.
16464         (Derive_Interface_Subprograms): Modified to support concurrent types
16465         with abstract interfaces.
16466         (Analyze_Subtype_Indication): Resolve the range with the given subtype
16467         mark, rather than delaying the full resolution depending on context.
16468         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
16469         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
16470         Array_Type_Declaration,Build_Derived_Record_Type,
16471         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
16472         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
16473         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
16474         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
16475         called only when appropriate.
16476         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
16477         to private type.
16478         (Analyze_Subtype_Declaration): For an access subtype declaration, create
16479         an itype reference for the anonymous designated subtype, to prevent
16480         scope anonmalies in gigi.
16481         (Build_Itype_Reference): New utility, to simplify construction of such
16482         references.
16483
16484 2007-04-06  Vincent Celier  <celier@adacore.com>
16485
16486         * errutil.adb (Initialize): Initialize warnings table, if all warnings
16487         are suppressed, supply an initial dummy entry covering all possible
16488         source locations.
16489
16490         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
16491         and start with only one, such as "-RTS=none".
16492         (Collect_Arguments): Do not check for sources outside of projects.
16493         Do not collect arguments if project is externally built.
16494         (Compile_Sources): Do nothing, not even check if the source is up to
16495         date, if its project is externally built.
16496         (Compile): When compiling a predefined source, add -gnatpg
16497         as the second switch, after -c.
16498         (Compile_Sources): Allow compilation of Annex J renames without -a
16499         (Is_In_Object_Directory): Check if the ALI file is in the object
16500         even if there is no project extension.
16501         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
16502         gnatbind if the ALI file effectively exists.
16503         (Initialize): Add the directory where gnatmake is invoked in front of
16504         the path if it is invoked from a bin directory, even without directory
16505         information, so that the correct GNAT tools will be used when spawned
16506         without directory information.
16507
16508         * makeusg.adb: Change switch -S to -eS
16509         Add lines for new switches -we, -wn and -ws
16510         Add line for new switch -p
16511
16512         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
16513         Treat_As_Error and there are warnings.
16514
16515         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
16516         -gnatww Change gnatmake switch -S to -eS
16517         (Scan_Make_Switches): Code reorganisation. Process separately multi
16518         character switches and single character switches.
16519         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
16520         False when switch is not recognized by gnatmake.
16521         (Scan_Make_Switches): Set Setup_Projects True when -p or
16522         --create-missing-dirs is specified.
16523
16524         * fname.adb (Is_Predefined_File_Name): Return True for annex J
16525         renamings Calendar, Machine_Code, Unchecked_Conversion and
16526         Unchecked_Deallocation only when Renamings_Included is True.
16527
16528         * par.adb: Allow library units Calendar, Machine_Code,
16529         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
16530         when -gnatg is not specified.
16531         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
16532         there is no need to generate always a record_definition_node in case
16533         of synchronized interface types.
16534         (SIS_Entry_Active): Initialize global variable to False
16535         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
16536         indicate cases where AI-447 says "not null" is legal.
16537
16538         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
16539
16540         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
16541         files with with several lines starting with the object fileb name.
16542         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
16543         is specified.
16544         (Initialize): Add the directory where gprmake is invoked in front of the
16545         path, if it is invoked from a bin directory or with directory
16546         information, so that the correct GNAT tools will be used when invoked
16547         directly.
16548         (Check_Compilation_Needed): Process correctly backslashes on Windows.
16549
16550         * vms_data.ads: Update switches/qualifiers
16551
16552 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16553             Thomas Quinot  <quinot@adacore.com>
16554
16555         * exp_aggr.adb:
16556         If the array component is a discriminated record, the array aggregate
16557         is non-static even if the component is given by an aggregate with
16558         static components.
16559         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
16560         (Convert_Aggr_In_Allocator): If the allocator is for an access
16561         discriminant and the type is controlled. do not place on a finalization
16562         list at this point. The proper list will be determined from the
16563         enclosing object.
16564         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
16565         initialize record controller if needed, before the components, to ensure
16566         that they are properly finalized.
16567         (Build_Record_Aggr_Code): For the case of an array component that has a
16568         corresponding array aggregate in the record aggregate, perform sliding
16569         if required.
16570
16571 2007-04-06  Javier Miranda  <miranda@adacore.com>
16572             Gary Dismukes  <dismukes@adacore.com>
16573             Ed Schonberg  <schonberg@adacore.com>
16574
16575         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
16576         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
16577
16578         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
16579         accessibility on class-wide allocators if the allocator occurs at the
16580         same scope level as the allocator's type. The check is guaranteed to
16581         succeed in that case, even when the expression originates from a
16582         parameter of the containing subprogram.
16583         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
16584         under No_Dispatching_Calls restriction. During the semantic analysis
16585         we already notified such violation.
16586         (Tagged_Membership): Constant folding. There is no need to check
16587         the tag at run-time if the type of the right operand is non
16588         class-wide abstract.
16589         Replace call to Is_Ancestor by call to Is_Parent
16590         to support concurrent types with interface types.
16591         (Expand_N_Allocator): Add an assertion associated with the generation
16592         of the master_id.
16593         (Expand_N_Slice): Do not enable range check to nodes associated
16594         with the frontend expansion of the dispatch table.
16595         (Is_Local_Access_Discriminant): Subsidiary function to
16596         Expand_N_Allocator.
16597         (Tagged_Membership): Replace generation of call to the run-time
16598         subprogram CW_Membership by call to Build_CW_Membership.
16599         (Expand_Allocator_Expression): Replace generation of call to the
16600         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
16601
16602         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
16603         initialize most the TSD components by means of an aggregate.
16604         Modify the declaration of the object containing the TSD
16605         because we now expand code that has a higher level of abstraction.
16606         The TSD has a discriminant containing the Inheritance Depth Level,
16607         value that is used in the membership test but also to fix the size
16608         of the table of ancestors.
16609         (Expand_Interface_Conversion): Insert function body at the closest place
16610         to the conversion expression, to prevent access-before-elaboration
16611         errors in the backend.
16612         Code improved to reduce the size of the dispatch table if
16613         compiling under restriction No_Dispatching_Calls plus code cleanup.
16614         Code reorganization plus removal of calls to Set_Num_Prim_Ops
16615         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
16616         (Expand_Dispatching_Call): Minor code reorganization plus addition of
16617         code to return immediately if compiling under No_Dispatching_Calls
16618         restriction.
16619         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
16620         CPP_Virtual and CPP_Vtable are no longer supported.
16621         (Expand_Interface_Conversion): Add missing support for interface type
16622         derivations.
16623         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
16624         Is_Parent to support concurrent types with interfaces.
16625         (Init_Predefined_Interface_Primitives): Removed.
16626         (Make_Secondary_DT): Modified to support concurrent record types.
16627         (Set_All_DT_Position): Modified to support concurrent record types.
16628         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
16629         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
16630         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
16631         with CW_Membership.
16632         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
16633         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
16634         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
16635         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
16636         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
16637         (Expand_Dispatching_Call): Replace generation of call to the run-time
16638         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
16639         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
16640         Address.
16641         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
16642         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
16643         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
16644         Build_Set_Prim_Op_Address.
16645         (Get_Remotely_Callable): Subprogram removed.
16646         (Init_Predefined_Interface_Primitives): Replace generation of call to
16647         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
16648         Prims.
16649
16650         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
16651         First (Parameter_Associations ()) with the call to First_Actual that
16652         returns an actual parameter expression for both named and positional
16653         associations.
16654
16655         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
16656         check violation of restriction No_Dispatching_Calls.
16657         (Check_Controlling_Type): A formal of a tagged incomplete type is a
16658         controlling argument.
16659
16660         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
16661         First/Next_Component_Or_Discriminant
16662         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
16663         (Find_Implemented_Interface): Removed. All the calls to this subprogram
16664         specify Any_Limited_Interface, and this functionality is already
16665         provided by the function Has_Abstract_Interfaces.
16666         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
16667         support concurrent types implementing interfaces.
16668         (Find_Implemented_Interface): Removed. All the calls to this subprogram
16669         specify kind Any_Limited_Interface, and this functionality is already
16670         provided by the function Has_Abstract_Interfaces.
16671         (Remove_Side_Effects): replace Controlled_Type by
16672         CW_Or_Controlled_Type whenever the issue is related to
16673         using or not the secondary stack.
16674
16675         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
16676         P_Interface_Type_Definition to fulfill the new interface (the formal
16677         Is_Synchronized is no longer required).
16678
16679         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
16680         Update dependencies.
16681
16682         * exp_atag.ads, exp_atag.adb: New file
16683
16684 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16685             Bob Duff  <duff@adacore.com>
16686             Cyrille Comar  <comar@adacore.com>
16687
16688         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
16689         anonymous, use finalization list of enclosing dynamic scope.
16690         (Expand_N_Package_Declaration): For a library package declaration
16691         without a corresponding body, generate RACW subprogram bodies in the
16692         spec (just as we do for the task activation call).
16693         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
16694         Is_Abstract_Type. Make sure these are called only when appropriate.
16695         Remove all code for DSP option
16696         (CW_Or_Controlled_Type): new subprogram.
16697
16698 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16699             Ed Schonberg  <schonberg@adacore.com>
16700             Gary Dismukes  <dismukes@adacore.com>
16701
16702         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
16703         parameter. If it is set to true, return a result capped according to
16704         the global upper bound for the index of an entry family.
16705         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
16706         (Build_Find_Body_Index): Adjust for above change.
16707         (Entry_Index_Expression): Likewise.
16708         (Is_Potentially_Large_Family): New function extracted from...
16709         (Collect_Entry_Families): ...here. Call it to detect whether the family
16710         is potentially large.
16711         (Build_Entry_Count_Expression): If the family is potentially large, call
16712         Family_Size with 'Cap' set to true.
16713         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
16714         a protected version of an operation declared in the private part of
16715         a protected object, because they may be invoked through a callback.
16716         (Set_Privals): If the type of a private component is an anonymous access
16717         type, do not create a new itype for each protected body.
16718         If the body of a protected operation creates
16719         controlled types (including allocators for class-widetypes), the
16720         body of the corresponding protected subprogram must include a
16721         finalization list.
16722         (Build_Activation_Chain_Entity): Build the chain entity for extended
16723         return statements.
16724         (Type_Conformant_Parameters): Use common predicate Conforming_Types
16725         to determine whether operation overrides an inherited primitive.
16726         (Build_Wrapper_Spec): Add code to examine the parents while looking
16727         for a possible overriding candidate.
16728         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
16729         hold an actual parameter value since its initialization is separated
16730         from the the declaration. Prevents errors on null-excluding access
16731         formals.
16732
16733 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16734             Pablo Oliveira  <oliveira@adacore.com>
16735
16736         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
16737         Do an Unchecked_Conversion to handle the passage from the Underlying
16738         Type to the Base Type when calling Build_To_Any_Call and
16739         Build_From_Any_Call.
16740         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
16741         E_Constant, depending upon Variable formal.
16742         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16743         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
16744         parameter that requires an extra constrained parameter, declare
16745         temporary for actual as a variable, not a constant.
16746         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
16747         the unit being compiled is the one that contains the stub type.
16748         Change primitive operation name for the RACW associated with a RAS
16749         from Call to _Call so it cannot clash with any legal identifier.
16750         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
16751         Is_RAS.
16752         (Append_RACW_Bodies): New subprogram.
16753         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
16754         Add_Receiving_Stubs_To_Declarations functions.
16755         When expanding a package body, this list correspond to the
16756         statements in the HSS at the end of the pacakge.
16757         When expanding a package spec, this list correspond to the
16758         spec declarations.
16759         (Add_Receiving_Stubs_To_Declarations): Append the function
16760         registering the receiving stubs at the end of the 'Stmts' list.
16761         (RCI_Package_Locator): Pass the new Version generic formal when
16762         instantiating a RCI_Locator package.
16763         (Build_From_Any_Function): To compute the High bound for an
16764         unconstrained array actual, we add the Low bound with the length.
16765         Thus we must convert the low bound and the length to an appropriate
16766         type before doing the sum.
16767         (Build_Subprogram_Receiving_Stubs, PolyORB):
16768          * Retrieve the extra formals parameters at the
16769            end of the parameter stream.
16770          * Use Move_Any_Value to write back out parameters
16771            after executing the request as it is more efficient
16772            than Copy_Any_Value.
16773          * Build the any containing Extra Formals with the
16774            appropriate typecode.
16775         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
16776         empty Component_List.
16777         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
16778         the tree the declaration for an object that serves as actual parameter
16779         in server-side stubs.
16780         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
16781         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
16782         Use Build_Actual_Object_Declaration to prepare the actuals.
16783         (Add_Parameter_To_NVList): Set the parameter mode to In for
16784         Extra Constrained Parameters.
16785         (Build_General_Calling_Stubs): Set the parameter type to boolean for
16786         Extra Constrained parameters.
16787         (Build_To_Any_Function, Build_From_Any_Function,
16788         Built_TypeCode_Function): When Typ is implicit, call the correct
16789         function with the first not implicit parent type.
16790         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
16791         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
16792         typecode from the Etype. Therefore we retrieve the correct typecode
16793         with a call to Get_Any_Type.
16794         (Copy_Specification): Do controlling formal type substitution based on
16795         Is_Controlling_Formal flag, instead of caller-provided object type.
16796         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
16797         a RACW primitive operation, we might get a subprogram declaration for an
16798         ancestor of the RACW designated type (not for the designated type
16799         itself), in the case where this operation is inherited. In this case we
16800         have no easy means of determining the original tagged type for which
16801         the primitive was declared, so instead we now rely on
16802         Copy_Specification to use the Is_Controlling_Formal flag to determine
16803         which formals require type substitution.
16804
16805 2007-04-06  Robert Dewar  <dewar@adacore.com>
16806             Ed Schonberg  <schonberg@adacore.com>
16807
16808         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
16809         GNAT.Current_Exception are not allowed if pragma Restrictions
16810         (No_Exception_Propagation) is set and in any case make the associated
16811         handler unsuitable as a target for a local raise statement.
16812         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
16813         run-time subprogram CW_Membership by call to Build_CW_Membership.
16814         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
16815         by a function call, a temporary must be created before expanding the
16816         Constructor_Call itself, to prevent out-of-order elaboration in the
16817         back-end when stack checking is enabled..
16818
16819 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16820
16821         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
16822         result are the bounds of the left operand, not the right.
16823
16824 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16825
16826         * exp_strm.adb
16827         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
16828          discriminant defaults.
16829         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
16830         (Make_Component_List_Attributes): Ditto.
16831
16832 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
16833             Bob Duff  <duff@adacore.com>
16834
16835         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
16836         an association with a box as providing a value even though the
16837         initialization procedure for the type is not available.
16838         (Resolve_Record_Aggregate): Check that a choice of an association with a
16839         box corresponds to a component of the type.
16840         (Resolve_Record_Aggregate): Split Is_Abstract flag into
16841         Is_Abstract_Subprogram and Is_Abstract_Type.
16842
16843         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
16844         assert.
16845
16846         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
16847         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
16848         called only when appropriate.
16849
16850 2007-04-06  Olivier Hainque  <hainque@adacore.com>
16851
16852         * g-alleve.ads (Low Level Vector type definitions): Map each to the
16853         associated vector view instead of all to the unsigned char view.
16854
16855         * g-altcon.adb (Generic_Conversions): New internal generic package,
16856         offering facilities for all the Vector/View conversion routines
16857         implemented by this unit.
16858         (To_View/To_Vector - all versions): Reimplemented in a systematic
16859         manner, using the internal Generic_Conversions facilities.
16860
16861 2007-04-06  Pascal Obry  <obry@adacore.com>
16862
16863         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
16864         string.
16865         (Create): Free the source string before storing the new one.
16866
16867 2007-04-06  Vincent Celier  <celier@adacore.com>
16868
16869         * g-debpoo.adb (Validity): New package with a complete new
16870         implementation of subprograms Is_Valid and Set_Valid.
16871         (Is_Valid): Move to local package Validity
16872         (Set_Valid): Move to local package Validity
16873
16874 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
16875             Pablo Oliveira  <oliveira@adacore.com>
16876
16877         * g-expect.adb (Get_Command_Output): When expanding the output buffer
16878         we must ensure that there is enough place for the new data we are going
16879         to copy in.
16880
16881 2007-04-06  Thomas Quinot  <quinot@adacore.com>
16882
16883         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
16884         computation.
16885
16886 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
16887             Vincent Celier  <celier@adacore.com>
16888
16889         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
16890         (Stack_String): Add this String that contains the name of the Stack
16891         package in the project file.
16892         (Packages_To_Check_By_Stack): Add this list that contains the packages
16893         to be checked by gnatstack, which are the naming and the stack packages.
16894         (Check_Files): If no .ci files were specified for gnatstack we add all
16895         the .ci files belonging to the projects, including binder generated
16896         files.
16897         (Non_VMS_Usage): Document that gnatstack accept project file switches.
16898         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
16899         Add gnatstack to the list of commands that use project file related
16900         switches, and get the single attribute Switches from the stack package
16901         in a project file when calling gnatstack. Parse the -U flag for
16902         processing files belonging to all projects in the project tree.
16903         Remove all processing for command Setup
16904
16905         * prj-attr.adb: Add new package Stack with single attribute Switches
16906
16907         * vms_conv.ads (Command_Type): Add command Stack.
16908         Move to body declarations that are only used in the body: types Item_Id,
16909         Translation_Type, Item_Ptr, Item and its subtypes.
16910
16911         * vms_conv.adb: (Initialize): Add data for new command Stack.
16912         Add declarations moved from the spec: types Item_Id, Translation_Type,
16913         Item_Ptr, Item and its subtypes.
16914         (Cargs_Buffer): New table
16915         (Cargs): New Boolean global variable
16916         (Process_Buffer): New procedure to create arguments
16917         (Place): Put character in table Buffer or Cargs_Buffer depending on the
16918          value of Cargs.
16919         (Process_Argument): Set Cargs when processing qualifiers for GNAT
16920         COMPILE
16921         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
16922         empty, for table Cargs_Buffer.
16923         (Initialize): Remove component Setup in Command_List
16924
16925 2007-04-06  Vincent Celier  <celier@adacore.com>
16926
16927         * gprep.adb (Process_Files.Process_One_File): Use full file name when
16928         issuing pragma Source_Reference.
16929
16930 2007-04-06  Emmanuel Briot  <briot@adacore.com>
16931
16932         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
16933         [[:xdigit:]] character class.
16934         Also raise an exception when an invalid character class is used.
16935
16936 2007-04-06  Pascal Obry  <obry@adacore.com>
16937
16938         * i-cstrea.ads: (fopen): Add encoding parameter.
16939         (freopen): Idem.
16940         Change reference from a-sysdep.c to sysdep.c in comment.
16941         Update copyright notice.
16942         This set of patch add support for the encoding form parameter.
16943
16944         * mingw32.h (S2WSU): New macro to convert from a string to a
16945         wide-string using the UTF-8 encoding. The S2WS macro supports now only
16946         standard 8bits encoding.
16947         (WS2SU): As above but converting from wide-sring to string.
16948         This is needed as it is necessary to have access to both versions in the
16949         runtime for the form parameter encoding support.
16950         This set of patch add support for the encoding form parameter.
16951         (S2WS): Improve implementation to handle cases where the filename is not
16952         UTF-8 encoded. In this case we default to using the current code page
16953         for the conversion.
16954
16955         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
16956         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
16957         the constants defined in adaint.h.
16958         (fopen): Add encoding parameter.
16959         (freopen): Idem.
16960
16961         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
16962         encoding. This is needed for the Reset routine (freopen low level-call).
16963
16964         * s-fileio.adb (Open): Decode encoding form parameter and set the
16965         corresponding encoding value into AFCB structure.
16966         (Reset): Pass the encoding value to freopen.
16967         (Close): Move the call to Lock_Task to the beginning of the procedure.
16968
16969 2007-04-06  Geert Bosch  <bosch@adacore.com>
16970             Robert Dewar  <dewar@adacore.com>
16971
16972         * i-fortra.ads: Add Double_Complex type.
16973
16974         * impunit.adb: (Is_Known_Unit): New function
16975         Add Gnat.Byte_Swapping
16976         Add GNAT.SHA1
16977         Add new Ada 2005 units
16978         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
16979         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
16980         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
16981         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
16982
16983         * impunit.ads (Is_Known_Unit): New function
16984
16985         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
16986         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
16987         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
16988         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
16989         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
16990         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
16991         New files.
16992
16993         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
16994
16995         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
16996
16997 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
16998             Arnaud Charlet  <charlet@adacore.com>
16999
17000         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
17001         __gnat_adjust_context_for_raise.
17002         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
17003         implementation of floating point operations as native x86 targets.
17004         So the FPU should be initialized in the same way using finit. Fix
17005         floating point operations accuracy issues.
17006         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
17007         member in struct sigaction, so as to avoid warning for incompatible
17008         pointer types.
17009
17010 2007-04-06 Serguei Rybin  <rybin@adacore.com>
17011
17012         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
17013         switches from previously loaded tree
17014
17015 2007-04-06  Thomas Quinot  <quinot@adacore.com>
17016
17017         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
17018         cases where a given dependency has a body or not.
17019         (Write_With_File_Names): New subprogram, common code for the two cases
17020         above.
17021
17022 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17023             Javier Miranda  <miranda@adacore.com>
17024
17025         * lib-xref.ads, lib-xref.adb:
17026         Modify the loop that collects type references, to include interface
17027         types that the type implements. List each of these interfaces when
17028         building the entry for the type.
17029         (Generate_Definition): Initialize component Def and Typ of new entry
17030         in table Xrefs, to avoid to have these components unitialized.
17031         (Output_References): Split Is_Abstract flag into
17032         Is_Abstract_Subprogram and Is_Abstract_Type.
17033         (Generate_Reference): Add barrier to do not generate the warning
17034         associated with Ada 2005 entities with entities generated by the
17035         expander.
17036
17037 2007-04-06  Robert Dewar  <dewar@adacore.com>
17038             Arnaud Charlet  <charlet@adacore.com>
17039             Vincent Celier  <celier@adacore.com>
17040
17041         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
17042         Update 'Exception Handling Control' chapter which was outdated.
17043         Minor fix to documentation of -gnatwq
17044         Remove section "Adapting the Run Time to a New C++ Compiler" because
17045         it is now obsolete.
17046         Add passage on need of -nostart-files in some non-ada-main cases.
17047         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
17048         Update documentation about Interfacing with C++
17049         Add documentation for new gnatmake switch -p
17050         Add missing protocol part in URLs.
17051         Document -gnatyA
17052         Document pragma Compile_Time_Error
17053         Add documentation for Object_Size indicating that stand alone
17054         objects can have a larger size in some cases.
17055         Add node for GNAT.Byte_Swapping, GNAT.SHA1
17056         Update reference to the Ravenscar profile.
17057         Document pragma Unreferenced_Objects
17058
17059         * gnat-style.texi: Fix typo
17060
17061 2007-04-06  Vincent Celier  <celier@adacore.com>
17062
17063         * mlib.adb (Building_Library): Only output "building a library..." in
17064         verbose mode
17065
17066         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
17067         files in verbose mode.
17068
17069         * mlib-utl.adb (Ar): Only output the first object files when not in
17070         verbose mode.
17071         (Gcc): Do not display all the object files if not in verbose mode, only
17072         the first one.
17073
17074 2007-04-06  Robert Dewar  <dewar@adacore.com>
17075
17076         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
17077         it no longer destroys the contents of Name_Buffer or Name_Len and
17078         non-standard and invalid names are handled better.
17079         (Get_Decoded_Name_String): Improve performance by using
17080         Name_Has_No_Encodings flag in the name table.
17081         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
17082         Used for debugging printouts.
17083
17084 2007-04-06  Robert Dewar  <dewar@adacore.com>
17085             Javier Miranda  <miranda@adacore.com>
17086             Bob Duff  <duff@adacore.com>
17087
17088         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
17089         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
17090         there is no need to generate always a record_definition_node in case
17091         of synchronized interface types.
17092         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
17093         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
17094         illegal in Ada 95, in cases where it is legal. Change the warnings to
17095         errors in other cases. Don't give the error unless the "not null"
17096         parses properly. Correct the source position at which the error occurs.
17097         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
17098         P_Null_Exclusion, to suppress "not null" warnings.
17099         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
17100         associated goto statements.
17101
17102         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
17103         of END RECORD
17104
17105         * scans.ads (Type_Token_Location): New flag
17106
17107         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
17108         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
17109         P_Null_Exclusion, to suppress "not null" warnings.
17110
17111 2007-04-06  Robert Dewar  <dewar@adacore.com>
17112             Javier Miranda  <miranda@adacore.com>
17113             Bob Duff  <duff@adacore.com>
17114             Vincent Celier  <celier@adacore.com>
17115
17116         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
17117         (Extensions_Allowed): No longer sets Ada_Version
17118         Entry for pragma Unreferenced_Objects
17119
17120         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
17121         system.tasking if pragma priority used in a procedure
17122         (Analyze_Pragma, case Warning): Handle dot warning switches
17123         (Process_Compile_Time_Warning_Or_Error): New procedure
17124         (Analyze_Pragma): Add processing for Compile_Time_Error
17125         Add support for extra arguments External_Name and Link_Name.
17126         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
17127         (Process_Import_Or_Interface): Add support for the use of pragma Import
17128         with tagged types.
17129         (Extensions_Allowed): No longer affects Ada_Version
17130         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
17131         Is_Abstract_Type. Make sure these are called only when appropriate.
17132         Add processing for pragma Unreferenced_Objects
17133
17134         * snames.h, snames.ads, snames.adb: Add entry for pragma
17135         Compile_Time_Error
17136         Add new standard name Minimum_Binder_Options for new gprmake
17137         Add new standard names for gprmake: Archive_Suffix,
17138         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
17139         Library_Support, Library_Version_Options,
17140         Shared_Library_Minimum_Options,
17141         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
17142         Change Name_Call to Name_uCall so that it cannot clash with a legal
17143         subprogram name.
17144         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
17145         Append C_Plus_Plus to convention identifiers as synonym for CPP
17146         Add new standard names Stack and Builder_Switches
17147         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
17148         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
17149         Run_Path_Option, Toolchain_Version.
17150         Entry for pragma Unreferenced_Objects
17151
17152         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
17153         switches, without repetition of "eD". Make sure that last character of
17154         -gnatep= switch is not taken as -gnat switch character.
17155         Complete rewrite of circuit for handling saving compilation options
17156         Occasioned by need to support dot switchs for -gnatw, but cleans up
17157         things in general.
17158         -gnatX does not affect Ada_Version
17159         Include -gnatyA in -gnatg style switches
17160
17161         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
17162         warnings on return objects.
17163         (Warn_On_Useless_Assignment): Exclude warnings on return objects
17164         (Set_Dot_Warning_Switch): New procedure
17165         (Check_References): Add missing case of test for
17166         Has_Pragma_Unreferenced_Objects
17167         (Output_Unreferenced_Messages): Implement effect of new pragma
17168         Unreferenced_Objects, remove special casing of limited controlled
17169         variables.
17170
17171 2007-04-06  Vincent Celier  <celier@adacore.com>
17172
17173         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
17174         the default project path, initially done during elaboration of the
17175         package.
17176         If the prefix returned by Sdefault is null, get the prefix from a call
17177         to Executable_Prefix_Path.
17178         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
17179         null.
17180
17181         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
17182         canonical directory name to open the directory from which files are
17183         retrieved.
17184         (Record_Other_Sources): Idem.
17185         (Locate_Directory): Add the possibility to create automatically missing
17186         directories when Setup_Projects is True.
17187         Call Locate_Directory so that the directory will be created when
17188         Setup_Projects is True, for object dir, library dir, library ALI dir,
17189         library source copy dir and exec dir.
17190
17191         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
17192         versions of GNAT.
17193
17194 2007-04-06  Robert Dewar  <dewar@adacore.com>
17195
17196         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
17197         Use First/Next_Component_Or_Discriminant
17198         (Analyze_Record_Representation_Clause):
17199         Use First/Next_Component_Or_Discriminant
17200         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
17201         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
17202         definition if type is unconstrained.
17203         (Adjust_Record_For_Reverse_Bit_Order): New procedure
17204         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
17205         Is_Abstract_Subprogram and Is_Abstract_Type.
17206         (Adjust_Record_For_Reverse_Bit_Order): New procedure
17207
17208         * repinfo.adb (List_Record_Info): Use First/
17209         Next_Component_Or_Discriminant.
17210
17211         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
17212         New procedure.
17213
17214         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
17215         Include -gnatyA in default switches
17216
17217         * opt.ads: (Warn_On_Non_Local_Exception): New flag
17218         (Warn_On_Reverse_Bit_Order): New flag
17219         (Extensions_Allowed): Update the documentation.
17220         (Warn_On_Questionable_Missing_Parens): Now on by default
17221
17222         * usage.adb: Add documentation of -gnatw.x/X switches
17223         Document new -gnatyA style switch
17224         -gnatq warnings are on by default
17225
17226 2007-04-06  Ed Falis  <falis@adacore.com>
17227
17228         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
17229         full word is no longer compared twice.
17230
17231 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17232
17233         * sem_ch10.adb (Install_Limited_Context_Clauses.
17234         Expand_Limited_With_Clause): Use a new copy of selector name in the
17235         call to Make_With_Clause. This fixes the tree structure for ASIS
17236         purposes. Nothing is changed in the compiler behaviour.
17237         (Process_Body_Clauses): Handle properly use clauses whose prefix is
17238         a package renaming.
17239         (Install_Limited_With_Clauses): Do not install non-limited view when it
17240         is still incomplete.
17241
17242 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17243             Gary Dismukes  <dismukes@adacore.com>
17244
17245         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
17246         when capturing size information, instead of base type, which for a
17247         formal array type will be the unconstrained type.
17248         (Analyze_Formal_Object_Declaration): Add check for illegal default
17249         expressions for a formal in object of a limited type.
17250         (Instantiate_Object): Ditto.
17251         (Check_Formal_Package_Instance): Skip entities that are formal objects,
17252         because they were defaulted in the formal package and no check applies
17253         to them.
17254         (Check_Formal_Package_Instance): Extend conformance check to other
17255         discrete types beyond Integer.
17256         (Process_Default): Copy directly the unmatched formal. A generic copy
17257         has already been performed in Analyze_Formal_Package.
17258         (Analyze_Associations): If a formal subprogram has no match, check for
17259         partial parametrization before looking for a default, to prevent
17260         spurious errors.
17261         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
17262         not set the instantiation environment before analyzing the actuals.
17263         Fixes regression on 8515-003 with implementation of AI-133.
17264         Set_Instance_Env checks whether the generic unit is a predefined
17265         unit, in which case the instance must be analyzed with the latest Ada
17266         mode. This setting must take place after analysis of the actuals,
17267         because the actuals must be analyzed and frozen in the Ada mode extant
17268         outside of the current instantiation.
17269         (Save_Env, Restore_Env): Preserve and restore the configuration
17270         parameters so that predefined units can be compiled in the proper Ada
17271         mode.
17272         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
17273         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
17274         and Is_Abstract_Type.
17275         (Analyze_Formal_Package): For better error recovery, Add exception
17276         handler to catch Instantion_Error, which can be raised in
17277         Analyze_Associations
17278
17279 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17280             Bob Duff  <duff@adacore.com>
17281             Gary Dismukes  <dismukes@adacore.com>
17282
17283         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
17284         prefix type is a discriminated subtype of the type of the formal.
17285         (Analyze_Allocator): Collect all coextensions regardless of the context.
17286         Whether they can be allocated statically is determined in exp_ch4.
17287         (Analyze_Selected_Component): If the prefix is a limited view and the
17288         non-limited view is available, use the non-limited one.
17289         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
17290         therefore illegal), suggest a qualified expression rather than a type
17291         conversion, because a type conversion would be illegal in this context.
17292         (Anayze_Allocator): Trace recursively all nested allocators so that all
17293         coextensions are on the corresponding list for the root. Do no mark
17294         coextensions if the root allocator is within a declaration for a stack-
17295         allocated object, because the access discriminants will be allocated on
17296         the stack as well.
17297         (Analyze_Call): Remove restriction on calls to limited functions for the
17298         cases of generic actuals for formal objects, defaults for formal objects
17299         and defaults for record components.
17300         (Analyze_Allocator): Before analysis, chain coextensions on the proper
17301         element list. Their expansion is delayed until the enclosing allocator
17302         is processed and its finalization list constructed.
17303         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
17304         for an operation with the given name among the primitive operations of
17305         the corresponding record type.
17306         (Analyze_Selected_Component): If the prefix is a task type that
17307         implements an interface, and there is no entry with the given name,
17308         check whether there is another primitive operation (e.g. a function)
17309         with that name.
17310         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
17311         properly the indexing of a function call written in prefix form, where
17312         the function returns an array type, and all parameters of the function
17313         except the first have defaults.
17314         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
17315         the original operands, rather than relocating them, for efficiency and
17316         to work properly when an operand is overloaded.
17317         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
17318         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
17319         (Analyze_Selected_Component): If the prefix is a private extension, only
17320         scan the visible components, not those of the full view.
17321         (Try_Primitive_Operation): If the operation is a procedure, collect all
17322         possible interpretations, as for a function, because in the presence of
17323         classwide parameters several primitive operations of the type can match
17324         the given arguments.
17325
17326 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17327             Robert Dewar  <dewar@adacore.com>
17328
17329         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
17330         tag-indeterminate call to an abstract function, when the left-hand side
17331         is not classwide.
17332         (Analyze_Loop_Statement): Improve detection of infinite loops
17333
17334 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17335             Thomas Quinot  <quinot@adacore.com>
17336
17337         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
17338         out of Analyze_Package_Declaration, because processing must be applied
17339         to package bodies as well, for deferred constants completed by pragmas.
17340         (Analyze_Package_Declaration): When the package declaration being
17341         analyzed does not require an explicit body, call Check_Completion.
17342         (May_Need_Implicit_Body): An implicit body is required when a package
17343         spec contains the declaration of a remote access-to-classwide type.
17344         (Analyze_Package_Body): If the package contains RACWs, append the
17345         pending subprogram bodies generated by exp_dist at the end of the body.
17346         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
17347         Is_Abstract_Subprogram and Is_Abstract_Type.
17348         (Preserve_Full_Attributes): The full entity list is not an attribute
17349         that must be preserved from full to partial view.
17350
17351         * sem_dist.adb (Add_RAS_Dereference_TSS):
17352         Change primitive name to _Call so it cannot clash with any legal
17353         identifier, and be special-cased in Check_Completion.
17354         Mark the full view of the designated type for the RACW associated with
17355         a RAS as Comes_From_Source to get proper view switching when installing
17356         private declarations.
17357         Provite a placeholder nested package body along with the nested spec
17358         to have a place for Append_RACW_Bodies to generate the calling stubs
17359         and stream attributes.
17360
17361 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17362             Robert Dewar  <dewar@adacore.com>
17363
17364         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
17365         that is a limited view, check the non-limited view if available.
17366         (Undefined): Refine error message for missing with of Text_IO
17367         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
17368         to distinguish real missing with cases.
17369         Fix format of all missing with messages
17370         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
17371         renaming as body when renamed entity is abstract.
17372
17373 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17374             Javier Miranda  <miranda@adacore.com>
17375
17376         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
17377         predicate recursive, to handle complex expressions on literals whose
17378         spurious ambiguity comes from the abstract interpretation of some
17379         subexpression.
17380         (Interface_Present_In_Ancestor): Add support to concurrent record
17381         types.
17382         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
17383         Is_Abstract_Subprogram and Is_Abstract_Type.
17384
17385 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17386             Javier Miranda  <miranda@adacore.com>
17387
17388         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
17389         dereference of a local object R created as a reference to another
17390         object O, use the access level of O.
17391         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
17392         rather than local Same_Formal_Type, to check whether protected operation
17393         overrides an inherited one.
17394         (Same_Formal_Type): New predicate, used when matching signatures of
17395         overriding synchronized operations, to handle the case when a formal
17396         has a type that is a generic actual.
17397         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
17398         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
17399         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
17400         syntactic ambiguities involving indexing of function calls that return
17401         arrays.
17402         (Abstract_Interface_List): New subprogram that returns the list of
17403         abstract interfaces associated with a concurrent type or a
17404         concurrent record type.
17405         (Interface_Present_In_Parent): New subprogram used to check if a
17406         given type or some of its parents implement a given interface.
17407         (Collect_Abstract_Interfaces): Add support for concurrent types
17408         with interface types.
17409         (Has_Abstract_Interfaces): Add support for concurrent types with
17410         interface types.
17411         (Is_Parent): New subprogram that determines whether E1 is a parent
17412         of E2. For a concurrent type its parent is the first element of its
17413         list of interface types; for other types this function provides the
17414         same result than Is_Ancestor.
17415         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
17416         (Collect_Synchronized_Interfaces): Removed because the subprogram
17417         Collect_Abstract_Interfaces provides this functionality.
17418         (Collect_Abstract_Interfaces): Minor update to give support to
17419         concurrent types and thus avoid undesired code duplication.
17420         (Get_Subprogram_Entity): Handle entry calls.
17421         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
17422         entry calls.
17423         (Enter_Name): Do not give -gnatwh hiding warning for record component
17424         entities, they never result in hiding.
17425
17426 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
17427             Robert Dewar  <dewar@adacore.com>
17428
17429         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
17430         to chain nested components that are allocators for access discriminants
17431         of the enclosing object.
17432         Add N_Push and N_Pop nodes
17433         New field Exception_Label added
17434         (Local_Raise_Statements): New field in N_Exception_Handler_Node
17435         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
17436         (Is_Coextension): New flag for allocators, to mark allocators that
17437         correspond to access discriminants of dynamically allocated objects.
17438         (N_Block_Statement): Document the fact that the corresponding entity
17439         can be an E_Return_Statement.
17440         (Is_Coextension): New flag for allocators.
17441         Remove all code for DSP option
17442
17443         * sprint.ads, sprint.adb: Display basic information for class_wide
17444         subtypes. Add handling of N_Push and N_Pop nodes
17445
17446 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
17447
17448         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
17449         before propagating exception.
17450
17451 2007-04-06  Olivier Hainque  <hainque@adacore.com>
17452
17453         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
17454         an address always within the call instruction from a return address.
17455
17456 2007-04-06  Olivier Hainque  <hainque@adacore.com>
17457             Eric Botcazou  <botcazou@adacore.com>
17458
17459         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
17460         expression with a COMPOUND_EXPR including the call instead of emitting
17461         the call directly here.
17462         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
17463         high bound is constant and the slice is empty.  Tidy.
17464         (tree_transform, case N_Op_Not): Handle properly the case where the
17465         operation applies to a private type whose full view is a modular type.
17466         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
17467         Address_Clause, use the associated Expression as the GNAT tree
17468         representing the choice value to ensure the corresponding GCC tree is
17469         of the proper kind.
17470         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
17471         instead of just the operands, as the base GCC stabilize_reference does.
17472         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
17473         requested; otherwise fail.
17474         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
17475
17476 2007-04-06  Thomas Quinot  <quinot@adacore.com>
17477
17478         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
17479         implementation of UI_Div.
17480         (UI_Div): Reimplement as a call to UI_Div_Rem.
17481         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
17482         remainder, avoiding the cost of a multiplication and a subtraction.
17483         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
17484         provides both quotient and remainder in a single computation.
17485         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
17486         functions for uint.
17487         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
17488         is undefined if the given n is not inversible.
17489
17490 2007-04-06  Olivier Hainque  <hainque@adacore.com>
17491
17492         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
17493         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
17494         opcodes.
17495
17496 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
17497             Olivier Hainque  <hainque@adacore.com>
17498
17499         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
17500         when updating the contents of the old pointer to an unconstrained array.
17501         (end_subprog_body): Set error_gnat_node to Empty.
17502         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
17503         (unchecked_convert): For subtype to base type conversions, require that
17504         the source be a subtype if it is an integer type.
17505         (builtin_decls): New global, vector of available builtin functions.
17506         (gnat_pushdecl): Add global builtin function declaration nodes to the
17507         builtin_decls list.
17508         (gnat_install_builtins): Adjust comments.
17509         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
17510         calling gnat_pushdecl, so that it knows when it handed a builtin
17511         function declaration node.
17512         (builtin_decl_for): Search the builtin_decls list.
17513
17514 2007-04-06  Eric Botcazou  <botcazou@adacore.com>
17515
17516         * s-stchop-vxworks.adb:
17517         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
17518
17519 2007-04-06  Robert Dewar  <dewar@adacore.com>
17520             Arnaud Charlet  <charlet@adacore.com>
17521
17522         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
17523
17524         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
17525         of files
17526         Add mention of -Sev (set initialize_scalars option from environment
17527         variable at run time) in gnatbind usage message.
17528
17529         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
17530
17531         * fname-uf.ads: Minor comment fix
17532
17533         * osint.ads: Change pragma Elaborate to Elaborate_All
17534
17535         * par-load.adb: Add documentation.
17536
17537         * sem_cat.ads, sem_cat.adb: Minor code reorganization
17538
17539         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
17540
17541         * s-secsta.ads: Extra comments
17542
17543         * s-soflin.ads: Minor comment fixes
17544
17545         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
17546
17547         * s-wchcon.ads: Minor comment addition
17548
17549         * treepr.adb: Minor change in message
17550         (Print_Name,Print_Node): Make these debug printouts more robust: print
17551         "no such..." instead of crashing on bad input.
17552
17553 2007-03-30  Rafael Ávila de Espíndola  <espindola@google.com>
17554
17555         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
17556         instead of gnat_signed_or_unsigned_type.
17557         * utils.c (gnat_signed_or_unsigned_type): Remove.
17558         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
17559         * gigi.h (gnat_signed_or_unsigned_type): Remove
17560
17561 2007-03-09  Roger Sayle  <roger@eyesopen.com>
17562
17563         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
17564         fold with the result of buildN.
17565         * decl.c (gnat_to_gnu_entity): Likewise.
17566         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
17567         * utils.c (finish_record_type, merge_sizes, max_size, convert):
17568         Likewise.
17569         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
17570         nonbinary_modular_operation, build_binary_op, build_unary_op,
17571         build_cond_expr): Likewise.
17572
17573         * utils.c (convert): Use fold_build1 when casting values to void.
17574         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
17575         fold_convert instead of convert when appropriate.
17576
17577 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
17578
17579         * Make-lang.in: Add install-pdf target as copied from
17580         automake v1.10 rules.
17581
17582 2007-02-28  Andreas Schwab  <schwab@suse.de>
17583
17584         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
17585         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
17586         (doc/gnat-style.info): Likewise.
17587
17588 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
17589
17590         * gnat-style.texi: Standardize title page.
17591         * gnat_rm.texi: Likewise.
17592         * gnat_ugn.texi: Likewise.
17593
17594 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
17595
17596         * decl.c (annotate_value): Adjust for refactoring of tree_map
17597         hierarchy.
17598
17599 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
17600
17601         * decl.c (annotate_value): Adjust for refactoring of tree_map
17602         hierarchy.
17603
17604 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
17605
17606         PR ada/18819
17607         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
17608         untagged derived type, add hidden components to keep discriminant
17609         layout consistent, when a given discriminant of the derived type
17610         constraints several discriminants of the parent type.
17611
17612 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
17613             Sandra Loosemore  <sandra@codesourcery.com>
17614
17615         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
17616         build the call expression.
17617         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
17618         * utils.c (max_size) <tcc_exceptional>: Delete.
17619         <tcc_vl_exp>: New case.
17620         <tcc_expression>: Delete CALL_EXPR subcase.
17621         (build_global_cdtor): Use build_call_nary instead of build3.
17622         * utils2.c (build_call_1_expr): Likewise.
17623         (build_call_2_expr): Likewise.
17624         (build_call_0_expr): Likewise.
17625         (build_call_alloc_dealloc): Likewise.
17626
17627 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
17628
17629         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
17630         get_action_description_for): Replace _Unwind_Word with _uleb128_t
17631         and _Unwind_SWord with _sleb128_t.
17632
17633 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
17634
17635         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
17636         * decl.c: Include gt-ada-decl.h.
17637         (annotate_value_cache): New.
17638         (annotate_value): Use it instead of TREE_COMPLEXITY.
17639
17640 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
17641
17642         * misc.c, utils2.c: Fix comment typos.
17643
17644 2007-01-24  Roger Sayle  <roger@eyesopen.com>
17645
17646         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
17647         TREE_CONSTANT_OVERFLOW.
17648         (allocatable_size_p, annotate_value): Likewise.
17649         * trans.c (gnat_to_gnu): Likewise.
17650         * utils.c (unchecked_convert): Likewise.
17651         * utils2.c (build_simple_component_ref): Likewise.
17652
17653 2007-01-23  Richard Guenther  <rguenther@suse.de>
17654
17655         PR bootstrap/30541
17656         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
17657         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
17658         (gnatboot3): Likewise.
17659         (GNATBIND): Do not define.
17660         * Makefile.in (GNATBIND): Do not define.
17661
17662 2007-01-08  Richard Guenther  <rguenther@suse.de>
17663
17664         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
17665         * trans.c (gnat_to_gnu): Likewise.
17666
17667 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
17668
17669         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
17670         * adaint.c: Likewise.
17671
17672 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
17673
17674         Merge from gimple-tuples-branch:
17675         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
17676
17677         * ada-tree.h (lang_tree_node): Handle gimple tuples.
17678         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
17679         GIMPLE_MODIFY_STMT.
17680
17681 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
17682
17683         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
17684         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
17685         Fix typos.
17686
17687 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
17688
17689         PR ada/27936
17690         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
17691         if the initializer takes into account the padding.
17692
17693 2006-11-11  Richard Guenther  <rguenther@suse.de>
17694
17695         * trans.c (maybe_stabilize_reference): Remove handling of
17696         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
17697
17698 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
17699
17700         PR ada/29707
17701         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
17702         (To_Target_Priority): New function.
17703
17704 2006-10-31  Robert Dewar  <dewar@adacore.com>
17705
17706         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
17707         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
17708         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
17709         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
17710         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
17711         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
17712         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
17713         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
17714         a-szbzha.adb: Minor reformatting. Fix header.
17715
17716         * a-numaux-x86.adb: Add parentheses for use of unary minus
17717         * a-ngcefu.adb: Supply missing parentheses for unary minus
17718         * a-ngcoty.adb: Add parens for use of unary minus
17719         * a-ngelfu.adb: Add missing parens for unary minus
17720         * a-tifiio.adb: Add parentheses for uses of unary minus
17721
17722 2006-10-31  Robert Dewar  <dewar@adacore.com>
17723             Bob Duff  <duff@adacore.com>
17724             Ed Schonberg  <schonberg@adacore.com>
17725
17726         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
17727         with multiplying operator.
17728         (Expected_Type_Is_Any_Real): New function to determine from the Parent
17729         pointer whether the context expects "any real type".
17730         (Resolve_Arithmetic_Op): Do not give an error on calls to the
17731         universal_fixed "*" and "/" operators when they are used in a context
17732         that expects any real type. Also set the type of the node to
17733         Universal_Real in this case, because downstream processing requires it
17734         (mainly static expression evaluation).
17735         Reword some continuation messages
17736         Add some \\ sequences to continuation messages
17737         (Resolve_Call): Refine infinite recursion case. The test has been
17738         sharpened to eliminate some false positives.
17739         Check for Current_Task usage now includes entry barrier, and is now a
17740         warning, not an error.
17741         (Resolve): If the call is ambiguous, indicate whether an interpretation
17742         is an inherited operation.
17743         (Check_Aggr): When resolving aggregates, skip associations with a box,
17744         which are priori correct, and will be replaced by an actual default
17745         expression in the course of expansion.
17746         (Resolve_Type_Conversion): Add missing support for conversion from
17747         a class-wide interface to a tagged type. Minor code cleanup.
17748         (Valid_Tagged_Converion): Add support for abstact interface type
17749         conversions.
17750         (Resolve_Selected_Component): Call Generate_Reference here rather than
17751         during analysis, and use May_Be_Lvalue to distinguish read/write.
17752         (Valid_Array_Conversion): New procedure, abstracted from
17753         Valid_Conversion, to incorporate accessibility checks for arrays of
17754         anonymous access types.
17755         (Valid_Conversion): For a conversion to a numeric type occurring in an
17756         instance or inlined body, no need to check that the operand type is
17757         numeric, since this has been checked during analysis of the template.
17758         Remove legacy test for scope name Unchecked_Conversion.
17759
17760         * sem_res.ads: Minor reformatting
17761
17762         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
17763         (PE_Current_Task_In_Entry_Body): New exception code
17764         (SE_Restriction_Violation): Removed, not used
17765
17766         * a-except.ads:  Update comments.
17767
17768         * types.h, types.ads: Add definition for Validity_Check
17769         (PE_Current_Task_In_Entry_Body): New exception code
17770         (SE_Restriction_Violation): Removed, not used
17771
17772 2006-10-31  Thomas Quinot  <quinot@adacore.com>
17773
17774         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
17775         error status.
17776
17777 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
17778             Jose Ruiz  <ruiz@adacore.com>
17779
17780         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
17781         part of Ada.Calendar: all subprogram raise Unimplemented.
17782         (Split_W_Offset): Temp function body, raising Unimplemented
17783
17784         * a-calend.ads, a-calend-vms.ads:
17785         Add imported variable Invalid_TZ_Offset used to designate targets unable
17786         to support time zones.
17787         (Unimplemented): Temporary function raised by the body of new
17788         subprograms below.
17789         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
17790         unit provides handling of leap seconds and is used by the new Ada 2005
17791         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
17792         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
17793         version returns an extra value which is the offset to UTC.
17794
17795         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
17796         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
17797         (Split_W_Offset): New function body.
17798         (Time_Of): When a date is close to UNIX epoch, compute the time for
17799         that date plus one day (that amount is later substracted after
17800         executing mktime) so there are no problems with time zone adjustments.
17801
17802         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
17803
17804         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
17805         a-catizo.ads, a-catizo.adb: New files.
17806
17807         * impunit.adb: Add new Ada 2005 entries
17808
17809         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
17810         Rename all occurences of "__gnat_localtime_r" to
17811         "__gnat_localtime_tzoff".
17812         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
17813         zone data and calculate the GMT offset.
17814         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
17815         Use the field "tm_gmtoff" to extract the GMT offset.
17816         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
17817         the external variable "timezone" to calculate the GMT offset.
17818
17819 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
17820             Jose Ruiz  <ruiz@adacore.com>
17821
17822         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
17823         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
17824         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
17825         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
17826         System.Any_Priority to a POSIX priority on the target.
17827
17828         * system-linux-ia64.ads:
17829         Extend range of Priority types on Linux to use the whole range made
17830         available by the system.
17831
17832         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
17833         function maps from System.Any_Priority to a POSIX priority on the
17834         target.
17835         (PTHREAD_PRIO_PROTECT): Set real value.
17836         (PTHREAD_PRIO_INHERIT): Now a function.
17837         (SIGCPUFAIL): New signal.
17838         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
17839         are documented as reserved by the OS.
17840
17841         * system-aix.ads: Use the full range of priorities provided by the
17842         system on AIX.
17843
17844         * s-taprop-posix.adb: Call new function To_Target_Priority.
17845         (Set_Priority): Take into account Task_Dispatching_Policy and
17846         Priority_Specific_Dispatching pragmas when determining if Round Robin
17847         must be used for scheduling the task.
17848
17849         * system-linux-x86_64.ads, system-linux-x86.ads,
17850         system-linux-ppc.ads: Extend range of Priority types on Linux to use
17851         the whole range made available by the system.
17852
17853         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
17854         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
17855         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
17856         when deallocating the TCB in order to avoid potential references to
17857         deallocated data.
17858         (Set_Priority): Take into account Task_Dispatching_Policy and
17859         Priority_Specific_Dispatching pragmas when determining if Round Robin
17860         or FIFO within priorities must be used for scheduling the task.
17861
17862         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
17863         the Thread field (to be used internally by the run-time system) and the
17864         kernel-level task id in the LWP field (to be used by the debugger).
17865         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
17866         instance, and propagate the current task options to the spawned task.
17867         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
17868         (Initialize): Set Round Robin dispatching when the corresponding pragma
17869         is in effect.
17870
17871 2006-10-31  Robert Dewar  <dewar@adacore.com>
17872
17873         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
17874         system-linux-hppa.ads, system-hpux-ia64.ads,
17875         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
17876         system-vxworks-sparcv9.ads, system-solaris-x86.ads,
17877         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
17878         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
17879         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
17880         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
17881         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
17882         Default_Bit_Order) to kill constant condition warnings for references
17883         to this switch.
17884
17885 2006-10-31  Vincent Celier  <celier@adacore.com>
17886             Eric Botcazou  <ebotcazou@adacore.com>
17887
17888         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
17889         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
17890         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
17891         Ext_To, when building the library file name
17892
17893         * mlib-tgt-vxworks.adb: ditto.
17894         (Get_Target_Suffix): Add support for x86 targets.
17895
17896         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
17897
17898         * mlib-tgt-darwin.adb:
17899         Use Append_To, instead of Ext_To, when building the library file name
17900         (Flat_Namespace): New global variable.
17901         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
17902         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
17903         (Link_Shared_Libgcc): Delete.
17904         (Build_Dynamic_Library): Adjust for above changes.
17905         Use Opt package.
17906         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
17907
17908 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
17909
17910         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
17911         (Initialize): Add type conversions required by above change.
17912
17913 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
17914
17915         * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
17916         (getpid): New body for this function that uses the underlying taskIdSelf
17917         function for VxWorks 5 and VxWorks 6 in kernel mode.
17918         (unsigned_int): New type, modular to allow logical bit operations.
17919         (taskOptionsGet): New imported function.
17920
17921         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
17922         field to be compliant with the type used by the corresponding operating
17923         system primitive.
17924
17925 2006-10-31  Pascal Obry  <obry@adacore.com>
17926             Eric Botcazou  <ebotcazou@adacore.com>
17927             Vincent Celier  <celier@adacore.com>
17928
17929         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
17930         ASCII version of the registry API. This is needed as the GNAT runtime
17931         is now UNICODE by default.
17932         Include version.h.
17933         (get_gcc_version): Do not hardcode the return value.
17934         (__gnat_file_time_name): On Windows properly set the default returned
17935         value to -1 which corresponds to Invalid_Time.
17936         (__gnat_fopen): New routine. A simple wrapper on all plateforms
17937          except on Windows where it does conversion for unicode support.
17938         (__gnat_freopen): Idem.
17939         (__gnat_locate_exec_on_path): If environment variable PATH does not
17940         exist, return a NULL pointer
17941
17942         * adaint.h: (__gnat_fopen): Declare.
17943         (__gnat_freopen): Likewise.
17944
17945         * mingw32.h (_tfreopen): Define this macro here for older MingW
17946         version.
17947         Activate the unicode support on platforms using a MingW runtime
17948         version 3.9 or newer.
17949
17950         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
17951         This is needed for proper unicode support on Windows.
17952         (freopen): Idem.
17953
17954 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
17955             Nicolas Setton  <setton@adacore.com>
17956             Olivier Hainque  <hainque@adacore.com>
17957             Gary Dismukes  <dismukes@adacore.com>
17958
17959         * gigi.h: (tree_code_for_record_type): Declare.
17960         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
17961         (get_global_renaming_pointers): Rename to
17962         invalidate_global_renaming_pointers.
17963         (static_ctors): Delete.
17964         (static_dtors): Likewise.
17965         (gnat_write_global_declarations): Declare.
17966         (create_var_decl): Adjust descriptive comment to indicate that the
17967         subprogram may return a CONST_DECL node.
17968         (create_true_var_decl): Declare new function, similar to
17969         create_var_decl but forcing the creation of a VAR_DECL node.
17970         (get_global_renaming_pointers): Declare.
17971         (add_global_renaming_pointer): Likewise.
17972
17973         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
17974
17975         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
17976         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
17977         processing.
17978         (gnat_to_gnu_entity): Remove From_With_Type from computation for
17979         imported_p.
17980         <E_Access_Type>: Use the Non_Limited_View as the full view of the
17981         designated type if the pointer comes from a limited_with clause.  Make
17982         incomplete designated type if it is in the main unit and has a freeze
17983         node.
17984         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
17985         Underlying_Full_View similarly.  Return earlier if the full view already
17986         has an associated tree.
17987         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
17988         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
17989         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
17990         reference type built for objects with an address clause.
17991         Use create_true_var_decl with const_flag set for
17992         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
17993         TREE_READONLY set.
17994         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
17995         for Character and Wide_Character types. This info is read by the
17996         dwarf-2 writer, and is needed to be able to use the command "ptype
17997         character" in the debugger.
17998         (gnat_to_gnu_entity): When generating a type representing
17999         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
18000         so that debug writers can distinguish it from ordinary integers.
18001         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
18002         addition to TREE_READONLY to assert the constantness of variables for
18003         elaboration purposes.
18004         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
18005         parameters to call new Einfo function First_Formal_With_Extras.
18006         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
18007         protected type with its corresponding discriminant, to obtain a usable
18008         declaration
18009         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
18010         for a multiple elaboration of the "equivalent" type.
18011         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
18012         into record_global_renaming_pointer.
18013         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
18014         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
18015         <E_Array_Subtype>: Likewise.
18016         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
18017         incomplete subtypes and incomplete subtypes of incomplete types visible
18018         through a limited with clause.
18019         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
18020         the base index type for the maximum size of the array only if they are
18021         constant.
18022         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
18023         expression into a SAVE_EXPR if stabilization failed.
18024
18025         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
18026         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
18027         by lower level compilation passes.
18028         (gnat_genericize): New function, lowering a function body to GENERIC.
18029         Turn the type of RESULT_DECL into a real reference type if the decl
18030         has been marked DECL_BY_REFERENCE, and adjust references to the latter
18031         accordingly.
18032         (gnat_genericize_r): New function. Tree walking callback for
18033         gnat_genericize.
18034         (convert_from_reference, is_byref_result): New functions. Helpers for
18035         gnat_genericize_r.
18036         (create_type_decl): Call gnat_pushdecl before calling
18037         rest_of_decl_compilation, to make sure that field TYPE_NAME of
18038         type_decl is properly set before calling the debug information writers.
18039         (write_record_type_debug_info): The heuristics which compute the
18040         alignment of a field in a variant record might not be accurate. Add a
18041         safety test to make sure no alignment is set to a smaller value than
18042         the alignment of the field type.
18043         (make_dummy_type): Use the Non_Limited_View as the underlying type if
18044         the type comes from a limited_with clause. Do not loop on the full view.
18045         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
18046         (dummy_node_table): New global variable, moved from decl.c.
18047         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
18048         (save_gnu_tree): Use above macros.
18049         (get_gnu_tree): Likewise.
18050         (present_gnu_tree): Likewise.
18051         (init_dummy_type): New function, moved from decl.c. Use above macros.
18052         (make_dummy_type): Likewise.
18053         (tree_code_for_record_type): New function extracted from make_dummy_type
18054         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
18055         (static_ctors): Change it to a vector, make static.
18056         (static_dtors): Likewise.
18057         (end_subprog_body): Adjust for above change.
18058         (build_global_cdtor): Moved from trans.c.
18059         (gnat_write_global_declarations): Emit global constructor and
18060         destructor, and call cgraph_optimize before emitting debug info for
18061         global declarations.
18062         (global_decls): New global variable.
18063         (gnat_pushdecl): Store the global declarations in global_decls, for
18064         later use.
18065         (gnat_write_global_declarations): Emit debug information for global
18066          declarations.
18067         (create_var_decl_1): Former create_var_decl, with an extra argument to
18068          state whether the creation of a CONST_DECL is allowed.
18069         (create_var_decl): Behavior unchanged. Now a wrapper around
18070         create_var_decl_1 allowing CONST_DECL creation.
18071         (create_true_var_decl): New function, similar to create_var_decl but
18072         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
18073         (create_field_decl): Do not always mark the field as addressable
18074         if its type is an aggregate.
18075         (global_renaming_pointers): New static variable.
18076         (add_global_renaming_pointer): New function.
18077         (get_global_renaming_pointers): Likewise.
18078
18079         * misc.c (gnat_dwarf_name): New function.
18080         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
18081         (gnat_post_options): Add comment about structural alias analysis.
18082         (gnat_parse_file): Do not call cgraph_optimize here.
18083         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
18084
18085         * trans.c (process_freeze_entity): Don't abort if we already have a
18086         non dummy GCC tree for a Concurrent_Record_Type, as it might
18087         legitimately have been elaborated while processing the associated
18088         Concurrent_Type prior to this explicit freeze node.
18089         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
18090         exception handler volatile if it is of variable size.
18091         (process_type): Remove bypass for types coming from a limited_with
18092         clause.
18093         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
18094         actual, convert the corresponding gnu_actual to the real destination
18095         type when necessary.
18096         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
18097         originally TREE_READONLY but whose elaboration cannot be performed
18098         statically.
18099         Part of fix for F504-021.
18100         (tree_transform, subprogram cases): Change loops on formal parameters to
18101         call new Einfo function First_Formal_With_Extras.
18102         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
18103         stemming from type conversion for the lhs.
18104         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
18105         number of bits per unit for components of records.
18106         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
18107         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
18108         with At_End_Proc after the SJLJ EH cleanup.
18109         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
18110         compilation unit.
18111         (elaborate_all_entities): Do not retest type_annotate_only.
18112         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
18113         result type of an abstract subprogram, which may be an itype associated
18114         with an anonymous access result (related to AI-318-02).
18115         (build_global_cdtor): Move to utils.c.
18116         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
18117         this choice is not a null tree nor an integer constant.
18118         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
18119         on the body of elaboration routines instead of mark_unvisited.
18120         (add_stmt): Do not mark the tree.
18121         (add_decl_expr): Tweak comment.
18122         (mark_unvisited): Delete.
18123         (unshare_save_expr): New static function.
18124         (call_to_gnu): Issue an error when making a temporary around a
18125         procedure call because of non-addressable actual parameter if the
18126         type of the formal is by_reference.
18127         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
18128         after building the elaboration routine.
18129
18130 2006-10-31  Bob Duff  <duff@adacore.com>
18131
18132         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
18133         as finalization-started, so we can raise Program_Error on 'new'.
18134
18135         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
18136         collection has already started.
18137
18138         * s-finimp.ads (Collection_Finalization_Started): Added new special
18139         flag value for indicating that a collection's finalization has started.
18140
18141         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
18142         create a task whose master has already waited for dependent tasks.
18143
18144 2006-10-31  Robert Dewar  <dewar@adacore.com>
18145
18146         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
18147
18148         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
18149         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
18150         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
18151         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
18152         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
18153         a-except-2005.ads: Add pragma Preelaborable_Warning
18154
18155 2006-10-31  Robert Dewar  <dewar@adacore.com>
18156             Jose Ruiz  <ruiz@adacore.com>
18157
18158         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
18159
18160         * ali.adb (Get_Name): Properly handle scanning of wide character names
18161         encoded with brackets notation.
18162         (Known_ALI_Lines): Add S lines to this list.
18163         (Scan_ALI): Acquire S (priority specific dispatching) lines.
18164         New flag Elaborate_All_Desirable in unit table
18165
18166         * ali.ads (Priority_Specific_Dispatching): Add this range of
18167         identifiers to be used for Priority_Specific_Dispatching table entries.
18168         (ALIs_Record): Add First_Specific_Dispatching and
18169         Last_Specific_Dispatching that point to the first and last entries
18170         respectively in the priority specific dispatching table for this unit.
18171         (Specific_Dispatching): Add this table for storing each S (priority
18172         specific dispatching) line encountered in the input ALI file.
18173         New flag Elaborate_All_Desirable in unit table
18174
18175         * bcheck.adb: (Check_Configuration_Consistency): Add call to
18176         Check_Consistent_Dispatching_Policy.
18177         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
18178         verifying that the use of Priority_Specific_Dispatching,
18179         Task_Dispatching_Policy, and Locking_Policy is consistent across the
18180         partition.
18181
18182         * bindgen.adb: (Public_Version_Warning): function removed.
18183         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
18184         required information from ALI files in order to initialize the table
18185         containing the specific dispatching policy.
18186         (Gen_Adainit_Ada): Generate the variables required for priority specific
18187         dispatching entries (__gl_priority_specific_dispatching and
18188         __gl_num_specific_dispatching).
18189         (Gen_Adainit_C): Generate the variables required for priority specific
18190         dispatching entries (__gl_priority_specific_dispatching and
18191         __gl_num_specific_dispatching).
18192         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
18193         pragma entries.
18194         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
18195         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
18196         (Tab_To): Removed.
18197         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
18198         a call to gnat_set_globals.
18199         Generate a string containing settings from
18200         Priority_Specific_Dispatching pragma entries.
18201         (Gen_Object_Files_Options): Do not include the runtime libraries when
18202         pragma No_Run_Time is specified.
18203
18204         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
18205         consistency with s-intman-posix.adb.
18206         (__gnat_error_handler, case FreeBSD): Account for the fact that the
18207         handler is installed with SA_SIGINFO.
18208         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
18209         FreeBSD ZCX support, copied from Linux version.
18210         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
18211         sigfillset, and sigemptyset so the routines defined by MaRTE.
18212         (__gl_priority_specific_dispatching): Add this variable that stores the
18213         string containing priority specific dispatching policies in the
18214         partition.
18215         (__gl_num_specific_dispatching): Add this variable that indicates the
18216         highest priority for which a priority specific dispatching pragma
18217         applies.
18218         (__gnat_get_specific_dispatching): Add this routine that returns the
18219         priority specific dispatching policy, as set by a
18220         Priority_Specific_Dispatching pragma appearing anywhere in the current
18221         partition. The input argument is the priority number, and the result
18222         is the upper case first character of the policy name.
18223         (__gnat_set_globals): Now a dummy function.
18224         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
18225         mechargs instead of sigargs, as the latter can be retrieved from the
18226         former and sigargs is not what we want on ia64.
18227         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
18228         mechargs argument.
18229         (__gnat_adjust_context_for_raise, ia64-vms): New function.
18230         (tasking_error): Remove unused symbol.
18231         (_abort_signal): Move this symbol to the IRIX specific part since this
18232         is the only target that uses this definition.
18233         (Check_Abort_Status): Move this symbol to the IRIX specific part since
18234         this is the only target that uses this definition.
18235         (Lock_Task): Remove unused symbol.
18236         (Unlock_Task): Remove unused symbol.
18237
18238         * lib-writ.adb (Write_ALI): Output new S lines for
18239         Priority_Specific_Dispatching pragmas.
18240         Implement new flag BD for elaborate body desirable
18241
18242         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
18243         (Specific_Dispatching): Add this table for storing the entries
18244         corresponding to Priority_Specific_Dispatching pragmas.
18245         Document new BD flag for elaborate body desirable
18246
18247         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
18248         of known pragmas.
18249
18250 2006-10-31  Javier Miranda  <miranda@adacore.com>
18251
18252         * a-tags.ads, a-tags.adb:
18253         (Predefined_DT): New function that improves readability of the code.
18254         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
18255         Inherit_DT): Use the new function Predefined_DT to improve code
18256         readability.
18257         (Register_Interface_Tag): Update assertion.
18258         (Set_Interface_Table): Update assertion.
18259         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
18260         determining progenitor interfaces in Tags.
18261         (Inherit_CPP_DT): New subprogram.
18262
18263         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
18264         analysis of the thunk code.
18265         (Expand_Interface_Conversion): Handle run-time conversion of
18266         access to class wide types.
18267         (Expand_Dispatching_Call): When generating the profile for the
18268         subprogram itype for a dispatching operation, properly terminate the
18269         formal parameters chaind list (set the Next_Entity of the last formal
18270         to Empty).
18271         (Collect_All_Interfaces): Removed. This routine has been moved to
18272         sem_util and renamed as Collect_All_Abstract_Interfaces.
18273         (Set_All_DT_Position): Hidden entities associated with abstract
18274         interface primitives are not taken into account in the check for
18275         3.9.3(10); this check is done with the aliased entity.
18276         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
18277         interfacing with CPP by default.
18278         (Expand_Interface_Conversion): Add missing support for static conversion
18279         from an interface to a tagged type.
18280         (Collect_All_Interfaces): Add new out formal containing the list of
18281         abstract interface types to cleanup the subprogram Make_DT.
18282         (Make_DT): Update the code to generate the table of interfaces in case
18283         of abstract interface types.
18284         (Is_Predefined_Dispatching_Alias): New function that returns true if
18285         a primitive is not a predefined dispatching primitive but it is an
18286         alias of a predefined dispatching primitive.
18287         (Make_DT): If the ancestor of the type is a CPP_Class and we are
18288         compiling under full ABI compatibility mode we avoid the generation of
18289         calls to run-time services that fill the dispatch tables because under
18290         this mode we currently inherit the dispatch tables in the IP subprogram.
18291         (Write_DT): Emit an "is null" indication for a null procedure primitive.
18292         (Expand_Interface_Conversion): Use an address as the type of the formal
18293         of the internally built function that handles the case in which the
18294         target type is an access type.
18295
18296 2006-10-31  Robert Dewar  <dewar@adacore.com>
18297
18298         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
18299
18300 2006-10-31  Robert Dewar  <dewar@adacore.com>
18301
18302         * bindusg.ads, bindusg.adb:
18303         Change to package and rename procedure as Display, which
18304         now ensures that it only outputs usage information once.
18305
18306 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
18307
18308         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
18309         using RTPs.
18310
18311         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
18312         when using RTPs.
18313
18314 2006-10-31  Robert Dewar  <dewar@adacore.com>
18315             Ed Schonberg  <schonberg@adacore.com>
18316
18317         * treepr.adb: Use new subtype N_Membership_Test
18318
18319         * checks.ads, checks.adb: Add definition for Validity_Check
18320         (Range_Or_Validity_Checks_Suppressed): New function
18321         (Ensure_Valid): Test Validity_Check suppressed
18322         (Insert_Valid_Check): Test Validity_Check suppressed
18323         (Insert_Valid_Check): Preserve Do_Range_Check flag
18324         (Validity_Check_Range): New procedure
18325         (Expr_Known_Valid): Result of membership test is always valid
18326         (Selected_Range_Checks): Range checks cannot be applied to discriminants
18327         by themselves. Disabling those checks must also be done for task types,
18328         where discriminants may be used for the bounds of entry families.
18329         (Apply_Address_Clause_Check): Remove side-effects if address expression
18330         is non-static and is not the name of a declared constant.
18331         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
18332         Code cleanup and new error messages.
18333         (Enable_Range_Check): Test for some cases of suppressed checks
18334         (Generate_Index_Checks): Suppress index checks if index checks are
18335         suppressed for array object or array type.
18336         (Apply_Selected_Length_Checks): Give warning for compile-time detected
18337         length check failure, even if checks are off.
18338         (Ensure_Valid): Do not generate a check on an indexed component whose
18339         prefix is a packed boolean array.
18340         * checks.adb: (Alignment_Checks_Suppressed): New function
18341         (Apply_Address_Clause_Check): New procedure, this is a completely
18342         rewritten replacement for Apply_Alignment_Check
18343         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
18344         we request a discriminal value only in case of discriminants.
18345         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
18346         assignments where the target subtype is unconstrained and the target
18347         object is a parameter or dereference (other aliased cases are known
18348         to be unconstrained).
18349
18350 2006-10-31  Robert Dewar  <dewar@adacore.com>
18351
18352         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
18353         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
18354         vms_conv.adb: Fix bad table increment values (much too small)
18355
18356         * table.adb (Realloc): Make sure we get at least some new elements
18357         Defends against silly small values for table increment
18358
18359 2006-10-31  Robert Dewar  <dewar@adacore.com>
18360             Ed Schonberg  <schonberg@adacore.com>
18361             Bob Duff  <duff@adacore.com>
18362
18363         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
18364         entities. Move other fields around to make this possible
18365         (Is_Derived_Type): Add missing call to Is_Type.
18366         (Extra_Formals): New function for subprograms, entries, subprogram
18367         types.
18368         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
18369         (First_Formal_With_Extras): New function for subprogs, entries, subp
18370         types.
18371         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
18372         Add node information for E_Return_Statement.
18373         (Elaborate_Body_Desirable): New flag
18374         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
18375         to be Is_Inherently_Limited_Type, because return-by-reference has
18376         no meaning in Ada 2005.
18377         (E_Return_Statement): New entity kind.
18378         (Return_Applies_To): Field of E_Return_Statement.
18379         (Is_Return_Object): New flag in object entities.
18380         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
18381         (Must_Have_Preelab_Init): New flag
18382         (Known_To_Have_Preelab_Init): New flag
18383         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
18384         (Is_Visible_Formal): New flag on entities in formal packages.
18385         (Low_Bound_Known): New flag
18386         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
18387         Incomplete_Kind.
18388         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
18389         output when Id is an incomplete subtype.
18390
18391 2006-10-31  Robert Dewar  <dewar@adacore.com>
18392
18393         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
18394         Avoid abbreviation Creat
18395         (Finalize): List all sources in extended mail source if -gnatl
18396         switch is active.
18397         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
18398         (Finalize): Implement new -gnatl=xxx switch to output listing to file
18399         (Set_Specific_Warning_On): New procedure
18400         (Set_Specific_Warning_Off): New procedure
18401         Add implementation of new insertion \\
18402         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
18403         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
18404         types.
18405         (Error_Msg_Internal): Make sure that we set Last_Killed to
18406         True when a message from another package is suppressed.
18407         Implement insertion character ~ (insert string)
18408         (First_Node): Minor adjustments to get better placement.
18409
18410         * frontend.adb:
18411         Implement new -gnatl=xxx switch to output listing to file
18412
18413         * gnat1drv.adb:
18414         Implement new -gnatl=xxx switch to output listing to file
18415
18416         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
18417         (Commands_To_Stdout): New flag
18418         Implement new -gnatl=xxx switch to output listing to file
18419         New switch Dump_Source_Text
18420         (Warn_On_Deleted_Code): New warning flag for -gnatwt
18421         Define Error_Msg_Line_Length
18422         (Warn_On_Assumed_Low_Bound): New switch
18423
18424         * osint.ads, osint.adb
18425         (Normalize_Directory_Name): Fix bug.
18426         Implement new -gnatl=xxx switch to output listing to file
18427         (Concat): Removed, replaced by real concatenation
18428         Make use of concatenation now allowed in compiler
18429         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
18430         we find the 'lib' or 'bin' directory even when the tool has been
18431         invoked with a relative path.
18432         (Executable_Name): New function taking string parameters.
18433
18434         * osint-c.ads, osint-c.adb:
18435         Implement new -gnatl=xxx switch to output listing to file
18436
18437         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
18438
18439         * switch-c.adb:
18440         Implement new -gnatl=xxx switch to output listing to file
18441         Recognize new -gnatL switch
18442         (no longer keep in old warning about old style usage)
18443         Use concatenation to simplify code
18444         Recognize -gnatjnn switch
18445         (Scan_Front_End_Switches): Clean up handling of -gnatW
18446         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
18447
18448 2006-10-31  Robert Dewar  <dewar@adacore.com>
18449
18450         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
18451         (Set_Specific_Warning_Off): New procedure
18452         (Warning_Specifically_Suppressed): New function
18453         (Validate_Specific_Warnings): New procedure
18454         (Output_Msg_Text): Complete rewrite to support -gnatjnn
18455
18456         * err_vars.ads: Implement insertion character ~ (insert string)
18457
18458 2006-10-31  Bob Duff  <duff@adacore.com>
18459             Ed Schonberg  <schonberg@adacore.com>
18460
18461         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
18462         the parent part is a build-in-place function call, generate assignments.
18463         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
18464         are build-in-place function calls.
18465         (Replace_Self_Reference): New subsidiary of
18466         Make_OK_Assignment_Statement, to replace an access attribute that is a
18467         self-reference into an access to the appropriate component of the
18468         target object. Generalizes previous mechanism to handle self-references
18469         nested at any level.
18470         (Is_Self_Referential_Init): Remove, not needed.
18471         (Is_Self_Referential_Init): New predicate to simplify handling of self
18472         referential components in record aggregates.
18473         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
18474         check for presence of entity before checking for self-reference.
18475         (Has_Default_Init_Comps): Return True if a component association is a
18476         self-reference to the enclosing type, which can only come from a
18477         default initialization.
18478         (Make_OK_Assignment_Statement): If the expression is of the form
18479         Typ'Acc, where Acc is an access attribute, the expression comes from a
18480         default initialized self-referential component.
18481         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
18482         that has been derived from several abstract interfaces we must also
18483         initialize the tags of the secondary dispatch tables.
18484
18485 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18486             Thomas Quinot  <quinot@adacore.com>
18487             Javier Miranda  <miranda@adacore.com>
18488             Robert Dewar  <dewar@adacore.com>
18489
18490         * exp_attr.adb:
18491         (Expand_Access_To_Protected_Op): If the context indicates that an access
18492         to a local operation may be transfered outside of the object, create an
18493         access to the wrapper operation that must be used in an external call.
18494         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
18495         target, pass the Valid attribute applied to a floating-point prefix on
18496         to the back end without expansion.
18497         (Storage_Size): Use the new run-time function Storage_Size to retrieve
18498         the allocated storage when it is specified by a per-object expression.
18499         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
18500         Nothing to do here, the attribute has been rewritten during semantic
18501         analysis.
18502         (Expand_Attribute_Reference): Handle expansion of the new Priority
18503         attribute
18504         (Find_Fat_Info): Handle case of universal real
18505         (Expand_Access_To_Protected_Op): Fix use of access to protected
18506         subprogram from inside the body of a protected entry.
18507         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
18508         'Access and 'Unrestricted_Access, to transform the attribute reference
18509         into a fat pointer.
18510         (Is_Constrained_Aliased_View): New predicate to help determine whether a
18511         subcomponent's enclosing variable is aliased with a constrained subtype.
18512         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
18513         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
18514         an aliased prefix must be known to be constrained in order to use True
18515         for the attribute value, and now it's possible for some aliased views
18516         to be unconstrained.
18517
18518 2006-10-31  Robert Dewar  <dewar@adacore.com>
18519
18520         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
18521         (Expand_Entity_Reference): Correct error of not handling subprogram
18522         formals in current_value processing.
18523
18524 2006-10-31  Javier Miranda  <miranda@adacore.com>
18525             Robert Dewar  <dewar@adacore.com>
18526             Ed Schonberg  <schonberg@adacore.com>
18527             Gary Dismukes  <dismukes@adacore.com>
18528
18529         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
18530         register in the final list objects containing class-wide interfaces;
18531         otherwise we incorrectly register the tag of the interface in the final
18532         list.
18533         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
18534         generate the wrapper if the parent primitive is abstract. This is
18535         required to report the correct error message.
18536         (Expand_N_Subtype_Indication): Do validity checks on range
18537         (Clean_Task_Names): If an initialization procedure includes a call to
18538         initialize a task (sub)component, indicate that the procedure will use
18539         the secondary stack.
18540         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
18541         compatibility for interfacing with CPP by default.
18542         (Expand_N_Object_Declaration): Only build an Adjust call when the
18543         object's type is a nonlimited controlled type.
18544         * exp_ch3.adb: Add with and use of Exp_Ch6.
18545         (Expand_N_Object_Declaration): Check for object initialization that is a
18546         call to build-in-place function and apply Make_Build_In_Place_Call_In_
18547         Object_Declaration to the call.
18548         (Freeze_Type): When the designated type of an RACW was not frozen at the
18549         point where the RACW was declared, validate the primitive operations
18550         with respect to E.2.2(14) when it finally is frozen.
18551         (Build_Initialization_Call,Expand_Record_Controller): Rename
18552         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
18553         return-by-reference has no meaning in Ada 2005.
18554         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
18555         to register tag of the immediate ancestor interfaces in the
18556         run-time structure.
18557         (Init_Secondary_Tags): Moved to the specification to allow the
18558         initialization of extension aggregates with abstract interfaces.
18559         (Build_Master_Renaming): Make public, for use by function declarations
18560         whose return type is an anonymous access type.
18561         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
18562         Insert_List_Before_And_Analyze after the generation of the specs
18563         associated with null procedures.
18564         (Expand_Tagged_Root): Update documentation in its specification.
18565         (Init_Secondary_Tags): Update documentation.
18566         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
18567         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
18568         then generate code to inherit the contents of the dispatch table
18569         directly from the ancestor.
18570         (Expand_Record_Controller): Insert controller component after tags of
18571         implemented interfaces.
18572         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
18573         create null procedure overridings when null procedures are inherited
18574         from interfaces.
18575         (Make_Null_Procedure_Specs): New procedure to generate null procedure
18576         declarations for overriding null primitives inherited from interfaces.
18577         (Is_Null_Interface_Procedure): New function in
18578         Make_Null_Procedure_Specs.
18579         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
18580         immediate ancestor of a tagged type is an abstract interface type we
18581         must generate the specification of the predefined primitives associated
18582         with controlled types (because the dispatch table of the ancestor is
18583         null and hence these entries cannot be inherited). This is required to
18584         elaborate well the dispatch table.
18585
18586 2006-10-31  Javier Miranda  <miranda@adacore.com>
18587             Ed Schonberg  <schonberg@adacore.com>
18588             Bob Duff  <duff@adacore.com>
18589             Gary Dismukes  <dismukes@adacore.com>
18590             Robert Dewar  <dewar@adacore.com>
18591
18592         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
18593         conversion.
18594         (Expand_N_In): Do validity checks on range
18595         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
18596         (Expand_N_Allocator): For "new T", if the object is constrained by
18597         discriminant defaults, allocate the right amount of memory, rather than
18598         the maximum for type T.
18599         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
18600         when the allocator is initialized by a build-in-place call, since the
18601         allocator is already rewritten as a reference to the function result,
18602         and this prevents an unwanted duplication of the function call.
18603         Add with and use of Exp_Ch6.
18604         (Expand_Allocator_Expresssion): Check for an allocator whose expression
18605         is a call to build-in-place function and apply
18606         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
18607         untagged designated types).
18608         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
18609         optimization if source or target is biased.
18610         (Expand_N_Allocator): Add comments for case of an allocator within a
18611         function that returns an anonymous access type designating tasks.
18612         (Expand_N_Allocator): apply discriminant checks for access
18613         discriminants of anonymous access types (AI-402, AI-416)
18614
18615 2006-10-31  Bob Duff  <duff@adacore.com>
18616             Robert Dewar  <dewar@adacore.com>
18617             Gary Dismukes  <dismukes@adacore.com>
18618             Ed Schonberg  <schonberg@adacore.com>
18619
18620         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
18621
18622         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
18623         (Expand_N_Assignment_Statement): Call
18624         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
18625         build-in-place function call. Currently, this can happen only for
18626         assignments that come from aggregates.
18627         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
18628         in order to alleviate the upward compatibility introduced by AI-318.
18629         (Expand_N_Extended_Return_Statement): Add support for handling the
18630         return object as a build-in-place result.
18631         (Expand_Non_Function_Return): Implement simple return statements nested
18632         within an extended return.
18633         (Enable_New_Return_Processing): Turn on the new processing of return
18634         statements.
18635         (Expand_Non_Function_Return): For a return within an extended return,
18636         don't raise Program_Error, because Sem_Ch6 now gives a warning.
18637         (Expand_N_Extended_Return_Statement): Implement AI-318
18638         (Expand_Simple_Function_Return): Ditto.
18639         (Expand_N_If_Statement): Handle new -gnatwt warning
18640         (Expand_N_Case_Statement): Handle new -gnatwt warning
18641         (Expand_N_Assignment): Handle assignment to the Priority attribute of
18642         a protected object.
18643         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
18644         validity checking of assignments to elementary record components.
18645         (Expand_N_Return_Statement): return Class Wide types on the secondary
18646         stack independantly of their controlled status since with HIE runtimes,
18647         class wide types are not potentially controlled anymore.
18648
18649         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
18650         node kind.
18651
18652         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
18653         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
18654         it expects a block, procedure, or task. The return statement will get
18655         turned into a block, and Expand_Cleanup_Actions will happen then.
18656
18657 2006-10-31  Robert Dewar  <dewar@adacore.com>
18658             Ed Schonberg  <schonberg@adacore.com>
18659             Bob Duff  <duff@adacore.com>
18660             Gary Dismukes  <dismukes@adacore.com>
18661
18662         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
18663         capability.
18664         (Expand_Inlined_Call): Tagged types are by-reference types, and
18665         therefore should be replaced by a renaming declaration in the expanded
18666         body, as is done for limited types.
18667         (Expand_Call): If this is a call to a function with dispatching access
18668         result, propagate tag from context.
18669         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
18670         CPP by default.
18671         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
18672         build-in-place when the right-hand side of an assignment is a
18673         build-in-place function call.
18674         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
18675         of the explicit dereference of the allocator to the result subtype of
18676         the build-in-place function. This is needed to satisfy type checking
18677         in cases where the caller's return object is created by an allocator for
18678         a class-wide access type and the type named in the allocator is a
18679         specific type.
18680         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
18681         conversion of the reference to the declared object to the result subtype
18682         of the build-in-place function. This is needed to satisfy type checking
18683         in cases where the declared object has a class-wide type. Also, in the
18684         class-wide case, change the type of the object entity to the specific
18685         result subtype of the function, to avoid passing a class-wide object
18686         without explicit initialization to the back end.
18687         (Register_Interface_DT_Entry): Moved outside the body of
18688         Freeze_Subprogram because this routine is now public; it is called from
18689         Check_Dispatching_Overriding to handle late overriding of abstract
18690         interface primitives.
18691         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
18692         adding an implicit access actual on a call to a build-in-place function.
18693         (Expand_Actuals): Test for an actual parameter that is a call to a
18694         build-in-place function and apply
18695         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
18696         (Is_Build_In_Place_Function): New function to determine whether an
18697         entity is a function whose calls should be handled as build-in-place.
18698         (Is_Build_In_Place_Function_Call): New function to determine whether an
18699         expression is a function call that should handled as build-in-place.
18700         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
18701         calls to build-in-place functions as the initialization of an allocator.
18702         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
18703         handling calls to build-in-place functions in contexts that do not
18704         involve init of a separate object (for example, actuals of subprogram
18705         calls).
18706         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
18707         handling calls to build-in-place functions as the initialization of an
18708         object declaration.
18709         (Detect_Infinite_Recursion): Add explicit parameter Process to
18710         instantiation of Traverse_Body to avoid unreferenced warning.
18711         (Check_Overriding_Inherited_Interfaces): Removed.
18712         (Register_Interface_DT_Entry): Code cleanup.
18713         (Register_Predefined_DT_Entry): Code cleanup.
18714         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
18715         inlined statements if within a transient scope.
18716         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
18717         formal parameters with occurrences of actuals in inlined body, establish
18718         visibility on the proper view of the actual's subtype for the body's
18719         context.
18720         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
18721         compatibility mode and we have an imported CPP subprogram because
18722         for now we assume that imported CPP primitives correspond with
18723         objects whose constructor is in the CPP side (and therefore we
18724         don't need to generate code to register them in the dispatch table).
18725         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
18726         aligned selected component.
18727         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
18728         the actual of an in-mode parameter is a type conversion.
18729         (Expand_Actuals): If the call does not come from source and the actual
18730         is potentially misaligned, let gigi handle it rather than rejecting the
18731         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
18732         Class Wide types as returning by reference independantly of their
18733         controlled status since with HIE runtimes class wide types are not
18734         potentially controlled anymore.
18735
18736 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18737
18738         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
18739         references that are private components of the protected object.
18740         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
18741         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
18742         instantiation to deal with warnings.
18743         (Initialize_Protection): If expression for priority is non-static, use
18744         System_Priority as its expected type, in case the expression has not
18745         been analyzed yet.
18746
18747 2006-10-31  Robert Dewar  <dewar@adacore.com>
18748
18749         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
18750         initialization of Homonym_Len.
18751         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
18752         names from fully qualified name. Fixes problem of duplicate
18753         external names differing only in the presence of such a block name.
18754
18755 2006-10-31  Thomas Quinot  <quinot@adacore.com>
18756             Pablo Oliveira  <oliveira@adacore.com>
18757
18758         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
18759         subprogram Ids, even if they are not yet assigned.
18760         (Build_Subprogram_Id): It is now this function that will take care of
18761         calling Assign_Subprogram_Ids if necessary.
18762         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
18763         should be done only once they are assigned.
18764         (Build_From_Any_Function, case of tagged types): Add missing call to
18765         Allocate_Buffer.
18766         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
18767         type for an RACW type.
18768         (Add_RACW_Features): When processing an RACW declaration for which the
18769         designated type is already frozen, enforce E.2.2(14) rules immediately.
18770         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
18771         special reordering of controlling formals.
18772
18773         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
18774         associated stub type for an RACW type.
18775
18776 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
18777
18778         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
18779         fixed-point operations in an integer context, i.e. as operands of a
18780         conversion to an integer type, indicate that result must be rounded.
18781
18782 2006-10-31  Robert Dewar  <dewar@adacore.com>
18783
18784         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
18785         cases, pass the encoding method, since it is now required by the run
18786         time.
18787
18788         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
18789         assumption that Str'First = 1.
18790         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
18791         it on to the Value_Wide_Wide_Character call.
18792         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
18793         properly handles a string of the form quote-encoded_wide_char-quote.
18794
18795         * s-wchcnv.adb: Minor reformatting
18796
18797 2006-10-31  Javier Miranda  <miranda@adacore.com>
18798
18799         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
18800         run-time membership test to ensure that the constructed object
18801         implements the target abstract interface.
18802
18803 2006-10-31  Robert Dewar  <dewar@adacore.com>
18804
18805         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
18806         Machine_Attribute pragma internally to implement the user pragma.
18807         Add processing for pragma Interface so that it is now completely
18808         equivalent to pragma Import.
18809
18810         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
18811         so that it can be applied to all entities, including record components
18812         and enumeration literals.
18813         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
18814         priority ranges are correct, verify compatibility against task
18815         dispatching and locking policies, and if everything is correct an entry
18816         is added to the table containing priority specific dispatching entries
18817         for this compilation unit.
18818         (Delay_Config_Pragma_Analyze): Delay processing
18819         Priority_Specific_Dispatching pragmas because when processing the
18820         pragma we need to access run-time data, such as the range of
18821         System.Any_Priority.
18822         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
18823         Allow pragma Unreferenced as a context item
18824         Add pragma Preelaborable_Initialization
18825         (Analyze_Pragma, case Interface): Interface is extended so that it is
18826         now syntactically and semantically equivalent to Import.
18827         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
18828         insertion characters.
18829         Add handling for Pragma_Wide_Character_Encoding
18830         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
18831         never supercedes a real restriction, and that a real restriction
18832         always supercedes a warning.
18833         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
18834         appropriate form.
18835
18836 2006-10-31  Bob Duff  <duff@adacore.com>
18837             Ed Schonberg  <schonberg@adacore.com>
18838             Robert Dewar  <dewar@adacore.com>
18839
18840         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
18841         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
18842         Is_Inherently_Limited_Type, because return-by-reference has no meaning
18843         in Ada 2005.
18844         (Find_Node_To_Be_Wrapped): Use new method of determining the result
18845         type of the function containing a return statement, because the
18846         Return_Type field was removed. We now use the Return_Applies_To field.
18847
18848         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
18849         (Build_Task_Image_Decl): If procedure is not called from an
18850         initialization procedure, indicate that function that builds task name
18851         uses the sec. stack. Otherwise the enclosing initialization procedure
18852         will carry the indication.
18853         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
18854         N_Object_Declaration instead.
18855         (Kill_Dead_Code): New interface to implement -gnatwt warning for
18856         conditional dead code killed, and change implementation accordingly.
18857         (Insert_Actions): Add N_Return_Object_Declaration case.
18858         Correct comment to mention N_Extension_Aggregate node.
18859         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
18860         attempts to save information for global variables which cannot be
18861         safely tracked.
18862         (Get_Current_Value_Condition): Handle conditions the other way round
18863         (constant on left). Also handle right operand of AND and AND THEN
18864         (Set_Current_Value_Condition): Corresponding changes
18865         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
18866         (Get_Current_Value_Condition): Handle simple boolean operands
18867         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
18868         (Get_Current_Value_Condition): If the variable reference is within an
18869         if-statement, does not appear in the list of then_statments, and does
18870         not come from source, treat it as being at unknown location.
18871         (Get_Current_Value_Condition): Enhance to allow while statements to be
18872         processed as well as if statements.
18873         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
18874         come from source.
18875         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
18876         of loop. This is safe now that we fixed Kill_Current_Values.
18877         (OK_To_Do_Constant_Replacement): Check whether current scope is
18878         Standard, before examining outer scopes.
18879
18880 2006-10-31  Vincent Celier  <celier@adacore.com>
18881
18882         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
18883         When True, apply VMS treatment to children of packages A, G, I and S.
18884         For F320-016
18885
18886         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
18887
18888 2006-10-31  Robert Dewar  <dewar@adacore.com>
18889             Ed Schonberg  <schonberg@adacore.com>
18890
18891         * freeze.adb: Add handling of Last_Assignment field
18892         (Warn_Overlay): Supply missing continuation marks in error msgs
18893         (Freeze_Entity): Add check for Preelaborable_Initialization
18894
18895         * g-comlin.adb: Add Warnings (Off) to prevent new warning
18896
18897         * g-expect.adb: Add Warnings (Off) to prevent new warning
18898
18899         * lib-xref.adb: Add handling of Last_Assignment field
18900         (Generate_Reference): Centralize handling of pragma Obsolescent here
18901         (Generate_Reference): Accept an implicit reference generated for a
18902         default in an instance.
18903         (Generate_Reference): Accept a reference for a node that is not in the
18904         main unit, if it is the generic body corresponding to an subprogram
18905         instantiation.
18906
18907         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
18908
18909         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
18910         -gnatwq/Q.
18911         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
18912         exception handler.
18913         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
18914         use clauses, to avoid messages on packages used to qualify, and also
18915         to avoid messages from obsolescent units.
18916         (Warn_On_Useless_Assignments): Don't generate messages for imported
18917         and exported variables.
18918         (Warn_On_Useless_Assignments): New procedure
18919         (Output_Obsolescent_Entity_Warnings): New procedure
18920         (Check_Code_Statement): New procedure
18921
18922         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
18923         Change name Is_Ada_2005 to Is_Ada_2005_Only
18924         (Last_Assignment): New field for useless assignment warning
18925
18926 2006-10-31  Olivier Hainque  <hainque@adacore.com>
18927
18928         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
18929         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
18930
18931 2006-10-31  Bob Duff  <duff@adacore.com>
18932             Robert Dewar  <dewar@adacore.com>
18933             Ed Schonberg  <schonberg@adacore.com>
18934
18935         * g-awk.adb (Default_Session, Current_Session): Compile this file in
18936         Ada 95 mode, because it violates the new rules for AI-318.
18937
18938         * g-awk.ads: Use overloaded subprograms in every case where we used to
18939         have a default of Current_Session. This makes the code closer to be
18940         correct for both Ada 95 and 2005.
18941
18942         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
18943         code, relying on the fact that the compiler generates a warning
18944         instead of an error in -gnatg mode.
18945
18946         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
18947         E_Return_Statement entity kind.
18948         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
18949
18950         * par.adb (P_Interface_Type_Definition): Addition of one formal to
18951         report an error if the reserved word abstract has been previously found.
18952         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
18953
18954         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
18955         parenthesized range attribute usage
18956         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
18957
18958         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
18959         in the syntax for extended_return_statement. This is not in the latest
18960         RM, but the ARG is expected to issue an AI allowing this.
18961         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
18962         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
18963         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
18964         P_Return_Statement): Parse the new syntax for extended_return_statement.
18965
18966         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
18967         Output_End_Missing): Add error-recovery code for the new
18968         extended_return_statement syntax; that is, the new E_Return entry on
18969         the scope stack.
18970
18971         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
18972         limited to nonlimited, because otherwise we violate the new Ada 2005
18973         rules about returning limited types in function Create_AST_Handler in
18974         s-asthan.adb.
18975
18976         * sem.adb (Analyze): Add cases for new node kinds
18977         N_Extended_Return_Statement and N_Return_Object_Declaration.
18978
18979         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
18980         type is in the same category as type of context before applying check,
18981         to prevent anomalies in instantiations.
18982         (Resolve_Aggregate): Remove test for limited components in aggregates.
18983         It's unnecessary in Ada 95, because if it has limited components, then
18984         it must be limited. It's wrong in Ada 2005, because limited aggregates
18985         are now allowed.
18986         (Resolve_Record_Aggregate): Move check for limited types later, because
18987         OK_For_Limited_Init requires its argument to have been resolved.
18988         (Get_Value): When copying the component default expression for a
18989         defaulted association in an aggregate, use the sloc of the aggregate
18990         and not that of the original expression, to prevent spurious
18991         elaboration errors, when the expression includes function calls.
18992         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
18993         were missing. We also didn't handle qualified expressions. Now also
18994         allow function calls. Use new common routine OK_For_Limited_Init.
18995         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
18996         with space can upper case letter).
18997
18998         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
18999         Has_Static_Discriminants flag
19000         (Record_Type_Declaration): Diagnose an attempt to declare an interface
19001         type with discriminants.
19002         (Process_Range_Expr_In_Decl): Do validity checks on range
19003         (Build_Discriminant_Constraints): Use updated form of
19004         Denotes_Discriminant.
19005         (Process_Subtype): If the subtype is a private subtype whose full view
19006         is a concurrent subtype, introduce an itype reference to prevent scope
19007         anomalies in gigi.
19008         (Build_Derived_Record_Type, Collect_Interface_Primitives,
19009         Record_Type_Declaration):  The functionality of the subprograms
19010         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
19011         is now performed by a single routine.
19012         (Build_Derived_Record_Type): If the type definition includes an explicit
19013         indication of limitedness, then the type must be marked as limited here
19014         to ensure that any access discriminants will not be treated as having
19015         a local anonymous access type.
19016         (Check_Abstract_Overriding): Issue a detailed error message when an
19017         abstract subprogram was not overridden due to incorrect mode of its
19018         first parameter.
19019         (Analyze_Private_Extension_Declaration): Add support for the analysis of
19020         synchronized private extension declarations. Verify that the ancestor is
19021         a limited or synchronized interface or in the generic case, the ancestor
19022         is a tagged limited type or synchronized interface and all progenitors
19023         are either limited or synchronized interfaces.
19024         Derived_Type_Declaration): Check for presence of private extension when
19025         dealing with synchronized formal derived types.
19026         Process_Full_View): Enchance the check done on the usage of "limited" by
19027         testing whether the private view is synchronized.
19028         Verify that a synchronized private view is completed by a protected or
19029         task type.
19030         (OK_For_Limited_Init_In_05): New function.
19031         (Analyze_Object_Declaration): Move check for limited types later,
19032         because OK_For_Limited_Init requires its argument to have been resolved.
19033         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
19034         in order to alleviate the upward compatibility introduced by AI-318.
19035         (Constrain_Corresponding_Record): If the constraint is for a component
19036         subtype, mark the itype as frozen, to avoid out-of-scope references to
19037         discriminants in the back-end.
19038         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
19039         this subprogram against wrong sources.
19040         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
19041         discriminant of limited type completed with a protected type, when the
19042         discriminant is used to constrain a private component of the type, and
19043         expansion is disabled.
19044         (Find_Type_Of_Object): Do not treat a return subtype that is an
19045         anonymous subtype as a local_anonymous_type, because its accessibility
19046         level is the return type of the enclosing function.
19047         (Check_Initialization): In -gnatg mode, turn the error "cannot
19048         initialize entities of limited type" into a warning.
19049         (OK_For_Limited_Init): Return true for generated nodes, since it
19050         sometimes violates the legality rules.
19051         (Make_Incomplete_Declaration): If the type for which an incomplete
19052         declaration is created happens to be the currently visible entity,
19053         preserve the homonym chain when removing it from visibility.
19054         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
19055         inherited subprograms.
19056         (Access_Definition): If this is an access to function that is the return
19057         type of an access_to_function definition, context is a type declaration
19058         and the scope of the anonymous type is the current one.
19059         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
19060         incomplete subtype to the set of private dependents of the original
19061         incomplete type.
19062         (Constrain_Discriminated_Type): Emit an error message whenever an
19063         incomplete subtype is being constrained.
19064         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
19065         corresponding subtype of the full view of the original incomplete type.
19066         (Check_Incomplete): Properly detect invalid usage of incomplete types
19067         and subtypes.
19068
19069 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
19070
19071         * g-catiio.ads, g-catiio.adb (Value): New function.
19072         Given an input String, try and parse a valid Time value.
19073
19074 2006-10-31  Vincent Celier  <celier@adacore.com>
19075
19076         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
19077         Integer_Address arithmetic, as in Set_Valid.
19078
19079 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
19080             Robert Dewar  <dewar@adacore.com>
19081
19082         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
19083         handling executable extension manually and duplicating code.
19084
19085         * make.adb: Implement new -S switch
19086         (Gnatmake): Use new function Osint.Executable_Name instead
19087         of handling executable extension manually.
19088
19089         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
19090         is specified, the executable name ends with this suffix.
19091         Take advantage of Osint.Executable_Name instead of duplicating code.
19092
19093         * switch-m.adb: Recognize new gnatmake -S switch
19094
19095         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
19096         variable.
19097         (Get_Target_Parameters): Set Executable_Extension_On_Target if
19098         available.
19099
19100         * makeusg.adb: Add line for gnatmake -S switch
19101
19102 2006-10-31  Vincent Celier  <celier@adacore.com>
19103
19104         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
19105         call it with -static-libgcc, as there are some platforms, such as
19106         Darwin, where one of these two switches is compulsory to link.
19107
19108 2006-10-31  Vincent Celier  <celier@adacore.com>
19109
19110         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
19111         instead of ADA_PROJECT_PATH, for the project path.
19112         (Gnatls): When displaying the project path directories, use host dir
19113         specs.
19114
19115         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
19116         names in the project path, as absolute paths may correspond to
19117         multi-valued VMS logical names.
19118
19119 2006-10-31  Vincent Celier  <celier@adacore.com>
19120
19121         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
19122         absolute path name.
19123         (Locate_Regular_File): Ditto
19124         (Change_Dir): Remove, no longer used
19125         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
19126         on Windows. Get it calling Get_Current_Dir.
19127         (OpenVMS): Remove imported boolean, no longer needed.
19128         (Normalize_Pathname)[VMS]: Do not resolve directory names.
19129         (Pid_To_Integer): New function to convert a Process_Id to  Integer
19130
19131 2006-10-31  Thomas Quinot  <quinot@adacore.com>
19132
19133         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
19134         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
19135         to No_Socket.
19136         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
19137         W_Sig_Socket.
19138
19139 2006-10-31  Robert Dewar  <dewar@adacore.com>
19140
19141         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
19142         initial letter o as a zero.
19143
19144 2006-10-31  Robert Dewar  <dewar@adacore.com>
19145
19146         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
19147
19148 2006-10-31  Robert Dewar  <dewar@adacore.com>
19149
19150         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
19151         variant records
19152         (Layout_Variant_Record): Retrieve the discriminants from the entity
19153         rather than from the type definition, because in the case of a full
19154         type for a private type we need to take the discriminants from the
19155         partial view.
19156         (Layout_Component_List): When applying the Max operator to variants with
19157         a nonstatic size, check whether either operand is static and scale that
19158         operand from bits to storage units before applying Max.
19159         (Layout_Type): In VMS, if a C-convention access type has no explicit
19160         size clause (and does not inherit one in the case of a derived type),
19161         then the size is reset to 32 from 64.
19162
19163 2006-10-31  Vincent Celier  <celier@adacore.com>
19164
19165         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
19166         its file has already been loaded, according to the unit being loaded,
19167         not to the current value of Multiple_Unit_Index.
19168
19169 2006-10-31  Thomas Quinot  <quinot@adacore.com>
19170             Eric Botcazou  <ebotcazou@adacore.com>
19171             Arnaud Charlet  <charlet@adacore.com>
19172
19173         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
19174         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
19175         possible.
19176         (a-except.o): Pass it to the compiler.
19177         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
19178         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
19179         a-calend-mingw.adb version.
19180
19181         * Makefile.rtl: Added s-dsaser.
19182         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
19183         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
19184         Ada.Dispatching.Round_Robin.
19185         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
19186
19187         * Make-lang.in: Remove all references to gt-ada-decl.h.
19188         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
19189         sources.
19190         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
19191         Update dependencies.
19192
19193         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
19194
19195 2006-10-31  Vincent Celier  <celier@adacore.com>
19196
19197         * mlib-utl.adb (Initialized): Remove, no longer used
19198         (Initialize): Remove, no longer used
19199         (Ar): If Ar_Exec is null, get the location of the archive builder and,
19200         if there is one, the archive indexer. Fail if the archive builder cannot
19201         be found.
19202         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
19203         be found.
19204
19205 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19206
19207         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
19208         Process_Body_Clauses): If the context of a body includes a use clause
19209         for P.Q then a with_clause for P in the same body is not redundant,
19210         even if the spec also has a with_clause on P.
19211         Add missing continuation mark to error msg
19212         (Build_Limited_Views): A limited view of a type is tagged if its
19213         declaration includes a record extension.
19214         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
19215         node, even if the subunit has errors. This avoids malfunction by
19216         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
19217         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
19218         generation of obsolescent messages for with statements (cannot do
19219         this too early, or we cannot implement avoiding the messages in the
19220         case of obsolescent units withing obsolescent units).
19221         (Install_Siblings): If the with_clause is on a remote descendant of
19222         an ancestor of the current compilation unit, find whether there is
19223         a sibling child unit that is immediately visible.
19224         (Remove_Private_With_Clauses): New procedure, invoked after completing
19225         the analysis of the private part of a nested package, to remove from
19226         visibility the private with_clauses of the enclosing package
19227         declaration.
19228         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
19229         now centralized in Generate_Reference.
19230         (Install_Limited_Context_Clauses): Remove superfluous error
19231         message associated with unlimited view visible through use
19232         and renamings. In addition, at the point in which the error
19233         is reported, we add the backslash to the text of the error
19234         to ensure that it is reported as a single error message.
19235         Use new // insertion for some continuation messages
19236         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
19237         to create implicit with_clause for parent unit mentioned in original
19238         limited_with_clause.
19239         (Install_Limited_With_Unit): Set entity of parent identifiers if the
19240         unit is a child unit. For ASIS queries.
19241         (Analyze_Subunit): If the subunit appears within a child unit, make all
19242         ancestor child units directly visible again.
19243
19244 2006-10-31  Robert Dewar  <dewar@adacore.com>
19245
19246         * par-ch10.adb (P_Context_Clause): Minor error message fix
19247
19248 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
19249             Javier Miranda  <miranda@adacore.com>
19250
19251         * par-ch12.adb: Grammar update and cleanup.
19252         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
19253         support for synchronized derived type definitions.
19254         Add the new actual Abstract_Present to every call to
19255         P_Interface_Type_Definition.
19256         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
19257         a formal object declaration with an access definition or a subtype mark
19258         with a null exclusion.
19259         (P_Generic_Association): Handle association with box, and others_choice
19260         with box, to support Ada 2005 partially parametrized formal packages.
19261
19262 2006-10-31  Robert Dewar  <dewar@adacore.com>
19263             Javier Miranda  <miranda@adacore.com>
19264
19265         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
19266         (P_Type_Declaration): Remove barrier against the reserved word "limited"
19267         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
19268         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
19269         private extensions.
19270         (P_Type_Declaration): Add the new actual Abstract_Present to every call
19271         to P_Interface_Type_Definition.
19272         (P_Interface_Type_Definition): Addition of one formal to report an error
19273         if the reserved word abstract has been previously found.
19274         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
19275         object renaming declaration with an access definition or subtype mark
19276         with a possible null exclusion.
19277
19278         * par-ch9.adb: Minor error msg fix
19279
19280         * par-load.adb: Add missing continuation mark to error msg
19281
19282         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
19283
19284 2006-10-31  Vincent Celier  <celier@adacore.com>
19285
19286         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
19287         unknown attribute in unknown package or in package that does not need
19288         to be checked.
19289         (Parse_Package_Declaration): Do not issue warning for unknown package in
19290         quiet output.
19291
19292 2006-10-31  Vincent Celier  <celier@adacore.com>
19293
19294         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
19295         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
19296         Packages_To_Check.
19297
19298 2006-10-31  Vincent Celier  <celier@adacore.com>
19299
19300         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
19301         on VMS, change "__" to '.' before checking the name.
19302         (Record_Ada_Source): Always add the source file name in the list of
19303         of sources, even if it is not the first time, as it is for another
19304         source index.
19305         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
19306         dot, instead of replacing only the first '_'.
19307
19308         * prj-part.adb (Parse): Convert project file path to canonical form
19309
19310         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
19311         extended, the project id of the project extending it is recorded in its
19312         data, even when it has already been processed as an imported project.
19313
19314 2006-10-31  Robert Dewar  <dewar@adacore.com>
19315
19316         * repinfo.adb (List_Entities): Don't list entities from renaming
19317         declarations.
19318
19319 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
19320             Robert Dewar  <dewar@adacore.com>
19321
19322         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
19323         only a restriction warning is active for the given restriction. This is
19324         desirable because we do not want to modify code in the case where only
19325         a warning is set.
19326         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
19327         causes overriding of real restrictions.
19328         Take advantage of new No_Restrictions constant.
19329
19330         * raise.h: (__gnat_set_globals): Change profile.
19331
19332 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
19333
19334         * rtsfind.adb: Remove s-polint from comment as it exists no more.
19335
19336         * rtsfind.ads:
19337         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
19338         Move all the entities in obsolete package System.PolyORB_Interface to
19339         System.Partition_Interface.
19340         (RE_Storage_Size): New function in System.Tasking.
19341         (RE_Get_Ceiling): New entity.
19342         (RE_Set_Ceiling): New entity.
19343         (RO_PE_Get_Ceiling): New entity.
19344         (RO_RE_Set_Ceiling): New entity.
19345         (Inherit_CPP_DT): New entity
19346
19347 2006-10-31  Robert Dewar  <dewar@adacore.com>
19348
19349         * scng.adb (Scan, case of numeric literal): Better msg for identifier
19350         starting with a digit.
19351
19352 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19353             Thomas Quinot  <quinot@adacore.com>
19354             Javier Miranda  <miranda@adacore.com>
19355             Gary Dismukes  <dismukes@adacore.com>
19356
19357         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
19358         properly an attempt to apply Unchecked_Access to a protected operation.
19359         (OK_Self_Reference): New subprogram to check the legality of an access
19360         attribute whose prefix is the type of an enclosing aggregate.
19361         Generalizes previous mechanism to handle attribute references nested
19362         arbitrarily deep within the aggregate.
19363         (Analyze_Access_Attribute): An access attribute whose prefix is a type
19364         can appear in an aggregate if this is a default-initialized aggregate
19365         for a self-referential type.
19366         (Resolve_Attribute, case Access): Ditto.
19367         Add support for new implementation defined attribute Stub_Type.
19368         (Eval_Attribute, case Attribute_Stub_Type): New case.
19369         (Analyze_Attribute, case Attribute_Stub_Type): New case.
19370         (Stream_Attribute_Available): Implement using new subprogram from
19371         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
19372         Has_Specified_Stream_Attribute flag.
19373         Disallow Storage_Size and Storage_Pool for access to subprogram
19374         (Resolve_Attribute, case 'Access et al): Take into account anonymous
19375         access types of return subtypes in extended return statements. Remove
19376         accessibility checks on anonymous access types when Unchecked_Access is
19377         used.
19378         (Analyze_Attribute): Add support for the use of 'Class to convert
19379         a class-wide interface to a tagged type.
19380         Add support for the attribute Priority.
19381         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
19382         whether the designated type is discriminated with a constrained partial
19383         view and require static matching in that case.
19384         Add local variable Des_Btyp. The Designated_Type
19385         of an access to incomplete subtype is either its non-limited view if
19386         coming from a limited with or its etype if regular incomplete subtype.
19387
19388         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
19389         Fix predicate to identify and allow cases of (expander-generated)
19390         references to tag of designated object of a RACW.
19391         (Validate_Static_Object_Name): In Ada 2005, a formal object is
19392         non-static, and therefore cannot appear as a primary in a preelaborable
19393         package.
19394         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
19395         Has_Read_Write_Attributes.
19396         (Has_Read_Write_Attributes): Reimplement in termes of
19397         Has_Stream_Attribute_Definition.
19398         (Missing_Read_Write_Attributes): When checking component types in a
19399         record, unconditionally call Missing_Read_Write_Attributes recursively
19400         (remove guard checking for Is_Record_Type / Is_Access_Type).
19401
19402 2006-10-31  Robert Dewar  <dewar@adacore.com>
19403
19404         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
19405         useless assignments here and conditionalize it on absence of exception
19406         handlers.
19407         (Analyze_Exception_Handlers): Small code reorganization of error
19408         detection code, for new handling of formal packages.
19409
19410 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19411             Hristian Kirtchev  <kirtchev@adacore.com>
19412
19413         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
19414         that has been constant-folded, preserve information of original tree,
19415         for ASIS uses.
19416         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
19417         generated private extension declaration if the formal derived type is
19418         synchronized. Carry synchronized present over to the generated private
19419         extension.
19420         (Validate_Derived_Type_Instance): Ensure that the actual of a
19421         synchronized formal derived type is a synchronized tagged type.
19422         (Instantiate_Formal_Package): When creating the instantiation used to
19423         validate the actual package of a formal declared without a box, check
19424         whether the formal itself depends on a prior actual.
19425         (Instantiate_Formal_Subprogram): Create new entities for the defining
19426         identifiers of the formals in the renaming declaration, for ASIS use.
19427         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
19428         a renaming declaration or a subtype declaration for an actual in an
19429         instance, capture location information of declaration in generic, for
19430         ASIS use.
19431         (Instantiate_Formal_Package): Add comments on needed additional tests.
19432         AI-317 (partial parametrization) is fully implemented.
19433         (Validate_Private_Type_Instance): Add check for actual which
19434         must have preelaborable initialization
19435         Use new // insertion for some continuation messages
19436         (Analyze_Formal_Object_Declaration): Change usage of Expression to
19437         Default_Expression. Add type retrieval when the declaration has an
19438         access definition. Update premature usage of incomplete type check.
19439         (Check_Access_Definition): New subsidiary routine. Check whether the
19440         current compilation version is Ada 05 and the supplied node has an
19441         access definition.
19442         (Instantiate object): Alphabetize local variables. Handle the creation
19443         of new renaming declarations with respect to the kind of definition
19444         used - either an access definition or a subtype mark. Guard against
19445         unnecessary error message in the context of anonymous access types after
19446         they have been resolved. Add check for required null exclusion in a
19447         formal object declaration.
19448         (Switch_View): A private subtype of a non-private type needs to be
19449         switched (the base type can have been switched without its private
19450         dependents because of the last branch of Check_Private_View.
19451         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
19452         value from BT.
19453         (Instantiate_Type): Emit an error message whenever a class-wide type of
19454         a tagged incomplete type is used as a generic actual.
19455         (Find_Actual_Type): Extend routine to handle a component type in a child
19456         unit that is imported from a formal package in a parent.
19457         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
19458         agree on constrainedness, rather than checking against ultimate ancestor
19459         (Instantiate_Subprogram_Body): Create a cross-reference link to the
19460         generic body, for navigation purposes.
19461
19462 2006-10-31  Robert Dewar  <dewar@adacore.com>
19463             Thomas Quinot  <quinot@adacore.com>
19464
19465         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
19466         type.
19467         (New_Stream_Subprogram): When processing an attribute definition clause
19468         for a stream-oriented subprogram, record an entity node occurring at
19469         the point of clause to use for checking the visibility of the clause,
19470         as defined by 8.3(23) as amended by AI-195.
19471         (New_Stream_Subprogram): New procedure, factoring behaviour from both
19472          New_Stream_Function and New_Stream_Procedure.
19473         (New_Stream_Function, New_Stream_Procedure): Removed.
19474         (Analyze_Attribute_Definition_Clause, case Address): Check new
19475         Alignment_Check check
19476
19477 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19478             Javier Miranda  <miranda@adacore.com>
19479             Robert Dewar  <dewar@adacore.com>
19480
19481         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
19482         generate the same errors compiling under -gnatc.
19483         (Try_Object_Operation): If no candidate interpretation succeeds, but
19484         there is at least one primitive operation with the right name, report
19485         error in call rather than on a malformed selected component.
19486         (Analyze_Selected_Component): If the prefix is an incomplete type from
19487         a limited view, and the full view is available, use the full view to
19488         determine whether this is a prefixed call to a primitive operation.
19489         (Operator_Check): Verify that a candidate interpretation is a binary
19490         operation before checking the type of its second formal.
19491         (Analyze_Call): Add additional warnings for function call contexts not
19492         yet supported.
19493         (Analyze_Allocator): Move the check for "initialization not allowed for
19494         limited types" after analyzing the expression. This is necessary,
19495         because OK_For_Limited_Init looks at the structure of the expression.
19496         Before analysis, we don't necessarily know what sort of expression it
19497         is. For example, we don't know whether F(X) is a function call or an
19498         indexed component; the former is legal in Ada 2005; the latter is not.
19499         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
19500         were missing. We also didn't handle qualified expressions. Now also
19501         allow function calls. Use new common routine OK_For_Limited_Init.
19502         (Analyze_Type_Conversion): Do not perform some legality checks in an
19503         instance, because the error message will be redundant or spurious.
19504         (Analyze_Overloaded_Selected_Component): Do not do style check when
19505         setting an entity, since we do not know it is the right entity yet.
19506         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
19507         (Analyze_Overloaded_Selected_Component): Same change
19508         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
19509         since regular incomplete subtypes are transformed into corresponding
19510         subtypes of their full views.
19511         (Complete_Object_Operation): Treat name of transformed subprogram call
19512         as coming from source, for browsing purposes.
19513         (Try_Primitive_Operation): If formal is an access parameter, compare
19514         with base type of object to determine whether it is a primitive
19515         operation.
19516         (Operator_Check): If no interpretation of the operator matches, check
19517         whether a use clause on any candidate might make the operation legal.
19518         (Try_Class_Wide_Operation): Check whether the first parameter is an
19519         access type whose designated type is class-wide.
19520
19521 2006-10-31  Robert Dewar  <dewar@adacore.com>
19522             Ed Schonberg  <schonberg@adacore.com>
19523             Gary Dismukes  <dismukes@adacore.com>
19524
19525         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
19526         warn on infinite loops.
19527         Add \\ to some continuation messages
19528         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
19529         (Process_Bounds): If the bounds are integer literals that result from
19530         constant-folding, and they carry a user-defined type, preserve that type
19531         rather than treating this as an integer range.
19532         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
19533         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
19534         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
19535         left hand side of assignment.
19536         (Analyze_Assignment): Add suport to manage assigments to the attribute
19537         priority of a protected object.
19538         (Check_Possible_Current_Value_Condition): Allow fully qualified names
19539         not just identifiers.
19540         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
19541         or AND THEN for possible tracking.
19542         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
19543         case of while loops so we can track values in the loop body.
19544
19545 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19546             Hristian Kirtchev  <kirtchev@adacore.com>
19547             Bob Duff  <duff@adacore.com>
19548
19549         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
19550         procedure cannot be a protected operation (it is a basic_declaration,
19551         not a subprogram_declaration).
19552         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
19553         Subp. Add logic for entry processing.
19554         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
19555         Determine whether an entry or subprogram of a protected or task type
19556         override an inherited primitive of an implemented interface.
19557         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
19558         Update the actual used in calls to Check_Overriding_Indicator.
19559         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
19560         generate the proper reference to the parent unit, for cross-reference.
19561         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
19562         Is_Formal.
19563         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
19564         (Add_Extra_Formal): Revise procedure to allow passing in associated
19565         entity, scope, and name suffix, and handle setting of the new
19566         Extra_Formals field.
19567         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
19568         pass new parameters. Add support for adding the new extra access formal
19569         for functions whose calls are treated as build-in-place.
19570         (Analyze_A_Return_Statement): Correct casing in error message.
19571         Move Pop_Scope to after Analyze_Function_Return, because an extended
19572         return statement really is a full-fledged scope. Otherwise, visibility
19573         doesn't work right. Correct use of "\" for continuation messages.
19574         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
19575         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
19576         the node doesn't get properly marked as analyzed.
19577         (Analyze_Subprogram_Body): If subprogram is a function that returns
19578         an anonymous access type that denotes a task, build a Master Entity
19579         for it.
19580         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
19581         proper usage of null exclusion in a result definition.
19582         (Process_Formals): Code cleanup and new error message.
19583         (Process_Formals): Detect incorrect application of null exclusion to
19584         non-access types.
19585         (Conforming_Types): Handle conformance between [sub]types and itypes
19586          generated for entities that have null exclusions applied to them.
19587         (Maybe_Primitive_Operation): Add an additional type retrieval when the
19588          base type is an access subtype. This case arrises with null exclusions.
19589         (New_Overloaded_Entity): Do not remove the overriden entity from the
19590         homonym chain if it corresponds with an abstract interface primitive.
19591         (Process_Formals): Replace membership test agains Incomplete_Kind with a
19592         call to the synthesized predicate Is_Incomplete_Type.
19593         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
19594         primitives.
19595         (Analyze_Subprogram_Declaration): Check that abstract interface
19596         primitives are abstract or null.
19597         (Analyze_Subprogram_Specification): Remove previous check for abstract
19598         interfaces because it was not complete.
19599         (Has_Interface_Formals): Removed.
19600
19601 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19602             Javier Miranda  <miranda@adacore.com>
19603
19604         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
19605         of Analyze_Package_Body, to create Itype references for anonymous
19606         access types created in the package declaration, whose designated types
19607         may have only a limited view.
19608         (Analyze_Package_Specification): For the private part of a nested
19609         package, install private_with_clauses of enclosing compilation unit if
19610         we are in its visible part.
19611         (Declare_Inherited_Private_Subprograms): Complete barrier
19612         to ensure that the primitive operation has an alias to some parent
19613         primitive. This is now required because, after the changes done for the
19614         implementation of abstract interfaces, the contents of the list of
19615         primitives has entities whose alias attribute references entities of
19616         such list of primitives.
19617         (Analyze_Package_Specification): Simplify code that handles parent units
19618         of instances and formal packages.
19619         (Uninstall_Declarations): Check the convention consistency among
19620         primitive overriding operations of a tagged record type.
19621
19622 2006-10-31  Robert Dewar  <dewar@adacore.com>
19623             Hristian Kirtchev  <kirtchev@adacore.com>
19624             Javier Miranda  <miranda@adacore.com>
19625             Ed Schonberg  <schonberg@adacore.com>
19626
19627         * sem_ch8.adb: Minor error msg rewording
19628         (Undefined): When checking for misspellings, invert arguments (to get
19629         expected and found set right)
19630         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
19631         (Analyze_Generic_Renaming): Same fix
19632         (Use_One_Package): Do not take into account the internal entities of
19633         abstract interfaces during the analysis of entities that are marked
19634         as potentially use-visible.
19635         (Find_Type): Handle the case of an attribute reference for
19636         implementation defined attribute Stub_Type (simply let the analysis of
19637         the attribute reference rewrite it).
19638         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
19639         type that appears in a Use_Type clause.
19640         (Analyze_Object_Renaming): Add support for renaming of the Priority
19641         attribute.
19642         (Find_Type): In Ada 2005, a task type can be used within its own body,
19643         when it appears in an access definition.
19644         (Analyze_Object_Renaming): Remove warning on null_exclusion.
19645         (Analyze_Object_Renaming): Introduce checks for required null exclusion
19646          in a formal object declaration or in a subtype declaration.
19647         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
19648         (Check_Null_Exclusion): New local routine to
19649         Analyze_Subprogram_Renaming. Check whether the formals and return
19650         profile of a renamed subprogram have required null exclusions when
19651         their counterparts of the renaming already impose them.
19652         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
19653         Determine whether an entity is inside a generic scope.
19654         (In_Open_Scope): First pass of documentation update.
19655         (Find_Expanded_Name): Add support for shadow entities associated with
19656         limited withed packages. This is required to handle nested packages.
19657         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
19658         that makes a renaming of a limited withed package illegal.
19659
19660 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
19661             Ed Schonberg  <schonberg@adacore.com>
19662
19663         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
19664         Check_Overriding_Indicator.
19665         (Analyze_Task_Definition): Ditto.
19666         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
19667         (Check_Overriding_Indicator): To find overridden interface operation,
19668         examine only homonyms that have an explicit subprogram declaration, not
19669         inherited operations created by an unrelated type derivation.
19670         (Check_Overriding_Indicator): When checking for the presence of "null"
19671         in a procedure, ensure that the queried node is a procedure
19672         specification.
19673         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
19674         type when the formal is an access to variable.
19675         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
19676         (Analyze_Task_Type): Same addition
19677         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
19678         provide navigation capabilities for entries.
19679
19680 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
19681             Ed Schonberg  <schonberg@adacore.com>
19682             Javier Miranda  <miranda@adacore.com>
19683             Gary Dismukes  <dismukes@adacore.com>
19684
19685         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
19686         inherited from an interface ancestor by another interface in the
19687         context of an instance as 'late'.
19688         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
19689         of a call to a function that dispatches on access result.
19690         (Check_Dispatching_Operation): In case of late overriding of a primitive
19691         that covers abstract interface subprograms we register it in all the
19692         secondary dispatch tables associated with abstract interfaces.
19693         (Check_Dispatching_Call): Add check that a dispatching call is not made
19694         to a function with a controlling result of a limited type. This is a
19695         current implementation restriction.
19696         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
19697         (Check_Dispatching_Operation): Do no emit a warning if the controlling
19698         argument is an interface type that is a generic formal.
19699         (Is_Interface_Subprogram): Removed.
19700         (Check_Dispatching_Operation): If the subprogram is not a dispatching
19701         operation, check the formals to handle the case in which it is
19702         associated with an abstract interface type.
19703
19704 2006-10-31  Robert Dewar  <dewar@adacore.com>
19705             Ed Schonberg  <schonberg@adacore.com>
19706
19707         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
19708         Add new calls to this procedure during traversal
19709         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
19710         another unit if expansion is disabled.
19711
19712 2006-10-31  Robert Dewar  <dewar@adacore.com>
19713
19714         * sem_eval.adb (Compile_Time_Compare): Make use of information from
19715         Current_Value in the conditional case, to evaluate additional
19716         comparisons at compile time.
19717
19718 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19719             Hristian Kirtchev  <kirtchev@adacore.com>
19720             Javier Miranda  <miranda@adacore.com>
19721
19722         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
19723         subprogram type to provide better diagnostics in case of ambiguity.
19724         (Covers): Handle coverage of formal and actual anonymous access types in
19725         the context of generic instantiation.
19726         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
19727         abstract interface types; this is required to handle concurrent types
19728         with discriminants and abstract interface types.
19729         (Covers): Include type coverage of both regular incomplete subtypes and
19730         incomplete subtypes of incomplete type visibles through a limited with
19731         clause.
19732
19733 2006-10-31  Robert Dewar  <dewar@adacore.com>
19734             Hristian Kirtchev  <kirtchev@adacore.com>
19735             Ed Schonberg  <schonberg@adacore.com>
19736
19737         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
19738         messages for entities in packages which are not used.
19739         (Collect_Synchronized_Interfaces): New procedure.
19740         (Overrides_Synchronized_Primitive): New function.
19741         (Denotes_Discriminant): Extend predicate to apply to task types.
19742         Add missing continuation marks in error msgs
19743         (Unqualify): New function for removing zero or more levels of
19744         qualification from an expression. There are numerous places where this
19745         ought to be used, but we currently only deal properly with zero or one
19746         level.
19747         (In_Instance); The analysis of the actuals in the instantiation of a
19748         child unit is not within an instantiation, even though the parent
19749         instance is on the scope stack.
19750         (Safe_To_Capture_Value): Exclude the case of variables that are
19751         renamings.
19752         (Check_Obsolescent): Removed
19753         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
19754         is an aliased view, even when rewritten as a reference to the target
19755         object in an assignment.
19756         (Get_Subprogram_Entity): New function
19757         (Known_To_Be_Assigned): New function
19758         (Type_Access_Level): Compute properly the access level of a return
19759         subtype that is an anonymous access type.
19760         (Explain_Limited_Type): Correct use of "\" for continuation messages.
19761         (Is_Transfer): The new extended_return_statement causes a transfer of
19762         control.
19763         (Has_Preelaborable_Initialization): New function
19764         (Has_Null_Exclusion): New function. Given a node N, determine whether it
19765         has a null exclusion depending on its Nkind.
19766         Change Is_Lvalue to May_Be_Lvalue
19767         (May_Be_Lvalue): Extensive additional code to deal with subprogram
19768         arguments (IN parameters are not Lvalues, IN OUT parameters are).
19769         (Safe_To_Capture_Value): Extend functionality so it can be used for
19770         the current value condition case.
19771         (Has_Compatible_Alignment): New function
19772         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
19773         objects to handle the Ada 2005 case, where aliasedness no longer implies
19774         that the object is constrained. In particular, for dereferenced names,
19775         the designated object must be assumed to be unconstrained.
19776         (Kill_Current_Values): Properly deal with the case where we encounter
19777         a loop in the scope chain.
19778         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
19779         a value.
19780         (Compile_Time_Constraint_Error): Improve error message in error case
19781
19782         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
19783         associated with entities of abstract interface primitives.
19784         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
19785
19786 2006-10-31  Robert Dewar  <dewar@adacore.com>
19787
19788         * s-osinte-tru64.adb:
19789         Mark Asm statements Volatile to prevent warnings (seems a
19790         reasonable change anyway)
19791         Fixes new warnings
19792
19793         * s-mastop-irix.adb: Add Volatile to Asm statements
19794         Suppresses warning, and seems appropriate in any case
19795
19796         * s-osinte-vms.adb: Add Volatile to Asm statement
19797
19798         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
19799
19800         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
19801         returned.
19802         Add call to Check_Code_Statement
19803
19804 2006-10-31  Robert Dewar  <dewar@adacore.com>
19805             Ed Schonberg  <schonberg@adacore.com>
19806             Bob Duff  <duff@adacore.com>
19807
19808         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
19809         Synchronized_Present): Add Formal_Derived_Type_Definition and
19810         Private_Extension_Declaration to the list of assertions.
19811         (Is_Entry_Barrier_Function): New flag
19812         (Has_Self_Reference): New flag on aggregates, to indicate that they
19813         contain a reference to the enclosing type, inserted through a default
19814         initialization.
19815         (Next_Rep_Item): Move from Node4 to Node5.
19816         (Entity): Add this field for N_Attribute_Definition_Clause.
19817         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
19818         (N_Return_Object_Declaration): Remove this node kind. We now use
19819         N_Object_Declaration instead.
19820         (Actual_Designated_Subtype): Move to a different place to make room in
19821         N_Extended_Return_Statement.
19822         (Procedure_To_Call): Move to a different place to make room in
19823         N_Extended_Return_Statement.
19824         (Return_Type): Removed this field to make room in return statements
19825         (both kinds).
19826         (Return_Statement_Entity): New field in return statements, in part to
19827         replace Return_Type, and in part to support the fact that return
19828         statements are now pushed on the scope stack during semantic analysis.
19829         (Return_Object_Declarations): New field to support extended return
19830         statements.
19831         (N_Extended_Return_Statement): New node for extended_return_statement
19832         nonterminal.
19833         (N_Return_Object_Declaration): New node for part of
19834         extended_return_statement nonterminal. Needed because all the necessary
19835         fields won't fit in N_Extended_Return_Statement.
19836         Generic_associations now carry the Box_Present flag, to indicate a
19837         default for an actual in a partially parametrized formal package.
19838
19839         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
19840         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
19841         and for the new predefined dispatching policies: EDF_Across_Priorities,
19842         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
19843         Introduce new name Stub_Type for implementation defined attribute.
19844         Add pragma Preelaborable_Initialization
19845         Add entry for Priority attribute.
19846         Add Pragma_Wide_Character_Encoding
19847         (Get_Convention_Name): Given a convention id, this function returns the
19848         corresponding name id from the names table.
19849
19850 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
19851             Robert Dewar  <dewar@adacore.com>
19852             Bob Duff  <duff@adacore.com>
19853
19854         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
19855         print null exclusion twice in the case of an access definition,
19856         Implement new -gnatL switch
19857         Remove N_Return_Object_Declaration. We now use
19858         N_Object_Declaration instead. Implement the case for
19859         N_Extended_Return_Statement. Alphabetize the cases.
19860         Add cases for new nodes N_Extended_Return_Statement and
19861         N_Return_Object_Declaration. The code is not yet written.
19862         Update the output for N_Formal_Object_Declaration
19863         and N_Object_Renaming_Declaration.
19864         (Write_Itype): Account for the case of a modular integer subtype whose
19865         base type is private.
19866
19867 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
19868
19869         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
19870         Remove elaboration code, now done in the binder.
19871
19872         * s-rident.ads: Make this unit Preelaborate.
19873         (No_Restrictions): New constant used to clean up code and follow
19874         preelaborate constraints.
19875
19876         * s-stalib.adb:
19877         Add System.Restrictions dependence, referenced directly from the
19878         binder generated file.
19879
19880 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
19881
19882         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
19883         True when AAMP extended floating-point is in use (48-bit). Change type
19884         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
19885         the two byte array types on AFloat. Change type of IV_Ilf overlay
19886         variable from Byte8 to ByteLF. Add appropriate initializations of
19887         floating-point overlays for AAMP cases.
19888
19889 2006-10-31  Javier Miranda  <miranda@adacore.com>
19890
19891         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
19892         (Get_Ceiling): New subprogram that returns
19893         the ceiling priority of the protected object.
19894         (Set_Ceiling): New subprogram that sets the new ceiling priority of
19895         the protected object.
19896
19897         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
19898
19899         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
19900
19901 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
19902
19903         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
19904         requeuing to the same protected object to give higher priority tasks
19905         the opportunity to execute.
19906
19907 2006-10-31  Robert Dewar  <dewar@adacore.com>
19908
19909         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
19910         add more precise check for the character sequence that follows '[' to
19911         avoid possible confusion in case if '[' is the last character of a
19912         string literals.
19913         (Scan_Wide): Always allow brackets encoding
19914
19915 2006-10-31  Olivier Hainque  <hainque@adacore.com>
19916
19917         * s-stchop.ads: make this unit preelaborate. This is desirable in
19918         general and made mandatory by the use of this unit by s-taprop which
19919         is itself preelaborate.
19920
19921         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
19922         Td_Events component.
19923
19924 2006-10-31  Vincent Celier  <celier@adacore.com>
19925
19926         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
19927         in file names.
19928
19929 2006-10-31  Vincent Celier  <celier@adacore.com>
19930
19931         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
19932
19933 2006-10-31  Vincent Celier  <celier@adacore.com>
19934
19935         * makegpr.adb (Check_Compilation_Needed): Take into account path names
19936         with spaces.
19937         (Check_Compilation_Needed): When checking a C or C++ source, do not
19938         resolve symbolic links.
19939         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
19940         When not in verbose mode and Ellipse is True, display "..." for the
19941         first argument with Display set to False.
19942         (Build_Global_Archive): Always set Display True for the first object
19943         file. Call Display_Command with Ellipse set to True.
19944
19945 2006-10-31  Matt Heaney  <heaney@adacore.com>
19946
19947         * a-crbtgo.ads: Commented each subprogram
19948
19949         * a-crbtgo.adb: Added reference to book from which algorithms were
19950         adapted.
19951
19952         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
19953         indicate which child.
19954         (Generic_Conditional_Insert): changed parameter name from "Success" to
19955         "Inserted".
19956         (Generic_Unconditional_Insert_With_Hint): improved algorithm
19957
19958         * a-coorse.adb (Replace_Element): changed parameter name in call to
19959         conditional insert operation.
19960
19961         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
19962
19963         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
19964         Generic_Iteration
19965
19966         * a-ciorse.adb (Replace_Element): changed parameter name in call to
19967         conditional insert operation.
19968
19969         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
19970         Generic_Iteration.
19971
19972         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
19973         instead of mode inout.
19974
19975         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
19976         draft
19977         (Generic_Read): preserve existing buckets array if possible
19978         (Generic_Write): don't send buckets array length anymore
19979
19980         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
19981         instead of mode inout.
19982
19983         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
19984         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19985
19986         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
19987         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
19988         (Replace_Element): local operation is now an instantiation
19989
19990         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
19991         check current length.
19992         (Generic_Replace_Element): new operation
19993
19994 2006-10-31  Doug Rupp  <rupp@adacore.com>
19995
19996         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
19997         Call TBK$SYMBOLIZE without omitting parameters.
19998
19999 2006-10-31  Vincent Celier  <celier@adacore.com>
20000
20001         * symbols-processing-vms-ia64.adb,
20002         symbols-processing-vms-alpha.adb (Process): Do not include symbols
20003         that come from generic instantiations in bodies.
20004
20005 2006-10-31  Pat Rogers  <rogers@adacore.com>
20006
20007         * a-rttiev.ads, a-rttiev.adb:
20008         This is a significant redesign primarily for the sake of automatic
20009         timer task termination but also to fix a design flaw.
20010         Therefore we are now using an RTS lock, instead of a protected
20011         object, to provide mutual exclusion to the queue of pending events
20012         and the type Timing_Event is no longer a protected type.
20013
20014 2006-10-31  Robert Dewar  <dewar@adacore.com>
20015             Cyrille Comar  <comar@adacore.com>
20016             Ben Brosgol  <brosgol@adacore.com>
20017
20018         * debug.adb:  Update flags documentation
20019
20020         * gnat_ugn.texi: Add documentation for new -gnatwq switch
20021         Clean up documentation for several other warning switches
20022         Clarify how task stack size can be specified with various
20023         versions of Windows.
20024         Add note that -gnatVo includes ranges including loops
20025         Add documentation for -gnatL switch
20026         Add note on elaboration warning for initializing variables
20027         Add documentation for new -gnatwt warning switch
20028         Document new form of pragma Warnings (On|Off, string)
20029         Add comment on use of pragma Warnings to control warnings
20030         Add documentation for -gnatjnn switch
20031         Modify section on interfacing with C for VMS 64-bit.
20032         Add doc for -gnatVe/E
20033         Add documentation of new warning flags -gnatww/-gnatwW
20034         Add warnings about address clause overlays to list of warnings
20035         (Exception Handling Control): Document that the option --RTS must be
20036         used consistently for gcc and gnatbind.
20037         Clarify that inlining is not always possible
20038         Update documentation on pragma Unchecked_Union.
20039
20040         * gnat_rm.texi:
20041         Add documentation for new extended version of pragma Obsolescent
20042         Add documentation for implementation defined attribute 'Stub_Type.
20043         Add note on use of Volatile in asm statements
20044         Add documentation on use of pragma Unreferenced in context clause
20045         Document new form of pragma Warnings (On|Off, pattern)
20046         Document pragma Wide_Character_Encoding
20047         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
20048         enforced if code generation is active.
20049         Add section on pragma Suppress to document GNAT specific check
20050         Alignment_Check
20051         Clarify difference between No_Dispatching_Calls & No_Dispatch.
20052         Add documentation for pragma Restrictions (No_Elaboration_Code)
20053
20054         * gnat-style.texi:
20055         Add comments on layout of subprogram local variables in the
20056         presence of nested subprograms.
20057
20058         * ug_words: Resync.
20059
20060         * elists.ads: Minor reformatting
20061         Node returns Node_Or_Entity_Id (doc change only)
20062
20063         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
20064
20065         * g-arrspl.ads (Create): Update comments.
20066
20067         * sem.ads: Add details on the handling of the scope stack.
20068
20069         * usage.adb: Update documentation.
20070
20071         * validsw.ads, validsw.adb:
20072         Add definition of Validity_Check_Components and implement -gnatVe/E
20073
20074         * vms_data.ads: Add missing VMS qualifiers.
20075
20076         * s-addope.ads: Add documentation on overflow and divide by zero
20077
20078 2006-10-31  Robert Dewar  <dewar@adacore.com>
20079             Thomas Quinot  <quinot@adacore.com>
20080             Arnaud Charlet  <charlet@adacore.com>
20081
20082         * fmap.adb: Put routines in alpha order
20083
20084         * g-boumai.ads: Remove redundant 'in' keywords
20085
20086         * g-cgi.adb: Minor reformatting
20087
20088         * g-cgi.ads: Remove redundant 'in' keywords
20089
20090         * get_targ.adb: Put routines in alpha order
20091
20092         * prj-attr.ads: Minor reformatting
20093
20094         * s-atacco.ads: Minor reformatting
20095
20096         * scn.adb: Put routines in alpha order
20097
20098         * sinput-l.adb: Minor comment fix
20099
20100         * sinput-p.adb: Minor comment fix
20101
20102         * s-maccod.ads: Minor reformatting
20103
20104         * s-memory.adb: Minor reformatting
20105
20106         * s-htable.adb: Fix typo in comment.
20107
20108         * s-secsta.adb: Minor comment update.
20109
20110         * s-soflin.adb: Minor reformatting
20111
20112         * s-stoele.ads:
20113         Add comment about odd qualification in Storage_Offset declaration
20114
20115         * s-strxdr.adb:
20116         Remove unnecessary 'in' keywords for formal parameters.
20117
20118         * treeprs.adt: Minor reformatting
20119
20120         * urealp.adb: Put routines in alpha order
20121
20122         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
20123         taking string.
20124
20125         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
20126
20127         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
20128
20129         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
20130         workaround as on other platforms.
20131
20132         * g-eacodu-vms.adb: Remove redundant 'in' keywords
20133         * g-expect-vms.adb: Remove redundant 'in' keywords
20134
20135         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
20136         clear error message if the list-of-files file cannot be opened.
20137
20138         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
20139         equality operator is always visible.
20140
20141         * lang.opt: Woverlength-strings: New option.
20142
20143         * nmake.adt:
20144         Update copyright, since nmake.ads and nmake.adb have changed.
20145
20146         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
20147         (Binder_Output_Time_Stamps_Set): removed.
20148         (Old_Binder_Output_Time_Stamp): idem.
20149         (New_Binder_Output_Time_Stamp): idem.
20150         (Recording_Time_From_Last_Bind): idem.
20151         (Recording_Time_From_Last_Bind): Make constant.
20152
20153         * output.ads, output.adb (Write_Str): Allow LF characters
20154         (Write_Spaces): New procedure
20155
20156         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
20157
20158         * inline.adb: Minor reformatting
20159
20160         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
20161
20162         * s-mastop-vms.adb: Remove redundant 'in' keywords
20163
20164         * s-osprim-vms.adb: Remove redundant 'in' keywords
20165
20166         * s-trafor-default.adb: Remove redundant 'in' keywords
20167
20168         * 9drpc.adb: Remove redundant 'in' keywords
20169
20170         * s-osinte-mingw.ads: Minor reformatting
20171
20172         * s-inmaop-posix.adb: Minor reformatting
20173
20174         * a-direio.ads: Remove quotes from Compile_Time_Warning message
20175
20176         * a-exexda.adb: Minor code reorganization
20177
20178         * a-filico.adb: Minor reformatting
20179
20180         * a-finali.adb: Minor reformatting
20181
20182         * a-nudira.ads: Remove quote from Compile_Time_Warning message
20183
20184         * a-numeri.ads: Minor reformatting
20185
20186         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
20187
20188         * exp_pakd.ads: Fix obsolete comment
20189
20190         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
20191         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
20192         Probably not a bug, but certainly neater and more efficient.
20193
20194         * a-tienio.adb: Minor reformatting
20195
20196         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
20197         Avoid assuming low bound of string is 1.
20198
20199         * gnatbind.adb: Change Bindusg to package and rename procedure as
20200         Display, which now ensures that it only outputs usage information once.
20201         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
20202
20203         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
20204         Table'First.
20205
20206         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
20207         warning.
20208         (Match): Add pragma Assert to ensure that Matches'First is zero
20209
20210         * g-regpat.ads (Match): Document that Matches lower bound must be zero
20211
20212         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
20213         documented preconditions (also kills warnings about bad indexes).
20214
20215         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
20216         is 1.
20217         (Build_Import_Library): Ditto;
20218
20219         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
20220
20221         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
20222
20223         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
20224         lower bound of choice table is 1.
20225
20226         * sem_case.ads (Analyze_Choices): Document that lower bound of
20227         Choice_Table is 1.
20228
20229         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
20230         string is 1.
20231
20232         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
20233         and add appropriate Assert pragma to suppress warnings.
20234
20235         * atree.h, atree.ads, atree.adb
20236         Change Elist24 to Elist25
20237         Add definitions of Field28 and Node28
20238         (Traverse_Field): Use new syntactic parent table in sinfo.
20239
20240         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
20241
20242         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
20243
20244         * exp_tss.adb: Put routines in alpha order
20245
20246         * fe.h: Remove redundant declarations.
20247
20248 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
20249
20250         * utils.c (builtin_function): Rename to gnat_builtin_function.
20251         Move common code to add_builtin_function.
20252         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
20253         gnat_builtin_function.
20254         * gigi.h (builtin_function): Rename to gnat_builtin_function.
20255         Change the signature.
20256
20257 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
20258
20259         * Makefile.in: Add TEXI2PDF definition.
20260         * Make-lang.in: Add "ada.pdf" target.
20261
20262 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
20263
20264         * decl.c, utils.c: Fix comment typos.
20265         * utils.c: Fix a typo.
20266
20267 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
20268
20269         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
20270         on "pure" Ada subprograms if SJLJ exceptions are used.
20271         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
20272         on the declaration node of JMPBUF_SAVE.
20273         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
20274         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
20275         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
20276
20277 2006-08-20  Laurent Guerby  <laurent@guerby.net>
20278
20279         PR ada/28716
20280         g-socket.adb (Bind_Socket): Call Set_Address.
20281
20282 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
20283
20284         PR ada/15802
20285         * decl.c (same_discriminant_p): New static function.
20286         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
20287         subtype and we have discriminants, fix up the COMPONENT_REFs
20288         for the discriminants to make them reference the corresponding
20289         fields of the parent subtype after it has been built.
20290
20291 2006-09-15  Roger Sayle  <roger@eyesopen.com>
20292
20293         PR ada/18817
20294         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
20295         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
20296
20297 2006-09-13  Olivier Hainque  <hainque@adacore.com>
20298
20299         PR ada/29025
20300         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
20301         of a SAVE_EXPR, just make the operand addressable/not-readonly and
20302         let the common gimplifier code make and propagate a temporary copy.
20303         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
20304         out/in-out actuals and defer setting the addressable/readonly bits
20305         to the gimplifier.
20306
20307 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
20308
20309         PR ada/28591
20310         * decl.c (components_to_record): Defer emitting debug info for the
20311         record type associated with the variant until after we are sure to
20312         actually use it.
20313
20314 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
20315
20316         PR ada/21952
20317         * gigi.h (gnat_internal_attribute_table): Declare.
20318         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
20319         * utils.c (gnat_internal_attribute_table): New global variable.
20320         (builtin_function): Always call decl_attributes on the builtin.
20321         (handle_const_attribute): New static function.
20322         (handle_nothrow_attribute): Likewise.
20323
20324 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
20325
20326         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
20327
20328 2006-06-23  Olivier Hainque  <hainque@adacore.com>
20329
20330         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
20331         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
20332
20333 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
20334             Eric Botcazou  <ebotcazou@adacore.com>
20335
20336         PR ada/18692
20337         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
20338         check-gnat into check-acats.
20339
20340 2006-06-17  Karl Berry  <karl@gnu.org>
20341
20342         * gnat-style.texi (@dircategory): Use "Software development"
20343         instead of "Programming", following the Free Software Directory.
20344
20345 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20346
20347         PR ada/27944
20348         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
20349
20350 2006-06-06  Laurent Guerby  <laurent@guerby.net>
20351
20352         PR ada/27769
20353         mlib-utl.adb: Use Program_Name.
20354
20355 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
20356
20357         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
20358         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
20359         trans.c, utils.c: Fix comment typos.  Follow spelling
20360         conventions.
20361         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
20362         conventions.
20363
20364 2006-05-19  Nicolas Setton  <setton@adacore.com>
20365
20366         * misc.c (gnat_dwarf_name): New function.
20367         (LANG_HOOKS_DWARF_NAME): Define to it.
20368
20369 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
20370
20371         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
20372         (ada/misc.o): Likewise.
20373         (ada/utils.o): Likewise.
20374
20375 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
20376
20377         * Makefile.in: Add Ada support for GNU/kFreeBSD.
20378         * s-osinte-kfreebsd-gnu.ads: New file.
20379
20380 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
20381
20382         * Make-lang.in: Rename docdir to gcc_docdir.
20383
20384 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
20385
20386         * gigi.h (get_ada_base_type): Delete.
20387         * utils2.c (get_ada_base_type): Likewise.
20388         * trans.c (convert_with_check): Operate in the real base type.
20389
20390 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20391
20392         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
20393
20394 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
20395
20396         * utils.c (create_var_decl): Use have_global_bss_p when deciding
20397         whether to make the decl common.
20398
20399 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
20400
20401         * Make-lang.in (Ada): Remove.
20402         (.PHONY): Remove Ada
20403
20404 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20405
20406         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
20407         aggregate, check the interpretations of the other operand to find one
20408         that may be a boolean array.
20409
20410         (Analyze_Selected_Component): Fix flow-of-control typo in case where
20411         the prefix is a private extension.
20412
20413 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
20414
20415         PR ada/26315
20416         * utils2.c (find_common_type): If both input types are BLKmode and
20417         have the same constant size, keep using the first one.
20418
20419         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
20420
20421         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
20422
20423         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
20424
20425 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
20426
20427         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
20428         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
20429         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
20430         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
20431         Abort_Defer/Undefer pairs to avoid the possibility of a task being
20432         aborted while owning a lock.
20433
20434 2006-02-17  Javier Miranda  <miranda@adacore.com>
20435             Robert Dewar  <dewar@adacore.com>
20436
20437         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
20438         through an access to class-wide interface we force the displacement of
20439         the pointer to the allocated object to reference the corresponding
20440         secondary dispatch table.
20441         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
20442         if Long_Shifts are supported on the target, even if 64 bit divides
20443         are not supported (configurable run time mode).
20444         (Expand_N_Type_Conversion): Do validity check if validity checks on
20445         operands are enabled.
20446         (Expand_N_Qualified_Expression): Do validity check if validity checks
20447         on operands are enabled.
20448
20449 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20450
20451         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
20452         must be materialized when the renamed expression is an explicit
20453         dereference.
20454
20455 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20456
20457         * freeze.adb (Statically_Discriminated_Components): Return false if
20458         the bounds of the type of the discriminant are not static expressions.
20459
20460         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
20461         the bounds of the discriminant type are not static.
20462
20463 2006-02-17  Robert Dewar  <dewar@adacore.com>
20464
20465         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
20466         then we close To if it is valid.
20467
20468 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
20469
20470         * init.c (facility_resignal_table): new array
20471         (__gnat_default_resignal_p): enhance default predicate to resignal if
20472         VMS condition has one of the predefined facility codes.
20473
20474 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
20475
20476         * Makefile.in: Use VMS64 specialized versions of several units in
20477         Interfaces.C hierarchy to be compatible with HP C default size choices.
20478         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
20479
20480 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20481
20482         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
20483         instantiation, the corresponding entity is the related_instance of the
20484         wrapper package created for the instance.
20485
20486 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20487
20488         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
20489         the current instance is nested within another instance in a child unit.
20490
20491 2006-02-17  Javier Miranda  <miranda@adacore.com>
20492             Ed Schonberg  <schonberg@adacore.com>
20493
20494         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
20495         type we cannot inherit the primitive operations; we inherit the
20496         Corresponding_Record_Type (which has the list of primitive operations).
20497         (Check_Anonymous_Access_Types): When creating anonymous access types for
20498         access components, use Rewrite in order to preserve the tree structure,
20499         for ASIS use.
20500         (Analyze_Object_Declaration): For limited types with access
20501         discriminants with defaults initialized by an aggregate, obtain
20502         subtype from aggregate as for other mutable types.
20503         (Derived_Type_Declaration): If the derived type is a limited interface,
20504         set the corresponding flag (Is_Limited_Record is not sufficient).
20505
20506 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
20507
20508         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
20509         to inline a function that returns an unconstrained type, the return
20510         expression must be the first variable declared in the body of the
20511         function.
20512
20513 2006-02-17  Javier Miranda  <miranda@adacore.com>
20514
20515         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
20516         abstract interface type, the static analysis is not enough to know if
20517         the interface is implemented or not by the source tagged type. Hence
20518         we must pass the work to the expander to generate the required code to
20519         evaluate the conversion at run-time.
20520         (Resolve_Equality_Op): Do not apply previous
20521         transformation if expansion is disasbled, to prevent anomalies when
20522         locating global references in a generic unit.
20523
20524 2006-02-17  Vincent Celier  <celier@adacore.com>
20525
20526         * snames.ads, snames.adb: New standard names for new project attributes:
20527         archive_builder, archive_indexer, compiler_pic_option,
20528         config_body_file_name, config_body_file_name_pattern,
20529         config_file_switches, config_file_unique, config_spec_file_name,
20530         config_spec_file_name_pattern, default_builder_switches,
20531         default_global_compiler_switches, default_language,
20532         dependency_file_kind, global_compiler_switches, include_path,
20533         include_path_file, language_kind, linker_executable_option,
20534         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
20535         roots, runtime_project.
20536
20537 2006-02-17  Matthew Heaney  <heaney@adacore.com>
20538
20539         * a-convec.ads, a-convec.adb:
20540         (operator "&"): handle potential overflow for large index types
20541         (Insert): removed Contraint_Error when using large index types
20542         (Insert_Space): removed Constraint_Error for large index types
20543         (Length): moved constraint check from Length to Insert
20544
20545         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
20546         as not null access.
20547         Explicit raise statements now include an exception message.
20548         (operator "&"): handle potential overflow for large index types
20549         (Insert): removed Contraint_Error when using large index types
20550         (Insert_Space): removed Constraint_Error for large index types
20551         (Length): moved constraint check from Length to Insert
20552
20553 2006-02-17  Robert Dewar  <dewar@adacore.com>
20554
20555         * s-wchcnv.adb: Document handling of [ on output (we do not change
20556         this to ["5B"] and the new comments say why not.
20557
20558         * gnat_ugn.texi:
20559         Add note for -gnatVo that this now includes the cases of type
20560         conversions and qualified expressions.
20561         Add comments on handling of brackets encoding for Text_IO
20562
20563 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
20564             Thomas Quinot  <quinot@adacore.com>
20565             Robert Dewar  <dewar@adacore.com>
20566             Javier Miranda  <miranda@adacore.com>
20567
20568         * expander.adb: Fix typo in comment
20569
20570         * exp_pakd.adb: Fix typo
20571         Minor comment reformatting.
20572
20573         * g-dyntab.adb: Minor reformatting
20574
20575         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
20576         aliased subprograms to look for the abstract interface subprogram.
20577
20578 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
20579
20580         * env.c (__gnat_setenv): Use size_t.
20581         (__gnat_unsetenv): Likewise.
20582         (__gnat_clearenv): Likewise.
20583
20584 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
20585
20586         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
20587
20588 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20589
20590         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
20591         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
20592         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
20593         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
20594         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
20595         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
20596         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
20597         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
20598         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
20599         no longer used.
20600
20601 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
20602
20603         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
20604         protection against race conditions is not needed.
20605         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
20606         fallback handler.
20607         (Set_Specific_Handler): Add mutual exclusive access to the specific
20608         handler.
20609         (Specific_Handler): Add mutual exclusive access for retrieving the
20610         specific handler.
20611
20612         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
20613         back handler.
20614
20615         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
20616         Fall_Back_Handler and Specific_Handler.
20617
20618         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
20619         termination handlers.
20620         Set two different owerflow depending on the maximal stack size.
20621
20622         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
20623         protection against race conditions is not needed when executing the
20624         task termination handler.
20625
20626 2006-02-13  Robert Dewar  <dewar@adacore.com>
20627
20628         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
20629         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
20630         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
20631         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
20632         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
20633         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
20634         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
20635         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
20636         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
20637         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
20638         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
20639         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
20640         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
20641         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
20642         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
20643         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
20644         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
20645         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
20646         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
20647         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
20648         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
20649         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
20650         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
20651         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
20652         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
20653         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
20654         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
20655         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
20656         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
20657         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
20658         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
20659         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
20660         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
20661         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
20662         reformatting.
20663
20664 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
20665
20666         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
20667         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
20668         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
20669         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
20670         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
20671         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
20672         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
20673         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
20674         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
20675
20676 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20677
20678         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
20679         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
20680         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
20681         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
20682         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
20683         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
20684         replaced by anonymous access type.
20685         (pthread_sigmask): Now take an access sigset_t
20686
20687         * s-osinte-hpux.ads:  Ditto.
20688         (pthread_mutex_t, pthread_cond_t): Update definitions to support
20689         properly 32 and 64 bit ABIs.
20690
20691 2006-02-13  Pascal Obry  <obry@adacore.com>
20692
20693         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
20694         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
20695         s-taprop-linux.adb, s-taprop-solaris.adb,
20696         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
20697         adjustement is already done when calling this routine.
20698
20699 2006-02-13  Pascal Obry  <obry@adacore.com>
20700
20701         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
20702         table to take advantage of the 16 priority levels available on Windows
20703         2000 and XP. On NT4 there are only 7 priority levels, this is properly
20704         supported by this new mapping.
20705
20706 2006-02-13  Nicolas Setton  <setton@adacore.com>
20707
20708         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
20709         (get_encoding): New subprogram. Extracts the encodings from an encoded
20710         Ada name.
20711
20712 2006-02-13  Pascal Obry  <obry@adacore.com>
20713             Nicolas Roche  <roche@adacore.com>
20714             Arnaud Charlet  <charlet@adacore.com>
20715
20716         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
20717         support.
20718         (__gnat_try_lock): Add unicode support by using a specific section on
20719         Windows.
20720         (__gnat_get_current_dir): Idem.
20721         (__gnat_open_read): Idem.
20722         (__gnat_open_rw): Idem.
20723         (__gnat_open_create): Idem.
20724         (__gnat_create_output_file): Idem.
20725         (__gnat_open_append): Idem.
20726         (__gnat_open_new): Idem.
20727         (__gnat_file_time_name): Idem.
20728         (__gnat_set_file_time_name): Idem.
20729         (__gnat_stat): Idem.
20730         (win32_no_block_spawn): Idem.
20731         (__gnat_locate_exec_on_path): Idem.
20732         (__gnat_opendir): New routine.
20733         (__gnat_closedir): Idem.
20734         (__gnat_readdir): Add new parameter length (pointer to int). Update
20735         implementation to use it and add specific Win32 code for Unicode
20736         support.
20737         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
20738         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
20739         (convert_addresses): Do not define this dummy routine on VMS.
20740
20741         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
20742         runtime Unicode support will be activated.
20743         (S2WS): String to Wide-String conversion. This version just copy a
20744         string in non Unicode version.
20745         (WS2S): Wide-String to String conversion. This version just copy a
20746         string in non Unicode version.
20747
20748         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
20749         (Open): Now import __gnat_opendir from adaint.c.
20750         (Read): Change the implementation to support unicode characters. It is
20751         not possible to use strlen() on Windows as this version supports only
20752         standard ASCII characters. So the length of the directory entry is now
20753         returned from the imported __gnat_readdir routine.
20754         Update copyright notice.
20755
20756         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
20757         (opendir): Moved to adaint.c.
20758
20759         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
20760         (Get_Directory): Fix wrong indexing.
20761         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
20762         __gnat_getenv from env.c
20763         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
20764         from env.c
20765
20766         * env.h, env.c: New file.
20767
20768         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
20769         adaint.c by __gnat_getenv from env.c
20770
20771         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
20772         adaint.c by __gnat_getenv from env.c
20773
20774         * Make-lang.in: Add env.o in the list of C object needed by gnat1
20775         and gnatbind.
20776         Update dependencies.
20777
20778 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20779             Olivier Hainque  <hainque@adacore.com>
20780             Eric Botcazou  <ebotcazou@adacore.com>
20781
20782         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
20783
20784         * gigi.h (value_factor_p): Add prototype and description, now public.
20785
20786         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
20787         promotion for field with rep clause if the associated size was proven
20788         to be in error.
20789         Expand comments describing attempts to use a packable type.
20790         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
20791         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
20792         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
20793         necessary since these are not different types and pointers may
20794         actually designate any subtype in this hierarchy.
20795         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
20796         discriminants but put them into record only if not Unchecked_Union;
20797         pass flag to components_to_record showing Unchecked_Union.
20798         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
20799         components before variants; don't set TYPE_UNCHECKED_UNION_P.
20800         (components_to_record): New argument UNCHECKED_UNION.
20801         Remove special case code for Unchecked_Union and instead use main code
20802         with small changes.
20803
20804         PR ada/26096
20805         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
20806         variable with the expression being built, only its inner field.
20807
20808         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
20809         emit_sequence_entry_statements.
20810         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
20811         (establish_gnat_vms_condition_handler): Move before
20812         Subprogram_Body_to_gnu.
20813         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
20814         for a subprogram if it has a foreign convention or is exported.
20815         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
20816         substituted for a CONST_DECL.
20817         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
20818         Etype to assoc_to_constructor.
20819         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
20820         discriminants of Unchecked_Union.
20821         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
20822         don't need cluttering preprocessor directives.
20823         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
20824         condition handler as current in the compiled function.
20825         (body_with_handlers_p): New function. Tell whether a given sequence of
20826         statements node is attached to a package or subprogram body and involves
20827         exception handlers possibly nested within inner block statements.
20828         (emit_sequence_entry_statements): New function, to emit special
20829         statements on entry of sequences when necessary. Establish GNAT
20830         condition handler in the proper cases for VMS.
20831         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
20832         emit_sequence_entry_statements.
20833
20834         * utils2.c (find_common_type): If both input types are BLKmode and
20835         have a constant size, use the smaller one.
20836         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
20837         the same.
20838
20839         * utils.c (value_factor_p): Make public, to allow uses from other gigi
20840         units.
20841         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
20842         (convert, case UNION_TYPE): Remove special treatment for unchecked
20843         unions.
20844
20845         PR ada/18659
20846         (update_pointer_to): Update variants of pointer types to unconstrained
20847         arrays by attaching the list of fields of the main variant.
20848
20849 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20850             Robert Dewar  <dewar@adacore.com>
20851
20852         * a-exexpr.adb, a-exexpr-gcc.adb
20853         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
20854         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
20855         Remove code unused for exception propagation for the compiler itself
20856         from a-except.adb and update to still share separate packages.
20857
20858         * a-except.ads, a-except.adb: Ditto.
20859         Add comments that this version is now used only by the compiler and
20860         other basic tools. The full version that includes the Ada 2005 stuff
20861         is in separate files a-except-2005.ads/adb. The reason is that we do
20862         not want to cause bootstrap problems with compilers not recognizing
20863         Wide_Wide_String.
20864         Add exception reason code PE_Implicit_Return
20865         Add new exception reason code (Null Exception_Id)
20866
20867         * a-except-2005.adb, a-except-2005.ads: New files.
20868
20869         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
20870
20871         * s-wchcon.adb: New file.
20872
20873         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
20874         (traceback.o deps): Likewise.
20875         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
20876         Activate build of GMEM instrumentation library on VMS targets.
20877         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
20878         Use a-except-2005.ads/adb for all run-time library builds unless
20879         specified otherwise.
20880         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
20881         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
20882         Use s-parame.adb on all native platforms.
20883         Use s-parame-vxworks.adb on all vxworks platforms.
20884         Add env.c env.h in LIBGNAT_SRCS
20885         Add env.o in LIBGNAT_OBJS
20886         (GNATMAKE_OBJS): Remove ctrl_c.o object.
20887         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
20888         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
20889         supports VxWorks 6 RTPs.
20890         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
20891         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
20892
20893         * types.h, types.ads (Terminate_Program): New exception
20894         Add comment on modifying multiple versions of a-except.adb when the
20895         table of exception reasons is modified.
20896         Add exception reason code PE_Implicit_Return
20897         Add new exception reason code (Null Exception_Id)
20898
20899         * clean.adb (Initialize): Get the target parameters before checking
20900         if target is OpenVMS. Move the OpenVMS specific code here from package
20901         body elaboration code.
20902
20903 2006-02-13  Thomas Quinot  <quinot@adacore.com>
20904             Vincent Celier  <celier@adacore.com>
20905             Robert Dewar  <dewar@adacore.com>
20906
20907         * ali-util.adb (Get_File_Checksum): Update to account for change in
20908         profile of Initialize_Scanner.
20909
20910         * gprep.adb (Gnatprep): Update to account for change in profile of
20911         Initialize_Scanner.
20912         (Process_One_File): Same.
20913
20914         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
20915         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
20916         that behaviour using the new Unit information recorded in the source
20917         files table, rather than going through all units every time.
20918         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
20919         (Get_Source_Unit): Same.
20920
20921         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
20922         change in profile of Initialize_Scanner.
20923         (Prepare_To_Preprocess): Same.
20924
20925         * lib.ads: Fix typo in comment (templace -> template).
20926
20927         * prj-part.adb (Parse_Single_Project): Update to account for change in
20928         profile of Initialize_Scanner.
20929
20930         * scn.adb (Initialize_Scanner): Account for change in profile of
20931         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
20932         Also record the association of the given Source_File_Index to the
20933         corresponding Unit_Number_Type.
20934
20935         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
20936         procedure.
20937         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
20938         Remove Unit formal for generic scanner: this formal
20939         is only relevant to Scn (the scanner instance used to parse Ada source
20940         files), not to other instances. Update comment accordingly.
20941         (Scan): Use new function Snames.Is_Keyword_Name.
20942
20943         * sinfo-cn.adb: Fix typo in comment.
20944
20945         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
20946         Unit.
20947
20948         * sinput.ads (Source_File_Record): New component Unit, used to capture
20949         the unit identifier (if any) associated to a source file.
20950
20951         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
20952         Unit in Source_File_Record.
20953
20954         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
20955         in profile of Initialize_Scanner.
20956
20957         * scans.adb (Initialize_Ada_Keywords): New procedure
20958
20959         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
20960         Ada keywords in the Namet table, without the need to call
20961         Initialize_Scanner.
20962
20963         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
20964         (Is_Keyword_Name): New function
20965
20966         * snames.ads: Add subtype Configuration_Pragma_Names
20967         Add pragma Ada_2005 (synonym for Ada_05)
20968         (Is_Keyword_Name): New function
20969
20970         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
20971
20972 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20973
20974         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
20975         index.
20976
20977         * a-stwima.adb (To_Set): Add extra check when N = 0.
20978
20979         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
20980
20981 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
20982
20983         * s-parame-mingw.adb, s-parame-linux.adb,
20984         s-parame-solaris.adb: Removed, replaced by s-parame.adb
20985
20986         * s-parame-vxworks.ads: Fix typo.
20987
20988         * s-parame-vxworks.adb: New file.
20989
20990         * s-parame.adb: Version now used by all native platforms.
20991         (Default_Stack_Size): Use 2 megs for default stack size and use
20992         __gl_default_stack_size when available.
20993         (Minimum_Stack_Size): Use 12K.
20994
20995         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
20996         (Create_Task): Refine implementation taking advantage of the XP stack
20997         size support. On XP, we now create the thread using the flag
20998         STACK_SIZE_PARAM_IS_A_RESERVATION.
20999
21000         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
21001
21002         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
21003         XP and 0 on older Windows versions.
21004
21005         * interfac-vms.ads: Removed, no longer used.
21006
21007 2006-02-13  Matthew Heaney  <heaney@adacore.com>
21008
21009         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
21010         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
21011         a-cohase.adb: All explicit raise statements now include an exception
21012         message.
21013
21014         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
21015         (Update_Element_Preserving_Key): renamed op to just Update_Element.
21016         Explicit raise statements now include an exception message
21017
21018         * a-cihase.ads, a-cohase.ads: Removed comment.
21019
21020         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
21021         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
21022         a-szbzha.adb, a-szfzha.ads: New files.
21023
21024 2006-02-13  Matthew Heaney  <heaney@adacore.com>
21025
21026         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
21027         quicksort.
21028
21029 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
21030
21031         * lang.opt: Wvariadic-macros: New option.
21032         Wold-style-definition: Likewise.
21033         Wmissing-format-attribute: Likewise.
21034
21035         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
21036         -Wold-style-definition and -Wmissing-format-attribute.
21037
21038 2006-02-13  Robert Dewar  <dewar@adacore.com>
21039
21040         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
21041
21042         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
21043
21044 2006-02-13  Nicolas Roche  <roche@adacore.com>
21045
21046         * a-envvar.adb, a-envvar.ads: New files.
21047
21048 2006-02-13  Douglas Rupp  <rupp@adacore.com>
21049
21050         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
21051
21052         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
21053
21054 2006-02-13  Pat Rogers  <rogers@adacore.com>
21055
21056         * a-rttiev.adb, a-rttiev.ads: New files.
21057
21058 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
21059
21060         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
21061         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
21062
21063         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
21064
21065 2006-02-13  Robert Dewar  <dewar@adacore.com>
21066
21067         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
21068         sem_case.adb: Minor code reorganization (not Present should be No)
21069
21070 2006-02-13  Geert Bosch  <bosch@adacore.com>
21071             Gary Dismukes  <dismukes@adacore.com>
21072
21073         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
21074         0, since the lower bound of the actual string may be greater than one.
21075
21076         PR ada/20753
21077         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
21078         layout is requested.
21079
21080 2006-02-13  Vincent Celier  <celier@adacore.com>
21081
21082         * back_end.adb (Scan_Compiler_Arguments): Check if
21083         Search_Directory_Present is True and, if it is, add the argument in
21084         the source search directory path.
21085
21086         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
21087         Search_Directory_Present to True.
21088
21089 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
21090
21091         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
21092         volatile, to tell the compiler to preserve this variable at any level
21093         of optimization.
21094         (Gen_Versions_Ada): Temporarily work around codegen bug.
21095
21096 2006-02-13  Vincent Celier  <celier@adacore.com>
21097
21098         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
21099         gcc to link with option -shared-libgcc.
21100         (Gnatlink): Remove duplicate switches -shared-libgcc
21101
21102 2006-02-13  Robert Dewar  <dewar@adacore.com>
21103
21104         * gnatvsn.ads (Current_Year): New constant, used to easily update
21105         copyright on all GNAT tools.
21106
21107         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
21108         copyright notice.
21109
21110 2006-02-13  Robert Dewar  <dewar@adacore.com>
21111
21112         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
21113         after hyphen (small aesthetic change useful for a range of numbers
21114         using ^-^.
21115         Suppress range checks for a couple of assignments which otherwise
21116         cause validity checks with validity checking turned on.
21117
21118         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
21119         Improvement in error message for object.
21120         (Rep_Item_Too_Late): Remove '!' in warning message.
21121
21122 2006-02-13  Robert Dewar  <dewar@adacore.com>
21123             Eric Botcazou  <ebotcazou@adacore.com>
21124
21125         * err_vars.ads: Suppress range checks for a couple of assignments
21126         which otherwise cause validity checks with validity checking turned on.
21127         Update comments.
21128
21129         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
21130         Make message unconditional if it is a warning.
21131         (Error_Msg_NEL): Always output warning messages.
21132         Suppress range checks for a couple of assignments which otherwise
21133         cause validity checks with validity checking turned on.
21134
21135         * errout.ads (Message Insertion Characters): Document that '!' is
21136         implied by '?' in error messages.
21137
21138         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
21139         (Gnat1drv): Use a goto to end of main subprogram instead of
21140         Exit_Program (E_Success) so that finalization can occur normally.
21141
21142 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
21143
21144         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
21145         wrapped around.
21146
21147 2006-02-13  Vincent Celier  <celier@adacore.com>
21148
21149         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
21150         Unchecked_Conversion functions.
21151         (Modification_Time): Use direct conversion of OS_Time to Calendar time
21152         when OpenVMS returns False.
21153
21154         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
21155         a-dirval.adb (OpenVMS): New Boolean function
21156
21157 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21158             Thomas Quinot  <quinot@adacore.com>
21159
21160         * checks.adb (Build_Discriminant_Checks): If the expression being
21161         checks is an aggregate retrieve the values of its discriminants to
21162         generate the check, rather than creating a temporary and a reference
21163         to it.
21164         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
21165         (Install_Null_Excluding_Check): Ditto
21166         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
21167         not for the renamed object, so that the actual itype is attached in the
21168         proper context.
21169
21170 2006-02-13  Robert Dewar  <dewar@adacore.com>
21171             Vincent Celier  <celier@adacore.com>
21172
21173         * debug.adb: Eliminate numeric switches for binder/gnatmake
21174
21175         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
21176         switches for the compiler.
21177         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
21178         (Scan_Make_Switches): When failing with an illegal switch, output an
21179         error message with the full switch.
21180         Eliminate numeric switches for binder/gnatmake
21181
21182         * switch.ads, switch.adb (Bad_Switch): New procedure
21183
21184         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
21185         Remove 0-9 as debug flag character possibilities
21186         -d is now controlling the primary stack size when its value is a
21187         positive. Also add checks against invalid values, and support for kb,
21188         mb. Ditto for -D switch.
21189
21190 2006-02-13  Robert Dewar  <dewar@adacore.com>
21191             Serguei Rybin  <rybin@adacore.com>
21192
21193         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
21194         save/restore routines.
21195         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21196         were not always properly handled previously.
21197         Since we are changing the tree format anyway, also get rid of the
21198         junk obsolete Immediate_Errors flag.
21199         (Tree_Read): Change the way of reading Tree_Version_String - now we
21200         read the version string from the tree even if its length is not the
21201         same as the length of the version string computed from Gnatvsn.
21202         (Search_Directory_Present): New Boolean flag for the compiler.
21203         Define Tree_Version_String as a dynamic string.
21204         (Default_Stack_Size): new variable, used to handle switch -d.
21205
21206         * par-prag.adb:
21207         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
21208         only for main unit.
21209         Add pragma Ada_2005 (synonym for Ada_05)
21210         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21211         were not always properly handled previously.
21212
21213         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
21214         explicit Ada_95 to Ada_2005.
21215
21216 2006-02-13  Javier Miranda  <miranda@adacore.com>
21217             Robert Dewar  <dewar@adacore.com>
21218             Ed Schonberg  <schonberg@adacore.com>
21219
21220         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
21221         against errors in the source program: a private types for which the
21222         corresponding full type declaration is missing and pragma CPP_Virtual
21223         is used.
21224         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
21225         (Is_Known_Null): New flag
21226         (Has_Pragma_Pure): New flag
21227         (No_Return): Present in all entities, set only for procedures
21228         (Is_Limited_Type): A type whose ancestor is an interface is limited if
21229         explicitly declared limited.
21230         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
21231         entities. Only used for component marked Is_Tag. If present it stores
21232         the Offset_To_Top function used to provide this value in tagged types
21233         whose ancestor has discriminants.
21234
21235         * exp_ch2.adb: Update status of new Is_Known_Null flag
21236
21237         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
21238
21239         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
21240         the categorization sense if Is_Pure was set by pragma Pure_Function.
21241
21242 2006-02-13  Quentin Ochem  <ochem@adacore.com>
21243             Olivier Hainque  <hainque@adacore.com>
21244
21245         * bindusg.adb: Updated documentation for -d and -D switches.
21246
21247         * raise.h (__gnat_set_globals): added new parameter for
21248         Default_Stack_Size.
21249
21250         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
21251         (__gnat_handle_vms_condition): Adjust context before raise.
21252         (__gnat_install_handler): Restore the global vector setup for GCC
21253         versions before 3.4, as the frame based circtuitry is not available
21254         in this case.
21255         (__gnat_set_globals): added a parameter default_stack_size
21256         (__gl_default_stack_size): new variable.
21257
21258 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21259
21260         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
21261         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
21262         does not exist in the Ada RM.
21263         (Compatible_Int_Bounds): Determine whether two integer range bounds
21264         are of equal length and have the same start and end values.
21265         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
21266         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
21267         aggregate when it is part of an object declaration.
21268         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
21269         constrains discriminants of its parent, add explicitly the discriminant
21270         constraints of the ancestor by retrieving them from the
21271         stored_constraint of the parent.
21272
21273 2006-02-13  Robert Dewar  <dewar@adacore.com>
21274
21275         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
21276         attribute Mechanism_Code is applied to renamed subprogram, modify
21277         prefix to point to base subprogram.
21278         Max/Min attributes now violate Restriction No_Implicit_Conditionals
21279
21280         * sinfo.ads: Document that Mechanism_Code cannot be applied to
21281         renamed subprograms so that the front-end must replace the prefix
21282         appropriately.
21283
21284 2006-02-13  Javier Miranda  <miranda@adacore.com>
21285             Gary Dismukes  <dismukes@adacore.com>
21286
21287         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
21288         availability of RE_Interface_Tag.
21289         (Build_Initialization_Call): Fix wrong access to the discriminant value.
21290         (Freeze_Record_Type): Do not generate the tables associated with
21291         timed and conditional dispatching calls through synchronized
21292         interfaces if compiling under No_Dispatching_Calls restriction.
21293         When compiling for Ada 2005, for a nonabstract
21294         type with a null extension, call Make_Controlling_Function_Wrappers
21295         and insert the wrapper function declarations and bodies (the latter
21296         being appended as freeze actions).
21297         (Predefined_Primitive_Bodies): Do not generate the bodies of the
21298         predefined primitives associated with timed and conditional
21299         dispatching calls through synchronized interfaces if we are
21300         compiling under No_Dispatching_Calls.
21301         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
21302         service is available before generating a call.
21303         (Make_Controlling_Function_Wrappers): New procedure.
21304         (Expand_N_Full_Type_Declaration): Create a class-wide master for
21305         access-to-limited-interfaces because they can be used to reference
21306         tasks that implement such limited interface.
21307         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
21308         procedure spec and body of the Offset_To_Top function that is generated
21309         when the parent of a type with discriminants has secondary dispatch
21310         tables.
21311         (Init_Secondary_Tags): Handle the case in which the parent of the type
21312         containing secondary dispatch tables has discriminants to generate the
21313         correct arguments to call Set_Offset_To_Top.
21314         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
21315
21316         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
21317         Add Wide_[Wide_]Expanded_Name.
21318         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
21319         the same functionality of Get_Prim_Op_Address but applied to predefined
21320         primitive operations because the pointers to the predefined primitives
21321         are now saved in a separate table.
21322         (Parent_Size): Modified to get access to the separate table of primitive
21323         operations or the parent type.
21324         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
21325         functionality of Set_Prim_Op_Address but applied to predefined primitive
21326         operations.
21327         (Set_Signature): New subprogram used to store the signature of a DT.
21328         (Displace): If the Offset_To_Top value is not static then call the
21329         function generated by the expander to get such value; otherwise use
21330         the value stored in the table of interfaces.
21331         (Offset_To_Top): The type of the actual has been changed to Address to
21332         give the correct support to tagged types with discriminants. In this
21333         case this value is stored just immediately after the tag field.
21334         (Set_Offset_To_Top): Two new formals have been added to indicate if the
21335         offset_to_top value is static and hence pass this value to the run-time
21336         to store it in the table of interfaces, or else if this value is dynamic
21337         and then pass to the run-time the address of a function that is
21338         generated by the expander to provide this value for each object of the
21339         type.
21340
21341         * rtsfind.ads (Default_Prin_Op_Count): Removed.
21342         (Default_Prim_Op_Count): New entity
21343         (Get_Predefined_Prim_Op_Address): New entity
21344         (Set_Predefined_Prim_Op_Address): New entity
21345         (RE_Set_Signature): New entity
21346
21347 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21348             Ed Schonberg  <schonberg@adacore.com>
21349
21350         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
21351         Make_Adjust_Call done for a newly-allocated object.
21352
21353         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
21354         in a subprogram are wrapped in a cleanup block, indicate that the
21355         subprogram contains an inner block with an exception handler.
21356         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
21357         Adjust call is for a newly-allocated object. In that case we must not
21358         assume that the finalization list chain pointers are correct (since they
21359         come from a bit-for-bit copy of the original object's pointers) so if
21360         the attach level would otherwise be zero (no change), we set it to 4
21361         instead to cause the pointers to be reset to null.
21362
21363         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
21364         reset chain pointers to null.
21365
21366 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21367
21368         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
21369         string, and the context requires a loop for the assignment (e.g.
21370         because the left-hand side is packed), generate a unique name for the
21371         temporary that holds the string, to prevent spurious name clashes.
21372
21373 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21374             Javier Miranda  <miranda@adacore.com>
21375             Robert Dewar  <dewar@adacore.com>
21376             Gary Dismukes  <dismukes@adacore.com>
21377
21378         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
21379         return unconstrained arrays.
21380         Update comments.
21381         (Expand_Call):  An indirect call through an access parameter of a
21382         protected operation is not a protected call.
21383         Add circuit to raise CE in Ada 2005 mode following call
21384         to Raise_Exception.
21385         (Register_DT_Entry): Do nothing if
21386         the run-time does not give support to abstract interfaces.
21387         (Freeze_Subprogram): In case of dispatching operations, do not generate
21388         code to register the operation in the dispatch table if the source
21389         is compiled with No_Dispatching_Calls.
21390         (Register_Predefined_DT_Entry): Generate code that calls the new
21391         run-time subprogram Set_Predefined_Prim_Op_Address instead of
21392         Set_Prim_Op_Address.
21393
21394         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
21395         on array assignments if the right-hand side is a function call that has
21396         been inlined. Check is performed on the assignment in the block.
21397         (Process_Bounds): If bounds and range are overloaded, apply preference
21398         rule for root operations to disambiguate, and diagnose true ambiguity.
21399         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
21400         a tag-indeterminate right-hand side even when Expander_Active is True.
21401         Needed to ensure that dispatching calls to T'Input are allowed and
21402         get the tag of the target class-wide object.
21403
21404         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
21405         an inherited primitive operation that already overrides several
21406         abstract interface primitives. For transitivity, the new entity must
21407         also override all the abstract interface primitives covered by the
21408         inherited overriden primitive.
21409         Emit warning if new entity differs from homograph in same scope only in
21410         that one has an access parameter and the other one has a parameter of
21411         a general access type with the same designated type, at the same
21412         position in the signature.
21413         (Make_Inequality_Operator): Use source locations of parameters and
21414         subtype marks from corresponding equality operator when creating the
21415         tree structure for the implicit declaration of "/=". This does not
21416         change anything in behaviour except that the decoration of the
21417         components of the subtree created for "/=" allows ASIS to get the
21418         string images of the corresponding identifiers.
21419         (Analyze_Return_Statement): Remove '!' in warning message.
21420         (Check_Statement_Sequence): Likewise.
21421         (Analyze_Subprogram_Body): For an access parameter whose designated type
21422         is an incomplete type imported through a limited_with clause, use the
21423         type of the corresponding formal in the body.
21424         (Check_Returns): Implicit return in No_Return procedure now raises
21425         Program_Error with a compile time warning, instead of beging illegal.
21426         (Has_Single_Return):  Function returning unconstrained type cannot be
21427         inlined if expression in unique return statement is not an identifier.
21428         (Build_Body_To_Inline): It is possible to inline a function call that
21429         returns an unconstrained type if all return statements in the function
21430         return the same local variable. Subsidiary procedure Has_Single_Return
21431         verifies that the body conforms to this restriction.
21432
21433         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
21434         same type, and  one of them is of an anonymous access type, convert
21435         the other operand to it, so that this is a valid binary operation for
21436         gigi.
21437         (Resolve_Type_Conversion): Handle subtypes of protected types and
21438         task types when accessing to the corresponding record type.
21439         (Resolve_Allocator): Add '\' in 2-line warning message.
21440         Remove '!' in warning message.
21441         (Resolve_Call): Add '\' in 2-line warning message.
21442         (Valid_Conversion): Likewise.
21443         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
21444         resulting type may be an access type with an implicit dereference.
21445         Obtain the proper component from the designated type.
21446         (Make_Call_Into_Operator): Handle properly a call to predefined equality
21447         given by an expanded name with prefix Standard, when the operands are
21448         of an anonymous access type.
21449         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
21450         Explicit_Dereference and Resolve_Selected_Component, to verify that the
21451         prefix of the expression is not of an incomplete type. Allows full
21452         diagnoses of all semantic errors.
21453         (Resolve_Actuals): If the actual is an allocator whose directly
21454         designated type is a class-wide interface we build an anonymous
21455         access type to use it as the type of the allocator. Later, when
21456         the subprogram call is expanded, if the interface has a secondary
21457         dispatch table the expander will add a type conversion to force
21458         the displacement of the pointer.
21459         (Resolve_Call): If a function that returns an unconstrained type is
21460         marked Inlined_Always and inlined, the call will be inlined and does
21461         not require the creation of a transient scope.
21462         (Check_Direct_Boolean_Op): Removed
21463         (Resolve_Comparison_Op): Remove call to above
21464         (Resolve_Equality_Op): Remove call to above
21465         (Resolve_Logical_Op): Inline above, since this is only call.
21466         (Valid_Conversion): Handle properly conversions between arrays of
21467         convertible anonymous access types.
21468
21469         PR ada/25885
21470         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
21471         the literal in an unchecked conversion, because GCC 4.x needs a static
21472         value for a string bound.
21473
21474 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21475             Hristian Kirtchev  <kirtchev@adacore.com>
21476
21477         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
21478         components of the corresponding record, take into account component
21479         definitions that are access definitions.
21480         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
21481         procedure is not considered a dispatching call and will be expanded
21482         properly.
21483
21484 2006-02-13  Javier Miranda  <miranda@adacore.com>
21485
21486         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
21487         controlling argument of the dispatching call is an abstract interface
21488         class-wide type then we use it directly.
21489         Check No_Dispatching_Calls restriction.
21490         (Default_Prim_Op_Position): Remove the code that looks for the last
21491         entity in the list of aliased subprograms. This code was wrong in
21492         case of renamings.
21493         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
21494         when the source is compiled with the No_Dispatching_Calls restriction.
21495         (Init_Predefined_Interface_Primitives): No need to inherit primitives
21496         if we are compiling with restriction No_Dispatching_Calls.
21497         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
21498         subprograms if we are compiling under No_Dispatching_Calls restriction.
21499         (Make_DT): Generate a dispatch table with a single dummy entry if
21500         we are compiling with the No_Dispatching_Calls restriction. In
21501         addition, in this case we don't generate code that calls to the
21502         following run-time subprograms: Set_Type_Kind, Inherit_DT.
21503         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
21504         of this subprogram if compiling with the No_Dispatching_Calls
21505         restriction.
21506         (Expand_Type_Conversion): Instead of using the actual parameter,
21507         the argument passed as parameter to the conversion function was
21508         erroneously referenced by the expander.
21509         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
21510         Set_Predefined_Primitive_Op_Address and Set_Signature.
21511         (Expand_Dispatching_Call): Generate call to
21512         Get_Predefined_Prim_Op_Address for predefined primitives.
21513         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
21514         predefined primitives.
21515         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
21516         primitives we reserve one dummy entry to ensure that the tag does not
21517         point to some memory that is associated with some other object. In
21518         addition, remove all the old code that generated the assignments
21519         associated with the signature of the dispatch table and replace them
21520         by a call to the new subprogram Set_Signature.
21521         (Set_All_DT_Position): Change the algorithm because now we have a
21522         separate dispatch table associated with predefined primitive operations.
21523         (Expand_Interface_Conversion): In case of non-static offset_to_top
21524         add explicit dereference to get access to the object after the call
21525         to displace the pointer to the object.
21526         (Expand_Interface_Thunk): Modify the generation of the actual used
21527         in the calls to the run-time function Offset_To_Top to fulfil its
21528         new interface.
21529         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
21530
21531 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21532
21533         * exp_dist.adb (Copy_Specification): For access parameters, copy
21534         Null_Exclusion flag, which will have been set for stream subprograms
21535         in Ada2005 mode.
21536
21537 2006-02-13  Pascal Obry  <obry@adacore.com>
21538
21539         * expect.c (__gnat_expect_portable_execvp): New implementation. The
21540         previous implementation was using the C runtime spawnve routine but
21541         the corresponding wait was using directly the Win32 API. This was
21542         causing some times a lock when waiting for an event using
21543         WaitForSingleObject in __gnat_waitpid. This new implementation uses
21544         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
21545         API fixes this problem.
21546
21547 2006-02-13  Robert Dewar  <dewar@adacore.com>
21548
21549         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
21550         call.
21551
21552 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21553
21554         * exp_pakd.ads: Fix typos in comments.
21555
21556         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
21557         array reference that is an explicit dereference, mark the converted
21558         (packed) array reference as analyzed to prevent a forthcoming
21559         reanalysis from resetting its type to the original (non-packed) array
21560         type.
21561
21562 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21563             Javier Miranda  <miranda@adacore.com>
21564             Eric Botcazou  <ebotcazou@adacore.com>
21565
21566         * exp_util.ads, exp_util.adb (Find_Prim_Op,
21567         Is_Predefined_Primitive_Operation): When
21568         searching for the predefined equality operator, verify that operands
21569         have the same type.
21570         (Is_Predefined_Dispatching_Operation): Remove the code that looks
21571         for the last entity in the list of aliased subprograms. This code
21572         was wrong in case of renamings.
21573         (Set_Renamed_Subprogram): New procedure
21574         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
21575         Exp_Type constant computed when entering this subprogram.
21576         (Known_Null): New function
21577         (OK_To_Do_Constant_Replacement): New function
21578         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
21579         (Side_Effect_Free): An attribute reference 'Input is not free of
21580         side effect, unlike other attributes that are functions. (from code
21581         reading).
21582         (Remove_Side_Effects): Expressions that involve packed arrays or records
21583         are copied at the point of reference, and therefore must be marked as
21584         renamings of objects.
21585         (Is_Predefined_Dispatching_Operation): Return false if the operation is
21586         not a dispatching operation.
21587
21588         PR ada/18819
21589         (Remove_Side_Effects): Lift enclosing type conversion nodes for
21590         elementary types in all cases.
21591
21592 2006-02-13  Javier Miranda  <miranda@adacore.com>
21593
21594         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
21595         task types when accessing to the corresponding record type.
21596         Remove '!' in warning message.
21597
21598 2006-02-13  Olivier Hainque  <hainque@adacore.com>
21599
21600         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
21601         to avoid useless and space inefficient overalignments on targets where
21602         Max_Alignment is larger than 16.
21603
21604 2006-02-13  Pascal Obry  <obry@adacore.com>
21605
21606         * g-catiio.adb (Sec_Number): New type used to compute the number of
21607         seconds since 1-1-1970.
21608         (Image) [Natural]: The parameter was an Integer, as we can't deal with
21609         negative numbers (years, months...) it is better to have a Natural here.
21610         Code clean-up.
21611         (Image) [Number]: Change parameter from Long_Integer to Number.
21612         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
21613         overflow for dates past year 2038.
21614
21615 2006-02-13  Matthew Heaney  <heaney@adacore.com>
21616
21617         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
21618         Constraint_Error.
21619
21620 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
21621
21622         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
21623         native platforms.
21624         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
21625         finalization can occur normally.
21626
21627 2006-02-13  Vincent Celier  <celier@adacore.com>
21628
21629         * gnatcmd.adb (Rules_Switches): New table
21630         (Add_To_Rules_Switches): New procedure
21631         (GNATCmd): For command CHECK, put all options following "-rules" in the
21632         Rules_Switches table. Append these -rules switches after the -cargs
21633         switches.
21634
21635 2006-02-13  Robert Dewar  <dewar@adacore.com>
21636
21637         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
21638         These two cases were generating incorrect output, and if this unit
21639         was built with checks on, generated a discriminant mismatch constraint
21640         error.
21641
21642 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21643             Robert Dewar  <dewar@adacore.com>
21644
21645         * lib-xref.adb (Get_Type_Reference): For a private type whose full
21646         view is an array type, indicate the component type as well, for
21647         navigation purposes.
21648         (Generate_Reference): Don't consider array ref on LHS to be a case
21649         of violating pragma Unreferenced.
21650         Do not give Ada 2005 warning except on real reference.
21651
21652 2006-02-13  Vincent Celier  <celier@adacore.com>
21653
21654         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
21655         main source, add switch -mdebug-main=_ada_ so that the executable can
21656         be debugged by the standard VMS debugger.
21657         (Gnatmake): Set No_Main_Subprogram to True when there is no main
21658         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
21659         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
21660         of the last source, as the binding and linking phases are never
21661         performed.
21662         Set all executable obsolete when rebuilding a library.
21663
21664         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
21665         options.
21666
21667 2006-02-13  Javier Miranda  <miranda@adacore.com>
21668
21669         PR ada/23973
21670         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
21671         code to improve the error message reported when the program has
21672         declarations of abstract interface types and it is not compiled with
21673         the -gnat05 switch.
21674         (P_Access_Definition): Reorganize the code to improve the error
21675         message reported when the new Ada 2005 syntax for anonymous
21676         access types is used and the program is not compiled with the
21677         -gnat05 switch.
21678
21679 2006-02-13  Robert Dewar  <dewar@adacore.com>
21680
21681         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
21682         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
21683         (MODE_IN)
21684
21685 2006-02-13  Javier Miranda  <miranda@adacore.com>
21686
21687         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
21688         against source containing syntax errors.
21689
21690 2006-02-13  Vincent Celier  <celier@adacore.com>
21691
21692         * prj.adb (Reset): Initialize the first element of table Namings with
21693         the standard naming data.
21694
21695 2006-02-13  Vincent Celier  <celier@adacore.com>
21696
21697         * prj.ads (Error_Warning): New enumeration type
21698
21699         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
21700         unknown, use the location of the project to report the error.
21701         (When_No_Sources): New global variable
21702         (Report_No_Ada_Sources): New procedure
21703         (Check): New parameter When_No_Sources. Set value of global variable
21704         When_No_Sources,
21705         (Find_Sources): Call Report_No_Ada_Sources when appropriate
21706         (Get_Sources_From_File): Ditto
21707         (Warn_If_Not_Sources): Better warning messages indicating the unit name
21708         and the file name.
21709
21710         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
21711         Call Prj.Proc.Process with parameter When_No_Sources.
21712
21713         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
21714         Call Recursive_Check with parameter When_No_Sources.
21715         (Recursive_Check): New parameter When_No_Sources. Call itself and
21716         Prj.Nmsc.Check with parameter When_No_Sources.
21717         (Process): New parameter When_No_Sources. Call Check with parameter
21718         When_No_Sources.
21719         (Copy_Package_Declarations): New procedure to copy renamed parameters
21720         and setting the location of the declared attributes to the location
21721         of the renamed package.
21722         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
21723         packages.
21724
21725 2006-02-13  Vincent Celier  <celier@adacore.com>
21726
21727         * prj-makr.adb (Make): Preserve the comments from the original project
21728         file.
21729         When removing nodes (attributes Source_Dirs, Source_Files,
21730         Source_List_File and package Naming), save the comments and attach the
21731         saved comments to the newly created nodes.
21732         Do not add a with clause for the naming package if one already exists.
21733
21734 2006-02-13  Javier Miranda  <miranda@adacore.com>
21735             Gary Dismukes  <dismukes@adacore.com>
21736             Robert Dewar  <dewar@adacore.com>
21737
21738         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
21739
21740         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
21741         aliased entities to look for the overriden abstract interface
21742         subprogram.
21743         (Is_Interface_Subprogram): Complete documentation.
21744         (Check_Dispatching_Operation): Do not generate code to register the
21745         operation in the dispatch table if the source is compiled with
21746         restriction No_Dispatching_Calls.
21747         (Override_Dispatching_Operation): Check for illegal attempt to override
21748         No_Return procedure with procedure that is not No_Return
21749         (Check_Dispatching_Call): Suppress the check for an abstract operation
21750         when the original node of an actual is a tag-indeterminate attribute
21751         call, since the attribute, which must be 'Input, can never be abstract.
21752         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
21753         call to the Input attribute (even when rewritten).
21754         (Propagate_Tag): Augment comment to indicate the possibility of a call
21755         to an Input attribute.
21756
21757         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
21758         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
21759
21760         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
21761         No_Wide_Characters is no longer partition-wide
21762         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
21763         rather than GNAT
21764
21765 2006-02-13  Douglas Rupp  <rupp@adacore.com>
21766
21767         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
21768
21769 2006-02-13  Javier Miranda  <miranda@adacore.com>
21770
21771         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
21772         handles default-initialized components to keep separate the management
21773         of this feature but also avoid the unrequired resolution and
21774         expansion of components that do not have partially initialized
21775         values.
21776         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
21777         (Check_Bounds): Likewise.
21778         (Check_Length): Likewise.
21779
21780 2006-02-13  Javier Miranda  <miranda@adacore.com>
21781             Ed Schonberg  <schonberg@adacore.com>
21782
21783         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
21784         abstract interface type call analyze_and_resolve to expand the type
21785         conversion into the corresponding displacement of the
21786         reference to the base of the object.
21787         (Eval_Attribute, case Width): For systems where IEEE extended precision
21788         is supported, the maximum exponent occupies 4 decimal digits.
21789         (Accessibility_Message): Add '\' in 2-line warning message.
21790         (Resolve_Attribute): Likewise.
21791         (case Attribute_Access): Significantly revise checks
21792         for illegal access-to-subprogram Access attributes to properly enforce
21793         the rules of 3.10.2(32/2).
21794         Diagnose use of current instance with an illegal attribute.
21795
21796         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
21797         to a Node_Id.
21798         (Enclosing_Generic_Unit): New function to return a node's innermost
21799         enclosing generic declaration node.
21800         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
21801         (Type_Access_Level): The accessibility level of anonymous acccess types
21802         associated with discriminants is that of the current instance of the
21803         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
21804         (Compile_Time_Constraint_Error): Handle case of conditional expression.
21805         (Kill_Current_Values_For_Entity): New function
21806         (Enter_Name): Change formal type to Entity_Id
21807
21808 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
21809             Ed Schonberg  <schonberg@adacore.com>
21810             Gary Dismukes  <dismukes@adacore.com>
21811
21812         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
21813         Analyze_Compilation_Unit.
21814         Detect and warn on redundant with clauses detected in a package spec
21815         and/or body when -gnatwr is used.
21816         (Analyze_Context): Analyze config pragmas before other items
21817         (Install_Context_Items): Don't analyze config pragmas here
21818         (Install_Limited_Withed_Unit): Set limited entity of package in
21819         with_clause so that cross-reference information or warning messages on
21820         unused packages can be properly generated
21821         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
21822         has Error_Posted set. Prevent infinite loops in illegal programs.
21823         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
21824         to the point of the error test requiring the current unit to be private.
21825         This ensures that private with clauses are not exempted from the basic
21826         checking for being a descendant of the same library unit parent as a
21827         withed private descendant unit.
21828         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
21829         handle private with clauses properly, as well as to account for cases
21830         where the withed unit is a public descendant of a private ancestor
21831         (in which case the current unit must be a descendant of the private
21832         ancestor's parent). The spec comments were updated accordingly. Also,
21833         the old error message in this subprogram was replaced with error
21834         messages that mirror the errors tested and reported by
21835         Check_Private_Child_Unit.
21836         Parameter and variable names improved for readability.
21837         (Install_Limited_Context_Clauses): Remove test for a withed unit being
21838         private as the precondition for calling
21839         Check_Private_Limited_Withed_Unit since that subprogram has been
21840         revised to test public units as well as private units.
21841
21842 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21843             Robert Dewar  <dewar@adacore.com>
21844             Ed Schonberg  <schonberg@adacore.com>
21845             Javier Miranda  <miranda@adacore.com>
21846
21847         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
21848         that Scope_Stack.First = 1.
21849         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21850         were not always properly handled previously.
21851         (Formal_Entity): Complete rewrite, to handle properly some complex case
21852         with multiple levels of parametrization by formal packages.
21853         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
21854         to the corresponding derived type declaration for proper semantics.
21855
21856         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
21857         (Check_Component): Enforce restriction on components of
21858         unchecked_unions: a component in a variant cannot contain tasks or
21859         controlled types.
21860         (Unchecked_Union): Allow nested variants and multiple discriminants, to
21861         conform to AI-216.
21862         Add pragma Ada_2005 (synonym for Ada_05)
21863         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
21864         were not always properly handled previously.
21865         Document that pragma Propagate_Exceptions has no effect
21866         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
21867         (Set_Convention_From_Pragma): Check that if a convention is
21868         specified for a dispatching operation, then it must be
21869         consistent with the existing convention for the operation.
21870         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
21871         longer required to specify an vtable-ptr component in the record. For
21872         compatibility reasons we leave the support for the previous definition.
21873         (Analyze_Pragma, case No_Return): Allow multiple arguments
21874
21875         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
21876         non-overrideen inherited operation with a controlling result as
21877         illegal only its implicit declaration comes from the derived type
21878         declaration of its result's type.
21879         (Check_Possible_Deferred_Completion): Relocate the object definition
21880         node of the subtype indication of a deferred constant completion rather
21881         than directly analyzing it. The analysis of the generated subtype will
21882         correctly decorate the GNAT tree.
21883         (Record_Type_Declaration): Check whether this is a declaration for a
21884         limited derived record before analyzing components.
21885         (Analyze_Component_Declaration): Diagnose record types  not explicitly
21886         declared limited when a component has a limited type.
21887         (Build_Derived_Record_Type): Code reorganization to check if some of
21888         the inherited subprograms of a tagged type cover interface primitives.
21889         This check was missing in case of a full-type associated with a private
21890         type declaration.
21891         (Constant_Redeclaration): Check that the subtypes of the partial and the
21892         full view of a constrained deferred constant statically match.
21893         (Mentions_T): A reference to the current type in an anonymous access
21894         component declaration  must be an entity name.
21895         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
21896         class_wide type to refer to full type, not to the incomplete one.
21897         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
21898         available. Required to give support to the certified run-time.
21899         (Analyze_Component_Declaration): In case of anonymous access components
21900         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
21901         (Process_Discriminants): For an access discriminant, use the
21902         discriminant specification as the associated_node_for_itype, to
21903         simplify accessibility checks.
21904
21905 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21906             Javier Miranda  <miranda@adacore.com>
21907
21908         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
21909         abstract interpretations on an operator, remove interpretations that
21910         yield Address or a type derived from it, if one of the operands is an
21911         integer literal.
21912         (Try_Object_Operation.Try_Primitive_Operation,
21913         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
21914         location when creating the new reference to a primitive or class-wide
21915         operation as a part of rewriting a subprogram call.
21916         (Try_Primitive_Operations): If context requires a function, collect all
21917         interpretations after the first match, because there may be primitive
21918         operations of the same type with the same profile and different return
21919         types. From code reading.
21920         (Try_Primitive_Operation): Use the node kind to choose the proper
21921         operation when a function and a procedure have the same parameter
21922         profile.
21923         (Complete_Object_Operation): If formal is an access parameter and prefix
21924         is an object, rewrite as an Access reference, to match signature of
21925         primitive operation.
21926         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
21927         by an expanded name with prefix Standard, when the operands are of an
21928         anonymous access type.
21929         (Remove_Abstract_Operations): If the operation is abstract because it is
21930         inherited by a user-defined type derived from Address, remove it as
21931         well from the set of candidate interpretations of an overloaded node.
21932         (Analyze_Membership_Op): Membership test not applicable to cpp-class
21933         types.
21934
21935 2006-02-13  Bob Duff  <duff@adacore.com>
21936
21937         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
21938         redundant use clauses.
21939         In particular, if the scope of two use clauses overlaps, but one is not
21940         entirely included in the other, we should not warn.  This can happen
21941         with nested packages.
21942         (Analyze_Subprogram_Renaming): Protect the compiler against previously
21943         reported errors. The bug was reported when the compiler was built
21944         with assertions enabled.
21945         (Find_Type): If the node is a 'Class reference and the prefix is a
21946         synchronized type without a corresponding record, return the type
21947         itself.
21948
21949 2006-02-13  Javier Miranda  <miranda@adacore.com>
21950
21951         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
21952         if this is the full-declaration associated with a private declaration
21953         that implement interfaces, then the private type declaration must be
21954         limited.
21955         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
21956         as aliased. The use of the 'access attribute is not available for such
21957         object (for this purpose the object should be explicitly marked as
21958         aliased, but being an anonymous type this is not possible).
21959
21960 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21961             Robert Dewar  <dewar@adacore.com>
21962
21963         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
21964         compilation unit is an elaboration scope.
21965         (Add_Task_Proc): Add '\' in 2-line warning message.
21966         (Activate_All_Desirable): Deal with case of unit with'ed by parent
21967
21968 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21969             Javier Miranda  <miranda@adacore.com>
21970
21971         * sem_type.adb (Write_Overloads): Improve display of candidate
21972         interpretations.
21973         (Add_One_Interp): Do not add to the list of interpretations aliased
21974         entities corresponding with an abstract interface type that is an
21975         immediate ancestor of a tagged type; otherwise we have a dummy
21976         conflict between this entity and the aliased entity.
21977         (Disambiguate): The predefined equality on universal_access is not
21978         usable if there is a user-defined equality with the proper signature,
21979         declared in the same declarative part as the designated type.
21980         (Find_Unique_Type): The universal_access equality operator defined under
21981         AI-230 does not cover pool specific access types.
21982         (Covers): If one of the types is a generic actual subtype, check whether
21983         it matches the partial view of the other type.
21984
21985 2006-02-13  Thomas Quinot  <quinot@adacore.com>
21986
21987         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
21988         line. This is necessary to allow In_Extended_Main_Unit to provide
21989         correct results for itypes while writing out expanded source.
21990         (Close_File): No need to update the source_index_table here since it's
21991         now done for each line.
21992
21993 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
21994             Robert Dewar  <dewar@adacore.com>
21995
21996         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
21997         preserve the source unit where the itype is declared, and prevent a
21998         backend abort.
21999         (Note_Implicit_Run_Time_Call): New procedure
22000         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
22001         E_Subprogram_Type)
22002
22003         * sprint.ads: Document use of $ for implicit run time routine call
22004
22005 2006-02-13  Quentin Ochem  <ochem@adacore.com>
22006
22007         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
22008         task name.
22009
22010 2006-02-13  Bob Duff  <duff@adacore.com>
22011
22012         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
22013         Scan_Unsigned, so we do not scan leading blanks and sign twice.
22014         Integer'Value("- 5") and Integer'Value("-+5") now correctly
22015         raise Constraint_Error.
22016
22017         * s-vallli.adb (Scan_Long_Long_Integer): Call
22018         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
22019         do not scan leading blanks and sign twice.
22020         Integer'Value("- 5") and Integer'Value("-+5") now correctly
22021         raise Constraint_Error.
22022
22023         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
22024         Scan_Long_Long_Unsigned): Split out most of the processing from
22025         Scan_Long_Long_Unsigned out into
22026         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
22027         This prevents scanning leading blanks and sign twice.
22028         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
22029         See RM-3.5(44).
22030
22031         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
22032         out most of the processing from Scan_Unsigned out into
22033         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
22034         This prevents scanning leading blanks and sign twice.
22035
22036         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
22037         use with Modular'Value attribute.
22038         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
22039         attribute.
22040
22041 2006-02-13  Robert Dewar  <dewar@adacore.com>
22042
22043         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
22044
22045 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
22046
22047         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
22048         (PPC VxWorks): Likewise.
22049         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
22050         (forced_callee): Make non-inlinable and non-pure.
22051         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
22052
22053 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
22054             Ben Brosgol  <brosgol@adacore.com>
22055             Robert Dewar  <dewar@adacore.com>
22056
22057         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
22058         support.
22059         Document that gnatbind -M option is for cross environments only.
22060         Added description of using gnatmem to trace gnat rtl allocs and deallocs
22061         Add note on use of $ to label implicit run time calls
22062         Add documentation for -gnatyI (check mode IN)
22063         Updated chapter on compatibility with HP Ada
22064         VMS-oriented edits.
22065         Ran spell and corrected errors
22066         Add documentation for gnatbind -d and rework documentation of -D
22067         at the same time.
22068         Add subprogram/data elimination section.
22069         Minor editing of annex A.
22070         Add section for gnatcheck.
22071         Add documentation for restriction No_Dispatching_Calls
22072         Add documentation for pragma Ada_2005
22073         Remove mention of obsolete pragma Propagate_Exceptions
22074         Document that pragma Unreferenced can appear after DO in ACCEPT
22075         Clarify Pure_Function for library level units
22076         Mention Max/Min in connection with No_Implicit_Conditionals
22077         No_Wide_Characters restriction is no longer partition-wide
22078         Add a nice example for Universal_Literal_String attribute
22079         Document that pragma No_Return can take multiple arguments
22080
22081         * ug_words: Added entry for gnatcheck
22082
22083         * g-ctrl_c.ads (Install_Handler): Enhance comments
22084
22085         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
22086
22087         * g-trasym.ads: Add documentation on how to do off line symbolic
22088         traceback computation.
22089
22090         * s-fatgen.adb: Add comments for Unaligned_Valid
22091
22092         * stand.ads: Fix typo in comment
22093
22094 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22095
22096         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
22097
22098 2006-02-06  Roger Sayle  <roger@eyesopen.com>
22099
22100         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
22101
22102 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22103
22104         PR target/25926
22105         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
22106         implementation that calls __main.
22107
22108 2006-01-25  Peter O'Gorman  <peter@pogma.com>
22109
22110         PR bootstrap/25859
22111         * Makefile.in (GCC_LINK): Remove quotes.
22112         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
22113         or $(GCC_LINK).
22114
22115         (powerpc-darwin): Pass -shared-libgcc when building shared library.
22116
22117 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22118
22119         PR ada/24533
22120         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
22121
22122 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22123
22124         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
22125
22126 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
22127
22128         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
22129         needed.
22130
22131 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
22132
22133         * Make-lang.in: Update dependencies
22134
22135 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
22136
22137         * Make-lang.in: Add rule for ada/exp_sel.o
22138
22139 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
22140
22141         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
22142
22143 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
22144
22145         * gnatvsn.ads (Library_Version): Bump to version 4.2
22146         (ASIS_Version_Number): Bumped.
22147
22148 2005-12-09  Doug Rupp  <rupp@adacore.com>
22149
22150         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
22151         Ada bind file prefix on VMS from b$ to b__.
22152         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
22153         __init.
22154
22155         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
22156         Targparm.OpenVMS_On_Target.
22157         (Object_Suffix): Initialize with target object suffix.
22158         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
22159
22160         * butil.adb: Change some Hostparm.OpenVMS checks to
22161         Targparm.OpenVMS_On_Target.
22162
22163         * clean.adb: Change some Hostparm.OpenVMS checks to
22164         Targparm.OpenVMS_On_Target.
22165         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
22166         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
22167         Ada bind file prefix on VMS from b$ to b__.
22168
22169         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
22170         --GCC so that Get_Target_Parameters can find system.ads.
22171         (Gnatlink): Call Get_Target_Parameters in mainline.
22172         Initialize standard packages for Targparm.
22173         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
22174         (Process_Args): Also Check for object files with target object
22175         extension.
22176         (Make_Binder_File_Names): Create with target object extension.
22177         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
22178         to b__.
22179
22180         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
22181         Targparm.OpenVMS_On_Target.
22182         ({declaration},Build_Library,Check_Library): Change Ada bind file
22183         prefix on VMS from b$ to b__.
22184
22185         * osint-b.adb: Change some Hostparm.OpenVMS checks to
22186         Targparm.OpenVMS_On_Target.
22187         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
22188         b__.
22189
22190         * targext.c: New file.
22191
22192         * Makefile.in: add support for vxworks653 builds
22193         (../../vxaddr2line): gnatlink with targext.o.
22194         (TOOLS_LIBS): Move targext.o to precede libgnat.
22195         (init.o, initialize.o): Minor clean up in dependencies.
22196         (GNATLINK_OBJS): Add targparm.o, snames.o
22197         Add rules fo building targext.o and linking it explicitly with all
22198         tools.
22199         Also add targext.o to gnatlib.
22200
22201         * Make-lang.in: Add rules for building targext.o and linking it in
22202         with gnat1 and gnatbind.
22203         Add entry for exp_sel.o.
22204
22205         * osint.adb Change some Hostparm.OpenVMS checks to
22206         Targparm.OpenVMS_On_Target.
22207         (Object_File_Name): Use target object suffix.
22208
22209         * osint.ads (Object_Suffix): Remove, no longer used.
22210         (Target_Object_Suffix): Initialize with target object suffix.
22211
22212         * rident.ads: Add special exception to license.
22213
22214         * targparm.adb (Get_Target_Parameters): Set the value of
22215         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
22216         value.
22217         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
22218
22219         * targparm.ads: Add special exception to license.
22220
22221         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
22222         function.
22223         (Copy_File): Make sure from file is closed if error on to file
22224         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
22225
22226         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
22227         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
22228
22229         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
22230         target object suffix.
22231
22232 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
22233             Quentin Ochem  <ochem@adacore.com>
22234             Florian Villoing  <villoing@adacore.com>
22235
22236         * a-taster.ads, a-taster.adb: New files.
22237
22238         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
22239         link to the version that does nothing. This way the task termination
22240         routine is not executed twice for the environment task when finishing
22241         because of an unhandled exception.
22242
22243         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
22244         handler because of an unhandled exception.
22245
22246         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
22247         System.Tasking.Utilities instead of that in System.Tasking.Stages.
22248
22249         * s-finimp.adb (initialization code): Modify the soft link for the
22250         finalization of the global list instead of Adafinal.
22251
22252         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
22253         non-tasking version of the soft link for task termination. We do
22254         nothing since if we are using the non-tasking version it
22255         means that the task termination functionality is not used.
22256         (Null_Finalize_Global_List): Add this null version for the procedure
22257         in charge of finalizing the global list for controlled objects.
22258         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
22259         instead for handling run-time termination in a more flexible way.
22260         (Adafinal_NT): This new procedure will take care of finalizing the
22261         global list for controlled objects if needed, but no tasking
22262         finalization.
22263
22264         * s-tarest.adb (Task_Lock): Do not try to lock again the
22265         Global_Task_Lock if we already own it. Otherwise, we get blocked in
22266         some run-time operations.
22267         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
22268         until all nested locks have been released.
22269         (Task_Wrapper): Call the fall-back task termination handler. It
22270         applies to all tasks but the environment task.
22271         (Finalize_Global_Tasks): Add the call for the task termination
22272         procedure for the environment task.
22273         (Task_Wrapper): suppress warnings around declaration of
22274         Secondary_Stack_Address.
22275
22276         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
22277         moved to the Common_ATCB record.
22278         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
22279         Common_ATCB record.
22280         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
22281         Common_ATCB record.
22282
22283         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
22284         Fall_Back_Handler, and Specific_Handler.
22285
22286         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
22287         defined in Ada.Task_Termination, to avoid circular dependencies.
22288         (Termination_Handler): Redefine this type here, alredy defined in
22289         Ada.Task_Termination, for avoiding circular dependencies.
22290         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
22291         for storing task termination handlers. In addition,
22292         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
22293         Common_ATCB because it is used by both the regular and the restricted
22294         run times.
22295         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
22296         Common_ATCB because it is used by both the regular and the restricted
22297         run times.
22298         (Common_ATCB): Added a dynamic task analyzer field.
22299
22300         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
22301         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
22302         (Task_Wrapper): Call the task termination handler. It applies to all
22303         tasks but the environment task.
22304         (Finalize_Global_Tasks): Call the task termination procedure for the
22305         environment task. The call to Finalize_Global_List is now performed
22306         using the soft links mechanism.
22307         (Task_Wrapper): added dynamic stack analysis.
22308
22309         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
22310         potentially blocking operations has been moved from
22311         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
22312         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
22313         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
22314         this run-time check.
22315
22316         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
22317         of task termination procedure.
22318         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
22319         link for the task termination procedure.
22320
22321         * bindusg.adb: (Bindusg): Added documentation for -u option.
22322
22323         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
22324         (Get_Main_C): Add handling of dynamic stack analysis.
22325         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
22326
22327         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
22328         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
22329         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
22330
22331         * opt.ads: Added flags used by dynamic stack measurement.
22332         (Max_Line_Length): Remove (not used anymore)
22333
22334         * s-io.ads, s-io.adb (Standard_Error): new subprogram
22335         (Standart_Output): new subprogram
22336         (Set_Output): new subprogram
22337         (Put): now uses the value of Current_Out to know if the output has to be
22338         send to stderr or stdout.
22339
22340         * s-stausa.ads: Complete implementation.
22341
22342         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
22343
22344         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
22345         list of Ada 05 files.
22346         (GNAT Library Units): Add AltiVec files.
22347
22348         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
22349         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
22350         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
22351
22352 2005-12-09  Nicolas Setton  <setton@adacore.com>
22353
22354         * adaint.c (__gnat_locate_regular_file): Return immediately if
22355         file_name is empty.
22356
22357 2005-12-09  Javier Miranda  <miranda@adacore.com>
22358             Hristian Kirtchev  <kirtchev@adacore.com>
22359
22360         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
22361         to the specification because the frontend generates code that uses this
22362         subprogram.
22363         (Set_Interface_Table): Add missing assertion.
22364         Update documentation describing the run-time structure.
22365         (Displace): New subprogram that displaces the pointer to the object
22366         to reference one of its secondary dispatch tables.
22367         (IW_Membership): Modified to use the new table of interfaces.
22368         (Inherit_TSD): Modified to use the new table of interfaces.
22369         (Register_Interface_Tag): Use the additional formal to fill the
22370         contents of the new table of interfaces.
22371         (Set_Interface_Table): New subprogram that stores in the TSD the
22372         pointer to the table of interfaces.
22373         (Set_Offset_To_Top): Use the additional formal to save copy of
22374         the offset value in the table of interfaces.
22375         Update structure of GNAT Primary and Secondary dispatch table diagram.
22376         Add comment section on GNAT dispatch table prologue.
22377         (Offset_To_Signature): Update the constant value of the Signature field.
22378         (Dispatch_Table): Update comment on hidden fields in the prologue.
22379         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
22380         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
22381         the type of formal parameter T to Tag, introduce additional assertions.
22382         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
22383         conversion.
22384         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
22385
22386         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
22387         in all the calls to Expand_Interface_Thunk. Instead of referencing the
22388         record component containing the tag of the secondary dispatch table we
22389         have to use the Offset_To_Top run-time function to get this information;
22390         otherwise if the pointer to the base of the object has been displace
22391         we get a wrong value if we use the 'position attribute.
22392
22393         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
22394         all the calls to Expand_Interface_Thunk.
22395         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
22396         interfaces; hence the call to Set_Interface_Table was clearly wrong.
22397         (Collect_All_Interfaces): Modify the internal subprogram Collect to
22398         ensure that the interfaces implemented by the ancestors are placed
22399         at the header of the generated list.
22400         (Expand_Interface_Conversion): Handle the case in which the displacement
22401         associated with the interface conversion is not statically known. In
22402         this case we generate a call to the new run-time subprogram Displace.
22403         (Make_DT): Generate and fill the new table of interfaces.
22404         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
22405         Get_Tagged_Kind and Set_Tagged_Kind.
22406         (Tagged_Kind): New function that determines the tagged kind of a type
22407         with respect to limitedness and concurrency and returns a reference to
22408         RE_Tagged_Kind.
22409         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
22410         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
22411         primary dispatch table for a type.
22412         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
22413         secondary dispatch table respectively of a tagged type.
22414
22415         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
22416         (Expand_Interface_Conversion): New subprogram to indicate if the
22417         displacement of the type conversion is statically known.
22418         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
22419
22420         * rtsfind.ads (RE_Offset_To_Top): New entity
22421         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
22422         accessible to users.
22423         (Re_Displace): New entity
22424         (RE_Interface_Data): New entity
22425         (RE_Set_Interface_Data): New_Entity
22426         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
22427         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
22428         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
22429         RE_TK_Tagged, RE_TK_Task.
22430
22431         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
22432         Init_Secondary_Tags_Internal to allow its use with interface types and
22433         also to generate the code for the new additional actual required
22434         by Set_Offset_To_Top.
22435         (Build_Init_Statements): In case of components associated with abstract
22436         interface types there is no need to generate a call to its IP.
22437         (Freeze_Record_Type): Generate Select Specific Data tables only for
22438         concurrent types.
22439         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
22440         the bodies and specifications of the predefined primitive operations
22441         dealing with dispatching selects and abort, 'Callable, 'Terminated only
22442         for concurrent types.
22443
22444         * exp_sel.ads, exp_sel.adb: New files.
22445
22446         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
22447         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
22448         properly protected objects and attach handler in the case of the
22449         restricted profile.
22450         Move embeded package Select_Expansion_Utilities into a separate external
22451         package.
22452         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
22453         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
22454         (Build_K, Build_S_Assignment): New subprograms, part of the select
22455         expansion utilities.
22456         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
22457         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
22458         where the trigger is a dispatching procedure of a limited tagged type.
22459
22460 2005-12-09  Olivier Hainque  <hainque@adacore.com>
22461
22462         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
22463         pointer initialization values. Make a SAVE_EXPR instead. Add comments
22464         about the use and expansion of SAVE_EXPRs in the various possible
22465         renaming handling cases.
22466         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
22467         abusing DECL_FCONTEXT.
22468
22469 2005-12-09  Matthew Heaney  <heaney@adacore.com>
22470
22471         * a-convec.adb (Merge): Added assertions to check whether vector params
22472         are sorted.
22473
22474         * a-coinve.adb (Merge): Added assertions to check whether vector params
22475         are sorted.
22476
22477         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
22478         draft.
22479         (Cursor'Read): raises PE
22480
22481         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
22482         to its default value.
22483
22484         * a-cihama.adb: Manually check whether cursor's key and elem are
22485         non-null
22486
22487         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
22488         (Merge): Assert that target and source lists are in order
22489         (Swap): Declare non-const temporaries, to pass to Splice
22490
22491         * a-cdlili.ads: (Splice): Changed param name and param mode
22492
22493         * a-cdlili.adb: (Splice): Changed param name and param mode
22494         (Merge): Assert that target and source lists are in order
22495         (Swap): Declare non-const temporaries, to pass to Splice
22496
22497         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
22498         (Write): declare Stream param as not null
22499
22500         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
22501         an exception message.
22502
22503 2005-12-09  Thomas Quinot  <quinot@adacore.com>
22504             Robert Dewar  <dewar@adacore.com>
22505
22506         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
22507         which is the absolute maximum length we can support.
22508
22509         * frontend.adb: For the processing of configuration pragma files,
22510         remove references to Opt.Max_Line_Length, which is not checked anymore.
22511
22512         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
22513         length.
22514
22515         * scn.adb, scng.adb:
22516         Always check line length against the absolute supported maximum,
22517         Hostparm.Max_Line_Length.
22518
22519         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
22520         value for the maximum line length is Max_Line_Length (not
22521         Column_Number'Last).
22522         Minor error msg update
22523         (Set_Style_Check_Options): New interface returning error msg
22524         Minor code reorganization (processing for 'M' was out of alpha order)
22525
22526         * switch-c.adb: New interface for Set_Style_Check_Options
22527
22528         * stylesw.ads (Set_Style_Check_Options): New interface returning error
22529         msg.
22530
22531 2005-12-09  Javier Miranda  <miranda@adacore.com>
22532
22533         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
22534         with IP subprogram were only supported if there were limited types.
22535
22536         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
22537         records with IP subprogram were only supported if there were limited
22538         types.
22539
22540 2005-12-09  Olivier Hainque  <hainque@adacore.com>
22541             Eric Botcazou  <ebotcazou@adacore.com>
22542
22543         * trans.c (tree_transform, emit_check): Adjust calls to
22544         build_call_raise, passing the now expected GNAT_NODE argument.
22545
22546         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
22547         source line information than what the current global locus indicates
22548         when appropriate.
22549
22550         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
22551         field has overflowed.
22552         (build_call_raise): Add a GNAT_NODE argument to convey better source
22553         line information than what the current global locus indicates when
22554         appropriate.
22555         (build_component_ref): Adjust call to build_call_raise.
22556
22557 2005-12-09  Pascal Obry  <obry@adacore.com>
22558
22559         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
22560         the iterator is quitting iteration on parent directory.
22561
22562 2005-12-09  Javier Miranda  <miranda@adacore.com>
22563
22564         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
22565         and the assignment to a class-wide object, before the assignment we
22566         generate a run-time check to ensure that the tag of the Target is
22567         covered by the tag of the source.
22568
22569 2005-12-09  Robert Dewar  <dewar@adacore.com>
22570
22571         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
22572         parameter in call to Image_Wide_Character.
22573
22574         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
22575         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
22576         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
22577         annoying FFFE/FFFF inconsistency.
22578
22579 2005-12-09  Robert Dewar  <dewar@adacore.com>
22580             Javier Miranda  <miranda@adacore.com>
22581             Ed Schonberg  <schonberg@adacore.com>
22582
22583         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
22584         of type conversion.
22585         (Find_Interface): New subprogram that given a tagged type and one of its
22586         component associated with the secondary table of an abstract interface
22587         type, return the entity associated with such abstract interface type.
22588         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
22589         base type to create anonymous subtype, because entity may be a locally
22590         declared subtype or generic actual.
22591         (Find_Interface): New subprogram that given a tagged type and one of its
22592         component associated with the secondary table of an abstract interface
22593         type, return the entity associated with such abstract interface type.
22594
22595         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
22596         conversion cannot be handled at compile time. In this case we pass this
22597         information to the expander to generate the appropriate code.
22598
22599 2005-12-09  Robert Dewar  <dewar@adacore.com>
22600             Ed Schonberg  <schonberg@adacore.com>
22601             Gary Dismukes  <dismukes@adacore.com>
22602             Javier Miranda  <miranda@adacore.com>
22603             Hristian Kirtchev  <kirtchev@adacore.com>
22604
22605         * einfo.adb (Itype_Printed): New flag
22606         (Is_Limited_Type): Derived types do not inherit limitedness from
22607         interface progenitors.
22608         (Is_Return_By_Reference_Type): Predicate does not apply to limited
22609         interfaces.
22610
22611         * einfo.ads (Itype_Printed): New flag
22612         Move Is_Wrapper_Package to proper section
22613         Add missing Inline for Is_Volatile
22614
22615         * output.ads, output.adb (Write_Erase_Char): New procedure
22616         (Save/Restore_Output_Buffer): New procedures
22617         (Save/Restore_Output_Buffer): New procedures
22618
22619         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
22620         Add missing support for anonymous access type
22621         (Write_Id): Insert calls to Write_Itype
22622         (Write_Itype): New procedure to output itypes
22623
22624         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
22625         use of "limited" in declaration.
22626
22627         * sinfo.ads, sinfo.adb:
22628         Formal derived types can carry an explicit "limited" indication.
22629
22630         * sem_ch3.adb: Add with and use of Targparm.
22631         (Create_Component): If Frontend_Layout_On_Target is True and the
22632         copied component does not have a known static Esize, then reset
22633         the size and positional fields of the new component.
22634         (Analyze_Component_Declaration): A limited component is
22635         legal within a protected type that implements an interface.
22636         (Collect_Interfaces): Do not add to the list the interfaces that
22637         are implemented by the ancestors.
22638         (Derived_Type_Declaration): If the parent of the full-view is an
22639         interface perform a transformation of the tree to ensure that it has
22640         the same parent than the partial-view. This simplifies the job of the
22641         expander in order to generate the correct object layout, and it is
22642         needed because the list of interfaces of the full-view can be given in
22643         any order.
22644         (Process_Full_View): The parent of the full-view does not need to be
22645         a descendant of the parent of the partial view if both parents are
22646         interfaces.
22647         (Analyze_Private_Extension_Declaration): If declaration has an explicit
22648         "limited" the parent must be a limited type.
22649         (Build_Derived_Record_Type): A derived type that is explicitly limited
22650         must have limited ancestor and progenitors.
22651         (Build_Derived_Type): Ditto.
22652         (Process_Full_View): Verify that explicit uses of "limited" in partial
22653         and full declarations are consistent.
22654         (Find_Ancestor_Interface): Remove function.
22655         (Collect_Implemented_Interfaces): New procedure used to gather all
22656         implemented interfaces by a type.
22657         (Contain_Interface): New function used to check whether an interface is
22658         present in a list.
22659         (Find_Hidden_Interface): New function used to determine whether two
22660         lists of interfaces constitute a set equality. If not, the first
22661         differing interface is returned.
22662         (Process_Full_View): Improve the check for the "no hidden interface"
22663         rule as defined by AI-396.
22664
22665 2005-12-09  Robert Dewar  <dewar@adacore.com>
22666
22667         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
22668         types, not on record subtypes.
22669         (Freeze_Entity): Code cleanup. Add barrier to the loop
22670         that generates the references for primitive operations. This allows to
22671         remove an unnecessary exception handler.
22672         Code reformatting and comment clean ups.
22673
22674 2005-12-09  Vincent Celier  <celier@adacore.com>
22675
22676         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
22677         If GNAT CHECK is called with a project file, but with no
22678         source on the command line, call gnatcheck with all the compilable
22679         sources of the project.
22680         Take into account the new command Check, for gnatcheck. Treat as for
22681         other ASIS tools: take into account project, specific package Check and
22682         Compiler switches.
22683         For ASIS tools, add the switches in package Compiler for
22684         the invocation of the compiler.
22685
22686         * prj-attr.adb: Add package Check and its attributes
22687
22688         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
22689
22690         * vms_conv.adb (Initialize): Change Params of command Check to
22691         unlimited files.
22692         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
22693         Add data for new command Check
22694
22695         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
22696         ELIM.
22697         Add qualifiers for Check command options
22698         (Command_Type): New command Check
22699
22700 2005-12-09  Thomas Quinot  <quinot@adacore.com>
22701
22702         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
22703         command line switch overruns the output buffer.
22704
22705 2005-12-09  Robert Dewar  <dewar@adacore.com>
22706
22707         * sem_prag.adb: Processing for new pragma Complete_Representation
22708         (Analyze_Pragma, case Debug): Implement two argument form.
22709
22710         * par-prag.adb: Entry for new pragma Complete_Representation
22711         (Prag, case Debug): Recognize two argument form of pragma Debug
22712         New interface for Set_Style_Check_Options.
22713
22714         * sem_ch13.adb: Implement new pragma Complete_Representation.
22715
22716         * snames.adb, snames.ads, snames.h: Entry for new pragma
22717         Complete_Representation.
22718
22719 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
22720
22721         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
22722         available user-specified stream attributes on limited parameters to
22723         also test the type directly rather than only its underlying type (for
22724         Ada 95) and, in the case of Ada 2005, to check that the user-specified
22725         attributes are visible at the point of the subprogram declaration.
22726         For Ada 2005, the error message is modified to indicate that the
22727         type's stream attributes must be visible (again, only for -gnat05).
22728
22729 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
22730
22731         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
22732         anonymous access types.
22733
22734         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
22735         matching of anonymous access types and anonymous access to subprogram
22736         types. 'R'M 4.9.1 (2/2).
22737
22738 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
22739
22740         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
22741         rule prematurely when operands are universal, remaining ambiguities
22742         will be removed during resolution.
22743         Code cleanup.
22744
22745         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
22746         that are Ada 2005 functions.
22747         (Has_Abstract_Interpretation): Subsidiary to
22748         Remove_Conversions, to remove ambiguities caused by abstract operations
22749         on numeric types when operands are universal.
22750
22751 2005-12-09  Robert Dewar  <dewar@adacore.com>
22752
22753         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
22754         for case where spec is categorized.
22755
22756 2005-12-09  Javier Miranda  <miranda@adacore.com>
22757
22758         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
22759         types use the corresponding record type. This was not needed before
22760         the implementation of Ada 2005 synchronized types because
22761         concurrent types were never tagged types in Ada 95.
22762
22763 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
22764
22765         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
22766         first subtype of the type of the expression to verify that it is a
22767         legal Time type.
22768
22769 2005-12-09  Robert Dewar  <dewar@adacore.com>
22770
22771         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
22772         decoded names.
22773
22774 2005-12-09  Quentin Ochem  <ochem@adacore.com>
22775             Robert Dewar  <dewar@adacore.com>
22776             Ed Falis  <falis@adacore.com>
22777             Florian Villoing  <villoing@adacore.com>
22778             Thomas Quinot  <quinot@adacore.com>
22779             Arnaud Charlet  <charlet@adacore.com>
22780
22781         * gnat_ugn.texi: Created section "Stack Related Tools"
22782         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
22783         "Stack Related Tools"
22784         Added subsection "Static Stack Usage Analysis"
22785         Added subsection "Dynamic Stack Usage Analysis"
22786         Include documentation of itypes in sprint listing (-gnatG)
22787         Documented gnatbind -D switch (default sec stack size for fixed sec
22788         stacks).
22789         Added Interrupt_State and Persistent_BSS to list of configuration
22790         pragmas.
22791         Add missing doc for maximum value of nnn in -gnatyMnnn
22792
22793         * gnat_rm.texi: Document the AltiVec binding.
22794         Add documentation for pragma Complete_Representation
22795         Shortened an overly long line (> 79 chars)
22796         Clarify documentation of unchecked conversion in implementation
22797         defined cases.
22798         Document two argument form of pragma Debug
22799
22800         * types.ads (Column_Number): Update documentation.
22801
22802         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
22803         library level Finalize_Storage_Only objects (these are not attached to
22804         any finalization list).
22805
22806         * system-mingw.ads: (Underlying_Priorities): Update comment.
22807
22808 2005-12-09  Robert Dewar  <dewar@adacore.com>
22809
22810         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
22811         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
22812         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
22813         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
22814         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
22815         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
22816         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
22817         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
22818         reformatting.
22819
22820 2005-12-09  Robert Dewar  <dewar@adacore.com>
22821
22822         * s-vaflop-vms-alpha.adb: (Ne_F): New function
22823         (Ne_G): New function
22824
22825         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
22826         for tag assignment.
22827         (Rewrite_Comparison): Handle case where operation is not a comparison
22828         and ignore, and also handle type conversion case.
22829
22830 2005-12-09  Thomas Quinot  <quinot@adacore.com>
22831
22832         * exp_aggr.ads: Fix typo in comment.
22833         ???-mark Convert_Aggr_In_Assignment as needing documentation.
22834
22835 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
22836
22837         * layout.adb: Replace various uses of byte by storage unit throughout.
22838         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
22839         static size, convert to storage units before returning, to conform to
22840         spec.
22841
22842 2005-12-09  Matthew Gingell  <gingell@adacore.com>
22843
22844         * g-exctra.ads: Fix typo in comment.
22845
22846 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22847
22848         * utils.c: Minor reformatting.
22849
22850 2005-12-09  Robert Dewar  <dewar@adacore.com>
22851
22852         * g-soccon.ads:
22853         Further comment fixes to make the status of the default file clear
22854
22855         * s-bitops.adb: Clarify comment for Bits_Array
22856
22857 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
22858
22859         * Make-lang.in (ada.install-normal): Remove.
22860
22861 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
22862
22863         * Make-lang.in: Remove all dependencies on s-gtype.
22864
22865 2005-12-05  Richard Guenther  <rguenther@suse.de>
22866
22867         * utils.c (convert): Use fold_convert where appropriate.
22868
22869 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
22870
22871         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
22872         a period is meant.
22873
22874 2005-12-02  Richard Guenther  <rguenther@suse.de>
22875
22876         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
22877
22878 2005-12-01  Roger Sayle  <roger@eyesopen.com>
22879
22880         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
22881         nodes.
22882
22883 2005-11-23  Laurent Guerby  <laurent@guerby.net>
22884
22885         * mlib-prj.adb (Build_Library): Initialize Delete.
22886
22887 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
22888
22889         * socket.c: Add extern int h_errno for rtems since networking header
22890         files are not available at this point in a tool bootstrap. Newlib
22891         only has basic C library header files.
22892
22893 2005-11-19  Richard Guenther  <rguenther@suse.de>
22894         Roger Sayle  <roger@eyesopen.com>
22895
22896         PR ada/23717
22897         * misc.c (internal_error_function): Don't use vsprintf to format
22898         the error message text, instead use pp_format_text and the new
22899         pretty printer APIs.  This allows handling of %qs, %w, etc.
22900
22901 2005-11-18  Laurent Guerby  <laurent@guerby.net>
22902
22903         PR ada/24857
22904         * Makefile.in: Use s-auxdec-empty for RTEMS.
22905
22906 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22907
22908         PR ada/22333
22909         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
22910         a temporary if taking the address of something that is neither
22911         reference, declaration, or constant, since the gimplifier
22912         can't handle that case.
22913
22914 2005-11-17  Laurent Guerby  <laurent@guerby.net>
22915
22916         PR ada/24857
22917         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
22918
22919 2005-11-16  Richard Guenther  <rguenther@suse.de>
22920
22921         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
22922
22923 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
22924
22925         PR ada/24855
22926         * raise-gcc.c: Add missing stdarg.h include.
22927
22928 2005-11-16  Richard Guenther  <rguenther@suse.de>
22929
22930         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
22931         (ada/misc.o): Likewise.
22932
22933 2005-11-14  Thomas Quinot  <quinot@adacore.com>
22934
22935         * g-soccon.ads: Minor reformatting. Update comments.
22936
22937         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
22938         gain visibility on the declaration of struct timeval.
22939
22940         * g-soccon-freebsd.ads,
22941         g-soccon-darwin.ads,
22942         g-soccon-tru64.ads,
22943         g-soccon-aix.ads,
22944         g-soccon-irix.ads,
22945         g-soccon-hpux.ads,
22946         g-soccon-solaris.ads,
22947         g-soccon-vms.ads,
22948         g-soccon-mingw.ads,
22949         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
22950
22951         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
22952         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
22953         g-soccon-linux-x86.ads: New files.
22954
22955         * g-socthi-mingw.adb:
22956         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
22957
22958         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
22959         (time_t, suseconds_t): New types constructed to match the tv_sec
22960         and tv_usec fields of C struct timeval.
22961         (Timeval): Construct structure in terms of the new types.
22962         (Host_Errno): New function (imported from socket.c), returns last hosts
22963         database error.
22964
22965         * g-socthi-vxworks.adb:  Add error handling circuitry.
22966
22967         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
22968         components of struct timeval.
22969         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
22970         (Check_Selector): In error conditions, clear internal socket sets to
22971         avoid a memory leak.
22972         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
22973         Send_Timeout, Receive_Timeout.
22974
22975         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
22976         the tv_sec and tv_usec fields of C struct timeval.
22977         (Timeval): Construct structure in terms of the new types.
22978         (Host_Errno): New function (imported from socket.c), returns last hosts
22979         database error.
22980
22981         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
22982         hosts database last error code.
22983
22984         * gen-soccon.c: Complete value expansion should not be performed on
22985         TARGET, as it has the form of a math expression, and some components
22986         may be platform-defined macros.
22987         For VxWorks, generate the OK and ERROR values.
22988         New constants giving the sizes of the components of C struct timeval.
22989
22990 2005-11-14  Robert Dewar  <dewar@adacore.com>
22991             Ed Schonberg  <schonberg@adacore.com>
22992
22993         PR ada/18434
22994         * types.ads: Include All_Checks in Suppress_Array
22995
22996         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
22997         not(a=b), since we no longer do this rewriting, and hence it is not
22998         needed.
22999         (Elaboration_Checks_Suppressed): Add special casing to
23000         deal with different cases of static and dynamic elaboration checks (all
23001         checks does not count in the first case, but does in the second).
23002         (Expr_Known_Valid): Do not assume that the result of any arbitrary
23003         function call is valid, since this is not the case.
23004         (Ensure_Valid): Do not apply validity check to a real literal
23005         in a universal or fixed context
23006
23007         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
23008         elementary types using the operator in standard. It is cleaner not to
23009         modify the programmers intent, especially in the case of floating-point.
23010         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
23011         it did not matter because we always rewrote a/=b to not(a=b).
23012         (Expand_Allocator_Expression): For an allocator expression whose nominal
23013         subtype is an unconstrained packed type, convert the expression to its
23014         actual constrained subtype.
23015         Implement warning for <= or >= where < or > not possible
23016         Fix to Vax_Float tests (too early in many routines, causing premature
23017         Vax_Float expansions.
23018
23019         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
23020         to be used with packages and generic packages as well as with
23021         subprograms.
23022         (Suppress): Set All_Checks, but not Elaboration_Check, for case
23023         of pragma Suppress (All_Checks)
23024         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
23025         a string literal for precise control over warnings.
23026         Avoid raise of pragma in case of unrecognized pragma and just return
23027         instead.
23028
23029         * sem_prag.ads: Minor reformatting
23030
23031         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
23032         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
23033         Switch. Do not handle any exception.
23034         Include -gnatwx as part of -gnatg (warn on redundant parens)
23035         Allow optional = after -gnatm
23036         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
23037         longer sets Elaboration_Checks.
23038         Code to set warning mode moved to Sem_Warn
23039         so that it can be shared by pragma processing.
23040
23041         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
23042         statement.
23043
23044         * s-taprop-solaris.adb:
23045         Change some <= to =, to avoid new warning
23046
23047         * a-exexda.adb, prj-proc.adb:
23048         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
23049         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
23050
23051 2005-11-14  Robert Dewar  <dewar@adacore.com>
23052
23053         * exp_vfpt.adb: Handle /= case
23054         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
23055         so that we do not get duplicate scaling for fixed point conversions.
23056
23057         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
23058
23059 2005-11-14  Matthew Gingell  <gingell@adacore.com>
23060
23061         * system-lynxos-ppc.ads, system-lynxos-x86.ads:
23062         Increase default priority on Lynx from 15 to 17, and meet the Ada
23063         requirement that Default_Priority be ((Priority'First +
23064         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
23065
23066 2005-11-14  Vincent Celier  <celier@adacore.com>
23067
23068         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23069         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
23070         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
23071         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
23072         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
23073         mlib-tgt-lynxos.adb (DLL_Prefix): New function
23074
23075 2005-11-14  Doug Rupp  <rupp@adacore.com>
23076
23077         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
23078         private part.
23079
23080 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
23081
23082         * s-traces-default.adb, s-trafor-default.ads,
23083         s-tratas-default.adb: Fix compilation errors.
23084
23085 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
23086
23087         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
23088         raising the exception so the memory used is freed.
23089
23090 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
23091
23092         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
23093         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
23094         (convert_address): Update comments and list of platforms using this.
23095
23096         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
23097         no longer used.
23098
23099 2005-11-14  Pascal Obry  <obry@adacore.com>
23100             Vincent Celier  <celier@adacore.com>
23101
23102         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
23103         GNAT.Command_Line.
23104
23105         * memroot.adb: Remove redundant with/use clause on
23106         System.Storage_Elements.
23107
23108 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
23109
23110         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
23111         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
23112         related code to a-exexpr.adb
23113         (Save_Occurrence_And_Private): Move GCC EH related code to
23114         a-exexpr-gcc.adb
23115         (Raise_Current_Excep): Add new variable Id with pragma
23116         volatile, to ensure that the variable lives on stack.
23117
23118         * a-exexpr-gcc.adb, raise-gcc.c: New file.
23119
23120         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
23121         from a-except.adb.
23122         Move GCC EH related code to a-exexpr-gcc.adb
23123
23124         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
23125         64-bit Solaris
23126         Split the Linux version of g-soccon into separate variants for 32 and 64
23127         bit platforms.
23128         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
23129         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
23130         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
23131         of host variable $(RANLIB_FLAGS).
23132         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
23133         Code clean up: remove unused/obsolete targets.
23134         (EH_MECHANISM): New variable introduced to differenciate between the
23135         two EH mechanisms statically.
23136         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
23137         (LIBGNAT_OBJS): Add raise-gcc.o
23138         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
23139         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
23140         supports VxWorks 6 RTPs.
23141         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
23142         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
23143
23144         * raise.c: Move all GCC EH-related routines to raise-gcc.c
23145
23146 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
23147
23148         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
23149         deferral level, when abort is not allowed, to a later stage (the
23150         Task_Wrapper).
23151         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
23152         it will not get changed by the generated code. It was previously done
23153         in Create_Task.
23154
23155 2005-11-14  Thomas Quinot  <quinot@adacore.com>
23156             Olivier Hainque  <hainque@adacore.com>
23157             Eric Botcazou  <ebotcazou@adacore.com>
23158
23159         * decl.c:
23160         Factor common code to build a storage type for an unconstrained object
23161         from a fat or thin pointer type and a constrained object type.
23162         (annotate_value): Handle BIT_AND_EXPR.
23163         (annotate_rep): Don't restrict the back annotation of inherited
23164         components to the type_annotate_only case.
23165         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
23166         we are not defining the type.
23167         <E_Record_Type>: Likewise.
23168         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
23169         to get advantage of the new maybe_stabilize_reference interface, to
23170         ensure that what we reference is indeed stabilized instead of relying
23171         on assumptions on what the stabilizer does.
23172         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
23173         type imported through a limited_with clause, use its non-limited view.
23174         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
23175         differentiation.
23176         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
23177         of #if sections + explicit comparisons of convention identifiers.
23178         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
23179         before early-returning for certain types when code generation is
23180         disabled.
23181         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
23182         nullification of gnu_expr we do for objects with address clause and
23183         that we are not defining.
23184         (elaborate_expression_1): Do not create constants when creating
23185         variables needed by the debug info: the dwarf2 writer considers that
23186         CONST_DECLs is used only to represent enumeration constants, and emits
23187         nothing for them.
23188         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
23189         object with an address clause into an indirect reference, drop the
23190         initializing expression.
23191         Include "expr.h".
23192         (STACK_CHECK_BUILTIN): Delete.
23193         (STACK_CHECK_PROBE_INTERVAL): Likewise.
23194         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
23195         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
23196         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
23197         corresponding to the renamed object as ignored for debugging purposes.
23198
23199         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
23200         related): For a prefix that is a dereference of a fat or thin pointer,
23201         if there is an actual subtype provided by the front-end, use that
23202         subtype to build an actual type with bounds template.
23203         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
23204         is provided by the front-end, use that subtype to compute the size of
23205         the deallocated object.
23206         (gnat_to_gnu): When adding a statement into an elaboration procedure,
23207         check for a potential violation of a No_Elaboration_Code restriction.
23208         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
23209         with extra arguments to control whether to recurse through non-values
23210         and to let the caller know if the stabilization has succeeded.
23211         (gnat_stabilize_reference): Now a simple wrapper around
23212         maybe_stabilize, for common uses without restriction on lvalues and
23213         without need to check for the success indication.
23214         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
23215         pass false instead of 0 as the FORCE argument which is a bool.
23216         (Identifier_to_gnu): Remove checks ensuring that an renamed object
23217         attached to a renaming pointer has been properly stabilized, as no such
23218         object is attached otherwise.
23219         (call_to_gnu): Invoke create_var_decl to create the temporary when the
23220         function uses the "target pointer" return mechanism.
23221         Reinstate conversion of the actual to the type of the formal
23222         parameter before any other specific treatment based on the passing
23223         mechanism. This turns out to be necessary in order for PLACEHOLDER
23224         substitution to work properly when the latter type is unconstrained.
23225
23226         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
23227         common pattern.
23228         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
23229         with extra arguments to control whether to recurse through non-values
23230         and to let the caller know if the stabilization has succeeded.
23231
23232         * utils2.c (gnat_build_constructor): Only sort the fields for possible
23233         static output of record constructor if all the components are constant.
23234         (gnat_build_constructor): For a record type, sort the list of field
23235         initializers in increasing bit position order.
23236         Factor common code to build a storage type for an unconstrained object
23237         from a fat or thin pointer type and a constrained object type.
23238         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
23239         types variants, and process special cases of VIEW_CONVERT expressions
23240         as their NOP_EXPR counterpart to ensure we get to the
23241         CORRESPONDING_VARs associated with CONST_DECls.
23242         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
23243         on the right-hand side.
23244
23245         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
23246         a common pattern.
23247         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
23248         are converting back to its original type.
23249         (convert) <JM input>: Fallthrough regular conversion code instead of
23250         extracting the object if converting to a type variant.
23251         (create_var_decl): When a variable has an initializer requiring code
23252         generation and we are at the top level, check for a potential violation
23253         of a No_Elaboration_Code restriction.
23254         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
23255         SIZE and SIZE_UNIT which we need for later back-annotations.
23256         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
23257         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
23258         is an unchecked union.
23259         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
23260         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
23261         main variant, just replace the VIEW_CONVERT_EXPR.
23262         <UNION_TYPE>: Revert 2005-03-02 change.
23263
23264         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
23265
23266         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
23267
23268 2005-11-14  Matthew Heaney  <heaney@adacore.com>
23269
23270         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
23271         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
23272         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
23273         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
23274         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
23275         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
23276         Compiles against the spec for ordered maps described in sections
23277         A.18.6 of the most recent (August 2005) AI-302 draft.
23278
23279 2005-11-14  Olivier Hainque  <hainque@adacore.com>
23280
23281         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
23282         to ensure bias adjustments take place when need be and to prevent
23283         occurrences of intermediate overflows.
23284
23285 2005-11-14  Matthew Gingell  <gingell@adacore.com>
23286             Olivier Hainque  <hainque@adacore.com>
23287
23288         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
23289         ia64 HP-UX.
23290
23291         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
23292         tracebacks on ia64 HP-UX and provide explanatory comment.
23293         Enable backtraces on ia64 GNU/Linux.
23294         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
23295         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
23296
23297 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
23298             Javier Miranda  <miranda@adacore.com>
23299
23300         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
23301         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
23302         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
23303         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
23304
23305         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
23306         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
23307         assertions).
23308
23309         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
23310         subprogram that generates the external name associated with a
23311         secondary dispatch table.
23312         (Get_Secondary_DT_External_Name): New subprogram that generates the
23313         external name associated with a secondary dispatch table.
23314
23315 2005-11-14  Emmanuel Briot  <briot@adacore.com>
23316
23317         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
23318         line in the ALI file to include both an instantiation reference, and a
23319         returned value.
23320
23321 2005-11-14  Vincent Celier  <celier@adacore.com>
23322
23323         * clean.adb (Check_Project): Look for Ada code in extending project,
23324         even if Ada is not specified as a language.
23325         Use new function DLL_Prefix for DLL_Name
23326         (Clean_Interface_Copy_Directory): New procedure
23327         (Clean_Library_Directory): New procedure
23328         (Clean_Directory): Remove procedure, no longer used
23329         (Clean_Project): Do not delete any file in an externally built project
23330
23331         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
23332         directory of an extending project, even when there are no Ada source
23333         present.
23334         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
23335         (Set_Ada_Paths.Add.Recursive_Add): Ditto
23336
23337         * mlib-prj.adb (Check_Library): For all library projects, get the
23338         library file timestamp.
23339         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
23340         (Build_Library): Use new function DLL_Prefix for the DLL_Name
23341         (Clean): Remove procedure, no longer used
23342         (Ultimate_Extension_Of): New function
23343         (Build_Library): When cleaning the library directory, only remove an
23344         existing library file and any ALI file of a source of the project.
23345         When cleaning the interface copy directory, remove any source that
23346         could be a source of the project.
23347
23348         * prj.ads, prj.adb (Project_Empty): Add values of new components
23349         Library_TS and All_Imported_Projects.
23350         (Project_Empty): Add values for new components of Project_Data:
23351         Library_ALI_Dir and Display_Library_ALI_Dir
23352
23353         * prj-attr.adb: New project level attribute name Library_ALI_Dir
23354
23355         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
23356         attribute Library_ALI_Dir.
23357         (Check_Library_Attributes): The library directory cannot be the same as
23358         any source directory of the project tree.
23359         (Check_Stand_Alone_Library): The interface copy directory cannot be
23360         the same as any source directory of the project tree.
23361
23362         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
23363         all temporary files.
23364
23365 2005-11-14  Robert Dewar  <dewar@adacore.com>
23366             Ed Schonberg  <schonberg@adacore.com>
23367
23368         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23369         (Check_Elab_Call): A call within a protected body is never an
23370         elaboration call, and does not require checking.
23371         (Same_Elaboration_Scope): Take into account protected types for both
23372         entities.
23373         (Activate_Elaborate_All_Desirable): New procedure
23374
23375         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
23376         desirable
23377
23378         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
23379         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
23380
23381         * lib-writ.ads, lib-writ.adb:
23382         Implement new AD/ED for Elaborate_All/Elaborate desirable
23383         Use new Elaborate_All_Desirable flag in N_With_Clause node
23384
23385         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
23386         N_Free_Statement nodes.
23387         Define new class N_Subprogram_Instantiation
23388         Add Elaborate_Desirable flag to N_With_Clause node
23389         Add N_Delay_Statement (covering two kinds of delay)
23390
23391         * debug.adb: Introduce d.f flag for compiler
23392         Add -da switch for binder
23393
23394 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23395             Cyrille Comar  <comar@adacore.com>
23396
23397         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
23398         for task component, in the case of a limited aggregate. The enclosed
23399         object declaration will create it earlier. Otherwise, in the case of a
23400         nested aggregate, the object may appear in the wrong scope.
23401         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
23402         (Gen_Assign): If the component being assigned is an array type and the
23403         expression is itself an aggregate, wrap the assignment in a block to
23404         force finalization actions on the temporary created for each row of the
23405         enclosing object.
23406         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
23407         structures are initialized after all discriminants are set so that
23408         they can be accessed even when their offset is dynamic.
23409
23410 2005-11-14  Robert Dewar  <dewar@adacore.com>
23411             Hristian Kirtchev  <kirtchev@adacore.com>
23412
23413         * sem_attr.adb: Implement Machine_Rounding attribute
23414         (Analyze_Access_Attribute): The access attribute may appear within an
23415         aggregate that has been expanded into a loop.
23416         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
23417         'Terminated whenever the prefix is of a task interface class-wide type.
23418         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
23419         the prefix is of a task interface class-wide type.
23420
23421         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
23422         to avoid warnings.
23423
23424         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
23425         Remove pragma Inline for [Unaligned_]Valid.
23426         Add comments that Valid routines do not work for Vax_Float
23427
23428         * exp_attr.adb: Implement Machine_Rounding attribute
23429
23430         * snames.h: Add entry for Machine_Rounding attribute
23431
23432 2005-11-14  Javier Miranda  <miranda@adacore.com>
23433             Robert Dewar  <dewar@adacore.com>
23434             Hristian Kirtchev  <kirtchev@adacore.com>
23435
23436         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
23437         and related): For a prefix that is an explicit dereference of an
23438         access to unconstrained packed array type, annotate the dereference
23439         with an actual subtype so GIGI can make a correct size computation.
23440         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
23441         'Unrestricted_Access, if the designated type is an interface we
23442         add a type conversion to force the displacement of the pointer
23443         to the secondary dispatch table.
23444         Use Universal_Real instead of Long_Long_Float when we need a high
23445         precision float type for the generated code (prevents gratuitous
23446         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23447         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
23448         'Terminated for task interface class-wide objects. Generate a call to
23449         the predefined dispatching routine used to retrieve the _task_id from
23450         a task corresponding record.
23451         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
23452
23453         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23454         (Check_Dispatching_Operation): Protect the frontend againts
23455         previously detected errors.
23456
23457         * Makefile.rtl: Add new instantiations of system.fat_gen
23458
23459         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
23460         Change name of instantiated package for better consistency
23461         with newly added system.fat_gen instantiations.
23462
23463         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
23464         s-fvagfl.ads: New files.
23465
23466 2005-11-14  Cyrille Comar  <comar@adacore.com>
23467             Thomas Quinot  <quinot@adacore.com>
23468
23469         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
23470         assignment of a value of a tagged type that has been rewritten to a
23471         block statement, it is known by construction that no checks are
23472         necessary for the statements within the block: analyze it with checks
23473         suppressed.
23474         (Expand_N_If_Statement): When killing a dead then-branch in an
23475         if-statement that has elsif_parts, recompute the Current_Value node
23476         for any entity whose value is known from the condition of the first
23477         elsif_part.
23478         (Expand_N_Return_Statement): When returning a mutable record, convert
23479         the return value into its actual subtype in order to help the backend
23480         to return the actual size instead of the maximum. This is another
23481         aftermath of not returning mutable records on the sec-stack anymore.
23482
23483         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
23484         handling of error msg for suspicious reverse range iteration.
23485         (Check_Possible_Current_Value_Condition): Move declaration from body to
23486         spec, to allow this subprogram to be called from exp_ch5.
23487
23488 2005-11-14  Thomas Quinot  <quinot@adacore.com>
23489
23490         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
23491         generate a set of nested array aggregates instead of a single flat
23492         aggregate for multi-dimensional arrays.
23493
23494 2005-11-14  Pascal Obry  <obry@adacore.com>
23495
23496         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
23497         by spawnve is a process handle, no need to convert. Add a parameter
23498         close to control wether the process handle must be closed.
23499         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
23500         a process handle, not need to convert.
23501         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
23502
23503         * g-expect.adb: (Kill): Document the new close parameter.
23504         (Close): Do not release the process handle in the kill there as
23505         waitpid() is using it.
23506         (Send_Signal): Release the process handle.
23507
23508 2005-11-14  Robert Dewar  <dewar@adacore.com>
23509
23510         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
23511         need a high precision float type for the generated code (prevents
23512         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
23513         used).
23514
23515         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
23516         need a high precision float type for the generated code (prevents
23517         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
23518         used).
23519         (Expand_Width_Attribute): In configurable run-time, the attribute is not
23520         allowed on non-static enumeration subtypes. Force a load error to emit
23521         the correct diagnostic.
23522
23523 2005-11-14  Thomas Quinot  <quinot@adacore.com>
23524             Robert Dewar  <dewar@adacore.com>
23525             Ed Schonberg  <schonberg@adacore.com>
23526
23527         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
23528         subtype to compute the size of the designated object at run-time,
23529         create such a subtype and store it in the Actual_Designated_Subtype
23530         attribute of the N_Free_Statement.
23531         Generate itype for classwide designated object in both cases of
23532         user-specified storage pool: specific and class-wide, not only in the
23533         specific case.
23534         Raise CE when trying to set a not null access type object to null.
23535         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
23536         an explicit loop, because freeze nodes make its position variable.
23537
23538         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
23539         null object.
23540
23541 2005-11-14  Javier Miranda  <miranda@adacore.com>
23542
23543         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
23544         Build_Stream_Procedure): Add the null-excluding attribute to the first
23545         formal.
23546         This has no semantic meaning under Ada95 mode but it is a
23547         requirement under Ada05 mode.
23548
23549         * par-ch3.adb (P_Access_Definition): Addition of warning message if
23550         the null exclusion is used under Ada95 mode
23551         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
23552         (P_Access_Definition): Remove assertion that forbids the use of
23553         the null-exclusion feature in Ada95.
23554
23555 2005-11-14  Robert Dewar  <dewar@adacore.com>
23556
23557         * impunit.adb: Exclude container helper units not intended for use by
23558         users.
23559
23560 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23561
23562         * freeze.adb (Freeze_Entity): For an access formal that is an access
23563         to subprogram, freeze the anonymous subprogram type at the same time,
23564         to prevent later freezing in the wrong scope, such as the enclosing
23565         subprogram body.
23566         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
23567         subprogram whenever available.
23568
23569 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
23570
23571         PR ada/23732
23572         * gnatvsn.ads (Library_Version): Bump to 4.1
23573
23574 2005-11-14  Robert Dewar  <dewar@adacore.com>
23575
23576         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
23577         Storage_Offset to avoid wrap around causing invalid results.
23578
23579 2005-11-14  Pascal Obry  <obry@adacore.com>
23580
23581         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
23582         cross-compiler.
23583         (Scan_Bind_Arg): Fail with an error message if -M option is used
23584         on a native compiler.
23585
23586 2005-11-14  Robert Dewar  <dewar@adacore.com>
23587             Vincent Celier  <celier@adacore.com>
23588
23589         * gprep.adb: Implement -C switch to scan comments
23590
23591         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
23592
23593         * scans.ads: Comment updates (including new use of Tok_Comment in
23594         preprocessing)
23595
23596         * opt.ads: Add documentation for flags that are used by gprmake,
23597         currently and in the next version of gprmake.
23598         (Verbosity_Level): New variable
23599         Add Replace_In_Comments switch
23600
23601         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
23602         and -vm.
23603         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
23604
23605 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
23606
23607         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
23608         message, friendlier.
23609
23610 2005-11-14  Robert Dewar  <dewar@adacore.com>
23611
23612         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
23613
23614 2005-11-14  Doug Rupp  <rupp@adacore.com>
23615
23616         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
23617
23618 2005-11-14  Robert Dewar  <dewar@adacore.com>
23619
23620         * interfac.ads: Change declarations of IEEE float types so that we no
23621         longer need a separate version of this package for VMS.
23622
23623 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23624
23625         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
23626         internal entity created for the declaration of a child subprogram body
23627         with no spec as coming from source, to generate proper cross-reference
23628         information.
23629
23630 2005-11-14  Vincent Celier  <celier@adacore.com>
23631
23632         * make.adb (Compile_Sources): Change verbose message to minimum
23633         verbosity level High for "is in an Ada library", "is a read-only
23634         library" and "is an internal library",
23635         (Create_Binder_Mapping_File): Path name of ALI file for library project
23636         must include the library directory, not the object directory.
23637         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
23638         for new switches -vl, -vm and -vh.
23639         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
23640         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
23641         (Compile_Sources): Do not attempt to compile if an ALI file is missing
23642         in a project that is externally built.
23643         (Compute_All_Imported_Projects): New procedure
23644         (Gnatmake): Check if importing libraries should be regenerated because
23645         at least an imported library is more recent.
23646         (Initialize): For each project compute the list of the projects it
23647         imports directly or indirectly.
23648         (Add_Library_Search_Dir): New procedure, used in place of
23649         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
23650         put in the search paths.
23651         (Add_Source_Search_Dir): New procedure, used in place of
23652         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
23653         put in the search paths.
23654         (Mark_Directory): Resolve the absolute path the directory before marking
23655         it.
23656
23657         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
23658         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
23659         Switch. Do not handle any exception.
23660         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
23661         so that the switch is recognized as valid.
23662         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
23663
23664 2005-11-14  GNAT Script  <nobody@adacore.com>
23665
23666         * Make-lang.in: Makefile automatically updated
23667
23668 2005-11-14  Pascal Obry  <obry@adacore.com>
23669
23670         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
23671         used.
23672         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
23673         In both cases the last argument was dropped.
23674
23675 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
23676
23677         * namet.h: (Column_Numbe): New type.
23678         (Get_Column_Number): Define to sinput__get_column_number.
23679         (Instantiation): Define to sinput__instantiation.
23680         (Get_Column_Number): Declare.
23681         (Instantiation): Likewise.
23682
23683 2005-11-14  Robert Dewar  <dewar@adacore.com>
23684
23685         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
23686         syntax, which could cause compiler hangs.
23687
23688 2005-11-14  Vincent Celier  <celier@adacore.com>
23689
23690         * prj-ext.adb: Take into account new environment variable
23691         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
23692         are defined.
23693         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
23694         normalize its path name, making it absolute and resolving symbolic
23695         links, and replace the original if resolved path is different.
23696
23697 2005-11-14  Vincent Celier  <celier@adacore.com>
23698
23699         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
23700         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
23701
23702 2005-11-14  Emmanuel Briot  <briot@adacore.com>
23703
23704         * prj-pp.adb (Print): Do not output the with statement if the
23705         associated name is empty, which happens for virtual extending projects.
23706         (Print): Preserve the "extends all" attribute when printing the project.
23707
23708         * prj-tree.ads (String_Value_Of): Add comment about returned value for
23709         a virtual extending project.
23710
23711 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23712
23713         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
23714         rhs of an assignment even if the type is unconstrained, when the
23715         context is non-expanding.
23716         In an inlined body, if the context type is private,
23717         resolve with its full view, which must be a composite type.
23718
23719 2005-11-14  Robert Dewar  <dewar@adacore.com>
23720             Ed Schonberg  <schonberg@adacore.com>
23721
23722         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
23723         Do not give obsolescent warning on with of subprogram (since we
23724         diagnose calls)
23725         (Analyze_With_Clause): Add test for obsolescent package
23726         (Install_Context_Clauses): If the unit is the body of a child unit, do
23727         not install twice the private declarations of the parents, to prevent
23728         circular lists of Use_Clauses in a parent.
23729         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
23730         compiling body of child unit.
23731         Use new class N_Subprogram_Instantiation
23732         (Expand_With_Clause): If this is a private with_clause for a child unit,
23733         appearing in the context of a package declaration, then the implicit
23734         with_clauses generated for parent units are private as well.
23735         (License_Check): Do not generate message if with'ed unit is internal
23736
23737 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
23738             Ed Schonberg  <schonberg@adacore.com>
23739             Thomas Quinot  <quinot@adacore.com>
23740
23741         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
23742         names are internal, because they will not have a corresponding partner
23743         in the actual package.
23744         (Analyze_Formal_Package): Move the setting of the formal package spec's
23745         Generic_Parent field so that it occurs prior to analyzing the package,
23746         to allow proper operation of Install_Parent_Private_Declarations.
23747         (Analyze_Package_Instantiation): Set the instantiated package entity's
23748         Package_Instantiation field.
23749         (Get_Package_Instantiation_Node): Move declaration to package spec.
23750         Retrieve the N_Package_Instantiation node when the Package_Instantiation
23751         field is present.
23752         (Check_Generic_Child_Unit): Within an inlined call, the only possible
23753         instantiation is Unchecked_Conversion, for which no parents are needed.
23754         (Inline_Instance_Body): Deinstall and record the use_clauses for all
23755         parent scopes of a scope being removed prior to inlining an instance
23756         body.
23757         (Analyze_Package_Instantiation): Do not perform front-end inlining when
23758         the current context is itself an instance within a non-instance child
23759         unit, to prevent scope stack errors.
23760         (Save_References): If the node is an aggregate that is an actual in a
23761         call, rewrite as a qualified expression to preserve some type
23762         information, to resolve possible ambiguities in the instance.
23763         (Instance_Parent_Unit): New global variable to record the ultimate
23764         parent unit associated with a generic child unit instance (associated
23765         with the existing Parent_Unit_Visible flag).
23766         (type Instance_Env): New component Instance_Parent_Unit for stacking
23767         parents recorded in the global Instance_Parent_Unit.
23768         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
23769         stack.
23770         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
23771         it's not a top-level unit, and only do this if Instance_Parent_Unit is
23772         not already set. Replace test of Is_Child_Unit with test of parent's
23773         scope against package Standard. Add comments and a ??? comment.
23774         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
23775         on a child instance parent to test that the parent equals
23776         Instance_Parent rather than simply checking that the unit is not a
23777         child unit.
23778         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
23779         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
23780         a formal interface are ancestors of the corresponding actual.
23781         (Validate_Formal_Interface_Type): Additional legality checks.
23782         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
23783         interface types with ancestors.
23784         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
23785         to diagnose attempts to use generic within its own declaration.
23786
23787 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23788             Javier Miranda  <miranda@adacore.com>
23789
23790         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
23791         discriminant.
23792         (Build_Private_Derived_Type): The entity of the created full view of the
23793         derived type does not come from source. If after installing the private
23794         declarations of the parent scope the parent is still private, use its
23795         full view to construct the full declaration of the derived type.
23796         (Build_Derived_Record_Type): Relax the condition that controls the
23797         execution of the check that verifies that the partial view and
23798         the full view agree in the set of implemented interfaces. In
23799         addition, this test now only takes into account the progenitors.
23800         (Derive_Interface_Subprograms): No need to derive subprograms
23801         of ancestors that are interfaces.
23802         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
23803         associated code.
23804         Change name Is_Package to Is_Package_Or_Generic_Package
23805         (Complete_Subprograms_Derivation): Handle the case in which the full
23806         view is a transitive derivation of the ancestor of the partial view.
23807         (Process_Full_View): Rename local subprogram Find_Interface_In_
23808         Descendant to Find_Ancestor_Interface to leave the code more clear.
23809         Remove wrong code that avoids the generation of an error message
23810         when the immediate ancestor of the partial view is an interface.
23811         In addition some minor reorganization of the code has been done to
23812         leave it more clear.
23813         (Analyze_Type_Declaration): If type has previous incomplete tagged
23814         partial view, inherit properly its primitive operations.
23815         (Collect_Interfaces): Make public, for analysis of formal
23816         interfaces.
23817         (Analyze_Interface_Declaration): New procedure for use for regular and
23818         formal interface declarations.
23819         (Build_Derived_Record_Type): Add support for private types to the code
23820         that checks if a tagged type implements abstract interfaces.
23821         (Check_Aliased_Component_Type): The test applies in the spec of an
23822         instance as well.
23823         (Access_Type_Declaration): Clean up declaration of malformed type
23824         declared as an access to its own classwide type, to prevent cascaded
23825         crash.
23826         (Collect_Interfaces): For private extensions and for derived task types
23827         and derived protected types, the parent may be an interface that must
23828         be included in the interface list.
23829         (Access_Definition): If the designated type is an interface that may
23830         contain tasks, create Master_Id for it before analyzing the expression
23831         of the declaration, which may be an allocator.
23832         (Record_Type_Declaration): Set properly the interface kind, for use
23833         in allocators, the creation of master id's for task interfaces, etc.
23834
23835 2005-11-14  Javier Miranda  <miranda@adacore.com>
23836             Ed Schonberg  <schonberg@adacore.com>
23837
23838         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
23839         omitted in case of stream attribute subprograms.
23840         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
23841         appear immediately after a subprogram body, when there is no previous
23842         subprogram declaration.
23843         Change name Is_Package to Is_Package_Or_Generic_Package
23844         (Process_Formals): A non null qualifier on a non null named access
23845         type is not an error, and is a warning only if Redundant_Constructs
23846         are flagged.
23847
23848 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
23849             Ed Schonberg  <schonberg@adacore.com>
23850
23851         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
23852         nested within Analyze_Package_Specification to install the private
23853         declarations and use clauses within each of the parent units of a
23854         package instance of a generic child package.
23855         (Analyze_Package_Specification): When entering a private part of a
23856         package associated with a generic instance or formal package, the
23857         private declarations of the parent must be installed (by calling new
23858         procedure Install_Parent_Private_Declarations).
23859         Change name Is_Package to Is_Package_Or_Generic_Package
23860         (Preserve_Full_Attributes): For a synchronized type, the corresponding
23861         record is absent in a generic context, which does not indicate a
23862         compiler error.
23863
23864 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23865
23866         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
23867         not try to rewrite a renamed stream attribute, because the operations
23868         on the type may not have been generated.
23869         Handle properly a renaming_as_body generated for a stream operation
23870         whose default is abstract because the object type itself is abstract.
23871         (Find_Type): If the type is incomplete and appears as the prefix of a
23872         'Class reference, it is tagged, and its list of primitive operations
23873         must be initialized properly.
23874         (Chain_Use_Clauses): When chaining the use clauses that appear in the
23875         private declaration of a parent unit, prior to compiling the private
23876         part of a child unit, find on the scope stack the proper parent entity
23877         on which to link the use clause.
23878         (Note_Redundant_Use): Emit a warning when a redundant use clause is
23879         detected.
23880         (Analyze_Object_Renaming): An attribute reference is not a legal object
23881         if it is not a function call.
23882
23883 2005-11-14  Robert Dewar  <dewar@adacore.com>
23884             Ed Schonberg  <schonberg@adacore.com>
23885
23886         * sem_eval.adb: Implement d.f flag
23887         (Subtype_Statically_Match): A generic actual type has unknown
23888         discriminants when the corresponding actual has a similar partial view.
23889         If the routine is called to validate the signature of an inherited
23890         operation in a child instance, the generic actual matches the full view,
23891
23892 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
23893             Ed Schonberg  <schonberg@adacore.com>
23894             Robert Dewar  <dewar@adacore.com>
23895             Thomas Quinot  <quinot@adacore.com>
23896
23897         * sem_res.adb (Resolve_Call): Provide a better error message whenever
23898         a procedure call is used as a select statement trigger and is not an
23899         entry renaming or a primitive of a limited interface.
23900         (Valid_Conversion): If the operand has a single interpretation do not
23901         remove address operations.
23902         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
23903         statement to inhibit warning.
23904         (Resolve_Unary_Op): Do not produce a warning when
23905         processing an expression of the form -(A mod B)
23906         Use Universal_Real instead of Long_Long_Float when we need a high
23907         precision float type for the generated code (prevents gratuitous
23908         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
23909         (Resolve_Concatenation_Arg): Improve error message when argument is an
23910         ambiguous call to a function that returns an array.
23911         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
23912         there is an implicit operator in the given scope if we are within an
23913         instance: legality check has been performed on the generic.
23914         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
23915         after resolving operand, to avoid false warnings on overloaded calls.
23916
23917 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23918             Javier Miranda  <miranda@adacore.com>
23919
23920         PR ada/15604
23921         * sem_type.adb (Covers): In an inlined body, a composite type matches
23922         a private type whose full view is a composite type.
23923         (Interface_Present_In_Ancestor): Protect the frontend against
23924         previously detected errors to ensure that its compilation
23925         with assertions enabled gives the same output that its
23926         compilation without assertions.
23927         (Interface_Present_In_Ancestor): Add support for private types.
23928         Change name In_Actual to In_Generic_Actual (clean up)
23929         (Disambiguate): New predicate In_Actual, to recognize expressions that
23930         appear in the renaming declaration generated for generic actuals, and
23931         which must be resolved in the outer context.
23932
23933 2005-11-14  Robert Dewar  <dewar@adacore.com>
23934             Thomas Quinot  <quinot@adacore.com>
23935             Hristian Kirtchev  <kirtchev@adacore.com>
23936             Ed Schonberg  <schonberg@adacore.com>
23937
23938         * sem_util.ads, sem_util.adb: Change name Is_Package to
23939         Is_Package_Or_Generic_Package.
23940         (Check_Obsolescent): New procedure.
23941         (Set_Is_Public): Remove obsolete junk test.
23942         (Set_Public_Status): Do not set Is_Public on an object whose declaration
23943         occurs within a handled_sequence_of_statemets.
23944         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
23945         for a parameterless procedure.
23946         (Enter_Name): Recognize renaming declarations created for private
23947         component of a protected type within protected operations, so that
23948         the source name of the component can be used in the debugger.
23949
23950 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
23951             Robert Dewar  <dewar@adacore.com>
23952
23953         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
23954         of a generic subprogram are not visible outside the body.
23955         (Set_Warning_Switch): New procedure (code to set warning mode moved
23956         here from Switch.C so that it can be shared by pragma processing.
23957         (Check_References): Special case warning for non-modified non-imported
23958         volatile objects.
23959         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
23960         form with a string literal argument
23961
23962 2005-11-14  Javier Miranda  <miranda@adacore.com>
23963
23964         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
23965         anonymous access.
23966         (Write): Addition of "not null" to the anonymous access.
23967         (Read): Addition of "not null" to the anonymous access.
23968         (Write): Addition of "not null" to the anonymous access.
23969
23970         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
23971         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
23972         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
23973         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
23974         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
23975         "not null" to the anonymous access.
23976
23977 2005-11-14  Robert Dewar  <dewar@adacore.com>
23978
23979         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
23980         offset values
23981
23982 2005-11-14  Vincent Celier  <celier@adacore.com>
23983
23984         * switch.adb (Bad_Switch): New procedure
23985         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
23986         message when in error.
23987
23988         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
23989         Too_Many_Output_Files): Remove declarations, no longer used.
23990         (Scan_Nat): New parameter Switch
23991         (Scan_Pos): Ditto
23992         (Bad_Switch): New procedure
23993
23994         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
23995         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
23996         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
23997         to Osint.Fail. Do not handle any exception.
23998
23999 2005-11-14  Vincent Celier  <celier@adacore.com>
24000
24001         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
24002         designates a non existent directory.
24003
24004 2005-11-14  Robert Dewar  <dewar@adacore.com>
24005
24006         * xgnatugn.adb: Replace invalid membership test by 'Valid
24007
24008 2005-11-14  Vincent Celier  <celier@adacore.com>
24009
24010         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
24011         there is no object directory.
24012
24013 2005-11-14  Robert Dewar  <dewar@adacore.com>
24014
24015         * usage.adb: Minor adjustment to output format, use nn instead of nnn
24016         (so that -gnateInnn does not run into next column)
24017
24018 2005-11-14  Ed Falis  <falis@adacore.com>
24019
24020         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
24021         "constrained"
24022
24023 2005-11-14  Cyrille Comar  <comar@adacore.com>
24024
24025         * s-chepoo.ads: Add comments on Dereference.
24026         Remove unnecessary inherited abstract primitives.
24027         Cosmetic cleanup.
24028
24029 2005-11-14  Robert Dewar  <dewar@adacore.com>
24030
24031         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
24032         node parameter, not needed, since it is available as Declaration_Node.
24033
24034 2005-11-14  Geert Bosch  <bosch@adacore.com>
24035
24036         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
24037         grammatically correct.
24038
24039 2005-11-14  Vincent Celier  <celier@adacore.com>
24040
24041         * s-fileio.ads: Correct spelling error in comment
24042
24043 2005-11-14  Cyrille Comar  <comar@adacore.com>
24044             Robert Dewar  <dewar@adacore.com>
24045             Vincent Celier  <celier@adacore.com>
24046             Ben Brosgol  <brosgol@adacore.com>
24047             Jose Ruiz  <ruiz@adacore.com>
24048             Pascal Obry  <obry@adacore.com>
24049
24050         * gnat_ugn.texi:
24051         Document that -fstack-check is needed for strict compliance with the
24052         Ada 95 Reference Manual.
24053         Correct reference to VAX systems to meet HP guidelines
24054         Add documentation for new gnatmake switches -vl, -vm and -vh
24055         Replace DEC Ada by HP Ada
24056         Replace DIGITAL by HP
24057         Remove empty section on tools in compatibility section
24058         Clarify the Windows convention semantics.
24059         Document the Win32 calling convention.
24060         The Stdcall, Win32 and DLL convention are synonyms.
24061         Add a note in -gnatR description about zero size record components
24062         Note on new >= and <= warnings for -gnatwc
24063         Document that equal sign after -gnatm is optional.
24064         Note that strip is working fine on DLL built with a Library
24065         Project. The restriction apply only to DLL built with gnatdll.
24066         Update section about the way to debug a DLL.
24067         Update information about the DLL convention.
24068         Document -C switch for gnatprep
24069         Document new attribute Library_ALI_Dir
24070         Update elaboration doc to include implicit Elaborate pragmas now
24071         generated for subprogram instantiations.
24072         Document limitation on executable names that include spaces for --GCC,
24073         --GNATBIND, and --GNATLINK switches.
24074         Document that -w causes -gnatws to be added at start of gcc switches
24075
24076         * gnat_rm.texi: Document that -mieee is needed for generating infinite
24077         and NaN values in case of overflow on machines that are not fully
24078         compliant with the IEEE floating-point standard.
24079         Create a section describing the set of compiler options needed for
24080         strict compliance with the Ada 95 Reference Manual.
24081         Add documentation for pragma Obsolescent applied to a package
24082         Clarify potential issues of mixed language programs related to the
24083         I/O buffering enabling in the elaboration of the GNAT runtime.
24084         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
24085         This documentation only patch adds extra documentsion for pragma
24086         Restrictions (No_Elaboration_Code), explaining why it is not possible
24087         to document this restriction in terms of allowed source constructs.
24088         Document string literal form of pragma Warnings
24089         Document new attribute Library_ALI_Dir
24090         Add documentation on stable attributes in project files that was missing
24091
24092         * gnat-style.texi: Indicate that paragraphs within a single comment
24093         should be separated by empty comment lines
24094
24095         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
24096         /05 respectively)
24097
24098         * bindusg.adb: Minor cleanup, put -m before -M for consistency
24099
24100 2005-11-14  Robert Dewar  <dewar@adacore.com>
24101
24102         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
24103         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
24104         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
24105         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
24106         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
24107         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
24108         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
24109         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
24110         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
24111         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
24112         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
24113         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
24114         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
24115         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
24116         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
24117         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
24118         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
24119         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
24120         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
24121         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
24122         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
24123         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
24124         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
24125         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
24126         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
24127         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
24128         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
24129         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
24130         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
24131         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
24132         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
24133         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
24134         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
24135         system-interix.ads, system-solaris-sparc.ads,
24136         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
24137         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
24138         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
24139         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
24140         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
24141         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
24142         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
24143         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
24144         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
24145         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
24146         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
24147         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
24148         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
24149         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
24150         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
24151         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
24152         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
24153         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
24154         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
24155         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
24156         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
24157         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
24158         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
24159         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
24160         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
24161         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
24162         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
24163         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
24164         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
24165         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
24166         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
24167         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
24168         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
24169         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
24170         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
24171         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
24172         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
24173         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
24174         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
24175         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
24176         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
24177         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
24178         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
24179         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
24180         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
24181         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
24182         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
24183         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
24184         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
24185         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
24186         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
24187         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
24188         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
24189         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
24190         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
24191         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
24192         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
24193         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
24194         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
24195         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
24196         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
24197         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
24198         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
24199         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
24200         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
24201         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
24202         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
24203         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
24204         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
24205         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
24206         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
24207         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
24208         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
24209         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
24210         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
24211         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
24212         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
24213         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
24214         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
24215         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
24216         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
24217         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
24218         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
24219         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
24220         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
24221         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
24222         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
24223         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
24224         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
24225         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
24226         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
24227         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
24228         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
24229         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
24230         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
24231         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
24232         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
24233         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
24234         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
24235         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
24236         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
24237         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
24238         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
24239         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
24240         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
24241         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
24242         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
24243         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
24244         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
24245         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
24246         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
24247         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
24248         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
24249         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
24250         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
24251         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
24252         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
24253         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
24254         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
24255         a-numaux-darwin.ads, a-numaux-darwin.adb,
24256         a-swuwha.ads, a-stunha.ads: Minor reformatting
24257
24258 2005-11-14  Robert Dewar  <dewar@adacore.com>
24259
24260         PR ada/18434
24261         * osint-m.adb: Add pragma Elaborate_All for Osint
24262
24263 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
24264
24265         PR ada/23995
24266         * trans.c (call_to_gnu): Restore statement lost in translation.
24267
24268 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
24269
24270         * init.c: Use the Linux-specific section for the IA-64/Linux target.
24271         (__gnat_adjust_context_for_raise): Add conditional code so that the
24272         IA-64 is also supported.
24273
24274 2005-11-03  James E Wilson  <wilson@specifix.com>
24275
24276         PR ada/23427
24277         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
24278         TREE_OVERFLOW check.
24279
24280 2005-09-21  Olivier Hainque  <hainque@adacore.com>
24281
24282         PR ada/22418
24283         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
24284         as we create them to store a size in bits.
24285
24286 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
24287
24288         PR ada/21937
24289         PR ada/22328
24290         PR ada/22381
24291         PR ada/22383
24292         PR ada/22419
24293         PR ada/22420
24294         * utils2.c (build_return_expr): New helper function.
24295         * gigi.h (build_return_expr): Declare it.
24296         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
24297         of manually building the RETURN_EXPR tree.
24298         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
24299         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
24300         build_binary_op for the "target pointer" case.  Use build_return_expr
24301         instead of manually building the RETURN_EXPR tree.
24302
24303 2005-09-16  Laurent Guerby  <laurent@guerby.net>
24304
24305         PR ada/23788
24306         * s-tpinop.ads: Make this unit Preelaborate.
24307
24308 2005-09-16  Andreas Jaeger  <aj@suse.de>
24309
24310         * socket.c: Add string.h for memcpy.
24311
24312 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
24313
24314         * dec-io.ads, dec-io.adb: Removed, no longer used.
24315
24316 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24317
24318         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
24319
24320         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
24321         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
24322         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
24323         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
24324         dependent units are Preelaborate.
24325         (Initialize): Call Interrupt_Managemeent.Initialize and
24326         OS_Primitives.Initialize to ensure proper initialization of this unit.
24327         Remove use of System.Soft_Links
24328         Make this unit Preelaborate.
24329
24330         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
24331         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
24332         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
24333         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
24334         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
24335         s-tratas.ads, s-tasinf.ads: Minor reformatting.
24336         Add pragma Preelaborate, since these packages are suitable for this
24337         categorization.
24338         Update comments.
24339
24340         * s-traent-vms.ads, s-intman-dummy.adb,
24341         s-taprop-dummy.adb: Make this unit Preelaborate.
24342
24343         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
24344         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
24345         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
24346         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
24347         s-intman-solaris.adb, s-intman-irix-athread.adb,
24348         s-intman-irix.adb: Mark this unit Preelaborate.
24349         (Initialize): New procedure.
24350         Update comments.
24351
24352         * s-taspri-linux.ads: Removed.
24353
24354         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
24355         as done by other implementations (e.g. posix).
24356
24357         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
24358         responsible for deferring abort.
24359         Mark this unit Preelaborate.
24360
24361         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
24362         proper initialization of the tasking run-time.
24363
24364         * s-tasdeb.ads: Mark this unit Preelaborate.
24365         (Known_Tasks): Add explicit default value to avoid elaboration code.
24366
24367         * s-inmaop-vms.adb (Elaboration code): Add call to
24368         Interrupt_Management.Initialize since the elaboration code depends on
24369         proper initialization of this package.
24370
24371         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
24372         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
24373         s-osprim-posix.adb: Make this unit Preelaborate.
24374
24375         * a-calend.adb: Add call to OS_Primitives.Initialize
24376
24377         * a-elchha.adb: Update use of Except.Id.Full_Name.
24378         Minor reformatting.
24379         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
24380
24381         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
24382         Move with clauses outside Warnings Off now that dependent units are
24383         Preelaborate.
24384         Use raise xxx with "..."; Ada 2005 form.
24385
24386         * a-taside.ads, a-taside.adb:
24387         Remove some dependencies, to make it easier to make this unit truly
24388         Preelaborate.
24389         Rewrite some code to be conformant with Preelaborate rules.
24390
24391         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
24392         marked Preelaborate in the future.
24393
24394         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
24395         these units Preelaborate.
24396
24397         * s-exctab.adb: Update use of Except.Id.Full_Name.
24398
24399         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
24400         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
24401         Set_Exc_Stack_Addr): Removed, no longer used.
24402         Remove reference to *Machine_State_Addr*, no longer needed.
24403
24404         * s-stalib.ads: Mark this unit as Preelaborate[_05].
24405         (Exception_Data): Full_Name is now a System.Address so that this unit
24406         can be made Preelaborate.
24407         Clean up/simplify code thanks to Full_Name being a System.Address.
24408         Remove obsolete pragma Suppress (All_Checks), no longer needed.
24409
24410         * s-taskin.ads, s-taskin.adb:
24411         Move with clauses outside Warnings Off now that dependent units are
24412         Preelaborate.
24413         Make this unit Preelaborate.
24414         (Initialize): New proceduure, replace elaboration code and makes the
24415         set up of the tasking run-time cleaner.
24416         (Detect_Blocking): Now a function instead of a deferred boolean, to
24417         obey Preelaborate rules.
24418
24419         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
24420         soft links, no longer used.
24421
24422         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
24423         packages are suitable for this categorization.
24424
24425         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
24426         since we compile run-time sources in Ada 2005 mode.
24427         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
24428         avoid having s-taprop*.adb depend on s-soflin and to avoid code
24429         duplication.
24430         Remove reference to *Machine_State_Addr*, no longer needed.
24431
24432 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24433
24434         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
24435         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
24436         Remove reference to System.Exceptions.
24437
24438         * s-mastop-x86.adb: Removed, no longer used.
24439
24440         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
24441
24442         * a-excach.adb: Minor reformatting.
24443
24444         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
24445         instead fix new warnings that were hidden by this change.
24446         (AAA, ZZZ): Removed, replaced by...
24447         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
24448         are used instead of constants, to help make Ada.Exception truly
24449         preelaborate.
24450         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
24451         Raise_Storage_Error): File is now a System.Address, to simplify code.
24452         (Elab code): Removed, no longer used.
24453         (Null_Occurrence): Remove Warnings Off and make this construct
24454         preelaborate.
24455         Remove code related to front-end zero cost exception handling, since
24456         it is no longer used.
24457         Remove -gnatL/-gnatZ switches.
24458
24459         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
24460         Update use of Except.Msg.
24461
24462         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
24463         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
24464         to front-end zero cost exception handling, since it is no longer used.
24465         Remove -gnatL/-gnatZ switches.
24466
24467         * lib-writ.ads: Minor reformatting
24468         Remove doc of UX
24469
24470         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
24471
24472         * Make-lang.in: Remove references to s-except.ads
24473
24474         * s-except.ads: Removed, no longer used.
24475
24476         * s-mastop.ads, s-mastop.adb:
24477         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
24478         Remove reference to System.Exceptions.
24479
24480         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
24481         switch-b.adb: Remove code related to front-end zero cost exception
24482         handling, since it is no longer used.
24483         Remove -gnatL/-gnatZ switches.
24484
24485 2005-09-01  Robert Dewar  <dewar@adacore.com>
24486             Gary Dismukes  <dismukes@adacore.com>
24487             Javier Miranda  <miranda@adacore.com>
24488
24489         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
24490         type by valid test and generate warning.
24491         (Tagged_Membership): Generate call to the run-time
24492         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
24493         Change formal name Subtype_Mark to Result_Definition in several calls to
24494         Make_Function_Specification.
24495         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
24496         check for proper accessibility of the operand of a class-wide allocator.
24497         The check can be left out if checks are suppressed or if the expression
24498         has a specific tagged type whose level is known to be safe.
24499
24500         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
24501         generates the run-time check associated with null-excluding entities.
24502         (Expand_N_Return_Statement): Add tests to determine if the accessibility
24503         check on the level of the return expression of a class-wide function
24504         can be elided. The check usually isn't needed if the expression has a
24505         specific type (unless it's a conversion or a formal parameter). Also
24506         add a test for whether accessibility checks are suppressed. Augment
24507         the comments to describe the conditions for performing the check.
24508
24509 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
24510             Javier Miranda  <miranda@adacore.com>
24511             Gary Dismukes  <dismukes@adacore.com>
24512             Ed Schonberg  <schonberg@adacore.com>
24513
24514         * a-tags.adb (IW_Membership): Give support to
24515         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
24516         subprogram has been extended to look for the tag in the ancestors tag
24517         table.
24518         Update the structure of the GNAT Dispatch Table to reflect the
24519         additional two tables used in dispatching selects.
24520         Introduce appropriate array types and record components in
24521         Type_Specific_Data to reflect the two tables.
24522         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
24523         the TSD of a tag, indexed by position.
24524         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
24525         operation kind in the TSD of a tag, indexed by position.
24526
24527         * a-tags.ads: Introduce an enumeration type to capture different
24528         primitive operation kinds. Define a constant reflecting the number of
24529         predefined primitive operations.
24530         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
24531         of an entry wrapper.
24532         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
24533         callable entity of a primitive operation.
24534
24535         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
24536         primitive operations used in dispatching selects for limited
24537         interfaces, limited tagged, task and protected types what implement a
24538         limited interface.
24539         (Freeze_Type): Generate the bodies of the primitive operations used in
24540         dispatching selects for limited tagged, task and protected types that
24541         implement a limited interface. Generate statements to populate the two
24542         auxiliary tables used for dispatching in select statements.
24543         (Freeze_Record_Type): Add call to initialize the dispatch table entries
24544         associated with predefined interface primitive operations.
24545         (Build_Dcheck_Function): Change Set_Subtype_Mark to
24546         Set_Result_Definition.
24547         (Build_Variant_Record_Equality): Change Subtype_Mark to
24548         Result_Definition.
24549         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
24550         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
24551         (Build_Assignment): Simplify the code that adds the run-time-check.
24552         (Expand_N_Object_Declaration): Code cleanup.
24553
24554         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
24555         entries when there is a protected type that implements a limited
24556         interface.
24557
24558         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
24559         common routines used in expansion of dispatching selects.
24560         (Add_Private_Declarations): Select the appropriate protection type when
24561         there is a protected type that implements a limited interface.
24562         (Build_Parameter_Block): Generate a wrapped parameter block.
24563         (Build_Protected_Subprogram_Body): Select the appropriate type for
24564         locking entries when there is a protected type that implements a
24565         limited interface.
24566         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
24567         classified as entry wrappers.
24568         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
24569         asynchronous selects.
24570         (Expand_N_Conditional_Entry_Call): Add support for expansion of
24571         dispatching conditional selects.
24572         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
24573         protection when there is a protected type that implements limited
24574         interfaces.
24575         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
24576         timed selects.
24577         (Extract_Dispatching_Call): Extract the entity of the name of a
24578         dispatching call, the object parameter, actual parameters and
24579         corresponding formals.
24580         (Make_Initialize_Protection): Correct logic of protection initialization
24581         when there is a protected type that implements a limited interface.
24582         (Parameter_Block_Pack): Populate a wrapped parameter block with the
24583         values of actual parameters.
24584         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
24585         block and assign them to the original actual parameters.
24586
24587         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
24588         (Build_Protected_Sub_Specification): Change the type and name of the
24589         last formal to account for the increased variety of protection modes.
24590
24591         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
24592         entities. Used to save the value of the Is_Hidden attribute when the
24593         limited-view is installed.
24594         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
24595         the attribute of procedures classified as entry wrappers.
24596         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
24597         entity of a primitive wrapper.
24598         (Write_Entity_Flags): Output the name and value of the
24599         Is_Primitive_Wrapper attribute.
24600         (Write_Field27_Name): Output the name and entity of the field Wrapped_
24601         Entity.
24602         (Underlying_Type): If we have an incomplete entity that comes from
24603         the limited view then we return the Underlying_Type of its non-limited
24604         view if it is already available.
24605         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
24606         including operators.
24607         (Write_Field26_Name): Add entry for Overridden_Operation
24608         (Overridden_Operation): New attribute of functions and procedures.
24609
24610         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
24611         predefined position in the dispatch table for the primitive operations
24612         used in dispatching selects.
24613         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
24614         predefined primitive operations and replace it with
24615         Default_Prim_Op_Count.
24616         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
24617         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
24618         the names of the generated primitive operations used in dispatching
24619         selects.
24620         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
24621         case of abstract interface types. They will be inherit by the objects
24622         implementing the interface.
24623         (Make_DT): There is no need to inherit the dispatch table of the
24624         ancestor interface for the elaboration of abstract interface types.
24625         The dispatch table will be inherited by the object implementing the
24626         interface.
24627         (Copy_Secondary_DTs): Add documentation.
24628         (Validate_Position): Improve this static check in case of
24629         aliased subprograms because aliased subprograms must have
24630         the same position.
24631         (Init_Predefined_Interface_Primitives): New subprogram that initializes
24632         the entries associated with predefined primitives of all the secondary
24633         dispatch tables.
24634         (Build_Anonymous_Access_Type): Removed.
24635         (Expand_Interface_Actuals): With the previous cleanup there is no need
24636         to build an anonymous access type. This allows further cleanup in the
24637         code generated by the expander.
24638         (Expand_Interface_Conversion): If the actual is an access type then
24639         build an internal function to handle the displacement. If the actual
24640         is null this function returns null because no displacement is
24641         required; otherwise performs a type conversion that will be
24642         expanded in the code that returns the value of the displaced actual.
24643         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
24644         conversions that have no effect in the generated code because no
24645         displacement is required. Code cleanup; use local variables to
24646         avoid repeated calls to the subprogram directly_designated_type().
24647
24648         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
24649         Classify the primitive operations used in dispatching selects as
24650         predefined.
24651         (Implements_Limited_Interface): Determine whether some type either
24652         directly implements a limited interface or extends a type that
24653         implements a limited interface.
24654         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
24655         (Expand_Subtype_From_Expr): Do not build actual subtype if the
24656         expression is limited.
24657         (Find_Interface_Tag): Add code to handle class-wide types and
24658         entities from the limited-view.
24659
24660         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
24661         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
24662         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
24663         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
24664         Set_Prim_Op_Kind.
24665
24666         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
24667         of procedure name or prefix that appears as a trigger in a triggering
24668         alternative.
24669
24670         * uintp.ads: Introduce constants Uint_11 and Uint_13.
24671
24672 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24673
24674         * s-tataat.adb, a-tasatt.adb:
24675         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
24676
24677         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
24678         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
24679         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
24680         longer used.
24681
24682 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24683             Jose Ruiz  <ruiz@adacore.com>
24684
24685         * s-taprop-vxworks.adb:
24686         Move with clauses outside Warnings Off now that dependent units are
24687         Preelaborate.
24688         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
24689         initialization of this unit.
24690         (Specific): Add new procedures Initialize and Delete so that this
24691         package can be used for VxWorks 5.x and 6.x
24692         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
24693         differences between VxWorks 5.x and 6.x
24694         Minor reformatting.
24695         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
24696         caller.
24697         Use only Preelaborate-compatible constructs.
24698
24699         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
24700         Primitives.Operations.
24701         (Delete, Initialize): New procedures.
24702
24703         * s-osinte-vxworks.adb: Body used to handle differences between
24704         VxWorks 5.x and 6.x
24705         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
24706
24707         * s-osinte-vxworks.ads: Minor reformatting.
24708         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
24709         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
24710         and 6.
24711         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
24712         between Vxworks 5 and 6.
24713         (taskLock, taskUnlock): Removeed, no longer used.
24714
24715         * adaint.c: The wait.h header is not located in the sys directory on
24716         VxWorks when using RTPs.
24717         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
24718         using RTPs.
24719         (__gnat_dup): dup is available on Vxworks when using RTPs.
24720         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
24721
24722         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
24723
24724         * expect.c: The wait.h header is not located in the sys directory on
24725         VxWorks when using RTPs.
24726
24727 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24728
24729         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
24730
24731         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
24732
24733         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
24734         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
24735         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
24736         g-soccon-freebsd.ads: Add new constants:
24737          IP_MULTICAST_IF
24738          SO_RCVTIMEO/SO_SNDTIMEO
24739          IOV_MAX
24740
24741         * gen-soccon.c:
24742         Move all target-specific file inclusions and macro definitions to
24743         gsocket.h, in order to ensure that any C code in socket.c will see a
24744         set of constants that is consistent with the contents of g-soccon.ads.
24745
24746         * gsocket.h: Code imported from gen-soccon.c:
24747         Move all target-specific file inclusions and macro definitions to
24748         gsocket.h, in order to ensure that any C code in socket.c will see a set
24749         of constants that is consistent with the contents of g-soccon.ads.
24750         This change also makes gen-soccon self-contained (removing dependencies
24751         upon GCC internal headers).
24752
24753         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
24754         iovecs at a time.
24755         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
24756
24757         * socket.c: Minor reformatting.
24758
24759 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24760             Thomas Quinot  <quinot@adacore.com>
24761
24762         * fname-sf.adb, mlib-tgt.ads,
24763         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
24764         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
24765         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
24766         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
24767         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
24768         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
24769         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
24770         makegpr.adb: Remove redundant use_clauses.
24771
24772 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
24773
24774         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
24775         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
24776         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
24777         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
24778         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
24779         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
24780         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
24781         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
24782         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
24783         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
24784         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
24785         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
24786         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
24787         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
24788         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
24789         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
24790         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
24791         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
24792         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
24793         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
24794         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
24795         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
24796         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
24797         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
24798         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
24799         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
24800         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
24801         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
24802         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
24803         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
24804         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
24805         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
24806         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
24807         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
24808         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
24809         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
24810         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
24811         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
24812         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
24813         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
24814         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
24815         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
24816         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
24817         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
24818         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
24819         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
24820         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
24821         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
24822         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
24823         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
24824         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
24825         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
24826         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
24827         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
24828         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
24829         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
24830         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
24831         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
24832         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
24833         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
24834         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
24835         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
24836         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
24837         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
24838         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
24839         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
24840         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
24841         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
24842         and always use the no parameter form for consistency.
24843
24844         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
24845
24846 2005-09-01  Robert Dewar  <dewar@adacore.com>
24847
24848         * binde.adb: Minor reformatting
24849         (Find_Elab_Order): Output warning if -p used with static elab order
24850
24851 2005-09-01  Robert Dewar  <dewar@adacore.com>
24852
24853         * checks.adb (Check_Needed): New procedure, deals with removing checks
24854         based on analysis of short-circuited forms. Also generates warnings for
24855         improper use of non-short-circuited forms.
24856         Code clean ups.
24857
24858 2005-09-01  Robert Dewar  <dewar@adacore.com>
24859
24860         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
24861         with 'Valid tests.
24862
24863 2005-09-01  Robert Dewar  <dewar@adacore.com>
24864
24865         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
24866         spec.
24867         Implement new insertion char < (conditional warning)
24868         * errutil.adb, erroutc.adb: Implement new insertion char <
24869         (conditional warning).
24870         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
24871         (Error_Msg_Warn): New variable for < insertion char.
24872         * prj-nmsc.adb: Implement new errout insertion char < (conditional
24873         warning).
24874         (Check_For_Source): Change value of Source_Id only after the current
24875         source has been dealt with.
24876
24877 2005-09-01  Robert Dewar  <dewar@adacore.com>
24878             Doug Rupp  <rupp@adacore.com>
24879
24880         * exp_attr.adb: Handle vax fpt for 'Valid attribute
24881         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
24882         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
24883         (Valid_D, Valid_F, Valid_G): New functions
24884
24885 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24886             Hristian Kirtchev  <kirtchev@adacore.com>
24887             Javier Miranda  <miranda@adacore.com>
24888
24889         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
24890         from object notation, the original node is unanalyzed and carries no
24891         semantic information, so that accessiblity checks must be performed on
24892         the type of the actual itself.
24893         (Expand_N_Subprogram_Declaration): Change last actual parameter for
24894         compatibility with Build_Protected_Sub_Specification.
24895         (Check_Overriding_Inherited_Interfaces): Add suport to handle
24896         overloaded primitives.
24897         (Register_Interface_DT_Entry): Use the new name of the formal
24898         the the calls to Expand_Interface_Thunk
24899
24900         * exp_dbug.ads: Augment comments on encoding of protected types to
24901         include the generation of dispatching subprograms when the type
24902         implements at least one interface.
24903
24904         * lib.ads: Extend information in Load_Stack to include whether a given
24905         load comes from a Limited_With_Clause.
24906
24907         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
24908         whether a potential circularity is harmless, because it includes units
24909         loaded through a limited_with clause. Extends previous treatment which
24910         did not handle properly arbitrary combinations of limited and
24911         non-limited clauses.
24912
24913 2005-09-01  Nicolas Setton  <setton@adacore.com>
24914
24915         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
24916         to be encoded as typ___XBLU_lowerbound__upperbound instead of
24917         typ___XB_lowerbound__upperbound.
24918
24919 2005-09-01  Thomas Quinot  <quinot@adacore.com>
24920
24921         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
24922         dummy access formal for RACW/RAS TypeCode TSS.
24923         (Build_TypeCode_Call): Do not generate dummy null access actual for
24924         calls to the TypeCode TSS.
24925
24926 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
24927
24928         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
24929         fully qualified name, to distinguish instances with the same local name.
24930
24931         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
24932         fully qualified.
24933
24934 2005-09-01  Robert Dewar  <dewar@adacore.com>
24935
24936         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
24937         packed arrays.
24938
24939 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
24940
24941         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
24942         (Free): New deallocation procedure for filter elements
24943         (Close): Deallocate any existing filter for the concerned connection
24944
24945 2005-09-01  Laurent Pautet  <pautet@adacore.com>
24946
24947         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
24948         position set is provided, we compute one in order to reduce the maximum
24949         length of the keys.  This computation first selects a character
24950         position between 1 and the minimum length of the keys in order to
24951         avoid reducing one of the keys to an empty string.
24952         (Initialize, Compute): When the ratio V to K is too low, the algorithm
24953         does not converge. The initialization procedure now comes with a
24954         maximum number of iterations such that when exceeded, an exception is
24955         raised in Compute. The user can initialize this ratio to another value
24956         and try again
24957         Reformating and updated headers.
24958
24959 2005-09-01  Javier Miranda  <miranda@adacore.com>
24960
24961         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
24962         that given an entity T creates and returns an Itype that duplicates the
24963         contents of T. The returned Itype has the null-exclusion
24964         attribute set to True, and its Etype attribute references T
24965         to keep the association between the two entities.
24966         Update copyright notice
24967
24968         * sem_aggr.adb (Check_Can_Never_Be_Null,
24969         Aggregate_Constraint_Checks, Resolve_Aggregate,
24970         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
24971
24972         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
24973
24974 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
24975             Robert Dewar  <dewar@adacore.com>
24976             Hristian Kirtchev  <kirtchev@adacore.com>
24977
24978         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
24979         Result_Definition.
24980
24981         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
24982         function specs.
24983         Call Set_Result_Definition instead of Set_Subtype_Mark.
24984         (P_Subprogram_Specification): Add parsing of anonymous access result
24985         plus null exclusions. Call Set_Result_Definition instead of
24986         Set_Subtype_Mark.
24987
24988         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24989         (P_Access_Type_Definition): Add parsing for an anonymous access result
24990         subtype, plus parsing for null exclusions. Call Set_Result_Definition
24991         instead of Set_Subtype_Mark.
24992
24993         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
24994         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
24995         (Result_Definition): New function for N_Function_Specifications.
24996         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
24997         N_Function_Specification.
24998         (Set_Null_Exclusion_Present): Allow this flag for
24999         N_Function_Specification.
25000         (Set_Result_Definition): New procedure for N_Function_Specifications.
25001         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
25002         and N_Function_Specification.
25003
25004         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
25005         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
25006         Add support for LIMITED NEW for Ada 2005 AI-419
25007         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
25008         syntax for anonymous access results.
25009         Replace Subtype_Mark field by Result_Definition in
25010         N_Function_Specification and N_Access_Definition specs.
25011         Add Null_Exclusion_Present to spec of N_Function_Specification.
25012         (Result_Definition): New function for N_Function_Specification and
25013         N_Access_Function_Definition.
25014         (Set_Result_Definition): New procedure for N_Function_Specification and
25015         N_Access_Function_Definition.
25016
25017         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
25018         Result_Definition for cases of N_Access_Function_Definition and
25019         N_Function_Specification.
25020         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
25021
25022 2005-09-01  Vincent Celier  <celier@adacore.com>
25023
25024         * lib-writ.adb: Update Copyright notice
25025         (Write_With_Lines): On platforms where file names are case-insensitive,
25026         record the file names in lower case.
25027         (Write_ALI): For D lines, on platforms where file names are
25028         case-insensitive, record the file names in lower case.
25029
25030 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
25031             Emmanuel Briot  <briot@adacore.com>
25032
25033         * lib-xref.adb (Output_Overridden_Op): Display information on
25034         overridden operation.
25035
25036         * lib-xref.ads: Add documentation on overridden operations.
25037
25038         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
25039         information.
25040
25041         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
25042         overriding entity information.
25043
25044 2005-09-01  Vincent Celier  <celier@adacore.com>
25045
25046         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
25047         including those that are inherited.
25048
25049 2005-09-01  Robert Dewar  <dewar@adacore.com>
25050
25051         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
25052
25053         * par-prag.adb: Implement new pragma Debug_Policy
25054
25055         * sem_prag.adb Implement new pragma Debug_Policy
25056         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
25057         Component_Size attribute specification. Give warning for ignored pragma
25058         Pack.
25059
25060         * snames.h, snames.ads, snames.adb: Introduce entries in
25061         Preset_Names for Name_Disp_Asynchronous_Select,
25062         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
25063         Name_Disp_Timed_Select.
25064         New pragma Debug_Policy
25065
25066         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
25067         explicitly.
25068         Switch -gnata also sets Debug_Pragmas_Enabled
25069
25070         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
25071         handle an explicit -gnata when compiling predefined files.
25072
25073 2005-09-01  Vincent Celier  <celier@adacore.com>
25074
25075         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
25076         directories of projects that have no Ada sources.
25077
25078 2005-09-01  Robert Dewar  <dewar@adacore.com>
25079
25080         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
25081         (makes a difference for wide characters)
25082
25083         * widechar.adb, widechar.ads:
25084         Add Wide_Char_Byte_Count feature to count chars vs bytes
25085
25086 2005-09-01  Thomas Quinot  <quinot@adacore.com>
25087             Ed Schonberg  <schonberg@adacore.com>
25088             Robert Dewar  <dewar@adacore.com>
25089
25090         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
25091         'Address attribute reference with an overloaded prefix, use the
25092         location of the prefix (not the location of the attribute reference) as
25093         the error location.
25094         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
25095         a function renaming thereof, is a valid prefix for 'Size (where it is
25096         intepreted as a function call).
25097         (Statically_Denotes_Entity): New predicate to determine whether the
25098         prefix of an array attribute can be considered static.
25099
25100         PR ada/9087
25101         (Eval_Attr): Fix failure to evaluate Component_Size for
25102         unconstrained arrays (resulted in wrong value in packed case, since
25103         back end cannot handle this case)
25104
25105 2005-09-01  Robert Dewar  <dewar@adacore.com>
25106
25107         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
25108         error msgs for most common cases.
25109         Use new errout insertion char < (conditional warning)
25110
25111 2005-09-01  Javier Miranda  <miranda@adacore.com>
25112             Ed Schonberg  <schonberg@adacore.com>
25113
25114         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
25115         become local to the whole package.
25116         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
25117         the package was already analyzed the new algorithm "replaces" the
25118         real entities by the shadow ones. This is required to ensure that
25119         the order of these entities in the homonym chains does not change;
25120         otherwise we can have undefined references at linking time because
25121         in case of conflicts the external name of the entities will have
25122         a suffix that depends on the order of the entities in the chain.
25123         (Remove_Limited_With_Clause): Complementary code that completes the
25124         new algorithm and replaces the shadow entities by the real ones.
25125         (Install_Limited_Withed_Unit): When unchaining entities before the
25126         installation of the shadow entities, only regular entities of the
25127         public part must be taken into account. This is required to
25128         keep this routine in synch with the work done by Remove_Limited_
25129         With_Clause
25130         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
25131         even if unit is analyzed, because the analysis of the unit is
25132         idempotent in any case, and the limited view of the unit may have to
25133         be installed for proper visibility.
25134         (Expand_Limited_With_Clause): Even if the unit in the implicit
25135         with_clause has been analyzed already, a limited view of the package
25136         must be built for the current context, if it does not exist yet.
25137
25138 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
25139             Javier Miranda  <miranda@adacore.com>
25140             Gary Dismukes  <dismukes@adacore.com>
25141
25142         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
25143         defining entity for the instance body, make a new defining identifier
25144         rather than copying the entity of the spec, to prevent accidental
25145         sharing of the entity list.
25146         (Check_Private_View): When exchanging views of private types, build the
25147         list of exchanged views as a stack, to ensure that on exit the exchanges
25148         are undone in the proper order.
25149         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
25150         Restore the compilation environment in case of instantiation_error.
25151         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
25152         for an anonymous access result.
25153         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
25154         (Formal_Entity): Handle properly the case of a formal package that
25155         denotes a generic package renaming.
25156
25157 2005-09-01  Thomas Quinot  <quinot@adacore.com>
25158
25159         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
25160         clause if the array aggregate is surrounded by parentheses.
25161
25162 2005-09-01  Cyrille Comar  <comar@adacore.com>
25163             Gary Dismukes  <dismukes@adacore.com>
25164             Ed Schonberg  <schonberg@adacore.com>
25165             Javier Miranda  <miranda@adacore.com>
25166
25167         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
25168         underlying type
25169         to check if a type is Constrained in cases related to code generation
25170         (rather than semantic checking) since otherwise we do not generate
25171         similar code for mutable private types depending if their
25172         discriminants are visible or not.
25173         (Check_Abstract_Overriding): Do not complain about failure to override
25174         the primitive operations used in dispatching selects since they will
25175         always be overriden at the freeze point of the type.
25176         (Access_Definition): Separate out handling for resetting the scope
25177         of an anonymous access function result type. Retrieve the scope
25178         of the associated function rather than using Current_Scope, which
25179         does not have a consistent value (depends on whether we're in the
25180         middle of analyzing formal parameters). Add ??? comment about
25181         finding a cleaner way to handle the special cases of scope setting.
25182         (Process_Incomplete_Dependents): A protected operation is never a
25183         dispatching operation (only its wrapper may be).
25184         (Build_Derived_Record_Type): In case of tagged private types that
25185         implement interfaces add derivation of predefined primitive
25186         operations.
25187         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
25188         by two parameters that are used in case of derivation from abstract
25189         interface types: No_Predefined_Prims is used to avoid the derivation
25190         of predefined primitives from the interface, and Predefined
25191         Prims_Only is used to complete the derivation predefined primitives
25192         in case of private tagged types implementing interfaces.
25193         Fix typo in comments
25194         (Find_Interface_In_Descendant): Protect the frontend against
25195         wrong code with large circularity chains.
25196         (Is_Private_Overriding): Add support for entities overriding interface
25197         subprograms. The test failed because Entities associated with overriden
25198         interface subprograms are always marked as hidden (and used to build
25199         the secondary dispatch table); in this case the overriden entity is
25200         available through the field abstract_interface_alias (cf. override_
25201         dispatching_operation)
25202         (Access_Definition): Set the scope of the type to Current_Scope for the
25203         case of a function with an anonymous access result type.
25204         (Access_Subprogram_Declaration): Handle creation of the type entity for
25205         an access-to-function type with an anonymous access result.
25206         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
25207         in handling for N_Access_Function_Definition.
25208         (Analyze_Subtype_Declaration): Modify the text of error message.
25209         (Derived_Type_Declaration): Modify the text of error message.
25210         (Process_Subtype): Modify the text of error message plus cleanup
25211         of one redundant error message.
25212         (Analyze_Component_Declaration): Code cleanup.
25213         (Analyze_Object_Declaration): Code cleanup.
25214         (Analyze_Subtype_Declaration): Propagate the null-exclusion
25215         attribute in case of access types. Code cleanup.
25216         (Array_Type_Declaration): Code cleanup.
25217         (Process_Discriminants): Create the new null-excluding itype
25218         if required. Code cleanup.
25219         (Process_Subtype): Create the new null-excluding itype if
25220         required. Code cleanup.
25221         (Build_Derived_Record_Type): Code cleanup to avoid calling
25222         twice the subprogram derive_subprograms in case of private
25223         types that implement interfaces. In this particular case the
25224         subprogram Complete_Subprograms_Derivation already does the
25225         job associated with the second call.
25226
25227         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
25228         conversion to the full view when generating an operation for a
25229         discriminant whose type may currently be private.
25230
25231 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
25232             Javier Miranda  <miranda@adacore.com>
25233
25234         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
25235         V (Obj.F), the rewriting does not involve the indexed component, but
25236         only the selected component itself.
25237         Do not apply the transformation if the analyzed node is an actual of a
25238         call to another subprogram.
25239         (Complete_Object_Operation): Retain the entity of the
25240         dispatching operation in the selector of the rewritten node. The
25241         entity will be used in the expansion of dispatching selects.
25242         (Analyze_One_Call): Improve location of the error message associated
25243         with interface.
25244         (Analyze_Selected_Component): No need to resolve prefix when it is a
25245         function call, resolution is done when parent node is resolved, as
25246         usual.
25247         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
25248         when attempting to resolve a call transformed from its object notation.
25249         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
25250         of the argument list for each interpretation of the operation.
25251         (Try_Object_Operation): The designated type of an access parameter may
25252         be an incomplete type obtained through a limited_with clause, in which
25253         case the primitive operations of the type are retrieved from its full
25254         view.
25255         (Analyze_Call): If this is an indirect call, and the return type of the
25256         access_to_subprogram is incomplete, use its full view if available.
25257
25258 2005-09-01  Javier Miranda  <miranda@adacore.com>
25259             Gary Dismukes  <dismukes@adacore.com>
25260
25261         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
25262         access types the null-exclusion and access-to-constant attributes must
25263         also match.
25264         (Analyze_Return_Statement): When the result type is an anonymous access
25265         type, apply a conversion of the return expression to the access type
25266         to ensure that appropriate accessibility checks are performed.
25267         (Analyze_Return_Type): For the case of an anonymous access result type,
25268         generate the Itype and set Is_Local_Anonymous_Access on the type.
25269         Add ??? placeholder for check to disallow returning a limited object
25270         in Ada 2005 unless it's an aggregate or a result of a function call.
25271         Change calls from Subtype_Mark to Result_Definition.
25272         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
25273         Result_Definition in call to Make_Function_Specification.
25274         (Build_Body_To_Inline): Change Set_Subtype_Mark to
25275         Set_Result_Definition.
25276         (Make_Inequality_Operator): Change formal Subtype_Mark to
25277         Result_Definition in call to Make_Function_Specification.
25278         (Process_Formals): Create the new null-excluding itype if required.
25279         (New_Overloaded_Entity): For an entity overriding an interface primitive
25280         check if the entity also covers other abstract subprograms in the same
25281         scope. This is required to handle the general case, that is, overriding
25282         other interface primitives and overriding abstract subprograms inherited
25283         from some abstract ancestor type.
25284         (New_Overloaded_Entity): For an overriding entity that comes from
25285         source, note the operation that it overrides.
25286         (Check_Conformance, Type_Conformant): Addition of one new formal
25287         to skip controlling formals in the analysis. This is used to
25288         handle overloading of abstract interfaces.
25289         (Base_Types_Match): Add missing case for types imported from
25290         limited-with clauses
25291         (New_Overloaded_Entity): Add barrier to protect the use of
25292         the "alias" attribute.
25293
25294 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
25295
25296         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
25297         verify that the procedure and the entry are mode conformant.
25298         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
25299         as a different operator, which is often a cut-and-paste error.
25300
25301 2005-09-01  Javier Miranda  <miranda@adacore.com>
25302             Ed Schonberg  <schonberg@adacore.com>
25303
25304         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
25305         used in controlling parameters exclude null because it is necessary to
25306         read the tag to dispatch, and null has no tag.
25307         (Override_Dispatching_Operation): If the previous operation is inherited
25308         from an interface, it becomes hidden  and does not participate in later
25309         name resolution.
25310
25311 2005-09-01  Javier Miranda  <miranda@adacore.com>
25312             Ed Schonberg  <schonberg@adacore.com>
25313             Gary Dismukes  <dismukes@adacore.com>
25314
25315         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
25316         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
25317         the expander will generate the corresponding run-time check to evaluate
25318         the expression.
25319         (Resolve_Call): Check for legal type of procedure name or prefix that
25320         appears as a trigger in a triggering alternative.
25321         (Valid_Conversion): If expression is ambiguous and the context involves
25322         an extension of System, remove System.Address interpretations.
25323         (Resolve_Qualified_Expression): Reject the case of a specific-type
25324         qualification applied to a class-wide argument. Enhance comment
25325         to explain checking of Original_Node.
25326         (Resolve_Type_Conversion): The location of the error message was not
25327         general enough to handle the general case and hence it has been removed.
25328         In addition, this patch improves the text of the message.
25329         (Resolve_Type_Conversion): Add missing support for access to interface
25330         types.
25331         (Resolve_Type_Conversion): If the target is a class-wide interface type,
25332         do not expand if the expression is the actual in a call, because proper
25333         expansion will take place when the call itself is expanded.
25334         (Resolve_Allocator): If the context is an unchecked conversion, the
25335         allocator inherits its storage pool, if any, from the target type of
25336         the conversion.
25337
25338 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
25339             Javier Miranda  <miranda@adacore.com>
25340
25341         * sem_type.adb (Add_One_Interp): If a candidate operation is an
25342         inherited interface operation that has an implementation, use the
25343         implementation to avoid spurious ambiguities.
25344         (Interface_Present_In_Ancestor): In case of concurrent types we can't
25345         use the Corresponding_Record_Typ attribute to look for the interface
25346         because it is set by the expander (and hence it is not always
25347         available). For this reason we traverse the list of interfaces
25348         (available in the parent of the concurrent type).
25349         (Interface_Present_In_Ancestor): Handle entities from the limited view
25350
25351 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
25352
25353         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
25354         from the list of required components.
25355         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
25356         primitive procedure of a limited interface with a controlling first
25357         parameter.
25358         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
25359         of an entry.
25360         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
25361         capture if it is generated in the second operand of a short-circuit
25362         operation.
25363         Do not capture values for variables with address clauses.
25364         (Is_Object_Reference): Treat a function call as an object reference only
25365         if its type is not Standard_Void_Type.
25366
25367 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
25368
25369         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
25370         to a variable that is statically known to be constant.
25371
25372 2005-09-01  Geert Bosch  <bosch@adacore.com>
25373             Robert Dewar  <dewar@adacore.com>
25374
25375         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
25376         (VAXGF_Safe_First): Idem.
25377
25378 2005-09-01  Robert Dewar  <dewar@adacore.com>
25379             Arnaud Charlet  <charlet@adacore.com>
25380
25381         * g-dirope.ads: Minor reformatting
25382         Document that bounds of result of Base_Name match the input index
25383         positions.
25384         Add documentation on environment variable syntax for Expand_Path
25385
25386         * gnat_ugn.texi: Update documentation to include mention of -m switches
25387         Document new treatment of wide characters in max line length
25388         style check.
25389         Remove -gnatL/-gnatZ switches, no longer used.
25390         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
25391         of -gnata switch.
25392
25393         * gnat_rm.texi: Add doc for two argument form of pragma
25394         Float_Representation.
25395         Add documentation for pragma No_Strict_Aliasing
25396         Add note that explicit component clause overrides pragma Pack.
25397         Add documentation of pragma Debug_Policy
25398
25399 2005-09-01  Matthew Heaney  <heaney@adacore.com>
25400
25401         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
25402         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
25403         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
25404         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
25405         draft (Draft 13, August 2005) of Ada Amendment 1.
25406
25407 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
25408
25409         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
25410         Note that the platform-specific version of g-soccon.ads for VMS is now
25411         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
25412         really is a package spec).
25413         Replace s-taspri-linux.ads by s-taspri-posix.ads
25414         Remove references to s-mastop-x86.adb
25415
25416         * system-vxworks-xscale.ads: Removed, no longer used.
25417         * s-vxwork-xscale.ads: Removed, no longer used.
25418
25419 2005-09-01  Robert Dewar  <dewar@adacore.com>
25420
25421         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
25422         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
25423         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
25424         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
25425         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
25426         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
25427         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
25428         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
25429         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
25430         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
25431         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
25432         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
25433         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
25434         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
25435         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
25436         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
25437         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
25438         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
25439         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
25440         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
25441         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
25442
25443 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
25444
25445         PR ada/23187
25446         * adaint.c
25447         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
25448
25449 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
25450             Doug Rupp  <rupp@adacore.com>
25451
25452         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
25453         when needed.
25454         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
25455         this code in the GNAT run-time.
25456
25457         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
25458
25459         PR ada/21053
25460         * init.c (__gnat_error_handler [many]): Mark "msg" as const
25461         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
25462
25463         (__gnat_inside_elab_final_code): Moved here from
25464         Standard_Library and only defined for the compiler.
25465         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
25466         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
25467         using RTPs because directly vectored Interrupt routines are not
25468         supported on this configuration.
25469         (getpid): Do not redefine this function on VxWorks when using RTPs
25470         because this primitive is well supported by the RTP libraries.
25471         (copy_msg): Correct the code that checks for buffer overflow.
25472         Discovered during code reading.
25473
25474 2005-08-29  Olivier Hainque  <hainque@adacore.com>
25475
25476         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
25477         a library level mutable variable with an initializer, tell
25478         build_allocator to ignore the initializer's size. It may not be large
25479         enough for all the values that might be assigned to the variable later
25480         on.
25481
25482 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
25483             Eric Botcazou  <ebotcazou@adacore.com>
25484
25485         * trans.c: Protect < in error msg with quote
25486         Replace GCC_ZCX by Back_End_Exceptions.
25487         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
25488         has been sufficiently aligned in the record.
25489
25490 2005-08-15  James E. Wilson  <wilson@specifix.com>
25491
25492         * system-linux-alpha.ads: Change ia64 to alpha.
25493
25494 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
25495
25496         * decl.c, utils.c: Fix comment typos.
25497
25498 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
25499
25500         * decl.c, init.c, initialize.c: Fix comment typos.
25501
25502 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
25503
25504         Make CONSTRUCTOR use VEC to store initializers.
25505         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
25506         CONSTRUCTOR_ELTS.
25507         * trans.c (extract_values): Likewise.
25508         * utils.c (convert, remove_conversions): Likewise.
25509         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
25510         gnat_build_constructor): Likewise.
25511
25512 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
25513
25514         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
25515         DECL_SECTION_NAME.
25516         (compare_field_bitpos): Likewise.
25517
25518 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
25519
25520         * utils.c (create_var_decl): Only set DECL_COMMON on
25521         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
25522         VAR_OR_FUNCTION_DECL_P.
25523
25524 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
25525
25526         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
25527         removed.
25528
25529 2005-07-07  Pascal Obry  <obry@adacore.com>
25530
25531         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
25532         returned type on Windows.
25533
25534         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
25535         routine.
25536
25537         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
25538         exception in this case.
25539         Simplify the code as "Image (Image'Range)" = "Image".
25540
25541 2005-07-07  Vincent Celier  <celier@adacore.com>
25542
25543         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
25544         the destructor/constructor attributes for <lib>final/<lib>init.
25545
25546         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
25547
25548 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
25549
25550         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
25551         type if the parameter is not passed by copy but reference by default.
25552
25553 2005-07-07  Javier Miranda  <miranda@adacore.com>
25554
25555         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
25556         Reimplementation of the support for abstract interface types in order
25557         to leave the code more clear and easy to maintain.
25558
25559         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
25560         abstract interface types in order to leave the code clearer and easier
25561         to maintain.
25562
25563         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
25564         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
25565         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
25566         appropriate entry of the secondary dispatch table.
25567         (Make_DT): Add code to inherit the secondary dispatch tables of
25568         the ancestors.
25569
25570         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
25571         implementing both functionalities by means of a common routine, each
25572         routine has its own code.
25573
25574 2005-07-07  Javier Miranda  <miranda@adacore.com>
25575
25576         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
25577
25578         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
25579         types:
25580         --
25581           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
25582         --
25583
25584         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
25585         use of tag incomplete types.
25586
25587         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
25588         give support to tagged incomplete types.
25589
25590         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
25591         expression is a discriminant reference and its type is private, as can
25592         happen within a stream operation for a mutable record, use the full
25593         view of the type to resolve the case alternatives.
25594         (Analyze_Assignment): Check wrong dereference of incomplete types.
25595
25596         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
25597         types.
25598
25599         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
25600         incomplete types.
25601
25602         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
25603         N_Incomplete_Type_Declaration nodes.
25604
25605         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
25606         Tag_Present to give support to tagged incomplete types:
25607         --
25608           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
25609         --
25610
25611 2005-07-07  Olivier Hainque  <hainque@adacore.com>
25612
25613         PR ada/22301
25614         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
25615         definitions for the Unwind wrappers in the compiler case.
25616
25617 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
25618             Javier Miranda  <miranda@adacore.com>
25619
25620         * par-load.adb (Load): If a child unit is loaded through a limited_with
25621         clause, each parent must be loaded as a limited unit as well.
25622
25623         * sem_ch10.adb (Previous_Withed_Unit): Better name for
25624         Check_Withed_Unit. Return true if there is a previous with_clause for
25625         this unit, whether limited or not.
25626         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
25627         the current unit.
25628         (Is_Visible_Through_Renamings): New local subprogram of install_limited
25629         _withed_unit that checks if some package installed through normal with
25630         clauses has a renaming declaration of package whose limited-view is
25631         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
25632         of the current Draft document for Ada 2005.
25633         (Analyze_Context): Complete the list of compilation units that
25634         are allowed to contain limited-with clauses. It also contains
25635         checks that were previously done by Install_Limited_Context_Clauses.
25636         This makes the code more clear and easy to maintain.
25637         (Expand_Limited_With_Clause) It is now a local subprogram of
25638         Install_Limited_Context_Clauses, and contains the code that adds
25639         the implicit limited-with clauses for parents of child units.
25640         This functionality was prevously done by Analyze_Context.
25641
25642         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
25643         incomplete type.
25644
25645         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
25646         been erroneously named in a limited-with clause of its own context.
25647         In this case the error has been previously notified by Analyze_Context.
25648
25649 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
25650
25651         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
25652         generic package that contains local declarations with the same name.
25653         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
25654
25655 2005-07-07  Bernard Banner  <banner@adacore.com>
25656
25657         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
25658         ia64 platform only on platforms that you the GCC unwind library
25659         rather than the system unwind library.
25660
25661 2005-07-07  Thomas Quinot  <quinot@adacore.com>
25662
25663         * expect.c: Minor reformatting
25664
25665 2005-07-07  Sergey Rybin  <rybin@adacore.com>
25666
25667         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
25668         --no-separate-is
25669
25670         * gnat_ugn.texi: Add description for new gnatpp option
25671         (--no-separate-is)
25672
25673 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25674
25675         * g-expect-vms.adb, g-expect.ads, g-expect.adb
25676         (Get_Command_Output): New subprogram to launch a process and get its
25677         standard output as a string.
25678
25679 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
25680             Olivier Hainque  <hainque@adacore.com>
25681
25682         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
25683         fetch a code-range descriptor associated with the machine state. On
25684         failure set the machine state's PC to 0; on success, pass the
25685         descriptor to exc_virtual_unwind.
25686
25687         * init.c (Tru64 section): New function __gnat_set_code_loc.
25688
25689 2005-07-04  Vincent Celier  <celier@adacore.com>
25690
25691         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
25692         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
25693         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
25694         Remove all auto-initialization code, as this is now done through the
25695         constructor mechanism.
25696
25697         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
25698         __gnat_sals_init_using_constructors): New functions.
25699
25700         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
25701         Linker_Constructor and Linker_Destructor when switch -a is used.
25702
25703         * bindusg.adb: Add line for new switch -a
25704
25705         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
25706         (Gnatbind): When switch -a is used, check if it is allowed
25707
25708         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
25709
25710 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
25711
25712         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
25713         This prevents us from hitting a limitation during the debug info
25714         generation when using stabs.
25715         (Prims_Ptr): Likewise.
25716
25717 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
25718             Ed Schonberg  <schonberg@adacore.com>
25719             Javier Miranda  <miranda@adacore.com>
25720
25721         * checks.adb (Null_Exclusion_Static_Checks): In the case of
25722         N_Object_Declaration, only perform the checks if the Object_Definition
25723         is not an Access_Definition.
25724
25725         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
25726         where the parent of an the access definition is an N_Object_Declaration
25727         when determining the Associated_Node_For_Itype and scope of an
25728         anonymous access-to-subprogram type.
25729
25730         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
25731         Corresponding_Spec on the body created for a null procedure. Add ???
25732         comment. Remove New_Copy_Tree call on body argument to
25733         Set_Body_To_Inline.
25734
25735         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
25736         discriminants, use the type of the actual as well, because the
25737         discriminants may be read by the called subprogram.
25738
25739         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
25740         access type we do not need to handle non-limited views.
25741         (Build_Derived_Record_Type): Additional check to check that in case of
25742         private types, interfaces are only allowed in private extensions.
25743
25744 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
25745
25746         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
25747         <Pragma_Linker_Destructor>: Likewise.
25748
25749         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
25750         Pragma_Linker_Destructor.
25751
25752         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
25753         ATTR_LINK_DESTRUCTOR.
25754         (static_ctors, static_dtors): New variables.
25755
25756         * misc.c (gnat_expand_body): Output current function as constructor
25757         and destructor if requested.
25758
25759         * par-prag.adb: Add processing for pragma Linker_Constructor and
25760         Linker_Destructor.
25761
25762         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
25763         extracted from Check_Interrupt_Or_Attach_Handler.
25764         (Check_Interrupt_Or_Attach_Handler): Invoke it.
25765         Implement pragma Linker_Constructor and Linker_Destructor with the
25766         help of Find_Unique_Parameterless_Procedure.
25767         Replace Name_Alias with Name_Target for pragma Linker_Alias.
25768
25769         * snames.h, snames.ads, snames.adb:
25770         Add Name_Linker_Constructor and Name_Linker_Destructor.
25771         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
25772         * snames.adb: Remove Name_Alias.
25773
25774         * trans.c: Include cgraph.h.
25775         (build_global_cdtor): New function.
25776         (Compilation_Unit_to_gnu): Build global constructor and destructor if
25777         needed.
25778         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
25779         of objects too.
25780         (addressable_p) <COMPONENT_REF>: Unconditionally test
25781         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
25782
25783         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
25784         variable if it is external.
25785
25786         (static_ctors, static_dtors): New global variables.
25787         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
25788         <ATTR_LINK_DESTRUCTOR>: Likewise.
25789         (end_subprog_body): Chain function as constructor and destructor
25790         if requested.
25791
25792         * exp_util.adb (Force_Evaluation): Unconditionally invoke
25793         Remove_Side_Effects with Variable_Ref set to true.
25794         (Remove_Side_Effects): Handle scalar types first. Use a renaming
25795         for non-scalar types even if Variable_Ref is true and for class-wide
25796         expressions.
25797
25798 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25799
25800         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
25801         to prevent spurious warnings.
25802
25803 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25804
25805         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
25806         Itypes. Itypes are really unexpected there.
25807         (Build_TypeCode_Function): Generalise special processing for Itypes to
25808         handle the case of numeric implicit base types as well as enumerated
25809         ones.
25810
25811 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25812
25813         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
25814         controlled, indicate the expected type of the dereference that is
25815         created for the call to Deep_Finalize, to prevent spurious errors when
25816         the designated type is private and completed with a derivation from
25817         another private type.
25818
25819 2005-07-04  Vincent Celier  <celier@adacore.com>
25820
25821         * make.adb (Change_To_Object_Directory): When unable to change the
25822         current dir to the object directory, output the full path of the
25823         directory.
25824
25825 2005-07-04  Matthew Gingell  <gingell@adacore.com>
25826
25827         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
25828
25829         * indepsw-linux.adb: Replace by...
25830
25831         * indepsw-gnu.adb: ...this new file
25832
25833 2005-07-04  Vincent Celier  <celier@adacore.com>
25834
25835         * mlib-prj.adb (Auto_Initialize): New constant String
25836         (SALs_Use_Constructors): New Boolean function
25837         (Build_Library): Call gnatbind with Auto_Initialize switch when
25838         SALs_Use_Constructors returns True.
25839
25840         * mlib-tgt.ads: Minor reformatting
25841
25842         * mlib-utl.ads: Minor reformatting
25843
25844         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
25845
25846 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25847
25848         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
25849         single protected declarations can have an interface list.
25850         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
25851         with seriously malformed entry declarations, and lead to compilation
25852         abandoned messages.
25853
25854 2005-07-04  Javier Miranda  <miranda@adacore.com>
25855
25856         * par-load.adb: Load the context items in two rounds.
25857
25858 2005-07-04  Robert Dewar  <dewar@adacore.com>
25859
25860         * scng.adb: Do not consider Mod used as an attribute to be a keyword
25861
25862 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25863             Javier Miranda  <miranda@adacore.com>
25864
25865         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
25866         type extension needs a limited view.
25867         Remove previous restriction on private types available through the
25868         limited-view (only tagged private types were previously allowed).
25869         (Install_Withed_Unit): In the code that implements the
25870         legality rule given in AI-377, exclude a child unit with the name
25871         Standard, because it is a homonym of the Standard environment package.
25872
25873 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25874
25875         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
25876         overloaded function call, carry interpretations from the original tree
25877         to the copy.
25878
25879 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25880
25881         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
25882         types check whether some designated type is a limited view, and use
25883         the non-limited view if available.
25884
25885 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
25886
25887         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
25888         constraint of full view of a private view T1 if present, when T2 is a
25889         discriminated full view.
25890
25891 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25892
25893         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
25894         actual that is a view conversion of a bit packed array reference.
25895
25896 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25897
25898         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
25899         present before checking whether an interface type covers a synchronized
25900         type.
25901
25902 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
25903
25904         * sem_util.adb (Is_Object_Reference): An indexed or selected component
25905         whose prefix is an implicit dereference is an object reference. Removes
25906         spurious errors when compiling with -gnatc.
25907
25908 2005-07-04  Robert Dewar  <dewar@adacore.com>
25909
25910         PR ada/22039
25911         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
25912
25913 2005-07-04  Matthew Gingell  <gingell@adacore.com>
25914
25915         * tracebak.c: Enable tracebacks on ia64 platforms
25916
25917 2005-07-04  Vincent Celier  <celier@adacore.com>
25918
25919         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
25920         the GNAT BIND command, as gnatbind accepts multiples ALI files with
25921         the -L or -n switches.
25922
25923 2005-07-04  Vincent Celier  <celier@adacore.com>
25924
25925         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
25926         correctly computed and the main project data is not modified while
25927         doing so.
25928         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
25929         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
25930         c++linker as this does not work on some platforms.
25931
25932 2005-07-04  Matthew Heaney  <heaney@adacore.com>
25933
25934         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
25935         was changed.
25936         * a-coinve.adb: Perform constraint checks explicitly.
25937
25938 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25939             Thomas Quinot  <quinot@adacore.com>
25940
25941         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
25942         new target gen-soccon.
25943
25944 2005-07-04  Robert Dewar  <dewar@adacore.com>
25945
25946         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
25947
25948 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25949
25950         * g-socket.ads (Check_Selector): Minor rewording of comment.
25951
25952 2005-07-04  Vincent Celier  <celier@adacore.com>
25953
25954         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
25955
25956 2005-07-04  Thomas Quinot  <quinot@adacore.com>
25957
25958         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
25959
25960 2005-07-04  Sergey Rybin  <rybin@adacore.com>
25961
25962         * gnat_ugn.texi: Add description of --eol gnatpp option
25963
25964 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
25965             Thomas Quinot  <quinot@adacore.com>
25966
25967         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
25968         if the user wants all calls of a subprogram to be flagged,
25969         independently of whether they are made from within the same unit or
25970         another unit.
25971         Mention restriction for pragma Linker_Alias on some platforms.
25972         Document pragma Linker_Constructor and Linker_Destructor.
25973         Rewrite documentation of Weak_External, Linker_Section and
25974         Linker_Alias pragmas.
25975
25976 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
25977
25978         * s-stausa.ads, s-stausa.adb: New files.
25979
25980 2005-06-30  Kelley Cook
25981
25982         * all files:  Update FSF address in copyright headers.
25983         * gen-soccon.co (main): Output new FSF address in generated files.
25984
25985 2005-06-28  Paul Brook  <paul@codesourcery.com>
25986
25987         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
25988
25989 2005-06-14  Olivier Hainque  <hainque@adacore.com>
25990             Eric Botcazou  <ebotcazou@adacore.com>
25991
25992         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
25993         exc_unwind, now that we are generating proper .debug_frame output for
25994         that target.
25995
25996         * tracebak.c: Remove the mips-irix section, as we are now using the
25997         s-mastop based unwinder again.
25998         Under SPARC/Solaris, take into account the stack bias to compute the
25999         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
26000         ABI.
26001
26002 2005-06-14  Doug Rupp  <rupp@adacore.com>
26003
26004         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
26005
26006         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
26007
26008 2005-06-14  Pascal Obry  <obry@adacore.com>
26009
26010         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
26011         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
26012         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
26013         package name).
26014
26015         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
26016         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
26017         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
26018         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
26019         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
26020         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
26021         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
26022         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
26023         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
26024         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
26025         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
26026         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
26027         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
26028         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
26029         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
26030         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
26031         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
26032         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
26033         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
26034         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
26035         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
26036         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
26037         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
26038         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
26039         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
26040         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
26041         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
26042         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
26043         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
26044         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
26045         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
26046         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
26047         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
26048         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
26049         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
26050         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
26051         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
26052         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
26053         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
26054         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
26055         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
26056         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
26057         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
26058         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
26059         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
26060         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
26061         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
26062         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
26063         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
26064         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
26065         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
26066         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
26067         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
26068         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
26069         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
26070         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
26071         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
26072         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
26073         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
26074         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
26075         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
26076         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
26077         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
26078         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
26079         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
26080         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
26081         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
26082         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
26083         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
26084         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
26085         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
26086         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
26087         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
26088         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
26089         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
26090         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
26091         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
26092         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
26093         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
26094         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
26095         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
26096         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
26097         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
26098         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
26099         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
26100         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
26101         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
26102         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
26103         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
26104         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
26105         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
26106         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
26107         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
26108         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
26109         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
26110         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
26111         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
26112         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
26113         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
26114         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
26115         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
26116         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
26117         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
26118         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
26119         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
26120         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
26121         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
26122         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
26123         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
26124         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
26125         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
26126         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
26127         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
26128         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
26129         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
26130         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
26131         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
26132         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
26133         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
26134         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
26135         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
26136         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
26137         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
26138         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
26139         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
26140         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
26141         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
26142         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
26143         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
26144         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
26145         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
26146         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
26147         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
26148
26149 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
26150             Arnaud Charlet  <charlet@adacore.com>
26151
26152         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
26153         longer protected objects. They have been replaced by lower-level
26154         suspension objects made up by a mutex and a condition variable (or
26155         their equivalent given a particular OS) plus some internal data to
26156         reflect the state of the suspension object.
26157         (Initialize, Finalize): Add this initialization procedure for
26158         Suspension_Object, which is a controlled type.
26159         (Finalize): Add the finalization procedure for Suspension_Object,
26160         which is a controlled type.
26161
26162         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
26163         Ada.Synchronous_Task_Control because there is no longer a need for a
26164         VxWorks specific version of this package. Target dependencies
26165         has been moved to System.Task_Primitives.Operations.
26166
26167         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
26168         longer needed.
26169         (InitializeCriticalSection, EnterCriticalSection,
26170         LeaveCriticalSection, DeleteCriticalSection): Replace the type
26171         pCriticalSection by an anonymous access type so that we avoid problems
26172         of accessibility to local objects.
26173
26174         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
26175         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
26176         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
26177         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
26178         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
26179         set the environment task mask here.
26180         (Current_State): Add this function that returns the state of the
26181         suspension object.
26182         (Set_False): Add this procedure that sets the state of the suspension
26183         object to False.
26184         (Set_True): Add this procedure that sets the state of the suspension
26185         object to True, releasing the task that was suspended, if any.
26186         (Suspend_Until_True): Add this procedure that blocks the calling task
26187         until the state of the object is True. Program_Error is raised if
26188         another task is already waiting on that suspension object.
26189         (Initialize): Add this procedure for initializing the suspension
26190         object. It initializes the mutex and the condition variable which are
26191         used for synchronization and queuing, and it sets the internal state
26192         to False.
26193         (Finalize): Add this procedure for finalizing the suspension object,
26194         destroying the mutex and the condition variable.
26195
26196         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
26197         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
26198         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
26199         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
26200         which provides a low-level abstraction (using operating system
26201         primitives) for Ada.Synchronous_Task_Control.
26202         This object is made up by a mutex (for ensuring mutual exclusion), a
26203         condition variable (for queuing threads until the condition is
26204         signaled), a Boolean (State) indicating whether the object is open,
26205         and a Boolean (Waiting) reflecting whether there is a task already
26206         suspended on this object.
26207
26208         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
26209         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
26210         s-intman-vms.ads, s-intman-mingw.adb,
26211         (Initialize_Interrupts): Removed, no longer used.
26212
26213         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
26214         (Setup_Interrupt_Mask): New procedure.
26215
26216         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
26217
26218         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
26219
26220         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
26221         this is no longer done in the body of s-taprop
26222         (Server_Task): Explicitely test for Pending_Action in case
26223         System.Parameters.No_Abort is True.
26224
26225         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
26226         is no longer done in the body of s-taprop
26227
26228 2005-06-14  Robert Dewar  <dewar@adacore.com>
26229
26230         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
26231         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
26232         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
26233         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
26234         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
26235         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
26236         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
26237         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
26238         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
26239         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
26240         system-linux-hppa.ads, system-vms_64.ads,
26241         system-vxworks-alpha.ads: Minor comment update for
26242         AI-362 (unit is Pure).
26243
26244         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
26245         Add pragma Pure_05 for AI-362
26246         Make remaining conversion functions obsolescent in Ada 95
26247
26248         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
26249         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
26250         Add entries for a-wichun and a-zchuni
26251         Add a-widcha a-zchara for AI-395
26252         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
26253
26254         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
26255         Add entries for a-wichun.o and a-zchuni.o
26256         Entries for a-widcha.o and a-zchara.o
26257         Add entry for a-chacon.o
26258
26259         * a-ztenau.adb: Add with of Ada.Characters.Conversions
26260
26261         * a-chacon.ads, a-chacon.adb: New files.
26262
26263         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
26264         categorization violations.
26265
26266         * a-strmap.ads: Add pragma Pure_05 for AI-362
26267         * a-strmap.ads: Add note on implicit categorization for AI-362
26268
26269         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
26270
26271         * par-prag.adb: Dummy entry for pragma Persistent_BSS
26272         Set Ada_Version_Explicit, for implementation of AI-362
26273         Add processing for pragma Pure_05 and Preelaborate_05
26274         Add entry for Assertion_Policy pragma
26275
26276         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
26277         when needed for proper processing of categorization stuff
26278
26279         * sem_cat.adb:
26280         For several cases, make errors in preealborate units warnings,
26281         instead of errors, if GNAT_Mode is set. For AI-362.
26282
26283         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
26284         preelaborate unit is now warning if in GNAT mode
26285
26286         * s-stoele.ads: Document AI-362 for pragma preelaborate
26287
26288 2005-06-14  Doug Rupp  <rupp@adacore.com>
26289
26290         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
26291         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
26292         Default_Exception_Msg_Max_Length: new parameter.
26293
26294         * a-except.ads: (Exception_Msg_Max_Length): Set to
26295         System.Parameters.Default_Exception_Msg_Max_Length
26296         Add pragma Preelaborate_05 for AI-362
26297         Add warnings off to allow categorization violations for AI-362
26298
26299 2005-06-14  Vincent Celier  <celier@adacore.com>
26300
26301         * gnatsym.adb: Adapt to modification of package Symbols: procedure
26302         Process is now in package Processing.
26303
26304         * symbols.ads, symbols.adb:
26305         (Processing): New package, containing procedure Process
26306
26307         * symbols-vms-alpha.adb:
26308         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
26309
26310         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
26311         symbols-processing-vms-ia64.adb: New files.
26312
26313 2005-06-14  Pascal Obry  <obry@adacore.com>
26314
26315         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
26316         implementation. This new version generates the proper DllMain routine
26317         to initialize the SAL. The DllMain is generated in Ada and compiled
26318         before being added as option to the library build command.
26319
26320 2005-06-14  Doug Rupp  <rupp@adacore.com>
26321             Pascal Obry  <obry@adacore.com>
26322
26323         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
26324         call to decc$translate_vms.
26325         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
26326         need to remove those quotes before catenating the filename.
26327         (__gnat_locate_exec_on_path): improvements to the Win32 section:
26328         * avoid allocating the memory twice for better efficiency;
26329         * allocate 32K buffer for environment expansion as suggested by MSDN;
26330         * prepend ".;" to the path so that current directory is searched too.
26331
26332 2005-06-14  Robert Dewar  <dewar@adacore.com>
26333
26334         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
26335         instead of raising CE (AI-241)
26336         Add warnings off to allow categorization violations for AI-362
26337
26338 2005-06-14  Robert Dewar  <dewar@adacore.com>
26339
26340         * ali-util.adb, gnatbind.adb: Remove references to
26341         Force_RM_Elaboration_Order.
26342
26343         * switch-b.adb: Remove recognition of -f switch
26344
26345 2005-06-14  Pascal Obry  <obry@adacore.com>
26346
26347         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
26348         implementation which is slightly more efficient.
26349
26350 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
26351             Javier Miranda  <miranda@adacore.com>
26352             Ed Schonberg  <schonberg@adacore.com>
26353             Hristian Kirtchev  <kirtchev@adacore.com>
26354
26355         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
26356         allocator's designated type is a class-wide type, and compiling for
26357         Ada 2005, emit a run-time check that the accessibility level of the
26358         type given in the allocator's expression is not deeper than the level
26359         of the allocator's access type.
26360
26361         (Tagged_Membership): Modified to gives support to abstract interface
26362         types.
26363
26364         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
26365         Access_Level.
26366         (Descendant_Tag): New predefined function
26367         (Is_Descendant_At_Same_Level): New predefined function
26368         (Get_Access_Level): New private function
26369         (Set_Access_Level): New private procedure
26370         (IW_Membership): New function. Given the tag of an object and the tag
26371         associated with an interface, evaluate if the object implements the
26372         interface.
26373         (Register_Interface_Tag): New procedure used to initialize the table of
26374         interfaces used by the IW_Membership function.
26375         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
26376         of the dispatch table.
26377         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
26378         table of interfaces of the parent.
26379         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
26380         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
26381         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
26382         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
26383         Ada 2005 semantics for the new predefined function.
26384
26385         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
26386         call to Descendant_Tag rather than Internal_Tag.
26387         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
26388         the accessibility level of the attribute's Item parameter is not deeper
26389         than the level of the attribute's prefix type. Tag_Error is raised if
26390         the check fails. The check is only emitted for Ada_05.
26391         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
26392         requested stream attribute, use it.
26393         (Expand_N_Attribute_Reference): If the designated type is an interface
26394         then rewrite the referenced object as a conversion to force the
26395         displacement of the pointer to the secondary dispatch table.
26396         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
26397         is a dereference of an object with a constrained partial view.
26398
26399         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
26400         type is a class-wide type, emit a run-time check that the accessibility
26401         level of the returned object is not deeper than the level of the
26402         function's master (only when compiling for Ada 2005).
26403
26404         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
26405         Action_Nb_Arg): Add entries for new Get_Access_Level and
26406         Set_Access_Level routines in these tables.
26407         (Make_DT): Generate a call to set the accessibility level of the
26408         tagged type in its TSD.
26409         (Make_DT): Code cleanup. The functionality of generating all the
26410         secondary dispatch tables has been moved to freeze_record_type.
26411         (Make_Abstract_Interface_DT): Minor code cleanup.
26412         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
26413         this subprogram implements a new algorithm that provides the
26414         same functionality and it is more clear in case of primitives
26415         associated with abstract interfaces.
26416         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
26417         clean up, the functionality of this subprogram is now provided
26418         by Set_All_DT_Position.
26419         (Write_DT): New subprogram: a debugging procedure designed to be called
26420         within gdb to display the dispatch tables associated with a tagged
26421         type.
26422         (Collect_All_Interfaces): New subprogram that collects the whole list
26423         of interfaces that are directly or indirectly implemented by a tagged
26424         type.
26425         (Default_Prim_Op_Position): New subprogram that returns the fixed
26426         position in the dispatch table of the default primitive operations.
26427         (Expand_Interface_Actuals): New subprogram to generate code that
26428         displaces all the actuals corresponding to class-wide interfaces to
26429         reference the interface tag of the actual object.
26430         (Expand_Interface_Conversion): New subprogram. Reference the base of
26431         the object to give access to the interface tag associated with the
26432         secondary dispatch table.
26433         (Expand_Interface_Thunk): New subprogram that generates the code of the
26434         thunk. This is required for compatibility with the C+ ABI.
26435         (Make_Abstract_Interface_DT): New subprogram that generate the
26436         declarations for the secondary dispatch tables associated with an
26437         abstract interface.
26438         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
26439         attribute for each primitive operation covering interface subprograms
26440         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
26441         These subprograms were upgraded to give support to abstract interfaces
26442
26443         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
26444         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
26445         RE_Set_Access_Level.
26446         (RE_Unit_Table): Add entries for new Ada.Tags operations.
26447         Add support to call the followig new run-time subprograms:
26448         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
26449
26450         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
26451         match its full declaration when both have an access definition with
26452         statically matching designated subtypes.
26453         (Analyze_Component_Declaration): Delete commented out code that was
26454         incorrectly setting the scope of an anonymous access component's type.
26455         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
26456         an access discriminant when the containing type is nonlimited.
26457         (Make_Incomplete_Type_Declaration): Create an incomplete type
26458         declaration for a record type that includes self-referential access
26459         components.
26460         (Check_Anonymous_Access_Types): Before full analysis of a record type
26461         declaration, create anonymous access types for each self-referential
26462         access component.
26463         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
26464         an access component in this context is a Local_Anonymous_Access, for
26465         proper accessibility checks.
26466         (Access_Definition): Set properly the scope of the anonymous access type
26467         created for a stand-alone access object.
26468         (Find_Type_Of_Object): An object declaration may be given with an access
26469         definition.
26470         (Complete_Subprograms_Derivation): New subprogram used to complete
26471         type derivation of private tagged types implementing interfaces.
26472         In this case some interface primitives may have been overriden
26473         with the partial-view and, instead of re-calculating them, they
26474         are included in the list of primitive operations of the full-view.
26475         (Build_Derived_Record_Type): Modified to give support to private
26476         types implemening interfaces.
26477         (Access_Definition): Reject ALL on anonymous access types.
26478         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
26479         type derivation to occur at a deeper accessibility level than the
26480         parent type.
26481         For the case of derivation within a generic body however, disallow the
26482         derivation if the derived type has an ancestor that is a formal type
26483         declared in the formal part of an enclosing generic.
26484         (Analyze_Object_Declaration): For protected objects, remove the check
26485         that they cannot contain interrupt handlers if not declared at library
26486         level.
26487         (Add_Interface_Tag_Components): New subprogram to add the tag components
26488         corresponding to all the abstract interface types implemented by a
26489         record type or a derived record type.
26490         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
26491         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
26492         Process_Full_View, Record_Type_Declaration): Modified to give
26493         support to abstract interface types
26494         (Collect_Interfaces): New subprogram that collects the list of
26495         interfaces that are not already implemented by the ancestors
26496         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
26497         when partial view has no discriminants and full view has defaults.
26498         (Constrain_Access): Reject a constraint on a general access type
26499         if the discriminants of the designated type have defaults.
26500         (Access_Subprogram_Declaration): Associate the Itype node with the inner
26501         full-type declaration or subprogram spec. This is required to handle
26502         nested anonymous declarations.
26503         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
26504         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
26505         Process_Full_View, Record_Type_Declaration): Modified to give
26506         support to abstract interface types
26507         (Derive_Subprograms): Addition of a new formal to indicate if
26508         we are in the case of an abstact-interface derivation
26509         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
26510         to the specification because it is requied to analyze all the
26511         identifiers found in a list of interfaces
26512
26513         * debug.adb: Complete documentation of flag "-gnatdZ"
26514
26515         * exp_ch3.adb: Implement config version of persistent_bss pragma
26516         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
26517         testing for TSS presence to properly enforce visibility rules.
26518         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
26519         Make_Abstract_Interfaces_DT to generate the secondary tables
26520         associated with abstract interfaces.
26521         (Build_Init_Procedure): Modified to initialize all the tags
26522         corresponding.
26523         (Component_Needs_Simple_Initialization): Similar to other tags,
26524         interface tags do not need initialization.
26525         (Freeze_Record_Type): Modified to give support to abstract interface
26526         types.
26527         (Expand_N_Object_Declaration): Do not generate an initialization for
26528         a scalar temporary marked as internal.
26529
26530         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
26531         in-out parameter that is a component in an initialization procedure,
26532         whose constraint might depend on discriminants, and that may be
26533         misaligned because of packing or representation clauses.
26534         (Is_Legal_Copy): New predicate to determine whether a possibly
26535         misaligned in-out actual can actually be passed by copy/return. This
26536         is an error in case the type is by_reference, and a warning if this is
26537         the consequence of a DEC import pragma on the subprogram.
26538         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
26539         interface types
26540         (Expand_Inlined_Call): Mark temporary generated for the return value as
26541         internal, so that no useless scalar normalization is generated for it.
26542         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
26543         null procedure can always be inlined.
26544         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
26545         procedure, generate an explicit empty body for it.
26546
26547         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
26548         Given a type implementing an interface, returns the corresponding
26549         access_disp_table value.
26550         (Find_Interface_Tag): New subprogram. Given a type implementing an
26551         interface, returns the record component containing the tag of the
26552         interface.
26553         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
26554         previous ones that return the corresponding tag and access_disp_table
26555         entities.
26556         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
26557         is a predefined primitive operation.
26558         (Expand_Subtype_From_Expr): If the expression is a selected component
26559         within an initialization procedure, compute its actual subtype, because
26560         the component may depend on the discriminants of the enclosing record.
26561
26562         * i-cpp.ads, i-cpp.adb:
26563         This package has been left available for compatibility with previous
26564         versions of the frontend. As part of the new layout this is now a
26565         dummy package that uses declarations available at a-tags.ads
26566
26567         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
26568         "constant access" and "aliased [constant] access" when not compiling
26569         with -gnat05.
26570         Suppress Ada 2005 keyword warning if -gnatwY used
26571         (P_Identifier_Declarations): Add support for object declarations with
26572         access definitions.
26573         (Private_Extension_Declaration): Complete the documentation
26574         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
26575         attribute in case of private extension declaration
26576         (P_Type_Declaration): Mark as "abstract" the type declarations
26577         corresponding with protected, synchronized and task interfaces
26578         (P_Declarative_Items): "not" and "overriding" are overriding indicators
26579         for a subprogram or instance declaration.
26580
26581         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
26582         instantiation that is a dispatching operation has controlling access
26583         parameters that are null excluding.
26584         Save and restore Ada_Version_Explicit, for implementation of AI-362
26585         (Validate_Derived_Type_Instance): Add check for abstract interface
26586         types.
26587         (Analyze_Formal_Package): Establish Instantiation source for the copy of
26588         the generic that is created to represent the formal package.
26589         (Analyze_Package_Instantiation): Instantiate body immediately if the
26590         package is a predefined unit that contains inlined subprograms, and
26591         we are compiling for a Configurable_Run_Time.
26592         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
26593         If the program has a null default, generate an empty body for it.
26594
26595         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
26596         error message condition, null procedures are correctly detected now.
26597         (New_Overloaded_Entity): Bypass trivial overriding indicator check
26598         for subprograms in the context of protected types. Instead, the
26599         indicator is examined in Sem_Ch9 while analysing the subprogram
26600         declaration.
26601         (Check_Overriding_Indicator): Check consistency of overriding indicator
26602         on subprogram stubs as well.
26603         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
26604         the library level.
26605         (Analize_Subprogram_Specification): When analyzing a subprogram in which
26606         the type of the first formal is a concurrent type, replace this type
26607         by the corresponding record type.
26608         (Analyze_Subprogram_Body): Undo the previous work.
26609         (Analyze_Procedure_Call): If the call has the form Object.Op, the
26610         analysis of the prefix ends up analyzing the call itself, after which
26611         we are done.
26612         (Has_Interface_Formals): New subprogram subsidiary to analyze
26613         subprogram_specification that returns true if some non
26614         class-wide interface subprogram is found
26615         (New_Overloaded_Entity): Modified to give support to abstract
26616         interface types
26617         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
26618         access to subprograms must be recursive.
26619         (Is_Unchecked_Conversion): Improve the test that recognizes
26620         instantiations of Unchecked_Conversion, and allows them in bodies that
26621         are to be inlined by the front-end. When the body comes from an
26622         instantiation, a reference to Unchecked_Conversion will be an
26623         Expanded_Name, even though the body has not been analyzed yet.
26624         Replace Is_Overriding and Not_Overriding in subprogram_indication with
26625         Must_Override and Must_Not_Override, to better express intent of AI.
26626         (Analyze_Subprogram_Body): If an overriding indicator is given, check
26627         that it is consistent with the overrinding status of the subprogram
26628         at this point.
26629         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
26630         always inlined.
26631         If the subprogram is a null procedure, indicate that it does not need
26632         a completion.
26633
26634         * sem_disp.adb (Check_Controlling_Type): Give support to entities
26635         available through limited-with clauses.
26636         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
26637         allowed as the last primitive of a tagged type if it has no previous
26638         spec.
26639         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
26640         to give support to abstract interface types
26641
26642         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
26643         in the case where the target type is an anonymous access type of an
26644         object or component (that is, when Is_Local_Anonymous_Access is true).
26645         Prevent the special checks for conversions of access discriminants in
26646         the case where the discriminant belongs to a nonlimited type, since
26647         such discriminants have their accessibility level defined in the same
26648         way as a normal component of an anonymous access type.
26649         (Resolve_Allocator): When an allocator's designated type is a class-wide
26650         type, check that the accessibility level of type given in the
26651         allocator's expression or subtype indication is not statically deeper
26652         than the level of the allocator's access type.
26653         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
26654         name in a discriminant constraint of a record component.
26655         (Resolve_Explicit_Dereference): Do not check whether the type is
26656         incomplete when the dereference is a use of an access discriminant in
26657         an initialization procedure.
26658         (Resolve_Type_Conversion): Handle conversions to abstract interface
26659         types.
26660         (Valid_Tagged_Conversion): The conversion of a tagged type to an
26661         abstract interface type is always valid.
26662         (Valid_Conversion): Modified to give support to abstract interface types
26663         (Resolve_Actuals): Enable full error reporting on view conversions
26664         between unrelated by_reference array types.
26665         The rule for view conversions of arrays with aliased components is
26666         weakened in Ada 2005.
26667         Call to obsolescent subprogram is now considered to be a violation of
26668         pragma Restrictions (No_Obsolescent_Features).
26669         (Check_Direct_Boolean_Operator): If the boolean operation has been
26670         constant-folded, there is nothing to check.
26671         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
26672         check on possible violation of restriction No_Direct_Boolean_Operators
26673         until after expansion of operands, to prevent spurious errors when
26674         operation is constant-folded.
26675
26676         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
26677         Has_Compatible_Type): Modified to give support to abstract interface
26678         types.
26679         (Interface_Present_In_Ancestor): New function to theck if some ancestor
26680         of a given type implements a given interface
26681
26682         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
26683         prefix is a parameterless function that returns an access_to_procedure.
26684         (Transform_Object_Operation): Handle properly function calls of the
26685         form Obj.Op (X), which prior to analysis appear as indexed components.
26686         (Analyze_One_Call): Complete the error notification to help new Ada
26687         2005 users.
26688         (Analyze_Allocator): For an allocator without an initial value, where
26689         the designated type has a constrained partial view, a discriminant
26690         constraint is illegal.
26691
26692 2005-06-14  Robert Dewar  <dewar@adacore.com>
26693
26694         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
26695         do with treatment of Set_Col when positioned at end of line character.
26696
26697 2005-06-14  Robert Dewar  <dewar@adacore.com>
26698
26699         * atree.adb: (Elist*): Protect against uninitialized field
26700
26701 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26702
26703         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
26704         for an attribute reference that returns an access type.
26705         (Apply_Discriminant_Check): No need for check if (designated) type has
26706         constrained partial view.
26707
26708         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
26709         both bound checks, rather than a conjunction.
26710         (Insert_Valid_Check): If the expression is an actual that is an indexed
26711         component of a bit-packed array, force expansion of the packed element
26712         reference, because it is specifically inhibited elsewhere.
26713
26714 2005-06-14  Vincent Celier  <celier@adacore.com>
26715
26716         * clean.adb (Clean_Project): Correctly delete executable specified as
26717         absolute path names.
26718
26719         * make.adb (Gnatmake): Allow relative executable path names with
26720         directory information even when project files are used.
26721         (Change_To_Object_Directory): Fail gracefully when unable to change
26722         current working directory to object directory of a project.
26723         (Gnatmake): Remove exception handler that could no longer be exercized
26724         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
26725         may be deallocated by Normalize_Arguments.
26726         (Collect_Arguments): Eliminate empty arguments
26727
26728         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
26729         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
26730         (Check_Project): Return False when Project is No_Project. Return True
26731         when All_Projects is True.
26732         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
26733         All_Projects to True.
26734         Minor reformatting
26735
26736 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26737             Javier Miranda  <miranda@adacore.com>
26738             Thomas Quinot  <quinot@adacore.com>
26739             Robert Dewar  <dewar@adacore.com>
26740             Hristian Kirtchev  <kirtchev@adacore.com>
26741             Gary Dismukes  <dismukes@adacore.com>
26742
26743         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
26744         anonymous access types, to indicate that the accessibility level of
26745         the type is determined by that of the enclosing declaration.
26746         (Has_Persistent_BSS): New flag
26747         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
26748         of this attribute with functions.
26749         (Is_Primitive_Wrapper): Remove the barrier.
26750         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
26751         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
26752         New subprograms.
26753         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
26754         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
26755         New subprograms.
26756         (Is_Pure_Unit_Access_Type): New flag
26757         (Abstract_Interfaces): Complete the assertion to cover all usages.
26758         (Set_Is_Interface): Complete the assertion to cover all usages.
26759         (Is_Primitive_Wrapper): New attribute.
26760         (Is_Obsolescent): Now applies to all entities (though it is only set
26761         for subprograms currently)
26762         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
26763         which solves various problems concerning access subtypes.
26764         (Has_Persistent_BSS): New flag
26765         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
26766         Remove these subprograms because this attribute is currently
26767         not used.
26768         New entity flags:
26769         Has_Specified_Stream_Input (Flag190)
26770         Has_Specified_Stream_Output (Flag191)
26771         Has_Specified_Stream_Read (Flag192)
26772         Has_Specified_Stream_Write (Flag193)
26773         Present in all type and subtype entities. Set for a given view if the
26774         corresponding stream-oriented attribute has been defined by an
26775         attribute definition clause. When such a clause occurs, a TSS is set
26776         on the underlying full view; the flags are used to track visibility of
26777         the attribute definition clause for partial or incomplete views.
26778         (Is_Pure_Unit_Access_Type): New flag
26779         Clarify use of Is_Internal.
26780         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
26781         internally generated to wrap the invocation of tasks and protected
26782         types that implement interfaces.
26783         (Implementation_Base_Type): Documentation correction
26784         (Is_Obsolescent): Now applies to all entities (though it is only set
26785         for subprograms currently)
26786         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
26787         which solves various problems concerning access subtypes.
26788
26789         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
26790         for examined parameters. Identify unequal parameter list lengths as
26791         non-conformant parameters.
26792         (Overriding_Possible): Do not check for "All" qualifier in declaration
26793         of controlling access parameter, following prescription of AI-404.
26794         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
26795         that build the procedure body that wraps an entry invocation
26796         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
26797         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
26798         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
26799         give support to abstract interface types
26800
26801         * freeze.adb (Freeze_Entity): Issue error message if
26802         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
26803         type has no storage pool (Ada 2005) AI-366.
26804         Also modified to give support to abstract interface types
26805         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
26806         Inline_Always pragma.
26807
26808         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
26809         now begin an entry declaration.
26810         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
26811         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
26812         a subprogram declaration preceded by an overriding indicator.
26813         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
26814         declarations or subprogram declarations preceded by reserved words
26815         "not" or "overriding".
26816         (P_Entry_Declaration): Update comment. Parse and check overriding
26817         indicator, set semantic flags of entry declarations.
26818         (P_Task): New error message in case of private applied
26819         to a task type declaration.
26820         (P_Protected): New error message in case of private applied
26821         to a task type declaration.
26822
26823         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
26824         in which the full view of a type implementing an interface is a
26825         concurrent type.
26826         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
26827         Declare_Inherited_Private_Subprograms): If an explicit operation
26828         overrides an operation that is inherited in the private part, mark the
26829         explicit one as overriding, to enable overriding indicator checks.
26830         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
26831         full view to partial view, to simplify handling in back-end.
26832
26833         * sprint.adb: Print interface lists where needed: derived types,
26834         protected types, task types.
26835         output "is null" for null procedures. Part of implementation of
26836
26837         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
26838         relaxation of rules for access types in pure, shared passive partitions.
26839
26840         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
26841         first read discriminants into temporary objects, performing checks on
26842         the read values, then possibly performing discriminant checks on the
26843         actual (if it is constrained), and only finally reading the components
26844         into a constrained temporary object.
26845         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
26846         case of reading discriminants of a mutable record type to recognize
26847         the new form of the code generated by
26848         Build_Mutable_Record_Read_Procedure.
26849
26850         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
26851         of a simple call to Make_TSS_Name.
26852         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
26853         buffer, in order for Is_TSS to work correctly on local TSS names.
26854
26855         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
26856         Is_Local_Anonymous_Access to check legaliy of attributes in the
26857         context of  access components and stand-alone access objects.
26858         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
26859         treated as available for a limited private type if there is an
26860         attribute_definition_clause that applies to its full view, but not in
26861         other cases where the attribute is available for the full view
26862         (specifically, the sole fact that the full view is non-limited does not
26863         make the attribute available for the partial view).
26864         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
26865         non-overloaded intrinsic subprogram.
26866         (Check_Stream_Attribute): Reject an attribute reference for an
26867         unavailable stream attribute even if the prefix is not a limited type
26868         (case of a 'Input attribute reference for an abstract, non-classwide
26869         type)
26870         (Stream_Attribute_Available): New function to determine whether a stream
26871         attribute is available at a place.
26872         (Check_Attribute): Use Stream_Attribute_Available instead of just
26873         testing for TSS presence on the implementation base type.
26874         (Analyze_Attribute): Modified to give support to task interfaces.
26875         (Analyze_Access_Attribute): Add error check for use of an Access (or
26876         Unrestricted_Access) attribute with a subprogram marked as
26877         Inline_Always.
26878         (Analyze_Attribute, case Attribute_Address): Add error check for use of
26879         an Address attribute with a subprogram marked as Inline_Always.
26880         Update Eval_Attribute to handle new value of Width from AI-395
26881
26882         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
26883         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
26884         Factor common code across the stream-oriented attribute circcuits into
26885         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
26886         processing is functionally identical to the previous duplicated one,
26887         except that an expression that denotes an abstract subprogram will now
26888         be rejected, as mandated by AI-195 item 5.
26889
26890         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
26891         Is_Local_Anonymous_Access to apply accessibility checks to access
26892         components and stand-alone access objects.
26893         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
26894         elsewhere.
26895         (Is_Potentially_Persistent_Type): New function
26896         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
26897         a heap-object whose type has a constrained partial view, the object is
26898         unconstrained and the component may depend on a discriminant, making its
26899         renaming illegal.
26900
26901         * sinfo.ads, sinfo.adb
26902         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
26903         (Must_Override): Flag applicable to N_Entry_Declaration.
26904         Indicate that interface_list can appear in single task and single
26905         protected declarations.
26906         Replace Is_Overriding and Not_Overriding with Must_Override and
26907         Must_Not_Override, to better express intent of AI.
26908         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
26909         of an overriding indicator in a subprogram or instance.
26910         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
26911         Add the overriding indicator [[not] overriding] construct to the
26912         following grammar productions:
26913          ENTRY_DECLARATION
26914          GENERIC_INSTANTIATION
26915          SUBPROGRAM_SPECIFICATION
26916
26917         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
26918         can start with an overriding indicator.
26919
26920         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
26921         flags accordingly on subrogram specifications or instances.
26922
26923         * sem_ch8.adb:
26924         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
26925         overriding_indicator, if present, is consistent with status of spec.
26926         Improve error message for null-excluding checks on controlling access
26927         parameters.
26928         (Check_In_Previous_With_Clause): Protect the frontend against
26929         previously reported critical errors in the context clauses.
26930         Save and restore Ada_Version_Explicit, for implementation of AI-362
26931         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
26932         operation verify that controlling formals of the renamed entity that
26933         are access parameters are explicitly non-null.
26934         (Find_Expanded_Name): Improve error message when prefix is an illegal
26935         reference to a private child unit.
26936
26937         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
26938         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
26939         Rewrite to correspond to new wide character names in AI-395
26940
26941         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
26942         default procedures.
26943
26944 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26945             Robert Dewar  <dewar@adacore.com>
26946
26947         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
26948         code, not on the bodies of predefined operations, to cut down on
26949         spurious noise.
26950
26951 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26952
26953         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
26954         be expanded in place. The size computation does not require a
26955         subtraction, which would raise an exception on a compiler built with
26956         assertions when the upper bound is Integer'first.
26957         (Flatten): For an array of composite components, take into account the
26958         size of the components to determine whether it is safe to expand the
26959         array into a purely positional representation.
26960
26961 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26962
26963         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
26964         denoting a formal parameter into account.
26965
26966 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
26967
26968         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
26969         the entry_call alternative of a conditional entry call, wrap the
26970         conditional entry call itself.
26971
26972 2005-06-14  Nicolas Setton  <setton@adacore.com>
26973             Ed Schonberg  <schonberg@adacore.com>
26974
26975         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
26976         the "simple_choice" member in a variant record, in accordance with the
26977         description in the package spec: the information output for a constant
26978         should be "S number", not "SS number".
26979         (Get_Encoded_Name): Return at once if not generating code. Avoids name
26980         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
26981
26982 2005-06-14  Thomas Quinot  <quinot@adacore.com>
26983
26984         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
26985         RACW without any primitives, do not generate the if statement for
26986         dispatching by name in the PolyORB/DSA case, as it would be malformed
26987         (it would have an Elsif_Parts list that is not No_List, but with a
26988         length of 0).
26989
26990 2005-06-14  Robert Dewar  <dewar@adacore.com>
26991
26992         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
26993
26994 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
26995
26996         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
26997         can determine whether pragma Suppress_Exception_Locations is in effect.
26998
26999         * utils2.c (build_call_raise): Do not pass the file name to the
27000         exception handler if pragma Suppress_Exception_Locations is in effect.
27001         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
27002
27003 2005-06-14  Emmanuel Briot  <briot@adacore.com>
27004
27005         * g-debpoo.adb (Deallocate, Dereference): Improve output.
27006
27007 2005-06-14  Nicolas Roche  <roche@adacore.com>
27008
27009         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
27010         to ""
27011         (Next_Level): Fix minor bug in handling of ../dir case
27012         (Read): Add dir separator to Directory name so that "" is understood as
27013          "/"
27014
27015 2005-06-14  Pascal Obry  <obry@adacore.com>
27016
27017         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
27018         releasing the items.
27019
27020 2005-06-14  Vincent Celier  <celier@adacore.com>
27021             Cyrille Comar  <comar@adacore.com>
27022
27023         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
27024         with output file descriptor and with output file name.
27025         (Dup, Dup2): Now global procedures as they are used by two subprograms
27026         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
27027
27028 2005-06-14  Thomas Quinot  <quinot@adacore.com>
27029
27030         PR ada/6717
27031         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
27032         broadcast address.
27033         (Create_Selector): Bind listening socket used to create the signalling
27034         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
27035         Set listen backlog to 1 to ensure that we detect socket theft by a
27036         failure of our own connect(2) call.
27037         (Check_Selector): Improve documentation of the selector mechanism.
27038         (Broadcast_Inet_Addr): New constant.
27039
27040 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
27041
27042         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
27043         type which turns out to be an incomplete and incorrect fix.
27044         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
27045         of the type is declared in a record (for determination of insertion
27046         type).
27047         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
27048         a private type and ensure that the primary entity is used for the type
27049         of the newly created function's V formal by taking the Etype of the
27050         view.
27051
27052 2005-06-14  Javier Miranda  <miranda@adacore.com>
27053             Jose Ruiz  <ruiz@adacore.com>
27054             Robert Dewar  <dewar@adacore.com>
27055             Ed Schonberg  <schonberg@adacore.com>
27056
27057         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
27058         that indicates if we are parsing a compilation unit found in a
27059         limited-with clause.
27060         It is use to avoid the circularity check.
27061
27062         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
27063         we are parsing a compilation unit found in a limited-with clause. This
27064         is use to avoid the circularity check.
27065
27066         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
27067         unit as a consequence of parsing a limited-with clause. This is used
27068         to avoid the circularity check.
27069
27070         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
27071         (Analyze_Context): Limited-with clauses are now allowed
27072         in more compilation units.
27073         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
27074         againts previously reported critical errors in context clauses
27075         (Install_Limited_Withed_Unit): Code cleanup plus static detection
27076         of two further errors: renamed subprograms and renamed packages
27077         are not allowed in limited with clauses.
27078         (Install_Siblings): Do not install private_with_clauses on the package
27079         declaration for a non-private child unit.
27080         (Re_Install_Parents): When a parent of the subunit is reinstalled,
27081         reset visibility of child units properly.
27082         (Install_Withed_Unit): When a child unit appears in a with_clause of its
27083         parent, it is immediately visible.
27084
27085 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
27086             Emmanuel Briot  <briot@adacore.com>
27087
27088         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
27089         declared within an inlined body as referenced, to prevent spurious
27090         warnings.
27091         (Output_One_Ref): If an entity renames an array component, indicate in
27092         the ALI file that this aliases (renames) the array. Capture as well
27093         function renamings that rename predefined operations.
27094         Add information about generic parent for package and subprogram
27095         instances.
27096         (Get_Type_Reference): For a subtype that is the renaming of an actual in
27097         an instantiation, use the first_subtype to ensure that we don't generate
27098         cross-reference information for internal types.
27099         For objects and parameters of a generic private type, retain the '*'
27100         indicator to distinguish such an entity from its type.
27101
27102         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
27103         to store information about instantiated entities.
27104
27105         * ali.adb (Scan_ALI): Add support for parsing the reference to the
27106         generic parent
27107
27108         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
27109         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
27110         information.
27111
27112 2005-06-10  Doug Rupp  <rupp@adacore.com>
27113             Arnaud Charlet  <charlet@adacore.com>
27114             Olivier Hainque  <hainque@adacore.com>
27115             Jose Ruiz  <ruiz@adacore.com>
27116
27117         * Make-lang.in: Add initialize.o when needed.
27118         Remove obsolete references to RT_FLAGS.
27119         Add missing dependencies for sdefault.o
27120
27121         * initialize.c: New file.
27122
27123         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
27124         [VMS] cond_signal_table: Fix problem in declaration.
27125         [VMS] __gnat_error_handler: rewrite.
27126         Move all __gnat_initialize() routines to initialize.c
27127         Specialize the former "hpux" section to "hppa hpux", as this is what the
27128         section really is here for and we now have other hpux ports that need
27129         different contents.
27130         (__gnat_adjust_context_for_raise) i386-linux: First version of this
27131         function for this target. Adjust PC by one in the machine context. This
27132         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
27133         it is more reliable to do that in the signal handler itself.
27134         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
27135         flags, so that the handler is passed the context structure to adjust
27136         prior to the raise.
27137         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
27138         SA_SIGINFO sigaction should look like. Call
27139         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
27140         Machine_State_Operations stuff.
27141         Add conditional code so that the x86_64 is also supported.
27142
27143 2005-06-14  Pascal Obry  <obry@adacore.com>
27144
27145         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
27146         the library name.
27147
27148 2005-06-14  Robert Dewar  <dewar@adacore.com>
27149
27150         * opt.ads, opt.adb: New flags for persistent_bss mode
27151         Add Ada_Version_Explicit, for implementation of AI-362
27152         Add Assertions_Enabled_Config and associated handling
27153         Needed since setting can be changed with Assertion_Policy pragma
27154         Add new flag Warn_On_Ada_2005_Compatibility
27155
27156         * switch-c.adb: Recognize -gnatwy/Y
27157         Set Ada_Version_Explicit, for implementation of AI-362
27158         The -gnatg switch now includes -gnatyu
27159
27160         * usage.adb: Add -gnatwy/Y
27161         Remove wrong asterisk on -gnatwX line
27162         Add line for -gnatyu switch
27163
27164 2005-06-14  Vincent Celier  <celier@adacore.com>
27165
27166         * osint.adb (Add_Default_Search_Dirs): Put source and object
27167         directories of project files before directories coming from
27168         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
27169
27170 2005-06-14  Robert Dewar  <dewar@adacore.com>
27171
27172         PR ada/15613
27173         * par-ch2.adb (Scan_Pragma_Argument): New procedure
27174         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
27175
27176 2005-06-14  Vincent Celier  <celier@adacore.com>
27177
27178         * prep.adb (Preprocess): Ignore error when scanning the first token of
27179         a line.
27180
27181 2005-06-14  Vincent Celier  <celier@adacore.com>
27182
27183         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
27184         (Check_Stand_Alone_Library): If the specified reference symbol file does
27185         not exist, only issue a warning when the symbol policy is not
27186         Controlled. And, when symbol policy is Compliant, set the symbol
27187         policy to Autonomous.
27188
27189 2005-06-14  Vincent Celier  <celier@adacore.com>
27190
27191         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
27192         when the project file in a with clause is not the last one, that is the
27193         project file name is followed by a comma.
27194         * prj-pp.adb: (First_With_In_List): New Boolean global variable
27195         (Print): Issue list of project files separated by commas in with clauses
27196         according to the values returned by Is_Not_Last_In_List.
27197         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
27198         (Set_Is_Not_Last_In_List): New procedure
27199
27200 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27201
27202         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
27203
27204 2005-06-14  Robert Dewar  <dewar@adacore.com>
27205
27206         * scng.adb: Add call to new Check_EOF routine
27207         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
27208         Add some comments regarding wide character handling
27209
27210         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
27211
27212         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
27213
27214         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
27215         characters are now considered graphic characters and hence yield false
27216         in this call.
27217
27218         * nmake.adt: Modify header so that xnmake does not generate output
27219         files with multiple blank lines.
27220
27221         * treeprs.adt: Remove a blank line so that output from xtreeprs does
27222         not have an extra blank line
27223
27224 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
27225
27226         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
27227         expression when the component type is an anonymous access type to
27228         ensure that appropriate accessibility checks are done.
27229
27230         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
27231         expression of an assignment when the target object is of an anonymous
27232         access type. This ensures that required accessibility checks are done.
27233         (One_Bound): Move the check for type Universal_Integer to
27234         Process_Bounds.
27235         (Process_Bounds): Check whether the type of the preanalyzed range is
27236         Universal_Integer, and in that case set Typ to Integer_Type prior
27237         to setting the type of the original range and the calls to One_Bound.
27238
27239 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
27240
27241         * sem_case.adb (Expand_Others_Choice): Improve warning.
27242
27243 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
27244
27245         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
27246         constraint of full view if present, when other type is discriminated.
27247         (Eval_Relational_Op): Recognize tests of pointer values against Null,
27248         when the pointer is known to be non-null, and emit appropriate warning.
27249
27250 2005-06-14  Robert Dewar  <dewar@adacore.com>
27251             Ed Schonberg  <schonberg@adacore.com>
27252
27253         PR ada/10671
27254         * sem_prag.adb: Implement pragma Persistent_BSS
27255         Remove obsolete pragma Persistent_Data, Persistent_Object
27256         Set Ada_Version_Explicit, for implementation of AI-362
27257         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
27258         Add processing for pragma Pure_05 and Preelaborate_05
27259         Add processing for Assertion_Policy pragma
27260         Add pragma identifiers for Assert
27261         (Analyze_Pragma, case Assert): Check number of arguments
27262         (Process_Inline): Additional guard against an illegal program, where the
27263         argument of the pragma is undefined, and warnings on redundant
27264         constructs are enabled.
27265         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
27266         Ada_05 to this pragma, specifying that the pragma is only active in
27267         Ada_05 mode.
27268         (Check_Arg_Order): New procedure
27269         Add appropriate calls to this procedure throughout
27270         Also throughout, check entity name before doing any other checks
27271
27272         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
27273         Remove obsolete pragma Persistent_Data, Persistent_Object
27274         Add entries for pragma Pure_05 and Preelaborate_05
27275         Add entries for Assertion_Policy pragma and associated names
27276         Add some names for pragma argument processing
27277
27278         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
27279
27280 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
27281
27282         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
27283         appears within a negation (either from source or as a rewriting of
27284         inequality) adjust text of warning accordingly.
27285
27286 2005-06-14  Thomas Quinot  <quinot@adacore.com>
27287
27288         * s-strxdr.adb: Follow AI95-00132
27289
27290 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
27291
27292         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
27293
27294 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
27295             Jose Ruiz  <ruiz@adacore.com>
27296
27297         * s-tposen.adb, s-tpobop.adb
27298         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
27299         the exception id.
27300         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
27301         there is no violation of the Max_Entry_Queue_Length restriction (if it
27302         has been set); Program_Error is raised otherwise.
27303         (Requeue_Call): Before requeuing the task on the target entry queue we
27304         check that there is no violation of the Max_Entry_Queue_Length
27305         restriction (if it has been set); Program_Error is raised otherwise.
27306
27307 2005-06-14  Robert Dewar  <dewar@adacore.com>
27308
27309         * styleg.adb: Fix several remaining problems in -gnatyu switch
27310         Blank line count not reset at start
27311         Scanning outside source buffer in some cases
27312         Confusing message for blanks at end of file
27313         Non-empty blank lines not recognized
27314
27315         * nmake.adt: Modify header so that xnmake does not generate output
27316         files with multiple blank lines.
27317
27318         * treeprs.adt: Remove a blank line so that output from xtreeprs does
27319         not have an extra blank line
27320
27321 2005-06-14  Sergey Rybin  <rybin@adacore.com>
27322
27323         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
27324
27325 2005-06-14  Doug Rupp  <rupp@adacore.com>
27326             Vincent Celier  <celier@adacore.com>
27327
27328         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
27329         Update copyright.
27330
27331         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
27332         Remove "Library" command.
27333         Change keyword for style check -gnatyd from NOCRLF to
27334         DOS_LINE_ENDINGS.
27335         Remove useless second style check keyword NONE
27336         Remove help documentation for inexistent style check keyword
27337         RM_COLUMN_LAYOUT.
27338         Add help documentation for style check keywords DOS_LINE_ENDINGS,
27339         UNNECESSARY_BLANK_LINES and XTRA_PARENS
27340         Add UNNECESSARY_BLANK_LINES for -gnatyu
27341         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
27342
27343         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
27344
27345 2005-06-14  Vincent Celier  <celier@adacore.com>
27346
27347         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
27348         gprmake was invoked with -d.
27349         (Compile_Sources): If -d was used, output the "completed ..." message
27350         for each compilation.
27351         (Scan_Arg): Recognize new switch -d
27352         When -c and at least one main is specified, set
27353         Unique_Compile to True to guarantee that no other sources will be
27354         compiled.
27355
27356 2005-06-14  Matthew Heaney  <heaney@adacore.com>
27357
27358         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
27359         * a-swuwha.ads, a-swuwha.adb: New files
27360
27361         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
27362         * a-szuzha.ads, a-szuzha.adb: New files.
27363
27364         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
27365         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
27366         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
27367         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
27368         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
27369         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
27370         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
27371         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
27372         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
27373         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
27374         Ada 2005 RM.
27375
27376 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
27377             Olivier Hainque  <hainque@adacore.com>
27378             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27379             Pascal Obry  <obry@adacore.com>
27380
27381         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
27382
27383         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
27384         making a temporary around a procedure call because of non-addressable
27385         actual parameter.
27386         (process_freeze_entity): If entity is a private type, capture size
27387         information that may have been computed for the full view.
27388         (tree_transform, case N_Allocator): If have initializing expression,
27389         check type for Has_Constrained_Partial_View and pass that to
27390         build_allocator.
27391         (tree_transform, case N_Return_Statement): Pass extra arg to
27392         build_allocator.
27393
27394         * decl.c (annotate_value): Remove early return if -gnatR is not
27395         specified.
27396         (gnat_to_gnu_field): Don't make a packable type for a component clause
27397         if the position is byte aligned, the field is aliased, and the clause
27398         size isn't a multiple of the packable alignment. It serves no useful
27399         purpose packing-wise and would be rejected later on.
27400         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
27401
27402         PR ada/20515
27403         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
27404         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
27405         instead.
27406         (create_concat_name): Idem.
27407
27408 2005-06-10  Robert Dewar  <dewar@adacore.com>
27409             Eric Botcazou  <ebotcazou@adacore.com>
27410             Ben Brosgol  <brosgol@adacore.com>
27411             Cyrille Comar  <comar@adacore.com>
27412             Sergey Rybin  <rybin@adacore.com>
27413             Pascal Obry  <obry@adacore.com>
27414
27415         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
27416         Document second argument (Ada_05) of pragma Obsolescent
27417         Add note that call to subprogram marked with pragma Obsolescent
27418         is now considered to be a violation of program Restrictions
27419         (No_Obsolescent_Features).
27420         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
27421         that only machine-dependent attributes are supported.
27422
27423         * gnat_ugn.texi:
27424         Commented out menu lines and empty section for gnatclean examples
27425         Document -gnatwy/Y
27426         Fix some over long lines
27427         Clarify and enhance documentation of ADA_PROJECT_PATH.
27428         Rework section 2.11.2(3) about linking with a non-GNU compiler.
27429         Mention new switch -fcallgraph-info.
27430         Mention new switch -fstack-usage.
27431         For gnatpp, replace '-notab' with '-N' and add this option to Index
27432         Corrected VMS example.
27433         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
27434         Minor reformatting
27435         Add documentation for -gnatyu switch (unnecessary blank lines)
27436         Document new switch -U for GNAT PRETTY and GNAT METRIC
27437         Add note about Stdcall being handled as C convention on non Windows OS.
27438         Remove some junk typo in description of gnatbind -S switch
27439         Remove reference to Extensions_Allowed pragma
27440         Document the new order of the directories to be searched (source and
27441         object directories of project files before directories in ADA_*_PATH
27442         environment variables.
27443
27444         * g-trasym.ads: Document that IRIX is supported
27445
27446 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
27447
27448         * Makefile.in: Add initialize.o when needed.
27449         Adapt to new VMS package body Symbols and subunits
27450         No specialized version of a-sytaco is needed for VxWorks.
27451
27452         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
27453         * a-zchara.ads, a-widcha.ads: New files.
27454
27455         * system-hpux-ia64.ads: New file.
27456
27457         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
27458         is imported from the VxWorks kernel.
27459
27460 2005-06-14  Robert Dewar  <dewar@adacore.com>
27461
27462         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
27463         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
27464         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
27465         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
27466         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
27467         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
27468         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
27469         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
27470         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
27471         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
27472         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
27473         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
27474
27475 2005-06-14  Thomas Quinot  <quinot@adacore.com>
27476
27477         * xeinfo.adb: Fix typo in comment
27478
27479 2005-06-14  Javier Miranda  <miranda@adacore.com>
27480
27481         * repinfo.ads: Fix typo in comment
27482
27483 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
27484
27485         * s-finimp.adb (Parent_Tag): Delete this imported function (function
27486         Parent_Tag is now in the visible part of Ada.Tags).
27487         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
27488         using imported function.
27489
27490 2005-06-14  Bernard Banner  <banner@adacore.com>
27491
27492         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
27493         also apply for handling support for VxSim 653.
27494
27495 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
27496
27497         * xsnames.adb: Add automatic generation of snames.h.
27498
27499 2005-06-14  Thomas Quinot  <quinot@adacore.com>
27500
27501         * gen-soccon.c: Add IP_MULTICAST_IF constant
27502         Minor reformatting and adjustments to prevent warnings.
27503
27504 2005-06-14  Pascal Obry  <obry@adacore.com>
27505
27506         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
27507
27508 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
27509
27510         * trans.c (gnat_gimplify_expr): Call
27511         recompute_tree_invarant_for_addr_expr when we change
27512         the operand of the ADDR_EXPR.
27513
27514 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27515
27516         * misc.c: Don't include errors.h.
27517
27518 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27519
27520         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
27521
27522 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
27523
27524         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
27525         comment typos.
27526         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
27527
27528 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
27529
27530         PR ada/20270
27531         * Makefile.in: Make TGT_LIB behave correctly.
27532
27533 2005-04-23  DJ Delorie  <dj@redhat.com>
27534
27535         * misc.c: Adjust warning() callers.
27536
27537 2005-04-16  Laurent Guerby  <laurent@guerby.net>
27538
27539         PR ada/18847
27540         * a-nudira.adb (Value): Check for valid string.
27541         * a-nuflra.adb (Value): Likewise.
27542
27543 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
27544
27545         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
27546
27547 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
27548
27549         * adaint.c, init.c, tracebak.c: Fix comment typos.
27550         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
27551
27552 2005-04-07  Laurent Guerby  <laurent@guerby.net>
27553             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
27554
27555         * Makefile.in: Add make ifeq define for hppa linux tasking support.
27556         * system-hpux.ads: Define Signed_Zeros to be True.
27557         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
27558
27559 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
27560
27561         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
27562         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
27563         typos.
27564
27565 2005-03-30  Tom Tromey  <tromey@redhat.com>
27566
27567         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
27568
27569 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
27570
27571         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
27572
27573 2005-03-29  Robert Dewar  <dewar@adacore.com>
27574
27575         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
27576         fixed-point expression has value that is not a multiple of the Small
27577         value.
27578
27579         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
27580
27581         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
27582         nanoseconds.
27583
27584         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
27585
27586 2005-03-29  Vincent Celier  <celier@adacore.com>
27587
27588         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
27589         (Build_Dynamic_Library.Version_String): Return the empty string when
27590         Lib_Version is empty or when the symbol policy is not Autonomous.
27591
27592         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
27593         a symbol is not in the reference symbol file, increase the Major ID
27594         and set the Minor ID to 0.
27595         Use gsmatch=lequal instead of gsmatch=equal
27596
27597 2005-03-29  Doug Rupp  <rupp@adacore.com>
27598
27599         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
27600         name and translate.
27601
27602 2005-03-29  Javier Miranda  <miranda@adacore.com>
27603
27604         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
27605         (Inherit_DT): The first formal has been redefined as a Tag.
27606         This allows us the removal of the subprogram Get_TSD.
27607         (TSD): Replace the call to Get_TSD by the actual code.
27608
27609         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
27610         (Make_DT): Upgrade the call to Inherit_TSD according to the
27611         new interface: the first formal is now a Tag.
27612
27613         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
27614         redefined as a Tag.
27615         This change allows us to remove the subprogram Get_TSD.
27616         (CPP_Get_TSD): Subprogram removed.
27617         (TSD): Replace the call to CPP_Get_TSD by the actual code.
27618
27619         * rtsfind.ads: Remove support to call the run-time
27620         subprogram Get_TSD
27621
27622 2005-03-29  Robert Dewar  <dewar@adacore.com>
27623
27624         * errutil.adb, errout.adb:
27625         Minor comment updates on Line_Terminator references
27626
27627         * par-ch10.adb: Add ??? comment about line terminator
27628
27629         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
27630         (check dos line terminator).
27631         (Check_Line_Max_Length): New procedure, split off from the existing
27632         Check_Line_Terminator routine. Separating this out allows -gnatyf to
27633         be properly recognized.
27634
27635         * styleg.adb: Add ??? comment for line terminator reference
27636
27637         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
27638         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
27639
27640         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
27641         (check dos line terminator).
27642         (Check_Line_Max_Length): New procedure, split off from the existing
27643         Check_Line_Terminator routine. Separating this out allows -gnatyf to
27644         be properly recognized.
27645
27646         * stylesw.ads, stylesw.adb:
27647         Add handling for new -gnatyd switch (check dos line terminator)
27648
27649         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
27650         Recognize -gnatwb/-gnatwB switches
27651         Include Warn_On_Bad_Fixed_Value for -gnatg
27652
27653         * usage.adb:
27654         Add line for new -gnatyd switch (check dos line terminator)
27655
27656         * usage.adb: Add lines for -gnatwb/-gnatwB
27657
27658         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
27659
27660         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
27661
27662         * gnat_ugn.texi: Fix overlong lines
27663         Document new -gnatyd switch
27664         Document new -gnatwb/-gnatwB switches
27665
27666 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
27667
27668         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
27669         order to retrieve the component list of the type, before examining
27670         individual components.
27671
27672         * sem_type.adb (Covers): Types are compatible if one is the base type
27673         of the other, even though their base types might differ when private
27674         views are involved.
27675
27676 2005-03-29  Thomas Quinot  <quinot@adacore.com>
27677
27678         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
27679         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
27680         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
27681         analyzed if expansion is disabled (which could otherwise cause spurious
27682         error messages if expansion has been disabled due to previous
27683         (unrelated) errors).
27684
27685         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
27686         is disabled, the entity denoted by the argument is the access type
27687         itself, not an underlying record type, so there is no need to go back
27688         to the Corresponding_Remote_Type.
27689
27690 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
27691             Robert Dewar  <dewar@adacore.com>
27692
27693         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
27694         expand a call to an instance of
27695         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
27696         Constructor actual of the instance. A class-wide membership
27697         check is also generated, to ensure that the tag passed to the instance
27698         denotes a type in the class.
27699         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
27700         of Name_Generic_Dispatching_Constructor.
27701
27702         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
27703         05 unit for AI-260-02).
27704
27705         * a-tgdico.ads: New file.
27706
27707         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
27708         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
27709
27710         * snames.ads, snames.adb (Preset_Names): Add entry for
27711         Generic_Dispatching_Constructor.
27712
27713         PR ada/20300
27714         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
27715         character type cases.
27716         (Analyze_Subprogram_Renaming): Add special handling for
27717         the case of renaming of stream attributes when the renaming denotes a
27718         generic formal subprogram association for an abstract formal subprogram.
27719         Check that the attribute is a primitive stream attribute (and not
27720         a class-wide stream attribute) and then rewrite the attribute name
27721         as the name of the appropriate compiler-generated stream primitive.
27722
27723 2005-03-29  Robert Dewar  <dewar@adacore.com>
27724
27725         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
27726         recursive calls.
27727         (Is_Possibly_Unaligned_Object): Correct typo that
27728         resulted in inaccurate result for unaligned scalars within records.
27729
27730 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
27731
27732         * freeze.adb (Freeze_Record_Type): If the type of the component is an
27733         itype whose parent is controlled and not yet frozen, do not create a
27734         freeze node for the itype if expansion is disabled.
27735
27736 2005-03-29  Vincent Celier  <celier@adacore.com>
27737
27738         * make.adb (Gnatmake): Don't fail if the main project file is declared
27739         as having no Ada sources. Do not display message "no sources to
27740         compile" in quiet output.
27741
27742 2005-03-29  Doug Rupp  <rupp@adacore.com>
27743
27744         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
27745         extra tools.
27746
27747 2005-03-29  Robert Dewar  <dewar@adacore.com>
27748
27749         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
27750         child.
27751
27752 2005-03-29  Robert Dewar  <dewar@adacore.com>
27753
27754         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
27755         missing TYPE Improve the error message generated when compiling a
27756         limited interface in Ada83 or Ada95 mode.
27757
27758 2005-03-29  Robert Dewar  <dewar@adacore.com>
27759
27760         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
27761         rather than proceed ahead using a junk attribute name.
27762
27763 2005-03-29  Vincent Celier  <celier@adacore.com>
27764
27765         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
27766
27767         * prj-part.adb (Parse_Single_Project): Set the location of a project
27768         on its defining identifier, rather than on the reserved word "project".
27769
27770         * prj-proc.adb (Expression): Adapt to the fact that default of external
27771         references may be string expressions, not always literal strings.
27772         (Recursive_Process): Set Display_Name equal to Name
27773         when Location is No_Location, that is when there is no actual file.
27774         Get the Display_Name of the project from the source, when it is not a
27775         virtual project.
27776         (Process): Use the Display_Name in error messages
27777
27778         * prj-strt.adb (External_Reference): Allow default to be string
27779         expressions, not only literal strings.
27780
27781 2005-03-29  Vincent Celier  <celier@adacore.com>
27782
27783         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
27784         file and the reference symbol file to be the same file.
27785
27786 2005-03-29  Thomas Quinot  <quinot@adacore.com>
27787
27788         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
27789         forbid conversion of a local access-to-subprogram type to a remote one.
27790
27791         * sem_util.adb (Wrong_Type): For a record type that is the expanded
27792         equivalent type for a remote access-to-subprogram type, go back to the
27793         original RAS entity when displaying an error message, so the casing is
27794         the original source casing.
27795
27796 2005-03-29  Robert Dewar  <dewar@adacore.com>
27797
27798         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
27799         on param update.
27800
27801 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
27802
27803         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
27804         subtype if code is being pre-analyzed, to prevent un-expanded
27805         references to protected formals, among others.
27806         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
27807         interpretation that can be a call, include the result of the call as a
27808         possible interpretation of the dereference.
27809
27810         * sem_ch5.adb (Process_Bounds): Determine type of range by
27811         pre-analyzing a copy of the original range, and then analyze the range
27812         with the expected type.
27813
27814         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
27815         with an overloaded prefix where not all interpretations yield an
27816         access to subprogram, do not rewrite node as a call.
27817         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
27818         the node as a call once the context identifies the interpretation of
27819         the prefix whose call yields the context type.
27820         (Valid_Conversion): For the case of a conversion between
27821         local access-to-subprogram types, check subtype conformance using
27822         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
27823         detailed error message.
27824
27825 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
27826
27827         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
27828         indicator, indicate that the formal can never be null.
27829         (Process_Formals): If a formal has a non_null indicator, insert the
27830         resulting subtype immediately before the enclosing subprogram decl,
27831         and not at the beginning of the corresponding declarative part, to
27832         prevent access before elaboration (Ada2005).
27833
27834 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27835
27836         PR ada/19956
27837         * utils.c (finish_record_type): Use variable_size when setting sizes.
27838
27839 2005-03-29  Robert Dewar  <dewar@adacore.com>
27840
27841         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
27842         guarantee Unix style line terminators for the output files, even when
27843         running on windows.
27844
27845 2005-03-29  Robert Dewar  <dewar@adacore.com>
27846
27847         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
27848         buffer if an exception is raised.
27849
27850 2005-03-29  Ed Falis  <falis@adacore.com>
27851
27852         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
27853         VxWorks 653 1.4
27854
27855 2005-03-29  Robert Dewar  <dewar@adacore.com>
27856
27857         * sem_util.ads: Minor reformatting
27858         * gnat_rm.texi: Minor editing.
27859
27860 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
27861
27862         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
27863         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
27864
27865 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
27866
27867         * adaint.c (__gnat_portable_spawn): Adjust cast.
27868
27869 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
27870
27871         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
27872
27873 2005-03-17  Pascal Obry  <obry@adacore.com>
27874
27875         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
27876         used.
27877
27878         * expect.c (__gnat_waitpid): Moved here from adaint.c.
27879         Reimplement under Win32 using Win32 API.
27880
27881         (__gnat_kill) [Win32]: Properly close the process handle before leaving
27882         this routine.
27883
27884 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
27885
27886         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
27887         (DECL_RENAMED_OBJECT): New accessor macro.
27888         (SET_DECL_RENAMED_OBJECT): New setter macro.
27889
27890         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
27891         object in all cases.  Attach the renamed object to the VAR_DECL.
27892         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
27893         field is not prescribed.
27894
27895         * misc.c (gnat_handle_option): Handle -gnatO separately.
27896         (gnat_print_decl) <VAR_DECL>: New case.
27897         Print the DECL_RENAMED_OBJECT node.
27898
27899         * lang.opt:  Declare separate -gnatO option.
27900
27901         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
27902         pointer, replace it with the renamed object.
27903         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
27904         pointer type if the source is not a fat pointer type whose underlying
27905         array has the same non-zero alias set as that of the destination array.
27906
27907 2005-03-17  Javier Miranda  <miranda@adacore.com>
27908
27909         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
27910         (Get_Inheritance_Depth): Removed.
27911         (Set_Inheritance_Depth): Removed.
27912
27913         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
27914         subprogram Get_Expanded_Name because it is not referenced by the
27915         frontend.
27916
27917         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
27918         (CPP_Get_Inheritance_Depth): Removed.
27919         (CPP_Set_Inheritance_Depth): Removed.
27920
27921         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
27922
27923 2005-03-17  Robert Dewar  <dewar@adacore.com>
27924
27925         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
27926         3, since we now expect GCC 3 to do all the work.
27927
27928 2005-03-17  Javier Miranda  <miranda@adacore.com>
27929
27930         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
27931         of one barrier to avoid wrong usage of this attribute.
27932
27933         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
27934         First_Private_Entity.
27935
27936         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
27937         the subprogram against wrong usage.
27938         Adapt the code to traverse the entities in the
27939         scope of a record_type because in addition to its usage regarding
27940         packages, this subprogram is also called by Expand_N_Freeze_Entity
27941         to install the visible declarations of the enclosing scope of a
27942         record_type_with_private to establish the proper visibility before
27943         freezing the entity and related subprograms.
27944
27945 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
27946
27947         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
27948         entry formals.
27949
27950 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27951
27952         * exp_ch3.adb (Check_Attr): New subprogram.
27953         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
27954         into a new Check_Attr subprogram, in order to provide a more
27955         explanatory error message (including the name of the missing attribute).
27956         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
27957         subprogram determines whether a default implementation exists for a
27958         given stream attribute.
27959         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
27960         Determine whether to generate a default implementation for each stream
27961         attribute separately, as this depends on the specific attribute.
27962
27963         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
27964         limited extension where a stream attribute is missing for a limited
27965         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
27966         generate a bogus reference to the missing attribute to prevent
27967         cascaded errors. Instead, generate a null statement.
27968
27969         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
27970         available for a limited type if it has been specified for an ancestor
27971         of the type.
27972
27973 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
27974
27975         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
27976         entity is an operator.
27977
27978 2005-03-17  Thomas Quinot  <quinot@adacore.com>
27979
27980         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27981         spec, to make this predicate available to other units.
27982
27983         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
27984         reimplementing it.
27985
27986         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
27987         when no distribution runtime library is available.
27988
27989         * sem_res.adb, sem_dist.adb: Disable expansion of remote
27990         access-to-subprogram types when no distribution runtime library is
27991         available.
27992         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
27993         predicate available to other units.
27994
27995         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
27996         spec, to make this predicate available to other units.
27997
27998 2005-03-17  Vincent Celier  <celier@adacore.com>
27999
28000         * make.adb (Insert_Project_Sources): Make sure the Q is always
28001         initialized.
28002
28003         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
28004         the default for the tree, not the global default naming.
28005
28006         * prj-proc.adb (Recursive_Process): No need to put the default naming
28007         in the project data, it's already there.
28008
28009 2005-03-17  Doug Rupp  <rupp@adacore.com>
28010
28011         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
28012
28013         * 5xcrtl.ads: Renamed to...
28014         * s-crtl-vms64.ads: ...this new file
28015
28016 2005-03-17  Robert Dewar  <dewar@adacore.com>
28017
28018         PR ada/19519
28019         * namet.adb (Copy_One_Character): Set proper wide character encoding
28020         for upper half character if we have upper half encoding.
28021
28022 2005-03-17  Robert Dewar  <dewar@adacore.com>
28023
28024         * par.adb (Par): Improved msg for attempt to recompile predefined unit
28025
28026 2005-03-17  Thomas Quinot  <quinot@adacore.com>
28027
28028         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
28029         tagged limited type, the TSS is a newly built renaming declaration:
28030         insert it using Set_TSS, not Copy_TSS.
28031
28032 2005-03-17  Javier Miranda  <miranda@adacore.com>
28033
28034         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
28035         Try_Object_Operation): Analyze the object that is accessible
28036         through the prefix of the subprogram call before we apply
28037         the transformation of the object-operation notation.
28038
28039 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
28040
28041         * s-taprob.adb (Initialize_Protection): Initialize the protected
28042         object's owner to Null_Task.
28043         (Lock): If pragma Detect_Blocking is in effect and the caller of this
28044         procedure is already the protected object's owner then Program_Error
28045         is raised. In addition the protected object's owner is updated.
28046         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
28047         of this procedure is already the protected object's owner then
28048         Program_Error is raised.
28049         In addition the protected object's owner is updated.
28050         (Unlock): Remove the ownership of the protected object.
28051
28052         * s-taprob.ads (Protection): Add the field Owner, used to store the
28053         protected object's owner.
28054         This component is needed for detecting one type of potentially blocking
28055         operations (external calls on a protected subprogram with the same
28056         target object as that of the protected action). Document the rest of
28057         the components.
28058
28059         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
28060         Initialize the protected object's owner to Null_Task.
28061         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
28062         caller of this procedure is already the protected object's owner then
28063         Program_Error is raised.
28064         Do not raise Program_Error when this procedure is called from a
28065         protected action.
28066         (Unlock_Entries): Remove the ownership of the protected object.
28067         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
28068         of this procedure is already the protected object's owner then
28069         Program_Error is raised.
28070         Do not raise Program_Error when this procedure is called from
28071         a protected action.
28072
28073         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
28074         used to store the protected object's owner.
28075
28076         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
28077         effect and this procedure (a potentially blocking operation) is called
28078         from whithin a protected action, Program_Error is raised.
28079         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
28080         and this procedure (a potentially blocking operation) is called from
28081         whithin a protected action, Program_Error is raised.
28082
28083 2005-03-17  Vincent Celier  <celier@adacore.com>
28084             Nicolas Setton  <setton@adacore.com>
28085
28086         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
28087         switch, not supported by the linker on Darwin. Add '_' before
28088         <library>init, as this character is added unconditionally by the
28089         compiler.
28090         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
28091         correct one ".dylib". This fixes detection of the archive files when
28092         building library projects.
28093
28094 2005-03-17  Vincent Celier  <celier@adacore.com>
28095
28096         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
28097         -gnat83, -gnat95 and -gnat05.
28098
28099 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
28100
28101         * gnat_ugn.texi: Document gnatmem restriction
28102
28103 2005-03-17  Thomas Quinot  <quinot@adacore.com>
28104
28105         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
28106         cleanup
28107
28108 2005-03-17  Robert Dewar  <dewar@adacore.com>
28109
28110         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
28111         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
28112         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
28113
28114         * casing.adb: Comment improvements
28115
28116 2005-03-17  Pascal Obry  <obry@adacore.com>
28117
28118         * g-expect.adb: Minor reformatting.
28119
28120 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
28121
28122         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
28123         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
28124         to dependencies.
28125
28126 2005-03-15  Vincent Celier  <celier@adacore.com>
28127
28128         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
28129         Add new parameter In_Tree to specify the project tree: needed
28130         by the project manager. Adapt to changes in project manager
28131         using new parameter In_Tree.
28132
28133 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
28134
28135         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
28136         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
28137         ada/bldtools to avoid make -jN failures.
28138
28139 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
28140
28141         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
28142         to NULL_TREE on entry.
28143
28144 2005-03-15  Robert Dewar  <dewar@adacore.com>
28145
28146         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
28147         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
28148         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
28149         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
28150         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
28151         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
28152         system-interix.ads, system-solaris-sparc.ads,
28153         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
28154         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
28155         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
28156         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
28157         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
28158         Compiler_System_Version to be False.
28159
28160         * opt.ads: Add new flag Opt.Address_Is_Private
28161
28162         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
28163         Add new parameter Compiler_System_Version to avoid checking for
28164         completeness of parameters when compiler is compiling itself.
28165         Allows old versions of GNAT to be compiled with new compiler.
28166
28167 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
28168
28169         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
28170         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
28171         calling thread.
28172         (Stack_Base_Available): New flag.
28173         (Get_Page_Size): New overloaded functions imported from C.
28174         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
28175         PROT_ON, PROT_OFF): New constants.
28176         (mprotect): New function imported from C.
28177         (pthread_teb_t): New record type.
28178
28179         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
28180         (Create_Task): Account for the Yellow Zone and the guard page.
28181
28182 2005-03-15  Vincent Celier  <celier@adacore.com>
28183
28184         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
28185         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
28186         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
28187         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
28188         Library_File_Name_For): Add new parameter In_Tree
28189         to specify the project tree: needed by the project manager.
28190         Adapt to changes in project manager using new parameter In_Tree.
28191         Remove local imports, use functions in System.CRTL.
28192
28193         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
28194         to use the project manager.
28195
28196         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
28197         In_Tree to designate the project tree. Adapt to changes in the project
28198         manager, using In_Tree.
28199
28200         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
28201         Copy_Interface_Sources): Add new parameter In_Tree to specify the
28202         project tree: needed by the project manager.
28203         (Build_Library): Check that Arg'Length >= 6 before checking if it
28204         contains "--RTS=...".
28205
28206         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
28207         Library_File_Name_For): Add new parameter In_Tree to specify the
28208         project tree: needed by the project manager.
28209
28210         * prj.ads, prj.adb: Major modifications to allow several project trees
28211         in memory at the same time.
28212         Change tables to dynamic tables and hash tables to dynamic hash
28213         tables. Move tables and hash tables from Prj.Com (in the visible part)
28214         and Prj.Env (in the private part). Move some constants from the visible
28215         part to the private part. Make other constants deferred.
28216         (Project_Empty): Make it a variable, not a function
28217         (Empty_Project): Add parameter Tree. Returns the data with the default
28218         naming data of the project tree Tree.
28219         (Initialize): After updating Std_Naming_Data, copy its value to the
28220         component Naming of Project Empty.
28221         (Register_Default_Naming_Scheme): Use and update the default naming
28222         component of the project tree, instead of the global variable
28223         Std_Naming_Data.
28224         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
28225         Tree is not defaulted, return the default naming data of the Tree.
28226         (Initial_Buffer_Size): Constant moved from private part
28227         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
28228         variables initialized in procedure Initialize.
28229         (Add_To_Buffer): Add two in out parameters to replace global variables
28230         Buffer and Buffer_Last.
28231         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
28232         functions.
28233         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
28234         hash tables.
28235         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
28236         for the project tree.
28237         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
28238         constant at the beginning of the package spec, so that they cane be used
28239         in subprograms before their full declarations.
28240         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
28241         (Empty_Project): Add parameter of type Project_Node_Ref
28242         (Private_Project_Tree_Data): Add component Default_Naming of type
28243         Naming_Data.
28244         (Buffer, Buffer_Last): remove global variables
28245         (Add_To_Buffer): Add two in out parameters to replace global variables
28246         Buffer and Buffer_Last.
28247         (Current_Packages_To_Check): Remove global variable
28248         (Empty_Name): Move to private part
28249         (No-Symbols): Make it a constant
28250         (Private_Project_Tree_Data): New type for the private part of the
28251         project tree data.
28252         (Project_Tree_Data): New type for the data of a project tree
28253         (Project_Tree_Ref): New type to designate a project tree
28254         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
28255         for the project tree.
28256
28257         * prj-attr.ads: Add with Table; needed, as package Prj no longer
28258         imports package Table.
28259
28260         * prj-com.adb: Remove empty, no longer needed body
28261
28262         * prj-com.ads: Move most of the content of this package to package Prj.
28263
28264         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
28265         designate the project node tree and Packages_To_Check to replace
28266         global variable Current_Packages_To_Check.
28267         Add new parameters In_Tree and Packages_To_Check to local subprograms,
28268         when needed. Adapt to changes in project manager with project node tree
28269         In_Tree.
28270
28271         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
28272         project tree to most subprograms. Move tables and hash tables to
28273         private part of package Prj.
28274         Adapt to changes in project manager using project tree In_Tree.
28275
28276         * prj-makr.adb (Tree): New constant to designate the project node tree
28277         Adapt to change in project manager using project node tree Tree
28278
28279         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
28280         display the Library_Src_Dir and the Library_Dir.
28281         Add new parameter In_Tree to designate the project node tree to most
28282         subprograms. Adapt to changes in the project manager, using project tree
28283         In_Tree.
28284         (Check_Naming_Scheme): Do not alter the casing on platforms where
28285         the casing of file names is not significant.
28286         (Check): Add new parameter In_Tree to designate the
28287
28288         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
28289         designate the project tree.
28290         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
28291
28292         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
28293         to replace those that were in the private part of package Prj.
28294         Add new parameter In__Tree to designate the project node tree to most
28295         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
28296         (Post_Parse_Context_Clause): When specifying the project node of a with
28297         clause, indicate that it is a limited with only if there is "limited"
28298         in the with clause, not necessarily when In_Limited is True.
28299         (Parse): Add new parameter In_Tree to designate the project node tree
28300
28301         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
28302         designate the project node tree. Adapt to change in Prj.Tree with
28303         project node tree In_Tree.
28304
28305         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
28306         tree In_Tree in the call to function Empty_Process to give its initial
28307         value to the project data Processed_Data.
28308         Add new parameters In_Tree to designate the project tree and
28309         From_Project_Node_Tree to designate the project node tree to several
28310         subprograms. Adapt to change in project manager with project tree
28311         In_Tree and project node tree From_Project_Node_Tree.
28312
28313         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
28314         to replace those that were in the private part of package Prj.
28315         Add new parameter In_Tree to designate the project node tree to most
28316         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
28317
28318         * prj-tree.ads, prj-tree.adb: Add new parameter of type
28319         Project_Node_Tree_Ref to most subprograms.
28320         Use this new parameter to store project nodes in the designated project
28321         node tree.
28322         (Project_Node_Tree_Ref): New type to designate a project node tree
28323         (Tree_Private_Part): Change table to dynamic table and hash tables to
28324         dynamic hash tables.
28325
28326         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
28327         the project tree to most subprograms. Adapt to changes in project
28328         manager using project tree In_Tree.
28329
28330         * makegpr.adb (Project_Tree): New constant needed to use project
28331         manager.
28332
28333 2005-03-15  Olivier Hainque  <hainque@adacore.com>
28334
28335         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
28336         for sigactions with SA_SIGINFO set. Call
28337         __gnat_adjust_context_for_raise before raising, to perform the
28338         potentially required adjustments to the machine context for the GCC
28339         unwinder.
28340
28341         * raise.h (__gnat_adjust_context_for_raise): New prototype.
28342
28343         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
28344         Adjust PC by one in the provided machine context.
28345         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
28346         so that the handler is passed the context structure to adjust prior to
28347         the raise.
28348         (__gnat_error_handler) HPUX: Adjust the signature to match what an
28349         SA_SIGINFO sigaction should look like. Call
28350         __gnat_adjust_context_for_raise before actually raising.
28351         (__gnat_adjust_context_for_raise): Default noop to help PC
28352         adjustments before raise from signal handlers.
28353         (__gnat_error_handler): Indirectly call a predicate function to
28354         determine if a condition should be resignaled or not.
28355         (__gnat_set_resignal_predicate): User interface to modify the predicate.
28356         (__gnat_default_resignal_p): Default GNAT predicate.
28357
28358 2005-03-15  Doug Rupp  <rupp@adacore.com>
28359
28360         * adaint.c: Prefix #include of VMS system header files with vms/
28361         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
28362         Do not define a dummy function "convert_addresses" under Darwin,
28363         not needed.
28364
28365         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
28366         with vms/
28367
28368 2005-03-15  Nicolas Setton  <setton@adacore.com>
28369
28370         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
28371         PPC/AIX.
28372
28373 2005-03-15  Robert Dewar  <dewar@adacore.com>
28374
28375         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
28376         AI-386.
28377
28378         * a-retide.ads: Minor comment changes
28379
28380 2005-03-15  Robert Dewar  <dewar@adacore.com>
28381
28382         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
28383         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
28384         Realloc_For_Chunk to private part of package.
28385         New subprograms for AI-301
28386
28387         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
28388         Get_Line procedure.
28389         Avoid unnecessary use of Get/Set_Wide_String
28390
28391 2005-03-15  Robert Dewar  <dewar@adacore.com>
28392
28393         PR ada/13470
28394         * a-stunau.ads, a-stunau.adb:
28395         Change interface to allow efficient (and correct) implementation
28396         The previous changes to allow extra space in unbounded strings had
28397         left this interface a bit broken.
28398
28399         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
28400
28401         * g-spipat.ads, g-spipat.adb: New interface for Get_String
28402         Minor reformatting (function specs)
28403
28404         * g-spitbo.adb: New interface for Get_String
28405
28406         * g-spitbo.ads: Minor reformatting
28407
28408         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
28409
28410         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
28411
28412 2005-03-15  Javier Miranda  <miranda@adacore.com>
28413             Robert Dewar  <dewar@adacore.com>
28414             Thomas Quinot  <quinot@adacore.com>
28415             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28416
28417         * atree.ads, atree.adb: Add support for Elist24 field
28418
28419         * atree.h: Fix wrong definition of Field27
28420         Add support for Elist16 field
28421         Add support for Elist24 field
28422
28423         * einfo.ads, einfo.adb (Abstract_Interfaces,
28424         Set_Abstract_Interfaces): New subprograms.
28425         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
28426         subprograms.
28427         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
28428         entities rather than a single node.
28429         (Is_Interface, Set_Is_Interface): New subprogram
28430         (First_Tag_Component): New syntesized attribute
28431         (Next_Tag_Component): New synthesized attribute
28432         (Write_Entity_Flags): Upgraded to write Is_Interface
28433         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
28434         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
28435         (Task_Body_Procedure): New subprogram to read this attribute.
28436         (Set_Task_Body_Procedure): New subprogram to set this attribute.
28437         (Has_Controlled_Component): Now applies to all entities.
28438         This is only a documentation change, since it always worked to apply
28439         this to other than composite types (yielding false), but now this is
28440         official.
28441         Update documentation on Must_Be_Byte_Aligned for new spec
28442
28443         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
28444         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
28445         uses of the Access_Disp_Table attribute to reference the first dispatch
28446         table associated with a tagged type. As
28447         part of the implementation of abstract interface types,
28448         Access_Disp_Table has been redefined to contain a list of dispatch
28449         tables (rather than a single dispatch table).
28450         Similarly, upgrade all the references to Tag_Component by the
28451         new attribute First_Tag_Component.
28452         (Find_Inherited_TSS): Moved to exp_tss.
28453         Clean up test in Expand_N_Object_Declaration for cases
28454         where we need to do a separate assignment of the initial value.
28455         (Expand_N_Object_Declaration): If the expression in the
28456         declaration of a tagged type is an aggregate, no need to generate an
28457         additional tag assignment.
28458         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
28459         is to be deleted.
28460         Bit packed array ops are only called if operands are known to be
28461         aligned.
28462         (Component_Equality): When returning an N_Raise_Program_Error statement,
28463         ensure that its Etype is set to Empty to avoid confusing GIGI (which
28464         expects that only expressions have a bona fide type).
28465         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
28466         determine the amount of data to be copied.
28467
28468         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
28469         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
28470             INTERFACE_TYPE_DEFINITION ::=
28471               [limited | task | protected | synchronized] interface
28472                 [AND interface_list]
28473
28474         * par-ch3.adb (P_Type_Declaration): Modified to give support to
28475         interfaces.
28476         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
28477         interfaces.
28478         (P_Interface_Type_Definition): New subprogram that parses the new
28479         syntax rule of Ada 2005 interfaces
28480         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
28481         messages by the correct RENAMES (quotes removed).
28482
28483         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
28484         attribute First_Tag_Component.
28485
28486         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
28487         (Interface_List, Set_Interface_List): New subprograms.
28488         (Interface_Present, Set_Interface_Present): New subprograms.
28489         (Limited_Present, Set_Limited_Present): Available also in derived
28490         type definition nodes.
28491         (Protected_Present, Set_Protected_Present): Available also in
28492         record type definition and
28493         derived type definition nodes.
28494         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
28495         (Task_Present, Set_Task_Present): New subprogram.
28496         (Task_Body_Procedure): Removed.
28497         (Set_Task_Body_Procedure): Removed.
28498         These subprogram have been removed because the attribute
28499         Task_Body_Procedure has been moved to the corresponding task type
28500         or task subtype entity to leave a field free to store the list
28501         of interfaces implemented by a task (for AI-345)
28502         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
28503         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
28504         expression flag Do_Range_Check
28505         (Exception_Junk): Change to Flag7 to accomodate above change
28506         (Box_Present, Default_Name, Specification, Set_Box_Present,
28507         Set_Default_Name, Set_Specification): Expand the expression
28508         "X in N_Formal_Subprogram_Declaration" into the corresponding
28509         two comparisons. Required to use the csinfo tool.
28510
28511         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
28512         "with string" given.
28513
28514         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
28515         expression given.
28516
28517         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
28518         in 2005 mode
28519
28520         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
28521         attribute Task_Body_Procedure rather than the old semantic field that
28522         was available in the task_type_declaration node.
28523
28524         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
28525         interface type definitions.
28526         (P_Formal_Derived_Type_Definition): Modified to handle the list of
28527         interfaces.
28528
28529         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
28530         task type declaration.
28531         (P_Protected): Modified to handle the list of interfaces in a
28532         protected type declaration.
28533
28534 2005-03-15  Doug Rupp  <rupp@adacore.com>
28535             Vincent Celier  <celier@adacore.com>
28536
28537         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
28538         (Gen_Output_File_C): Likewise.
28539         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
28540
28541 2005-03-15  Thomas Quinot  <quinot@adacore.com>
28542
28543         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
28544         is an N_Raise_Constraint_Error node, create a new copy of it without
28545         going through a call to Duplicate_Subexpr.
28546
28547 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
28548             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28549             Nicolas Setton  <setton@adacore.com>
28550             Ed Schonberg  <schonberg@adacore.com>
28551
28552         PR ada/19900
28553         PR ada/19408
28554         PR ada/19140
28555         PR ada/20255
28556         * decl.c (gnat_to_gnu_field): Reject aliased components with a
28557         representation clause that prescribes a size not equal to the rounded
28558         size of their types.
28559         (gnat_to_gnu_entity, case E_Component): Always look at
28560         Original_Record_Component if Present and not the entity.
28561         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
28562         of tagged extension types by not making field for components that are
28563         inside the parent.
28564         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
28565         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
28566         expression to the type of the object when the object is constant.
28567         Reverse defer_debug_incomplete_list before traversing it, so that trees
28568         are processed in the order at which they were added to the list. This
28569         order is important when using the stabs debug format.
28570         If we are deferring the output of debug information, also defer this
28571         output for a function return type.
28572         When adding fields to a record, prevent emitting debug information
28573         for incomplete records, emit the information only when the record is
28574         complete.
28575         (components_to_record): New parameter defer_debug.
28576         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
28577         (gnat_to_gnu_field_decl): New function.
28578         (substitution_list, annotate_rep): Call it.
28579         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
28580         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
28581         No longer update discriminants to not be a COMPONENT_REF.
28582         (copy_alias_set): Strip padding from input type; also handle
28583         unconstrained arrays properly.
28584
28585         * gigi.h (write_record_type_debug_info): New function.
28586         Convert to use ANSI-style prototypes. Remove unused
28587         declarations for emit_stack_check, elab_all_gnat and
28588         set_second_error_entity.
28589         (gnat_to_gnu_field_decl): New decl.
28590
28591         * utils.c (write_record_type_debug_info): New function.
28592         (finish_record_type): Delegate generation of debug information to
28593         write_record_type_debug_info.
28594         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
28595         (update_pointer_to): Fix pasto.
28596         (convert) <UNION_TYPE>: Accept slight type variations when
28597         converting to an unchecked union type.
28598
28599         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
28600         replace the N_Freeze_Entity with a null statement.
28601
28602         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
28603         within a constrained subcomponent of an enclosing record, place the
28604         freeze nodes in the scope stack entry for the enclosing record.
28605         (Undelay_Type): New Subprogram.
28606         (Set_Small_Size): Pass T, the type to modify; all callers changed.
28607         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
28608         within records; allow them to have freeze nodes if their base types
28609         aren't frozen yet.
28610
28611         * exp_util.adb (Remove_Side_Effects): Properly test for
28612         Expansion_Delayed and handle case when it's inside an
28613         N_Qualified_Expression.
28614
28615         * sem_ch3.adb (Derived_Type_Declaration): New predicate
28616         Comes_From_Generic, to recognize accurately that the parent type in a
28617         derived type declaration can be traced back to a formal type, because
28618         it is one or is derived from one, or because its completion is derived
28619         from one.
28620         (Constrain_Component_Type): If component comes from source and has no
28621         explicit constraint, no need to constrain in in a subtype of the
28622         enclosing record.
28623         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
28624         Minor change to propagate Is_Ada_2005 flag
28625
28626         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
28627         Expansion_Delayed is False.
28628         (assoc_to_constructor): Ignore fields that have a
28629         Corresponding_Discriminant.
28630         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
28631         function returns "by target", dereference the target pointer using the
28632         type of the actual return value.
28633         <all>: Be prepared for a null gnu_result.
28634         (processed_inline_subprograms): Check flag_really_no_inline
28635         instead of flag_no_inline.
28636         (set_second_error_entity): Remove unused function.
28637         (gnat_to_gnu, case N_Selected_Component): Call
28638         gnat_to_gnu_field_decl.
28639         (assoc_to_constructor): Likewise.
28640
28641 2005-03-15  Robert Dewar  <dewar@adacore.com>
28642             Ed Schonberg  <schonberg@adacore.com>
28643             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28644
28645         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
28646         Must_Be_Byte_Aligned for cases where we do not need to use a
28647         System.Pack_nn unit.
28648
28649         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
28650         as procedures.
28651         Needed now that we do some processing for IN parameters as well. This
28652         may well fix some unrelated errors.
28653         (Expand_Call): Handle case of unaligned objects (in particular those
28654         that come from packed arrays).
28655         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
28656         renamed entity is an inherited operation, re-expand the call using the
28657         original operation, which is the one to call.
28658         Detect attempt to inline parameterless recursive subprogram.
28659         (Represented_As_Scalar): Fix to work properly with private types
28660         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
28661         accurate estimate. Yields True in far fewer cases than before,
28662         improving the quality of code that depends on this test.
28663
28664         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
28665         over both visible and private declarations to remove them from tree,
28666         and mark subprograms declared in package as eliminated, to prevent
28667         spurious use in subsequent compilation of generic units in the context.
28668
28669         * exp_util.ads: Minor cleanup in variable names
28670
28671         * sem_eval.ads, sem_eval.adb: Minor reformatting
28672         (Compile_Time_Known_Bounds): New function
28673
28674 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28675
28676         * exp_ch7.adb (Convert_View): Use base types of underlying types when
28677         determining whether an unchecked conversion is needed for the argument
28678         of an initialization call.
28679
28680 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28681
28682         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
28683         that appears in the instantiation rather than the internal subtype
28684         generated in the wrapper package, to avoid anomalies in gigi when the
28685         target is derived from a private type whose full view is an access type.
28686
28687 2005-03-15  Robert Dewar  <dewar@adacore.com>
28688
28689         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
28690         not needed.
28691         Add documentation to replace the use of this flag
28692         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
28693         the x86_64.
28694
28695 2005-03-15  Thomas Quinot  <quinot@adacore.com>
28696
28697         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
28698         here from exp_attr so it can be shared between exp_attr and exp_dist.
28699         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
28700         all TSS names, not a subset thereof, and the previous name introduced
28701         an unnecessarily confusion that a distinction might exist between
28702         "OK" TSS names and some "not OK" TSS names.
28703
28704 2005-03-15  Doug Rupp  <rupp@adacore.com>
28705
28706         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
28707         Command_Name.
28708
28709 2005-03-15  Pascal Obry  <obry@adacore.com>
28710             Eric Botcazou  <ebotcazou@adacore.com>
28711
28712         PR ada/20226
28713         PR ada/20344
28714         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
28715         when IN_RTS. This is to work around a bootstrap path problem.
28716
28717         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
28718         table and pass it to __gnat_install_SEH_handler().
28719         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
28720
28721         * lang.opt: Fix specification of -fRTS=.
28722
28723 2005-03-15  Doug Rupp  <rupp@adacore.com>
28724             Bernard Banner  <banner@adacore.com>
28725             Vincent Celier  <celier@adacore.com>
28726             Arnaud Charlet  <charlet@adacore.com>
28727
28728         PR ada/6852
28729         This change works fine when gnatlib is built from the gcc directory,
28730         but does not work when using the libada Makefile, since GCC_FOR_TARGET
28731         is not passed to ada/Makefile.in, so more work is needed by a
28732         Makefile/configure expert.
28733
28734         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
28735         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
28736         Setup gnatlink switch -M for x86_64 linux, as it is already setup
28737         for Linux x86.
28738         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
28739         Run ranlib on libgccprefix.a
28740         Define PREFIX_OBJS for Darwin, to build libgccprefix.
28741         (ADA_INCLUDE_SRCS): Split Ada packages.
28742
28743 2005-03-15  Robert Dewar  <dewar@adacore.com>
28744
28745         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
28746
28747         * impunit.adb: Add GNAT.UTF_32
28748
28749         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
28750
28751         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
28752         now uses GNAT.UTF_32).
28753
28754         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
28755         capabilities for categorizing characters using Unicode categories
28756
28757 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28758
28759         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
28760         instantiation that has been rewritten as a package body, retrieve spec
28761         to generate proper name for implicit_with_clause.
28762         (Install_Parents): Recognize a parent that is an instantiation but has
28763         been rewritten as a package declaration during analysis.
28764
28765 2005-03-15  Javier Miranda  <miranda@adacore.com>
28766             Ed Schonberg  <schonberg@adacore.com>
28767
28768         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
28769         parameter reported some error we immediately return. This improves the
28770         behaviour of the frontend in case of errors.
28771         (Install_Parent, Remove_Parent): Introduce new flag
28772         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
28773         ancestor of a generic child unit, when the child is being instantiated.
28774         (Inline_Instance_Body): If we are compiling the private
28775         part or the body of a child unit, restore the proper visibility of the
28776         parents after compiling the instance body.
28777
28778 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28779             Javier Miranda  <miranda@adacore.com>
28780
28781         PR ada/15608
28782         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
28783         of a private type, in which case it is underlying_type that denotes
28784         the proper task. Also modified to use the new entity attribute
28785         that is directly available in the task type and task subtype entities
28786         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
28787         arrays when other dimensions than the first are constrained by
28788         discriminants of an enclosing record.
28789         (Insert_Explicit_Dereference): If the prefix is an indexed component or
28790         a combination of indexed and selected components, find ultimate entity
28791         and generate the appropriate reference for it, to suppress spurious
28792         warnings.
28793         (Note_Possible_Modification): If an entity name has no entity, return.
28794         (Is_Variable): A function call never denotes a variable.
28795         (Requires_Transient_Scope): For record types, recurse only on
28796         components, not on internal subtypes that may have been generated for
28797         constrained components.
28798
28799 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28800
28801         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
28802         Eliminated as candidates for resolution. Both efficient, and avoids
28803         anomalies with operators declared in deleted code.
28804         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
28805         expansion is disabled (as when compiling a generic) to prevent spurious
28806         warnings on prefixes of selected components.
28807
28808 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28809
28810         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
28811         attached to a list before checking whether it appears in the private
28812         declarations of the current package.
28813         (Make_Inequality_Operator): Insert declaration in proper declarative
28814         list rather than just setting the Parent field, so that
28815         Is_Private_Declaration can handle it properly.
28816
28817 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
28818
28819         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
28820         a renaming a body, check that the renamed subprogram in not intrinsic.
28821         (Find_Direct_Name): If several use_visible entities hide
28822         each other, and the context is a predefined file compiled through
28823         rtsfind, keep only the entity that comes from a predefined file.
28824
28825 2005-03-15  Geert Bosch  <bosch@adacore.com>
28826
28827         * s-fatgen.adb (Valid): Extend special exceptions to account for long
28828         long float padding to also cover AMD64 and IA64.
28829
28830 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
28831
28832         * s-imgwch.adb: Add with and use of Interfaces.
28833         (Img_Wide_Character): Change type of Val to Unsigned_16.
28834         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
28835
28836 2005-03-15  Matthew Gingell  <gingell@adacore.com>
28837
28838         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
28839
28840 2005-03-15  Robert Dewar  <dewar@adacore.com>
28841
28842         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
28843
28844         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
28845
28846         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
28847
28848 2005-03-15  Robert Dewar  <dewar@adacore.com>
28849
28850         * s-bitops.adb, s-bitops.ads,
28851         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
28852         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
28853         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
28854         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
28855         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
28856         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
28857         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
28858         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
28859         reformatting.
28860
28861 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
28862
28863         * utils2.c (build_binary_op): Fix typo.
28864
28865 2005-03-15  Doug Rupp  <rupp@adacore.com>
28866
28867         * s-crtl.ads (popen,pclose): New imports.
28868
28869 2005-03-15  Cyrille Comar  <comar@adacore.com>
28870
28871         * comperr.adb (Compiler_Abort): remove references to obsolete
28872         procedures in the bug boxes for various GNAT builds.
28873
28874 2005-03-15  Vincent Celier  <celier@adacore.com>
28875
28876         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
28877
28878 2005-03-15  Geert Bosch  <bosch@adacore.com>
28879             Arnaud Charlet  <charlet@adacore.com>
28880             Robert Dewar  <dewar@adacore.com>
28881             Cyrille Comar  <comar@adacore.com>
28882             Sergey Rybin  <rybin@adacore.com>
28883
28884         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
28885         too specific and long-winded to be appropriate for the GNAT User's
28886         Guide.
28887         Warn about use of GCC switches not documented in the GNAT User's Guide,
28888         as these may cause generated code to not conform to Ada semantics.
28889         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
28890         Add documentation for -gnat95 and -gnat05 switches
28891         Remove paragraph documenting obsolete way to refer to third party
28892         libraries.
28893         Add a few references to Ada_05 that were missing.
28894         Update documentation on -gnatZ/-gnatL.
28895         Document limitation when using -m64 under Solaris.
28896         Change the "Name Casing" subsection of the pretty-printer section
28897         according to the changes in the dictionary processing.
28898
28899         * gnat_rm.texi: Document the Ada_05 pragma.
28900         Section on record representation clauses describes the new more
28901         relaxed rules about placement of large packed bit array components.
28902         Add documentation of GNAT.UTF_32
28903
28904 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
28905
28906         * misc.c (gnat_post_options): Turn off structural
28907         aliasing for now.
28908
28909 2005-03-08  Laurent Guerby  <laurent@guerby.net>
28910
28911         * system-linux-sparc.ads: Fix typo in previous commit.
28912
28913 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
28914             Laurent Guerby  <laurent@guerby.net>
28915
28916         PR ada/20035
28917         * system-linux-sparc.ads: New.
28918         * Makefile.in: Add sparc linux entry.
28919
28920 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
28921
28922         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
28923         parameters as unused.
28924
28925 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
28926         Partial merge from libada-gnattools-branch:
28927
28928         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
28929         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
28930         into code in gnattools/Makefile.in.  Remove direct dependencies on
28931         stamp-tools by tools clauses.
28932         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
28933         * config-lang.in: Add gnattools to $lang_dirs.
28934
28935 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
28936
28937         PR ada/19942
28938         * utils.c (gnat_type_for_mode): Return null instead of ICE because
28939         we asked for an unknown mode.
28940
28941 2005-02-12  Richard Henderson  <rth@redhat.com>
28942
28943         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
28944         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
28945
28946 2005-02-10  Andreas Jaeger  <aj@suse.de>
28947
28948         * init.c (__gnat_initialize): Mark parameter as unused.
28949
28950 2005-02-09  Doug Rupp  <rupp@adacore.com>
28951
28952         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
28953         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
28954
28955 2005-02-09  Doug Rupp  <rupp@adacore.com>
28956
28957         * gnatchop.adb (dup, dup2),
28958         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
28959
28960         * gnatlbr.adb (mkdir),
28961         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
28962
28963         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
28964
28965 2005-02-09  Doug Rupp  <rupp@adacore.com>
28966
28967         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
28968
28969 2005-02-09  Robert Dewar  <dewar@adacore.com>
28970             Thomas Quinot  <quinot@adacore.com>
28971             Javier Miranda  <miranda@adacore.com>
28972             Pascal Obry  <obry@adacore.com>
28973             Ed Schonberg  <schonberg@adacore.com>
28974             Doug Rupp  <rupp@adacore.com>
28975             Gary Dismukes  <dismukes@adacore.com>
28976             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28977
28978         * g-zstspl.ads: New file.
28979
28980         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
28981
28982         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
28983         Ada 95 mode
28984         Add definition of Wide_Wide_Space for AI-285
28985
28986         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
28987         interface (to support Ada 95 and Ada 2005 units).
28988         Add Unbounded_IO files
28989         Add entries for Wide_Wide packages for AI-285
28990         Add list of containers packages to Ada 2005 unit list
28991
28992         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
28993         support new Unbounded_IO package cleanly.
28994
28995         * g-utf_32.ads, g-utf_32.adb: New files.
28996
28997         * Makefile.rtl: Add entry for g-utf_32
28998         Add new files for Unbounded_IO
28999         Adjust make file for new AI-285 wide wide packages
29000         Add AI-302 containers to the run time.
29001
29002         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
29003         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
29004         subprograms for AI-301.
29005
29006         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
29007
29008         * a-stunau.ads: Minor comment correction
29009
29010         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
29011         etc.
29012         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
29013         (Check_RPC): Update to match changes in expanded code.
29014         Clean up unused entity.
29015
29016         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
29017         was not taken into account.
29018         This includes proper initialization with Normalize_Scalars.
29019         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
29020         normalize scalars cases (particularly the latter) to do a better job
29021         of finding invalid representations.
29022
29023         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
29024
29025         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
29026         used
29027
29028         * exp_dist.adb: Add support for wide wide character type
29029         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
29030         private part, generate stub bodies at the end of the private part,
29031         not the visible part.
29032         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
29033         PolyORB support.
29034         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
29035         generic wrapper to execute final processing after completing the
29036         expansion of the RPC receiver for an RACW.
29037
29038         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
29039         packages and attributes.
29040         (Preset_Names): Addition of the new reserved words of Ada 2005,
29041         that is interface, overriding and synchronized.
29042         (Get_Pragma_Id): Give support to the use of the new reserved word
29043         "interface" as a pragma name.
29044         (Is_Pragma_Name): Give support to the use of the new reserved word
29045         "interface" as a pragma name.
29046         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
29047         attribute implementation.
29048
29049         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
29050         checks to entities that are output parameters of Asm operations.
29051         Handle the Stream_Size attribute.
29052         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
29053
29054         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
29055
29056         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
29057         for second parameter being 0.0.
29058         Add support for wide wide character type.
29059         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
29060
29061         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
29062         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
29063         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
29064         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
29065         for wide wide character cases.
29066
29067         * cstand.adb: Create entities for Wide_Wide_Character and
29068         Wide_Wide_String.
29069
29070         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
29071         accordance with AI-258.
29072         Add new declarations for 16/32 bit C character types (Part of AI285)
29073
29074         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
29075         (Obsolescent_Warning): New field
29076         (Rep_Clause): New local subprogram used to share code. Returns the rep
29077         clause for which the name is given in parameter.
29078         (Has_Stream_Size_Clause): New routine.
29079         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
29080         (Address_Clause): Implementation is now using Rep_Clause.
29081         (Alignment_Clause): Idem.
29082         (Size_Clause): Idem.
29083
29084         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
29085         entity in non-Ada 2005 mode and generate warning.
29086
29087         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
29088         (Prag): Code cleanup. Remove old gnat pragma "overriding"
29089
29090         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
29091         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
29092         on the named unit if the pragma is not in the current compilation unit,
29093         so that elaboration calls in the current unit can set up an elaboration
29094         dependency on the named unit, as needed.
29095         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
29096         subprogram as well as for subprograms declared within a package.
29097         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
29098         pragma overriding.
29099
29100         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
29101         to z) to avoid some instances of duplication for Wide_Wide packages.
29102
29103         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
29104         characters.
29105
29106         * scn.adb: Char_Literal_Value field is now a Uint
29107
29108         * scng.adb: Significant rewrite to handle new Ada 2005 features
29109         allowing wide and wide wide characters in program text, e.g. for
29110         identifiers, as described in AI-285.
29111         (Set_Reserved): New procedure, makes setting up keywords cleaner.
29112         (Initialize_Scanner): Register the new reserved words of Ada 2005.
29113         (Scan): Give support to the new reserved words.
29114
29115         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
29116         warning notifying that interface, overriding, and synchronized are
29117         new reserved words.
29118         (P_Pragma): Allow the use of the new reserved word "interface" as
29119         a pragma name.
29120
29121         * gnatls.adb, gnatbind.adb,
29122         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
29123         identifiers named "interface" to "SAL_Interface".
29124
29125         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
29126         (Structured Exception handling).
29127         (Gen_Main_C): Idem.
29128
29129         * bindgen.adb:
29130         (Gen_Main_Ada): Set the default exit code if specified.
29131         (Gen_Main_C): Likewise.
29132         Part of *DC20-006.
29133         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
29134         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
29135
29136         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
29137         new -Xnnn switch.
29138
29139         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
29140         has a collision with the new Ada 2005 "interface" reserved word.
29141
29142         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
29143         generate a warning notifying that interface, overriding, and
29144         synchronized are new reserved words.
29145
29146         * scans.ads (Token_Type): Addition of the tokens corresponding to the
29147         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
29148         and Tok_Synchronized.
29149
29150         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
29151         "dispatching" rather than "primitive" operations, since dispatching
29152         calls are now allowed to abstract formal subprograms (which are not
29153         primitive).
29154         Char_Literal_Value field is now a Uint
29155         (Resolve_Slice): If the prefix is an access to an unconstrained array,
29156         compute the actual subtype of the designated object to impose the proper
29157         index constraints.
29158         (Resolve_Selected_Component): Do not insert an access check if the
29159         prefix is an access type: such a node is expanded into an explicit
29160         dereference, on which the access check is performed anyway. Removes
29161         expensive duplicate checks.
29162         (Resolve_Call): Use new flag Is_Obsolescent and field
29163         Obsolescent_Warning so that pragma Obsolescent works on library
29164         subprograms.
29165         Add support for wide wide character type
29166         (Resolve_Allocator): Replace the error message on wrong null-exclusion
29167         value by a warning message.
29168         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
29169         as fixed-point, and one of the operands is non-static and universal, it
29170         can only be an illegal exponentiation operation, in which case there is
29171         no real value to retrieve.
29172
29173         * exp_strm.adb: Add support for wide wide character type
29174         (Build_Elementary_Input_Call): Compute the size of the stream element by
29175         querying the rep chain to find the Stream_Attribute attribute value.
29176         (Build_Elementary_Write_Call): Ditto.
29177
29178         * sem_aggr.adb: Char_Literal_Value field is now a Uint
29179         Add support for wide wide character type
29180         Replace the error messages on wrong null-exclusion value by warnings
29181         as described in Ada 2005.
29182         (Resolve_Extension_Aggregate): Document the fact that the error
29183         message on class-wide expressions in extensions aggregates.
29184
29185         * sem_case.adb: Add support for wide wide character type
29186
29187         * sem_ch13.adb: Add support for wide wide character type
29188         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
29189
29190         * sem_ch3.adb: Add support for wide wide character type
29191         (Process_Subtype): If constraint is illegal for the type, set Ekind of
29192         now-useless Itype, to prevent cascaded errors on a compiler built
29193         without -gnatp.
29194
29195         * sem_ch8.adb: Add with and use of Sem_Disp.
29196         (Analyze_Subprogram_Renaming): Replace unclean uses of
29197         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
29198         of Corresponding_Spec to Empty).
29199         (Attribute_Renaming): Replace use of Corresponding_Spec with
29200         Corresponding_ Formal_Spec and simplify condition.
29201         (Use_One_Package): Check that scope of homonym of identifier is defined,
29202         before checking whether it is a wrapper package.
29203         Add support for wide wide character type
29204
29205         * sem_eval.adb: Add support for wide wide character type.
29206         (Eval_Arithmetic_Op): Check for compile time known signed integer
29207         overflow in the non-static case.
29208         (Subtypes_Statically_Match): A formal scalar type and its base type do
29209         not statically match.
29210
29211         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
29212         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
29213         subtype).
29214         (Unit_Declaration_Node): Ditto.
29215         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
29216         has a packed array type, the prefix has been rewritten into a type
29217         conversion. Determine variable-ness from the converted expression.
29218         Handle wide wide character cases.
29219
29220         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
29221
29222         * stringt.ads, stringt.adb: Handle full UTF-32 range.
29223         Remove ["0A"] from comment, since it can look like a line terminator.
29224         Currently we don't permit this, but this is under discussion by the
29225         ARG, and it is easy enough to use a different example.
29226
29227         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
29228         handling UTF-32 encoding for wide wide character.
29229         Implement new brackets coding ["hhhhhhhh"]
29230         Add UTF-8 encodings for full UTF-32 range
29231
29232         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
29233
29234         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
29235         bit range Add full UTF-32 support.
29236         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
29237         notify that constraint error will be raised at run-time
29238         because a null value is assigned to a null-excluding object.
29239         Remove some obsolete declarations and make Char_Code
29240         unsigned.
29241
29242         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
29243         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
29244         Rcheck subprograms.
29245
29246         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
29247         wrong null-exclusion value by a warning message.
29248         (Enable_Range_Check): Do range check if the prefix is an
29249         explicit dereference whose designated object is an unconstrained array.
29250         Current algorithm for removing duplicate checks is over-eager in this
29251         case.
29252
29253         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
29254         null-exclusion value by a warning message
29255
29256         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
29257         completely. Add support for Uint2 field
29258
29259         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
29260         exp_prag.adb: Char_Literal_Value field is now a Uint.
29261
29262         * exp_util.adb (Insert_Actions): Replace
29263         N_Formal_Subprogram_Declaration by
29264         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
29265         Char_Literal_Value field is now a Uint.
29266
29267         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
29268         defined for subprogram renaming declarations. When set, the field
29269         indicates the defining entity of a corresponding formal subprogram
29270         when the renaming corresponds to a formal subprogram association in an
29271         instantiation.
29272         (Set_Corresponding_Formal_Spec): New procedure to return
29273         Corresponding_Formal_Spec field.
29274         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
29275         (which is now a subtype).
29276         Char_Literal_Value field is now a Uint
29277
29278         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
29279         pointer to the base of the dispatch table.
29280         Minor changes to comments.
29281         (Controlling_Type): New function for determining the tagged type
29282         associated with a tagged primitive subprogram.
29283         (Expand_Dispatching_Call): Add support for a controlling actual that is
29284         directly a value of type Ada.Tag rather than a tagged object.
29285
29286         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
29287         describing the new layout.
29288         (Dispatch_Table): The expander computes the actual array size, allocates
29289         the Dispatch_Table record accordingly, and generates code that displaces
29290         the base of the record after the Typeinfo_Ptr component. The access to
29291         these components is done by means of local functions.
29292         (Offset_To_Top): New function.
29293         (Typeinfo_Ptr): New function.
29294         (Get_TSD): Modified to access the new position of the TSD.
29295         (Set_TSD): Modified to save the TSD in its new position.
29296
29297         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
29298         case of formal abstract subprograms. Add check and message for -gnat05.
29299         Update comments.
29300
29301         * sem_ch12.adb: Add with and use for Sem_Disp.
29302         (Analyze_Associations): Minor change from "=" to "in" for use of
29303         N_Formal_Subtype_Declaration (which is now a subtype).
29304         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
29305         N_Formal_Subtype_Declaration (which is now a subtype).
29306         (Analyze_Formal_Subprogram): Add handling for
29307         N_Formal_Abstract_Subprogram, marking the formal as abstract and
29308         dispatching, setting the controlling status of the formal parameters
29309         and result, and issuing an error if there is no controlling type for
29310         the formal subprogram.
29311         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
29312         which is an unclean use of that field, we set the new field
29313         Corresponding_Formal_Spec to make the formal subprogram available to
29314         processing in Analyze_Subprogram_Declaration.
29315         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
29316         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
29317         Constrained, so that it is is does not statically match its anonymous
29318         base type.
29319
29320         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
29321         abstract formal subprograms in error check for functions returning
29322         abstract types. Set scope of new designator for
29323         a parameterless subprogram, so that it is available when checking the
29324         body for nested subprograms, before full analysis of said body.
29325         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
29326         subprogram only if inner one comes from source.
29327         (Analyze_Function_Call): If the call is given in object notation, the
29328         analysis of the name rewrites the node and analyzes it with the proper
29329         argument list. After analyzing the name, if the call has been rewritten
29330         and the result type is set, no further analysis is needed.
29331         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
29332         mark in function specification, in a context where the formals are
29333         visible and hide outer homographs.
29334
29335         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
29336         as the tagged type for the cases of abstract formal subprograms and
29337         renamings of those.  Clean up spec comments.
29338         (Check_Dispatching_Context): Add error message to indicate "abstract
29339         procedure", covering the case of a call to a formal abstract procedure
29340         that has statically tagged operands.
29341         (Check_Dispatching_Call): Check for the case of an actual given by
29342         a tag-indeterminate function call whose type is an ancestor of the
29343         containing call's associated tagged type. This situation can occur
29344         for inherited primitives with function defaults. In this case we
29345         use the tagged type's tag directly as the controlling argument for
29346         the calls.
29347         (Expand_Call): Name change on call to Expand_Dispatch_Call.
29348
29349         * sprint.adb (Sprint_Node_Actual): Split
29350         N_Formal_Subprogram_Declaration into two alternatives for the new
29351         cases N_Formal_Abstract_Subprogram_Declaration and
29352         N_Formal_Concrete_Subprogram_Declaration.
29353         Char_Literal_Value field is now a Uint.
29354
29355         * trans.c: Get rid of junk Uint2 reference.
29356         Char_Literal_Value field is now a Uint.
29357         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
29358         (gigi): Correct third arg to gimplify_body.
29359
29360         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
29361         (TYPE_LANG_FLAG_0): Check for record or union.
29362
29363         * treepr.adb: Char_Literal_Value field is now a Uint
29364
29365         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
29366         UI_From_CC.
29367
29368         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
29369         Add full UTF-32 support
29370         Char_Code is now 32 bits
29371
29372         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
29373         wide character UTF_32 line terminators.
29374         Initialize Main_Source_File to avoid error when no main
29375         source is loaded.
29376
29377         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
29378         (Main_Source_File) when no main source has been loaded, to avoid
29379         potential crash.
29380
29381 2005-02-09  Robert Dewar  <dewar@adacore.com>
29382
29383         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
29384         Fix name of Set routine
29385
29386         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
29387         fixed packages.
29388
29389         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
29390         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
29391         fixed packages
29392
29393         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
29394         forms of Get_Line subprograms for AI-301.
29395
29396         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
29397         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
29398         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
29399         a-stwima.ads: Minor reformatting.
29400
29401 2005-02-09  Doug Rupp  <rupp@adacore.com>
29402             Thomas Quinot  <quinot@adacore.com>
29403
29404         * adaint.c, adaint.h
29405         [VMS] (to_ptr32): New function.
29406         (MAYBE_TO_PTR32): New macro.
29407         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
29408         for pointer size.
29409         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
29410         [VMS] (#define fork()): Remove since unneccessary.
29411         (__gnat_set_close_on_exec): New routine to support
29412         GNAT.OS_Lib.Set_Close_On_Exec.
29413
29414         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
29415         the parent side as close-on-exec so that they are not inherited by the
29416         child.
29417
29418         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
29419         set or clear the FD_CLOEXEC flag on a file descriptor.
29420
29421 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
29422             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29423
29424         PR ada/19386
29425         * decl.c:
29426         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
29427         on the field if Pragma Component_Alignment (Storage_Unit).
29428         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
29429         side-effects as if it were a constant; also make SAVE_EXPR to protect
29430         side-effects.
29431         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
29432         UNION_TYPE.
29433         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
29434         (components_to_record): Test it.
29435         Fix improper usage of REFERENCE_CLASS_P.
29436
29437         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
29438         RECORD_TYPE.
29439
29440         * utils2.c: Minor reformatting.
29441
29442         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
29443         handle other cases like RECORD_TYPE.
29444
29445         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
29446
29447 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
29448
29449         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
29450         component of an array of arrays in an assignment context, and the
29451         aggregate has component associations that require sliding on
29452         assignment, force reanalysis of the aggregate to generate a temporary
29453         before the assignment.
29454         (Must_Slide): Make global to the package, for use in Gen_Assign.
29455
29456 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
29457
29458         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
29459         unchecked union with no inferable discriminants, return a
29460         Raise_Program_Error node, rather than inserting it at the point the
29461         type is frozen.
29462         (Expand_Record_Equality, Component_Equality): Handle properly the case
29463         where some subcomponent is an unchecked union whose generated equality
29464         code raises program error.
29465
29466 2005-02-09  Doug Rupp  <rupp@adacore.com>
29467
29468         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
29469         [VMS] (#define exit hack): Remove.
29470
29471 2005-02-09  Pascal Obry  <obry@adacore.com>
29472             Arnaud Charlet  <charlet@adacore.com>
29473
29474         * init.c (__gnat_initialize): Add a new parameter eh which contains the
29475         address of the exception registration. The Win32 version of this
29476         routine calls __gnat_install_SEH_handler() to initialize the SEH
29477         (Structured Exception Handling) handler.
29478         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
29479         SEH (Structured Exception Handling) now.
29480         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
29481         (__gnat_initialize for ppc-vxworks): Adjust comments and the
29482         preprocessor condition protecting the call to the extra eh setup
29483         subprogram, which is only available for the ppc target.
29484         (__gnat_clear_exception_count): replaced reference to
29485         variable taskIdCurrent by call to taskIdSelf(), cleaner.
29486
29487         * seh_init.c: New file.
29488
29489         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
29490         (GNATBIND_OBJS): Idem.
29491
29492         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
29493         routine takes a new parameter (a pointer to the exception registration
29494         for the SEH (Structured Exception Handling) support.
29495
29496         * raise.h: (__gnat_install_SEH_handler): New prototype.
29497         Update copyright notice.
29498
29499         * s-tassta.adb (Task_Wrapper): Declare the exception registration
29500         record and initialize it by calling __gnat_install_SEH_handler.
29501
29502 2005-02-09  Vincent Celier  <celier@adacore.com>
29503
29504         * make.adb (Gnatmake): Do not fail when the main project has no object
29505         directory.
29506
29507 2005-02-09  Doug Rupp  <rupp@adacore.com>
29508
29509         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
29510         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
29511         [VMS]: Add translations for g-enblsp.adb.
29512
29513         * s-asthan-vms.adb: Removed.
29514         * s-asthan-vms-alpha.adb: Added.
29515
29516 2005-02-09  Pascal Obry  <obry@adacore.com>
29517
29518         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
29519         (LIBGNAT_OBJS): Add seh_init.o.
29520
29521 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
29522
29523         PR ada/16592
29524         * Makefile.in: Link all gnat tools with -static-libgcc, since
29525         -shared-libgcc is now used by default on some systems (e.g. linux with
29526         recent binutils).
29527         Remove references to Makefile.prolog/generic, no longer used.
29528
29529 2005-02-09  Vincent Celier  <celier@adacore.com>
29530
29531         * prj-makr.adb (Process_Directory): Put file name in canonical case
29532         before matching against the patterns.
29533         If gnatname has been invoked as <prefix>-gnatname
29534         then invoke the compiler as <prefix>-gcc, not just "gcc".
29535
29536 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
29537
29538         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
29539         with expansion disabled. The actual subtype is needed among other
29540         places when the selected component appears in the context of a loop
29541         bound, and denotes a packed array.
29542         (Operator_Check): Always use the first subtype in the
29543         error message, to avoid the appearance of internal base types.
29544         (Transform_Object_Operation): Copy each actual in full
29545         to the parameter associations of the constructed call, rather than
29546         using the shallow copy mechanism of New_Copy_List. This ensures that
29547         the chaining of named associations is done properly.
29548         (Complete_Object_Operation): Rewrite node, rather than
29549         replacing it, so that we can trace back to the original selected
29550         component.
29551
29552         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
29553         and calls that use object notation, if the called function is not
29554         declared  in a withed unit, place the elaboration constraint on the
29555         unit in the context that makes the function accessible.
29556         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
29557         imposes an elaboration constraint between two packages.
29558
29559 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
29560
29561         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
29562         views of a private type after handling its private dependents, to
29563         maintain proper stack discipline between entry and exit from the
29564         package.
29565
29566 2005-02-09  Cyrille Comar  <comar@adacore.com>
29567
29568         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
29569         Minor reformatting.
29570
29571 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
29572
29573         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
29574         fields for foreign threads.
29575
29576 2005-02-09  Doug Rupp  <rupp@adacore.com>
29577
29578         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
29579         recursion warnings when compiled with -gnatdm.
29580
29581 2005-02-09  Robert Dewar  <dewar@adacore.com>
29582
29583         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
29584         Slight fix to documentation of -gnaty with no parameters
29585
29586         * xr_tabls.ads: Add ??? comment for missing overall comment
29587
29588         * xsinfo.adb: Make default file name be sinfo.h, since this is what
29589         we now use by default.
29590
29591         * xsnames.adb: Adjust end of file test to look for five space followed
29592         by '#' instead of six spaces. The format of xsnames.adb was modified
29593         in the last update.
29594
29595         * a-numeri.ads: Add reference to AI-388 for greek letter pi
29596         identifier.
29597
29598         * clean.adb: Minor reformatting.
29599
29600         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
29601         gnatname.adb: Minor reformatting
29602         Add 2005 to copyright output when utility is run
29603
29604         * csets.adb: Eliminate obsolete comment
29605
29606         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
29607         Update comments.
29608
29609         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
29610
29611 2005-02-09  Sergey Rybin  <rybin@adacore.com>
29612
29613         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
29614         the difference between compact and incompact layout and add the record
29615         representation clause to the example illustrating different layouts.
29616         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
29617         component clauses").
29618
29619 2005-02-09  Florian Villoing  <villoing@adacore.com>
29620
29621         * gnat_ugn.texi: Fix typos.
29622         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
29623         @file.
29624         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
29625         in the generated documentation.
29626
29627 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
29628
29629         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
29630         longer supported.
29631         Update linker wrapper when linking with non GNU C++.
29632
29633 2005-02-09  Pascal Obry  <obry@adacore.com>
29634
29635         * gnat_ugn.texi:
29636         Document the procedure to debug the DllMain routine on Windows.
29637         Add note about -funwind-tables and mixed Ada and C/C++ programming in
29638         ZCX mode.
29639         Document new BIND qualifer /RETURN_CODES=VMS.
29640
29641 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
29642
29643         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
29644         Edited gnatmetric chapter
29645
29646 2005-02-09  Robert Dewar  <dewar@adacore.com>
29647
29648         * gnat_rm.texi:
29649         Changes to document new wide wide character support
29650         For AI-285
29651         Update documentation on Normalize_Scalars and Initialize_Scalars
29652
29653 2005-02-09  Pascal Obry  <obry@adacore.com>
29654
29655         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
29656
29657 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
29658
29659         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
29660         from the VxWorks kernel) that is needed for getting the active
29661         priority of the different tasks.
29662
29663         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
29664         Use a pragma Elaborate_Body in the spec file instead.
29665         Noticed by code reading.
29666
29667 2005-02-09  Thomas Quinot  <quinot@adacore.com>
29668
29669         * exp_util.ads: Minor correction in comment.
29670
29671 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
29672
29673         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
29674         since this procedure is now too complex to be worth inlining.
29675
29676 2005-02-09  Richard Henderson  <rth@redhat.com>
29677
29678         * utils.c (gnat_define_builtin): Remove.
29679         (gnat_install_builtins): Use build_common_builtin_nodes.
29680
29681 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
29682
29683         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
29684         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
29685         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
29686         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
29687         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
29688         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
29689         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
29690         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
29691         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
29692         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
29693         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
29694         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
29695         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
29696         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
29697         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
29698         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
29699         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
29700         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
29701         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
29702         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
29703         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
29704         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
29705         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
29706         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
29707         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
29708         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
29709         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
29710         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
29711         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
29712         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
29713         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
29714         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
29715         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
29716         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
29717         library.
29718
29719 2005-01-27  Laurent Guerby  <laurent@guerby.net>
29720
29721         * Makefile.in: Fix a-intnam.ads from previous commit,
29722         add 2005 to copyright.
29723         * a-intman-rtems.ads: Renamed to...
29724         * a-intnam-rtems.ads:
29725
29726 2005-01-27  Laurent Guerby  <laurent@guerby.net>
29727
29728         * Makefile.in: Rename GNAT RTEMS specific files.
29729         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
29730         5rosinte.ads, 5rparame.adb: Replaced by files below.
29731         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
29732         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
29733
29734 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
29735             Laurent Guerby  <laurent@guerby.net>
29736
29737         PR ada/19488
29738         * 5rosinte.ads: Add No_Key constant.
29739         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
29740         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
29741
29742 2005-01-26  Laurent Guerby  <laurent@guerby.net>
29743
29744         PR ada/19414
29745         * i-cobol.adb (Valid_Numeric): Handle zero length case.
29746
29747 2005-01-20  Richard Henderson  <rth@redhat.com>
29748
29749         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
29750         a-intnam-linux.ads and system-linux-alpha.ads.
29751         * a-intnam-linux-alpha.ads: Remove file.
29752         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
29753         * system-linux-alpha.ads: New file.
29754
29755 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
29756
29757         PR ada/13470
29758         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
29759         set to the new string.
29760
29761 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
29762
29763         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
29764         to True.
29765
29766 2005-01-18  Richard Henderson  <rth@redhat.com>
29767
29768         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
29769         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
29770         for alpha-linux.
29771         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
29772
29773 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
29774
29775         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
29776         (GCC_ZCX_Support): Likewise.
29777
29778 2005-01-11  Bastian Blank  <waldi@debian.org>
29779
29780         * system-linux-s390.ads: Define Preallocated_Stacks.
29781         * system-linux-s390x.ads: Likewise.
29782
29783 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
29784
29785         * gnat_ugn.texi: Fix texi errors with null variables.
29786
29787 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29788
29789         * gen-soccon.c: New utility program to generate g-soccon.ads
29790         automatically.
29791
29792         * socket.c, gsocket.h: Split inclusion of system header files into a
29793         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
29794
29795         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
29796         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
29797         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
29798         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
29799         should not be edited by hand anymore, but should be regenerated using
29800         gen-soccon.
29801
29802 2005-01-03  Robert Dewar  <dewar@adacore.com>
29803             Ed Schonberg  <schonberg@adacore.com>
29804             Vincent Celier  <celier@adacore.com>
29805
29806         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
29807         on/off, since this is an obsolescent feature, for which we now generate
29808         a warning.
29809
29810         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
29811         warning mode is set and obsolescent usage of this attribute occurs.
29812         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
29813         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
29814         predates, and partly motivates, the adoption of the AI.
29815         Implement new Ada 2005 attribute Mod
29816
29817         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
29818         attribute Mod.
29819
29820         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
29821
29822         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
29823         pragma restrictions.
29824         New entry for Ada 2005 attribute Mod.
29825
29826         * par-prag.adb:
29827         Add recognition of new pragma Restrictions No_Dependence
29828         Recognize restriction No_Obsolescent_Features at parse time
29829
29830         * bcheck.adb: Add circuitry for checking for consistency of
29831         No_Dependence restrictions.
29832
29833         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
29834         restrictions.
29835
29836         * restrict.ads, restrict.adb: Add subprograms to deal with
29837         No_Dependence restrictions.
29838
29839         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
29840         restrictions.
29841
29842         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
29843         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
29844
29845         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
29846         dummy parameter to scng instantiation.
29847         Needed for new restriction No_Obsolescent_Features
29848
29849         * scn.adb: (Obsolescent_Check): New procedure
29850         Needed for new restriction No_Obsolescent_Features
29851
29852         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
29853         specified by AI-285, needed for implementation of AI-388 (adding greek
29854         pi to Ada.Numerics).
29855         Add new generic formal to scng, needed for new restriction
29856         No_Obsolescent_Features.
29857
29858         * s-rident.ads: Add new restriction No_Obsolescent_Features.
29859
29860         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
29861         restrictions lines.
29862         (Scan_ALI): When finding an unexpected character on an R line, raise
29863         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
29864         Ignore_Errors is True, default restrictions are set and scanning of the
29865         ALI file continues with the next line. Also, when Bad_R_Line is raised
29866         and Ignore_Errors is True, skip to the end of le line.
29867
29868         * sem_ch10.adb: Check that explicit with's do not violate
29869         No_Dependence restrictions.
29870         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
29871         illegal context clauses containing child units of instance.
29872
29873         * sem_prag.adb: Processing and checking for new No_Dependence
29874         restrictions.
29875         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
29876         analyze and check the External argument.
29877
29878         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
29879
29880 2005-01-03  Robert Dewar  <dewar@adacore.com>
29881
29882         * atree.adb: Add a fifth component to entities
29883         This allows us to add 32 flags and four new fields
29884
29885         * atree.ads: Add a fifth component to entities
29886         This allows us to add 32 flags and four new fields
29887
29888         * einfo.ads, einfo.adb: Document new fields and new flags now available
29889         Add routines for printing new fields
29890
29891         * treepr.adb: Call routines to print out additional fields if present
29892
29893 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
29894
29895         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
29896         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
29897
29898         * Makefile.in: Add support to build shared Ada libraries on solaris x86
29899         Remove gpr2make, replaced by gprmake.
29900         Remove references to gnatmem and libaddr2line.
29901         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
29902         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
29903         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
29904         a-numaux-darwin.ads and a-numaux-darwin.adb
29905         Enable mlib-tgt-lynxos.adb on lynxos.
29906
29907         * Make-lang.in: Remove rules for gpr2make.
29908         When generating sdefault.adb, do not call Relocate_Path
29909         on S3 for function Target_Name, as it is not a path.
29910         Remove references to gnatmem and libaddr2line.
29911
29912         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
29913         files.
29914
29915 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
29916
29917         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
29918         address is incompatible with its base type alignment constraints when
29919         this can be decided statically.
29920
29921 2005-01-03  Olivier Hainque  <hainque@adacore.com>
29922
29923         * decl.c (compatible_signatures_p): New function. The intended purpose
29924         is to check if two function signatures for a call-site and a callee are
29925         compatible enough for the call to be valid. The underlying purpose is
29926         to check if a call to a mapped builtin is using the right interface.
29927         The current code actually does not check antyhing - this a placeholder
29928         for future refinements.
29929         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
29930         builtin calls for convention Intrinsic.
29931
29932         * gigi.h (builtin_decl_for): Declare (new function).
29933
29934         * utils.c (gnat_install_builtins): Install the target specific builtins.
29935         (builtin_decl_for): New function, provide a dummy body for now.
29936
29937 2005-01-03  Geert Bosch  <bosch@adacore.com>
29938
29939         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
29940         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
29941         (Pred): Implement in terms of Succ.
29942
29943         * trans.c (convert_with_check): Reimplement conversion of float to
29944         integer.
29945
29946 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29947             Vincent Celier  <celier@adacore.com>
29948
29949         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
29950         bounds can be negative, and must be declared Int, not Nat.
29951
29952         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
29953         array is checked after using the index in the array.
29954
29955         * makegpr.adb (Add_Switches): Check if there is a package for the
29956         processor. If there is no package, do not look for switches.
29957
29958 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
29959
29960         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
29961         generation of predefined stream operations (specs and bodies) should
29962         proceed. Under various restrictions these subprograms must not be
29963         generated.
29964
29965 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29966
29967         * exp_dist.adb:
29968         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
29969         amount of PCS-specific code in RACW stubs generation.
29970         (Copy_Specification): Set Etype on copied formal parameter entities, as
29971         this information is needed for PolyORB stubs generation.
29972         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
29973         variable Dynamic_Async.
29974         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
29975         (Build_RPC_Receiver_Specification): Make generic again, as recent
29976         changes have allowed RPC receivers to have the same profile for both
29977         variants of the PCS.
29978         Reorganise RPC receiver generation to reduce differences between the
29979         structure of GARLIC and PolyORB RPC receivers.
29980         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
29981         PCS-specific.
29982         Simplify elaboration code for RCI packages.
29983
29984         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
29985         generation to reduce differences between the structure of GARLIC and
29986         PolyORB RPC receivers.
29987
29988         * s-stratt.adb: Fix typo in comment.
29989
29990 2005-01-03  Thomas Quinot  <quinot@adacore.com>
29991
29992         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
29993         copied from Make_Init_Call).
29994
29995         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
29996         reads and assignments on a temporary variable declared with appropriate
29997         discriminants.
29998
29999 2005-01-03  Robert Dewar  <dewar@adacore.com>
30000
30001         * i-c.adb (To_C): Raise CE if string is null and Append_Null
30002
30003 2005-01-03  Robert Dewar  <dewar@adacore.com>
30004
30005         * i-cstrin.adb (Update): Do not append a null in form called with a
30006         String. This avoids unintended behavior.
30007
30008 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
30009
30010         PR ada/17527
30011         * init.c: Fix warnings on Free BSD section.
30012
30013 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
30014
30015         PR ada/16949
30016         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
30017         xsinfo.adb).
30018
30019 2005-01-03  Vincent Celier  <celier@adacore.com>
30020
30021         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
30022         libraries when Unique_Compile is True (-u switch).
30023         (Gnatmake): ditto.
30024
30025 2005-01-03  Robert Dewar  <dewar@adacore.com>
30026
30027         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
30028         upper case letter or underscore after W, as allowed by spec.
30029
30030 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
30031
30032         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
30033         darwin port by using proper type definitions from header files.
30034         Use SIGTERM instead of SIGABRT for SIGADAABORT.
30035
30036 2005-01-03  Robert Dewar  <dewar@adacore.com>
30037
30038         * par.adb: Enhance error message handling for configuration file
30039         pragmas.
30040
30041 2005-01-03  Robert Dewar  <dewar@adacore.com>
30042
30043         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
30044         removed during the previous update (test properly for case of dividing
30045         largest negative number by -1, which generates overflow).
30046
30047 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
30048             Sergey Rybin  <rybin@adacore.com>
30049
30050         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
30051         to use as the defining identifier for a formal package.
30052         (Remove_Parent): If the instance takes place within (an instance of)
30053         a sibling, preserve private declarations of common parent.
30054
30055 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
30056
30057         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
30058         to determine whether one of the operands is a fixed-point type for
30059         which a user-defined multiplication or division operation might be
30060         defined.
30061
30062         * sem_res.adb (Valid_Conversion): The legality rules for conversions
30063         of access types are symmetric in Ada 2005: either designated type can
30064         be unconstrained.
30065
30066 2005-01-03  Vincent Celier  <celier@adacore.com>
30067
30068         * s-fileio.adb (Temp_File_Record): Change length of string component
30069         Name from L_tmpnam + 1 to max_path_len + 1.
30070
30071 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
30072
30073         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
30074         Self_Id.Deferral_Level = 0.
30075         (Do_Pending_Action): Move this function to the spec.
30076
30077         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
30078         Do_Pending_Action explicitely when needed, in case we're using
30079         No_Abort restrictions.
30080
30081         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
30082         deferral level since it will not get changed by the generated code.
30083         Keeping a default value of 1 would prevent some operations (e.g.
30084         select or delay) to proceed successfully.
30085
30086 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
30087             Robert Dewar  <dewar@adacore.com>
30088             Cyrille Comar  <comar@adacore.com>
30089
30090         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
30091         porting guide chapter (vms version).
30092         Revised doc title (removed "for native platforms") and subtitle.
30093         Add discussion on warning flag for obsolescent features. First we
30094         note that it applies to obsolete GNAT features, which was previously
30095         omitted. Second we contrast the behavior with that of the new
30096         Ada 2005 AI-368 restriction No_Obsolescent_Features.
30097         Preliminary rewriting of GNAT & libraries chapter in order to take
30098         into account default project locations & new project manager
30099         capabilities.
30100
30101 2005-01-03  Robert Dewar  <dewar@adacore.com>
30102
30103         * cstand.adb (Create_Operators): Clean up format and documentation of
30104         unary and binary operator result tables. No change in code, just
30105         reformatting and addition of comments.
30106
30107         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
30108         sem_ch2.adb: Minor reformatting
30109
30110         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
30111         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
30112         comments for Tree_Read and Tree_Write.
30113
30114 2005-01-03  Pascal Obry  <obry@adacore.com>
30115
30116         * exp_attr.ads: Minor reformatting.
30117
30118 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
30119
30120         * comperr.adb (Compiler_Abort): Add specialized message for GAP
30121         versions.
30122
30123 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
30124
30125         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
30126         whether the ancestor type is private, as may be the case with nested
30127         instantiations.
30128
30129 2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
30130
30131         PR ada/19128
30132         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
30133
30134 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
30135
30136         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
30137         * utils2.c (build_unary_op): Likewise.
30138
30139 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30140
30141         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
30142
30143 2004-12-19  Richard Henderson  <rth@redhat.com>
30144
30145         * trans.c (gigi): Update gimplify_body call.
30146
30147 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
30148
30149         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
30150
30151 2004-12-07  Ed Falis  <falis@adacore.com>
30152
30153         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
30154         current task being suspended.
30155
30156         * init.c (__gnat_clear_exception): added to reset VxWorks exception
30157         count.
30158         (__gnat_map_signal): removed test for current task being suspended.
30159
30160 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
30161
30162         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
30163         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
30164         targets (such as AAMP).
30165
30166 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
30167
30168         * atree.adb (Visit_Itype): Create a new name for the generated itype,
30169         because the back-end may otherwise treat it as a redefinition of the
30170         old symbol.
30171
30172 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
30173
30174         * back_end.adb (Scan_Back_End_Switches): Accept --param.
30175
30176         * lang-specs.h: Accept --param.
30177
30178 2004-12-07  Vincent Celier  <celier@adacore.com>
30179
30180         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
30181         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
30182         Current_Body_Suffix => Ada_Body_Suffix).
30183         Take into account Externally_Built attribute.
30184
30185         * clean.adb (In_Extension_Chain): Always return False when one of the
30186         parameter is No_Project.
30187         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
30188         Ada_Language_Index).
30189         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
30190         Process_Languages for procedure Parse).
30191
30192         * gnatcmd.adb (Carg_Switches): New table.
30193         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
30194         Adapt to name changes in package Prj (Current_Spec_Suffix =>
30195         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
30196
30197         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
30198         Header_Num and function Hash are now declared in package Prj,
30199         not Prj.Com.
30200
30201         * prj.adb (Suffix_Of): New function.
30202         (Set (Suffix)): New procedure.
30203         (Hash): One function moved from Prj.Com
30204         (Is_Present, Language_Processing_Data_Of): New functions
30205         (Set): Two new procedures
30206         (Add_Language_Name, Display_Language_Name): New procedures
30207
30208         * prj.ads: (Suffix_Of): New function
30209         (Set (Suffix)): New procedure
30210         Add several types and tables for multi-language support.
30211         (Header_Num): Type moved from Prj.Com
30212         (Hash): Two functions moved from Prj.Com
30213         (Is_Present, Language_Processing_Data_Of): New functions
30214         (Set): Two new procedures
30215         (Add_Language_Name, Display_Language_Name): New procedures
30216         (Naming): Component name changes:
30217         Current_Spec_Suffix => Ada_Spec_Suffix,
30218         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
30219         Impl_Suffixes, Supp_Suffixes.
30220         (Project_Data): New components: Externally_Built, Supp_Languages,
30221         First_Language_Processing, Supp_Language_Processing, Default_Linker,
30222         Default_Linker_Path.
30223
30224         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
30225         new package Language_Processing with its attributes (Compiler_Driver,
30226         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
30227         Binder_Driver, Default_Linker).
30228
30229         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
30230         (Header_Num): Type moved to package Prj
30231
30232         * prj-env.adb: Adapt to name changes in package Prj
30233         (Current_Spec_Suffix => Ada_Spec_Suffix,
30234         Current_Body_Suffix => Ada_Body_Suffix).
30235
30236         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
30237         default to the project path, except the "-" is one of the directories
30238         in env var ADA_PROJECT_PATH.
30239         (Current_Project_Path): Global variable, replacing Project_Path
30240         that was in the body of Prj.Part.
30241         (Project_Path): New function
30242         (Set_Project_Path): New procedure
30243         Initialize Current_Project_Path during elaboration of the package
30244         Remove dependency on Prj.Com, no longer needed
30245
30246         * prj-ext.ads (Project_Path): New function
30247         (Set_Project_Path): New procedure
30248
30249         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
30250         suffix is defined for language <lang>.
30251         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
30252         accessing directly the components of Naming.
30253         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
30254         Reorganise of this package.
30255         Break procedure Check in several procedures.
30256
30257         * prj-nmsc.ads: Replace all procedures (Ada_Check,
30258         Other_Languages_Check and Language_Independent_Check) with a single
30259         procedure Check.
30260
30261         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
30262         Process_Languages, no longer needed.
30263
30264         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
30265         Current_Project_Path.
30266         Remove elaboration code, moved to the body of Prj.Ext
30267         Use new function Prj.Ext.Project_Path instead of old variable
30268         Project_Path.
30269         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
30270         When comparing with project paths on the stack, first put the resolved
30271         path in canonical case.
30272         (Parse_Single_Project): Set the path name of the project file in the
30273         tree to the normalized path.
30274
30275         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
30276         parameter Process_Languages, no longer needed.
30277         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
30278         Other_Languages_Check.
30279
30280         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
30281         to store the resolved canonical path of the project file.
30282         Remove dependency to Prj.Com, no longer needed
30283
30284         * prj-util.adb: Adapt to name changes in package Prj
30285         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
30286         Ada_Body_Suffix).
30287
30288         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
30289         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
30290         Externally_Built, Include_Option, Language_Processing.
30291
30292         * makegpr.adb: Numerous changes due to changes in packages
30293         Prj and Prj.Nmsc.
30294
30295         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
30296         default to the project path, except whe "-" is one of the directories
30297         in env var ADA_PROJECT_PATH.
30298         (Gnatls): In verbose mode, add the new section "Project Search Path:"
30299
30300 2004-12-07  Robert Dewar  <dewar@adacore.com>
30301
30302         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
30303
30304         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
30305         set -gnatR3m mode.
30306
30307         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
30308         flag. No longer needed now that we handle this in gnat1drv.adb.
30309
30310         * repinfo.ads: Minor reformatting
30311
30312 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30313             Olivier Hainque  <hainque@adacore.com>
30314             Eric Botcazou  <ebotcazou@adacore.com>
30315
30316         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
30317         TYPE_SIZE_UNIT of result type if SIZE is not specified.
30318         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
30319         of a bitfield, which we know is useless and causes trouble because of
30320         alignment implications.
30321
30322         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
30323         BSS sections.
30324         (process_attributes): Clear DECL_COMMON again when a section attribute
30325         is present.
30326         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
30327         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
30328         (create_field_decl): Special case ADDRESSABLE negative to mean
30329         "no bitfield creation", to be used by make_aligning_type. Don't
30330         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
30331         fields claimed addressable still have to be bitfields. Use
30332         value_factor_p instead of a raw binop construction to check for the
30333         position's alignment.
30334
30335 2004-12-07  Geert Bosch  <bosch@adacore.com>
30336
30337         * eval_fat.adb: Revert previous change.
30338
30339 2004-12-07  Thomas Quinot  <quinot@adacore.com>
30340             Ed Schonberg  <schonberg@adacore.com>
30341
30342         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
30343         with an implicit dereference as its prefix, use
30344         Insert_Explicit_Dereference instead of merely rewriting the prefix into
30345         an explicit dereference. This ensures that a reference to the original
30346         prefix is generated, if appropriate.
30347
30348         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
30349         dereference is rewritten to an explicit one, generate a reference to
30350         the entity denoted by its prefix using the original prefix node, so
30351         the dereference can be properly recorded as a read of the denoted
30352         access value, if appropriate.
30353
30354         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
30355         emitting 'assigned but never read' warning on a variable on the basis
30356         that it has an access type.
30357         (Check_References): Emit unreferenced warning when the scope is a
30358         subprogram body.
30359
30360 2004-12-07  Robert Dewar  <dewar@adacore.com>
30361             Ed Schonberg  <schonberg@adacore.com>
30362
30363         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
30364         intrinsic
30365
30366         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
30367         leaving call unchanged.
30368         This deals with the case where the pragma Import specified
30369         an external name, to be handled by the back end.
30370
30371         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
30372         subprogram which is Imported with convention Intrinsic if an
30373         External_Name argument is specified.
30374         (Process_Import_Or_Interface): Properly diagnose link name argument.
30375         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
30376         with Sem_Ch6.Cannot_Inline.
30377         (Process_Inline): Provide separate warning for inapplicable inline
30378         pragma.
30379         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
30380         treatment is uniform on different targets.
30381
30382 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
30383
30384         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
30385         construct is rewritten, preserve end label to permit source navigation.
30386
30387 2004-12-07  Thomas Quinot  <quinot@adacore.com>
30388
30389         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
30390         Specific_Build_Stub_Target): New subprograms.
30391         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
30392         the PCS implementation used, using the above PCS-customized subprograms.
30393         Minor reformatting.
30394         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
30395         for generation of DSA code targeted to the PolyORB PCS.
30396         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
30397         implementation of the partition communication subsystem in ancillary
30398         subprograms.
30399         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
30400         PolyORB_Support.Build_Stub_Type): New subrograms containing the
30401         PCS-specific part of Add_Stub_Type.
30402         (Insert_Partition_Check): Use runtime library function to perform
30403         E.4(19) check.
30404
30405         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
30406         (RE_Same_Partition): New entity, from s-parint.
30407
30408         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
30409
30410 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
30411
30412         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
30413         Output the copyright message on a separate line from the version
30414         message.
30415
30416 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
30417
30418         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
30419         compile-time warning.
30420
30421 2004-12-07  Robert Dewar  <dewar@adacore.com>
30422
30423         * g-regpat.adb: (Match): Change a misuse of or to or else
30424
30425 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
30426
30427         * lib-xref.adb:
30428         (Generate_Reference): Handle properly a reference to an entry formal,
30429          when an accept statement has a pragma Unreferenced for it.
30430
30431         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
30432         and the Has_Pragma_Unreferenced flag for each formal before analyzing
30433         the body, to ensure that warnings are properly emitted for each accept
30434         statement of a given task entry.
30435
30436 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
30437
30438         * Makefile.in: Add support for foreign threads on VMS.
30439
30440 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30441
30442         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
30443         Remove.
30444         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
30445
30446         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
30447
30448         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
30449         exception.
30450         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
30451
30452 2004-12-07  Robert Dewar  <dewar@adacore.com>
30453
30454         * nlists.adb (Prepend_Debug): Remove parameters and nest within
30455         Prepend.
30456         (Remove_Next_Debug): Same fix
30457
30458         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
30459         maintain back pointers now, though we did not used to, and comments
30460         were out of date).
30461         (Prepend): Remove pragma Inline.
30462         (Remove_Next): Same cleanup
30463
30464 2004-12-07  Thomas Quinot  <quinot@adacore.com>
30465
30466         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
30467         used to record an implicit dereference as a read operation on its
30468         prefix when operating under -gnatc. Necessary to avoid spurious
30469         'variable assigned but never read' warnings in that mode.
30470         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
30471         is a non-overloaded implicit dereference, call the above subprogram to
30472         ensure proper recording of references.
30473
30474 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
30475
30476         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
30477         to be resolved later as part of Analyze_Iteration_Scheme's call to
30478         Make_Index.
30479
30480 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
30481
30482         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
30483         prefix is not a scalar type, place error message on prefix, not on
30484         type entity.
30485
30486 2004-12-07  Bernard Banner  <banner@adacore.com>
30487
30488         * vxaddr2line.adb: Add support for x86 vxworks
30489
30490 2004-12-07  Thomas Quinot  <quinot@adacore.com>
30491
30492         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
30493         documentation of the behaviour of these functions when passed an IP
30494         address that has no record in the system hosts database and no reverse
30495         record in the DNS.
30496
30497         * cstand.adb, a-tags.ads: Fix typos in comment.
30498
30499 2004-12-07  Robert Dewar  <dewar@adacore.com>
30500
30501         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
30502         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
30503         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
30504         s-poosiz.ads: Minor reformatting
30505
30506         * make.adb: Minor reformatting
30507         Add some ??? comments asking for more comments
30508
30509         * s-poosiz.adb: Minor reformatting
30510         Add comments on alignment requirement
30511
30512         * sinfo.ads: Remove obsolete comment and fix typo.
30513
30514 2004-12-07  Vincent Celier  <celier@adacore.com>
30515             Sergey Rybin  <rybin@adacore.com>
30516
30517         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
30518         Files" with the new tool and package names.
30519         Reformatting to suppress most of the warnings for line too long
30520         Document the new section "Project Search Path:" in the output of
30521         gnatls -v.
30522         Add gnatmetric section
30523
30524 2004-12-07  Vincent Celier  <celier@adacore.com>
30525
30526         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
30527         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
30528         and -eit to -ept. Added qualifier
30529         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
30530
30531 2004-11-27  Andreas Schwab  <schwab@suse.de>
30532
30533         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
30534
30535 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
30536
30537         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
30538         internal implementation unit GNAT.Sockets.Thin,
30539         as their usage for sockets is non-portable (using the read and write
30540         functions from the system runtime library is fine on UNIX but won't
30541         work under Windows).
30542
30543         * mingw32.h: Update copyright notice.
30544
30545 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
30546
30547         * ada-tree.h: Minor reformatting of previous change to avoid lines
30548         longer than 79 characters.
30549
30550 2004-11-25  Olivier Hainque  <hainque@adacore.com>
30551
30552         * tb-gcc.c: GCC infrastructure based implementation of
30553         __gnat_backtrace.
30554
30555 2004-11-24  Steven Bosscher  <stevenb@suse.de>
30556
30557         * misc.c (gnat_post_options): Don't clear
30558         flag_inline_functions.
30559
30560 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
30561
30562         PR ada/17986
30563         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
30564         tree.
30565
30566 2004-11-21  Andreas Jaeger  <aj@suse.de>
30567
30568         * stylesw.adb: Change Style_Check_Subprogram_Order to
30569         Style_Check_Order_Subprograms.
30570
30571 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
30572
30573         * adaint.h, adaint.c
30574         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
30575         to avoid warnings.
30576         Add also a cast to kill another warning.
30577         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
30578         parameter with the priority class of the parent process instead of
30579         always using the NORMAL_PRIORITY_CLASS.
30580         (__gnat_dup): New function.
30581         (__gnat_dup2): New function.
30582         (__gnat_is_symbolic_link): Enable the effective body of this
30583         function when __APPLE__ is defined.
30584
30585         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
30586         Update comments.
30587
30588 2004-11-18  Olivier Hainque  <hainque@adacore.com>
30589
30590         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
30591         address of which may be used to represent "others" and "all others"
30592         choices in exception tables, instead of the current harcoded
30593         (void *)0 and (void *)1.
30594         (Setup_Exception): Do nothing in the GNAT SJLJ case.
30595
30596         * gigi.h (others_decl, all_others_decl): New decls representing the
30597         new Others_Value and All_Others_Value objects.
30598         (struct attrib): Rename "arg" component as "args", since GCC expects a
30599         list of arguments in there.
30600
30601         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
30602         corresponding objects exported by a-exexpr, instead of hardcoded dummy
30603         addresses.
30604
30605         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
30606         others_decl and all_others_decl instead of hardcoded dummy addresses
30607         to represent "others" and "all others" choices, which is cleaner and
30608         more flexible with respect to the possible eh pointer encoding policies.
30609
30610         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
30611         (process_attributes): Account for the naming change of the "args"
30612         attribute list entry component.
30613
30614         * decl.c (build_attr_list): Rename into prepend_attributes to allow
30615         cumulating attributes for different entities into a single list.
30616         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
30617         attributes for the current entity and propagate first subtype
30618         attributes to other subtypes.
30619         <E_Procedure>: Attribute arguments are attr->args and not
30620         attr->arg any more.
30621         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
30622         argument provided, as this is what GCC expects. Use NULL_TREE instead
30623         of 0 for trees.
30624
30625 2004-11-18  Robert Dewar  <dewar@adacore.com>
30626
30627         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
30628         Minor reformatting througout (including new function specs)
30629         Add ??? comments asking for clarification.
30630
30631 2004-11-18  Thomas Quinot  <quinot@adacore.com>
30632
30633         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
30634         incomplete duplicate implementation of this subprogram from butil.
30635
30636 2004-11-18  Thomas Quinot  <quinot@adacore.com>
30637
30638         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
30639         procedures factors the common processing for building an RPC receiver
30640         for an RCI package or an RACW type.
30641         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
30642         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
30643         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
30644         in use.
30645         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
30646         Add_RACW_Features.
30647         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
30648         Add_RAST_Features.
30649         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
30650         distribution subprogram identifiers that are either subprogram numbers
30651         or strings.
30652         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
30653         string distribution identifiers assigned to a given subprogram.
30654         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
30655         (Add_RAS_Dereference_TSS): Add comments.
30656         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
30657         is not referenced yet because it will be used by the PolyORB DSA
30658         implementation.
30659         (Insert_Partition_Check): Remove fossile code.
30660         (First_RCI_Subprogram_Id): Document this constant.
30661         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
30662         RAS_Access TSS.
30663         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
30664         replaced with calls to Get_Library_Unit_Name_String. Previously there
30665         were several instances of the same code in different locations in the
30666         compiler; this checkin completes the replacement of all of these
30667         instances with calls to a common subprogram.
30668         Minor reformatting.
30669
30670         * sem_dist.adb: Remove comment noting that RPC receiver generation
30671         should be disabled for RACWs that implement RASs.
30672         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
30673
30674         * sem_util.ads, sem_util.adb (Has_Stream): New function
30675         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
30676         qualified name of a library unit into the name buffer.
30677         (Note_Possible_Modification): Generate a reference only
30678         if the context comes from source.
30679
30680         * snames.ads (PCS_Names): New subtype corresponding to names of
30681         supported implementations of the Partition Communication Subsystem
30682         (PCS) (i.e. the runtime library support modules for the distributed
30683         systems annex).
30684
30685 2004-11-18  Robert Dewar  <dewar@adacore.com>
30686             Ed Schonberg  <schonberg@adacore.com>
30687
30688         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
30689         (Has_Rep_Pragma): New function
30690         (Has_Attribute_Definition_Clause): New function
30691         (Record_Rep_Pragma): Moved here from sem_ch13.adb
30692         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
30693
30694         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
30695
30696         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
30697         (Expand_Pragma_Psect_Object): New procedure
30698         These procedures contain the revised and cleaned up processing for
30699         these two pragmas. This processing was formerly in Sem_Prag, but
30700         is more appropriately moved here. The cleanup involves making sure
30701         that the pragmas are properly attached to the tree, and that no
30702         nodes are improperly shared.
30703
30704         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
30705         pragmas to Exp_Prag, which is more appropriate.
30706         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
30707         check for duplicates Remove use of Is_Psected flag, no longer needed.
30708         Use new Make_String_Literal function with string.
30709
30710         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
30711         that are functions return universal values, that have to be converted
30712         to the context type.
30713         Use new Make_String_Literal function with string.
30714         (Get_Stream_Convert_Pragma): New function, replaces the use of
30715         Get_Rep_Pragma, which had to be kludged to work in this case.
30716
30717         * freeze.adb: Use new Has_Rep_Pragma function
30718
30719         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
30720         function with string.
30721         Use new Has_Rep_Pragma function.
30722
30723         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
30724         string argument.
30725
30726 2004-11-18  Robert Dewar  <dewar@adacore.com>
30727
30728         * errout.ads, errout.adb: (First_Sloc): New function
30729
30730         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
30731         check (-gnatyx) instead of being included as a redundant construct
30732         warning.
30733
30734         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
30735         Style_Check_Order_Subprograms.
30736
30737         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
30738         stylesw.adb: Add Style_Check_Xtra_Parens
30739
30740         * usage.adb: Add line for -gnatyx (check extra parens)
30741
30742         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
30743
30744 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
30745             Robert Dewar  <dewar@adacore.com>
30746
30747         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
30748         discriminant of a constrained subtype, analyze the copy of the
30749         corresponding constraint, because in some cases it may be only
30750         partially analyzed.
30751         Removes long-lived ??? comments.
30752
30753         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
30754         handled controlled or secondary-stack expressions within the
30755         iteration_scheme of a loop.
30756
30757         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
30758         bounds that may contain functions calls, to prevent memory leaks when
30759         the bound contains a call to a function that uses the secondary stack.
30760         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
30761         generate temporaries for loop bounds that might contain function calls
30762         that require secondary stack and/or finalization actions.
30763
30764         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
30765         selected component and the selector is overloadable (not just a
30766         function) treat as function call, Analyze_Call will disambiguate if
30767         necessary.
30768         (Analyze_Selected_Component): Do not generate an actual subtype for the
30769         selected component if expansion is disabled. The actual subtype is only
30770         needed for constraint checks.
30771         (Analyze_Allocator): If restriction No_Streams is set, then do
30772         not permit objects to be declared of a stream type, or of a
30773         composite type containing a stream.
30774
30775         * restrict.ads: Remove the a-stream entry from Unit_Array, since
30776         No_Streams no longer prohibits with'ing this package.
30777
30778         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
30779         discriminants, but the parent base has unknown discriminants, there is
30780         no discriminant constraint to inherit. Such a discrepancy can arise
30781         when the actual for a formal type with unknown discriminants is a
30782         similar private type whose full view has discriminants.
30783         (Analyze_Object_Declaration): If restriction No_Streams is set, then
30784         do not permit objects to be declared of a stream type, or of a
30785         composite type containing a stream.
30786
30787 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
30788
30789         * exp_dbug.ads: Update documentation to reflect simpler encoding for
30790         protected operations.
30791
30792         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
30793         generated name, it complicates decoding in gdb and hinders debugging
30794         of protected operations.
30795         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
30796         flag for the protected entry barrier function.
30797         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
30798         flag for the protected entry function.
30799
30800 2004-11-18  Nicolas Setton  <setton@adacore.com>
30801
30802         * expect.c: Define __unix__ when __APPLE__ is defined.
30803
30804         * Makefile.in: Inform the value of the variable GMEM_LIB in the
30805         Darwin-specific section.
30806
30807         * lang-specs.h: Change the placement of the %1 marker.
30808         Works around the fact that gcc adds -fPIC by default under Darwin.
30809
30810 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
30811
30812         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
30813         type of the object with the packed array type, set the Analyzed flag
30814         on the object if it is an entity or simple indexed component, to avoid
30815         spurious type errors.
30816
30817 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
30818
30819         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
30820         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
30821         separate line from the version message.
30822
30823 2004-11-18  Ed Falis  <falis@adacore.com>
30824
30825         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
30826         vthreads.
30827         (init_float): Eliminate initialization of floating point status for
30828         AE653. The instructions have no effect for vThreads.
30829
30830 2004-11-18  Vincent Celier  <celier@adacore.com>
30831
30832         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
30833         gnatbind is invoked with -shared.
30834
30835 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
30836
30837         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
30838         for Detect_Blocking which is redundant with the check done within the
30839         procedure Protected_Single_Entry_Call.
30840         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
30841         Detect_Blocking which is redundant with the check done within the
30842         procedure Protected_Single_Entry_Call.
30843
30844 2004-11-18  Vincent Celier  <celier@adacore.com>
30845
30846         * makegpr.adb (Compile): Put the compiling switches (in package
30847         Compiler and on the command line) immediately after "-c", instead of
30848         at the end of the command line invocation of the compiler, when
30849         compiling a non-Ada file.
30850         (Build_Global_Archive): When there is no need to rebuild the archive,
30851         set Global_Archive_Exists, so that the archive is passed to the linker
30852         if one is needed.
30853
30854 2004-11-18  Robert Dewar  <dewar@adacore.com>
30855             Sergey Rybin  <rybin@adacore.com>
30856
30857         * gnat_ugn.texi:
30858         Remove extra paren check from list of checks for redundant constructs
30859         Add documentation of new -gnatyx style check (check extra parens)
30860         Remove paragraph about gnatelim debug options.
30861
30862         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
30863         objects rather than forbidding dependencies on the package Ada.Streams.
30864
30865         * sinfo.ads: Add ??? note that we should document pragmas passed to
30866         back end.
30867
30868         * g-expect.ads: Fix a few typos in the comments.
30869
30870 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
30871
30872         * misc.c (gnat_handle_option): Use %< and %> for quoting in
30873         warning message.
30874
30875 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30876
30877         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
30878
30879 2004-11-07  Andreas Schwab  <schwab@suse.de>
30880
30881         * Makefile.in (install-gnatlib): Remove spurious hyphen.
30882
30883 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
30884
30885         PR ada/18228
30886         * Makefile.in (darwin): Set soext to .dylib.
30887
30888 2004-10-26  Vincent Celier  <celier@gnat.com>
30889             Thomas Quinot   <quinot@act-europe.fr>
30890
30891         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
30892         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
30893         there is no use of GNAT.Sockets.Constants.
30894         Remove remaining pragma Import for C_Write
30895         Remove C_Read and C_Write from internal implementation unit
30896         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
30897         the read and write functions from the system runtime library is fine
30898         on UNIX but won't work under Windows).
30899
30900         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
30901         (Check_Selector): Use C_Recv instead of C_Read.
30902         Selectors are the GNAT.Sockets abstraction to perform a select()
30903         call on a set of descriptors. To allow abortion of an ongoing
30904         select operation, some data is written to a dedicated socket that
30905         is always monitored.
30906         Under Windows, the write and read library functions cannot operate
30907         on sockets, so we need to use send and recv instead, which is portable
30908         across all supported platforms.
30909
30910         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
30911         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
30912         (using the read and write functions from the system runtime library is
30913         fine on UNIX but won't work under Windows).
30914
30915 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
30916
30917         * mlib-tgt-darwin.adb: New file.
30918
30919         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
30920         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
30921         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
30922         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
30923         subprogram body.
30924
30925         * Makefile.in: Add support for building shared libraries under Darwin.
30926         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
30927         the low level EH init subprogram to be called from __gnat_initialize.
30928
30929         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
30930         indicates which options to pass to the archive indexer.
30931
30932         * mlib-utl.adb: Add support for calling ranlib with additional
30933         options. This is needed for instance under Mac OS X.
30934         (Ranlib_Options): New global variable, used to store the potential
30935         options to pass to ranlib.
30936         (Ar): Use Ranlib_Options when spawning ranlib.
30937         (Initialize): Set the value of ranlib option.
30938
30939 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
30940
30941         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
30942         instead of 8K, to reflect the real potential needs for stack-checking
30943         in the ZCX case.
30944
30945 2004-10-26  Pascal Obry  <obry@gnat.com>
30946
30947         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
30948
30949         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
30950         Windows only the initial thread stack size can be set so it is good to
30951         start we a low stack size.
30952         The OS will adjust the size as needed.
30953
30954 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
30955             Nicolas Setton  <setton@act-europe.fr>
30956
30957         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
30958         "__unix__" instead of "unix".
30959         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
30960         sections were just mistakenly ignored. The former is
30961         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
30962         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
30963         of hpux. This prevents an unwanted definition of the symbol
30964         convert_addresses in adaint.o.
30965
30966 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
30967
30968         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
30969         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
30970
30971 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
30972
30973         * a-filico.ads, a-filico.adb: fix incorrect header.
30974
30975 2004-10-26  Javier Miranda  <miranda@gnat.com>
30976
30977         * a-ststio.ads: Fix typo in identifier
30978
30979 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
30980
30981         * sem_ch4.adb: Minor reformatting.
30982
30983 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
30984
30985         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
30986         enabled, check the result of unary and binary operations when the
30987         expression is the right-hand side of an assignment.
30988
30989 2004-10-26  Vincent Celier  <celier@gnat.com>
30990
30991         * clean.adb (Delete): Do not output warnings when in quiet output and
30992         not in verbose mode.
30993         (Force_Deletions): New Boolean flag, defaulted to False
30994         (Delete): Only delete a file if it is writable, and when
30995         Force_Deletions is True.
30996         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
30997         (Usage): Line for new switch -f
30998         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
30999         own.
31000
31001 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
31002
31003         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
31004         JM type only if its size matches that of the wrapper.  When a size is
31005         prescribed and the field is not aliased, remove the wrapper of a JM
31006         type only if the size is not greater than that of the packed array.
31007         (gnat_to_gnu_entity): Change the extension of packed array wrappers
31008         from LJM to JM.
31009
31010 2004-10-26  Geert Bosch  <bosch@gnat.com>
31011
31012         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
31013         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
31014         (Pred): Implement in terms of Succ.
31015
31016 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
31017
31018         * exp_aggr.adb (Safe_Component): An aggregate component that is an
31019         unchecked conversion is safe for in-place use if the expression of the
31020         conversion is safe.
31021         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
31022         be expandable in place even if the aggregate does not come from source.
31023         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
31024         designated object of an allocator in place, rather than building it
31025         first on the stack. The previous scheme forces a full copy of the array,
31026         and may be altogether unsusable if the size of the array is too large
31027         for stack allocation.
31028
31029 2004-10-26  Robert Dewar  <dewar@gnat.com>
31030
31031         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
31032         compares if the component is atomic.
31033
31034         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
31035         array assignment if the component type is atomic.
31036
31037 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
31038             Eric Botcazou  <ebotcazou@act-europe.fr>
31039
31040         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
31041         is aliased and is a by_reference type, do not pass by copy.
31042         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
31043         detect whether the call is in the right side of an assignment or
31044         the expression of an object declaration.  Recurse on component
31045         association within aggregates.
31046         Call it in the condition that determines whether the temporary is
31047         necessary for correct stack-checking.
31048
31049 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
31050
31051         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
31052         RACW_Type, used in the PolyORB version.
31053         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
31054         version and the GARLIC version.
31055
31056         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
31057         Rename RCI_Info to RCI_Locator for better consistency between the
31058         GARLIC and PolyORB versions of the distributed systems annex.
31059         (DSA_Implementation_Name): This enumeration lists the possible
31060         implementations of the Partition Communication Subsystem for the
31061         Distributed Systems Annex (DSA). The three available implementations
31062         are the dummy stub implementation (No_DSA), and two versions based on
31063         two different distribution runtime libraries: GARLIC and PolyORB. Both
31064         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
31065         technology.
31066         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
31067         that organization.
31068
31069         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
31070         between the GARLIC and PolyORB versions of the distributed systems
31071         annex.
31072         Remove RE_Unbounded_Reclaim_Pool since it is unused.
31073
31074 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
31075
31076         * gnat1drv.adb: Suppress calling the back end when
31077         Frontend_Layout_On_Target is true.
31078
31079 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
31080
31081         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
31082         Set_Read_Only): New subprograms.
31083         These new routines allow the user to set or unset the Owner execute
31084         and Owner write permission flags on a file.
31085
31086         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
31087         GNAT.OS_Lib.Set_Executable instead of rolling our own.
31088
31089 2004-10-26  Matthew Gingell  <gingell@gnat.com>
31090
31091         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
31092
31093 2004-10-26  Pascal Obry  <obry@gnat.com>
31094
31095         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
31096         memory before the faulting page we properly test the process read
31097         access for this address using appropriate Win32 routine.
31098         (HPUX sections): guard with "__hpux__" instead of "hpux".
31099
31100 2004-10-26  Robert Dewar  <dewar@gnat.com>
31101
31102         * lib-xref.adb (Generate_Reference): Don't complain about reference to
31103         entry parameter if pragma Unreferenced set, since we do not properly
31104         handle the case of multiple parameters.
31105
31106 2004-10-26  Vincent Celier  <celier@gnat.com>
31107
31108         * prj-env.adb: (Contains_ALI_Files): New Boolean function
31109         (Ada_Objects_Path.Add): For a library project, add to the object path
31110         the library directory only if there is no object directory or if the
31111         library directory contains ALI files.
31112         (Set_Ada_Paths.Add.Recursive_Add): Ditto
31113
31114 2004-10-26  Vincent Celier  <celier@gnat.com>
31115
31116         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
31117         extension of library projects.
31118
31119         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
31120         path defaults to ".:<prefix>/lib/gnat".
31121         (Parse): For an extending all project, allow direct import of a project
31122         that is virtually extended.
31123
31124         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
31125         the specified name is directly imported, return its ID. Otherwise, if
31126         an extension of this project is imported, return the ID of the
31127         extension.
31128
31129 2004-10-26  Robert Dewar  <dewar@gnat.com>
31130
31131         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
31132         (Sub3): New procedure, used by Scaled_Divide
31133         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
31134         correct more than one instance of failure to propagate carries
31135         correctly.
31136         (Double_Divide): Handle overflow case of largest negative number
31137         divided by minus one.
31138
31139         * s-arit64.ads (Double_Divide): Document that overflow can occur in
31140         the case of a quotient value out of range.
31141         Fix comments.
31142
31143 2004-10-26  Robert Dewar  <dewar@gnat.com>
31144
31145         * s-bitops.adb (Bit_Eq): Remove redundant check.
31146
31147         * s-bitops.ads: Minor comment updates
31148         Change some occurrences of Address to System.Address
31149
31150         * s-carsi8.ads: Fix minor cut-and-paste error in comments
31151
31152 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
31153
31154         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
31155         accessibility check to prefix that is a protected operation.
31156
31157 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
31158
31159         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
31160         empty, post message on stub.
31161
31162 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
31163             Javier Miranda  <miranda@gnat.com>
31164
31165         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
31166         current instance appears within a unit that is directly in the context
31167         of the main unit.
31168         Used to determine whether the body of the instance should be analyzed
31169         immediately after its spec, to make its subprogram bodies available
31170         for front-end inlining.
31171         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
31172         constraint is not allowed on the component type (AARM 12.5.3(3))
31173
31174 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
31175
31176         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
31177         'Storage_Pool): enhance, document & limit detection of non-sharable
31178         internal pools.
31179
31180         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
31181
31182         * s-pooglo.ads: Add more documentation now that this pool is properly
31183         documented.
31184
31185 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
31186
31187         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
31188         or protected type with discriminants, do not constrain the
31189         corresponding record type if the subtype declaration has no
31190         discriminant constraints. This can be the case in source code, or in
31191         the subtype declaration created to rename an actual type within an
31192         instantiation.
31193
31194 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
31195
31196         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
31197         different kind of stub (possibly wrong name for file), do not check
31198         for conformance.
31199         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
31200         includes call to some function that returns an unconstrained type, do
31201         not inline.
31202
31203 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
31204
31205         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
31206         appear in the code for the main unit. Dependencies among units in the
31207         context of the main unit are established when those other units are
31208         compiled. Otherwise spurious elaboration constraints can generate
31209         incorrect elaboration circularities.
31210
31211 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
31212             Ed Schonberg   <schonberg@gnat.com>
31213
31214         * sem_util.adb (Is_Aliased_View): Defend against the case where this
31215         subprogram is called with a parameter that is not an object name. This
31216         situation arises for some cases of illegal code, which is diagnosed
31217         later, and in this case it is wrong to call Is_Aliased, as that might
31218         cause a compiler crash.
31219         (Explain_Limited_Type): Refine previous fix to include
31220         inherited components of derived types, to provide complete information.
31221
31222         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
31223         is the prival for a protected object.
31224         It is necessary to mark this entity as a variable, in addition to
31225         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
31226         modified to avoid checking the Aliased flag on entities that are not
31227         objects. (Checking that flag for non-objects is erroneous and could
31228         lead to a compiler crash).
31229
31230 2004-10-26  Robert Dewar  <dewar@gnat.com>
31231
31232         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
31233         X_Frac = 0.5, then we know that the number X must be positive.
31234         (Succ): Remove the same redundant test, and also fix the primary test
31235         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
31236         Minor reformatting
31237         (Decompose): Add fuller comments to spec
31238
31239 2004-10-26  Pascal Obry  <obry@gnat.com>
31240
31241         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
31242         validity (process must have read access). Set to 0 in all other cases.
31243         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
31244         violation on Win32.
31245         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
31246         segmentation violation.
31247
31248 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
31249
31250         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
31251         whose type is a constructed subtype of an aliased object with an
31252         unconstrained nominal subtype, convert the actual to the constructed
31253         subtype before taking its address.
31254
31255 2004-10-26  Vincent Celier  <celier@gnat.com>
31256
31257         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
31258         (Is_Path_Name_Case_Sensitive): New function
31259
31260         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
31261         (Base_Name, Simple_Name, Current_Directory, Compose,
31262         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
31263         the result.
31264
31265 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
31266             Vasiliy Fofanov  <fofanov@act-europe.fr>
31267             Vincent Celier   <celier@gnat.com>
31268
31269         * gnat_ugn.texi: Generalize "finding memory problems" section into a
31270         "memory management issues" section and document some of the useful
31271         memory pools provided as part of the GNAT library.
31272         Remove "virtual" from declaration of A::method2 in
31273         the simple example of Ada/C++ mixed system.
31274         Library Projects may be virtually extended: their virtual extensions
31275         are not Library Projects.
31276         Added section on extending project hierarchies.
31277
31278 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
31279
31280         * adaint.c (__gnat_get_libraries_from_registry): Cast value
31281         to LPBYTE.
31282         (__gnat_portable_spawn): Remove const.
31283
31284         * mingw32.h (MAXPATHLEN): Check for previous definition.
31285
31286 2004-10-17  Matthias Klose  <doko@debian.org>
31287
31288         * gnatvsn.ads: Set gnat library version to 4.0.
31289
31290 2004-10-05  Vincent Celier  <celier@gnat.com>
31291
31292         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
31293
31294 2004-10-04  Laurent Guerby  <laurent@guerby.net>
31295
31296         PR ada/15156
31297         * Makefile.in: Define and use RANLIB_FLAGS.
31298
31299 2004-10-04  Pascal Obry  <obry@gnat.com>
31300
31301         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
31302         other x86 platforms).
31303
31304 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
31305
31306         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
31307         in general and triggers stack alignment adjustment for thread entry
31308         points on targets where this is necessary.
31309
31310 2004-10-04  Bernard Banner  <banner@gnat.com>
31311
31312         PR ada/13897
31313         * Makefile.in: Add section for powerpc linux
31314         Add variant i-vxwork-x86.ads
31315
31316         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
31317
31318 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
31319
31320         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
31321         table registration calls when need be. Ensures no reference to the crt
31322         ctors symbol are issued in the SJLJ case, which avoids possible
31323         undefined symbol errors in the case of modules to be statically linked
31324         with the kernel.
31325
31326 2004-10-04  Javier Miranda  <miranda@gnat.com>
31327
31328         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
31329         in-line the code corresponding to subprogram Analyze_Actuals. In
31330         addition, analyze the actuals only in case of subprogram call.
31331
31332 2004-10-04  Ed Falis  <falis@gnat.com>
31333
31334         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
31335
31336 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
31337
31338         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
31339         in the documentation.
31340
31341 2004-10-04  Robert Dewar  <dewar@gnat.com>
31342
31343         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
31344         IF and CASE.
31345         (Analyze_Block_Statement): Add circuitry to detect following dead code
31346         (Check_Unreachable_Code): Handle case of block exit
31347
31348 2004-10-04  Robert Dewar  <dewar@gnat.com>
31349
31350         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
31351         (XMatchD): Avoid warning for Logic_Error call
31352
31353 2004-10-04  Robert Dewar  <dewar@gnat.com>
31354
31355         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
31356         consider expressions buried within a procedure actual to be an actual.
31357         This caused some blowups with uses of packed slices within a procedure
31358         actual.
31359
31360 2004-10-04  Robert Dewar  <dewar@gnat.com>
31361
31362         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
31363         longer need to be initialized to zero.
31364         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
31365         initialized to zero.
31366
31367         * checks.adb (Expr_Known_Valid): Packed arrays are now always
31368         considered valid, even if the representation is modular. That's correct
31369         now that we no longer initialize packed modular arrays to zero.
31370
31371         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
31372         suffixes. These are now documented as the only cases in which the
31373         debugger ignores outer records.
31374         Previously, the spec allowed arbitrary suffixes for this purpose.
31375         Change name of LJM to JM for packed array pad records
31376         Create separate section on packed array handling, and add a whole new
31377         set of comments to this section describing the situation with packed
31378         modular types and justification requirements depending on endianness.
31379
31380 2004-10-04  Robert Dewar  <dewar@gnat.com>
31381
31382         * a-except.adb: Add a comment for last change
31383
31384         * einfo.ads: Minor spelling correction in comment
31385
31386         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
31387
31388         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
31389         messages.
31390
31391         * sem_util.ads: Minor comment update
31392
31393 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
31394
31395         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
31396         Inline_Always when in Configurable_Run_Time mode.
31397
31398         * sem_prag.adb (Process_Convention): If entity is an inherited
31399         subprogram, apply convention to parent subprogram if in same scope.
31400         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
31401         when in Configurable_Run_Time mode.
31402
31403 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
31404
31405         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
31406         class_wide type after component list has been inherited.
31407
31408 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
31409
31410         * sem_ch12.adb (Check_Generic_Actuals): New predicate
31411         Denotes_Previous_Actual, to handle properly the case of a private
31412         actual that is also the component type of a subsequent array actual.
31413         The visibility status of the first actual is not affected when the
31414         second is installed.
31415         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
31416         make fully recursive the treatment of formals of packages declared
31417         with a box.
31418         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
31419         the above on exit from an instantiation.
31420         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
31421         current instantiation which is now complete.
31422         (Analyze_Package_Instantiation): No instantiated body is needed if the
31423         main unit is generic. Efficient, and avoid anomalies when a instance
31424         appears in a package accessed through rtsfind.
31425
31426 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
31427
31428         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
31429         do not generate a declaration for a temporary if the call is part of a
31430         library-level instantiation.
31431
31432 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
31433
31434         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
31435         searching for a limited component to flag.
31436
31437         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
31438         expansion of Input, to account for the fact that the implicit call
31439         generated by the attribute reference must freeze the user-defined
31440         stream subprogram. This is only relevant to 'Input, because it can
31441         appear in an object declaration, prior to the body of the subprogram.
31442
31443         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
31444         expansion can proceed and further errors uncovered.
31445         (Minor clean up): Fix cases of using | instead of \ for continuation
31446         messages.
31447
31448 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31449
31450         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
31451
31452         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
31453         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
31454         Use gcc_assert and gcc_unreachable.
31455
31456         * decl.c (gnat_to_gnu_entity, case object): Check and process a
31457         specified alignment before validating size.
31458         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
31459         stripped-down declaration for the type of the inner field when making
31460         a JM type.
31461
31462         * utils.c (finish_record_type): Do not compute the size in units
31463         incrementally. Instead compute it once for the rep clause case.
31464         Use gcc_assert and gcc_unreachable.
31465
31466 2004-10-04  Vincent Celier  <celier@gnat.com>
31467
31468         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
31469         in file name.
31470         (Is_Valid_Path_Name): Take '/' as a directory separator.
31471
31472 2004-10-04  Vincent Celier  <celier@gnat.com>
31473
31474         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
31475         (Extended_Project) only if Extended_Project is defined, to avoid
31476         assertion error.
31477         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
31478         resolved path.
31479         (Parse_Single_Project): Ditto.
31480
31481         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
31482         Add_To_Project_Path for virtual projects.
31483
31484 2004-10-04  Vincent Celier  <celier@gnat.com>
31485
31486         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
31487         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
31488         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
31489         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
31490         parameter Options_2.
31491
31492         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
31493         Build_Dynamic_Library with an empty Options_2.
31494
31495         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
31496         default anymore.
31497
31498         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
31499         directory separator, if any.
31500         (Gprmake): Do not allow mains on the command line for library projects.
31501         Do not attempt to link when the project is a library project.
31502         (Library_Opts): New table to store Library_Options.
31503         (Build_Library): If Library_Options is specified, pass these options
31504         when building a shared library.
31505
31506 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
31507
31508         * s-tposen.adb (Service_Entry): The object must be always unlocked at
31509         the end of this procedure now that the unlock operation was inserted
31510         by the expander.
31511
31512 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
31513
31514         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
31515         corresponding to the Preallocated_Stacks flags in System.
31516         (Get_Target_Parameters): Including the processing for
31517         Preallocated_Stacks.
31518
31519         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
31520         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
31521         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
31522         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
31523         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
31524         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
31525         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
31526         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
31527         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
31528         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
31529         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
31530         used to signal whether the compiler creates the required stacks and
31531         descriptors for the different tasks (when True) or it is done by the
31532         underlying operating system at run time (when False).
31533         It is initially set to False in all targets.
31534
31535         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
31536         if it is supported by the target.
31537         (Make_Task_Create_Call): Pass the stack address if it has been
31538         previously created. Otherwise pass a Null_Address.
31539
31540         * snames.adb: Add _stack.
31541
31542         * snames.ads: Add Name_uStack. Required to allow the expander to
31543         statically allocated task stacks.
31544
31545         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
31546         Stack_Address argument.
31547         Check that its value is equal to Null_Address because this target does
31548         not support the static stack allocation.
31549
31550 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
31551
31552         * usage.adb: Change "pragma inline" to "pragma Inline" in information
31553         and error messages
31554
31555 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
31556
31557         * exp_dist.adb: Split declaration of asynchronous flag out of
31558         Add_RACW_Read_Attribute.
31559         Minor reformatting for better alignment with PolyORB version.
31560         Store the entity for the asynchronous flag of an RACW, rather than the
31561         expression, in the asynchronous flags table. This will allow this flag
31562         to be used in other subprograms beside Add_RACW_Read_Attribute.
31563
31564 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
31565
31566         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
31567         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
31568         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
31569         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
31570         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
31571         sockets constant MSG_NOSIGNAL (Linux-specific).
31572         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
31573         all Send operations.
31574         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
31575         from trigerring SIGPIPE.
31576         Rename components to avoid clash with Ada 2005 possible reserved
31577         word 'interface'.
31578         (Check_Selector): When the select system call returns with an error
31579         condition, propagate Socket_Error to the caller.
31580
31581 2004-10-01  Jan Hubicka  <jh@suse.cz>
31582
31583         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
31584
31585 2004-09-23  Robert Dewar  <dewar@gnat.com>
31586
31587         PR ada/17540
31588         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
31589         instead do this at freeze time (we won't do it if there is an address
31590         clause).
31591         Change "pragma inline" to "pragma Inline" in information and error
31592         messages.
31593         Minor reformatting.
31594
31595         * freeze.adb (Check_Address_Clause): Remove previous change, not the
31596         right way of doing things after all.
31597         (Freeze_Entity): For object, set Is_Public for imported entities
31598         unless there is an address clause present.
31599
31600 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
31601
31602         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
31603         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
31604         ensures proper handling of types with rep clauses, which might have
31605         their TYPE_SIZE set already.
31606
31607 2004-09-21  Robert Dewar  <dewar@gnat.com>
31608
31609         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
31610         packed array types in both little- and big-endian cases. This change
31611         ensures that we no longer count on the unused bits being initialized
31612         for such types (and in particular ensures that equality testing will
31613         only read the relevant bits).
31614         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
31615         These changes mean that we no longer need to initialize small packed
31616         arrays.
31617         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
31618         optimization to an LJM field as to its parent field.
31619
31620         * ada-tree.h, trans.c, utils.c, utils2.c:
31621         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
31622
31623 2004-09-20  Jan Hubicka  <jh@suse.cz>
31624
31625         * utils.c (gnat_finalize): Remove.
31626         (end_subprog_body): Directly call cgraph_finalize_function;
31627         do not lower the nested functions.
31628
31629 2004-09-20  Robert Dewar  <dewar@gnat.com>
31630
31631         PR ada/17540
31632         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
31633         if an address clause is present, since that means that the Import
31634         should be ignored.
31635
31636 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
31637
31638         * 5tsystem.ads: Removed, no longer used.
31639
31640 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
31641             Zack Weinberg  <zack@codesourcery.com>
31642
31643         * ada-tree.def: Use tree_code_class enumeration constants
31644         instead of code letters.
31645         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
31646         Update for new tree-class enumeration constants.
31647
31648 2004-09-17  Vincent Celier  <celier@gnat.com>
31649
31650         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
31651         capabilities of the general project manager.
31652
31653 2004-09-09  Vincent Celier  <celier@gnat.com>
31654
31655         * a-direct.ads: Add pragma Ada_05
31656         (Directory_Entry_Type): Give default value to component Kind to avoid
31657         not initialized warnings.
31658
31659         * a-direct.adb (Current_Directory): Remove directory separator at the
31660         end.
31661         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
31662         an existing directory.
31663         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
31664         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
31665         Convert the result to File_Size.
31666
31667         * prj.ads: (Project_Error): New exception
31668
31669         * prj-attr.adb: Except in procedure Initialize, Fail comes from
31670         Prj.Com, not from Osint.
31671         (Attrs, Package_Attributes): Tables moved to private part of spec
31672         (Add_Attribute, Add_Unknown_Package): Moved to new child package
31673         Prj.Attr.PM.
31674         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
31675         Prj.Project_Error after call to Fail.
31676         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
31677         Fail. Check that package name is not already in use.
31678
31679         * prj-attr.ads: Comment updates to indicate that all subprograms may be
31680         used by tools, not only by the project manager, and to indicate that
31681         exception Prj.Prj_Error may be raised in case of problem.
31682         (Add_Unknown_Package, Add_Attribute): Moved to new child package
31683         Prj.Attr.PM.
31684         (Attrs, Package_Attributes): Table instantiations moved from the body to
31685         the private part to be accessible from Prj.Attr.PM body.
31686
31687         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
31688         from new package Prj.Attr.PM.
31689         (Parse_Attribute_Declaration): Call Add_Attribute from new package
31690         Prj.Attr.PM.
31691
31692         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
31693
31694         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
31695         instead of Elaboration_Checks).
31696
31697         * a-calend.adb: Minor reformatting
31698
31699 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31700
31701         * gigi.h (maybe_pad_type): New declaration.
31702         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
31703
31704         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
31705
31706         * cuintp.c: Convert to use buildN.
31707
31708         * decl.c (maybe_pad_type): No longer static.
31709         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
31710         target pointer.
31711         Convert to use buildN.
31712
31713         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
31714         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
31715         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
31716         RHS.
31717         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
31718         (gnat_gimplify_expr, case ADDR_EXPR): New case.
31719         Convert to use buildN.
31720
31721         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
31722         TREE_READONLY for const.
31723         Convert to use buildN.
31724
31725         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
31726         (create_var_decl): Refine when TREE_STATIC is set.
31727         Convert to use buildN.
31728
31729 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
31730
31731         * gnat_ugn.texi: Delete text relating to checking of ali and object
31732         consistency.
31733
31734         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
31735         routines.
31736
31737 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
31738
31739         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
31740         pragmas recognized by GNAT.
31741
31742         * gnat_rm.texi: Document pragma Detect_Blocking.
31743
31744         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
31745         raise Program_Error if called from a protected operation.
31746
31747         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
31748         the protected action nesting level.
31749         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
31750         protected action nesting level.
31751         (Unlock): When pragma Detect_Blocking is active decrease the protected
31752         action nesting level.
31753
31754         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
31755         Protected_Action_Nesting.
31756
31757         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
31758         Common_ATCB record. It contains the dynamic level of protected action
31759         nesting for each task. It is needed for checking whether potentially
31760         blocking operations are called from protected operations.
31761         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
31762         Detect_Blocking is active or not in the partition.
31763
31764         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
31765         raise Program_Error if called from a protected operation.
31766         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
31767         Program_Error if called from a protected operation.
31768         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
31769         Program_Error if called from a protected operation.
31770
31771         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
31772         raise Program_Error if called from a protected operation.
31773
31774         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
31775         raise Program_Error if called from a protected operation, and increase
31776         the protected action nesting level.
31777         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
31778         Program_Error if called from a protected operation, and increase the
31779         protected action nesting level.
31780         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
31781         protected action nesting level.
31782
31783         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
31784         raise Program_Error if called from a protected operation, and increase
31785         the protected action nesting level.
31786         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
31787         Program_Error if called from a protected operation, and increase the
31788         protected action nesting level.
31789         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
31790         raise Program_Error if called from a protected operation.
31791         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
31792         active, raise Program_Error if called from a protected operation.
31793         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
31794         protected action nesting level.
31795
31796         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
31797         insertion of the statement raising Program_Error. The run time
31798         contains the required machinery for handling that.
31799
31800         * sem_util.ads: Change comment associated to procedure
31801         Check_Potentially_Blocking_Operation.
31802         This procedure does not insert a call for raising the exception because
31803         that is currently done by the run time.
31804
31805         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
31806
31807         * init.c: Add the global variable __gl_detect_blocking that indicates
31808         whether pragma Detect_Blocking is active (1) or not (0). Needed for
31809         making the pragma available at run time.
31810         (__gnat_set_globals): Pass and update the detect_blocking parameter.
31811
31812         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
31813         pragma Detect_Blocking is active.
31814
31815         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
31816
31817         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
31818         DB is found in the ali file. Any unit compiled with pragma
31819         Detect_Blocking active forces its effect in the whole partition.
31820
31821         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
31822         Detect_Blocking is active and delay is called from a protected
31823         operation.
31824
31825         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
31826         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
31827         Detect_Blocking is active (0 otherwise).
31828         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
31829         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
31830         otherwise).
31831
31832 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
31833
31834         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
31835         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
31836         package.
31837
31838         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
31839         (Register_Receiving_Stub): Add Subp_Info formal parameter.
31840         Update API in placeholder implemetation of s-parint to reflect changes
31841         in distribution runtime library.
31842
31843         * sem_ch3.adb (Expand_Derived_Record): Rename to
31844         Expand_Record_Extension.
31845
31846         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
31847         primitive operations of potentially distributed object types that have
31848         non-controlling anonymous access formals.
31849
31850         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
31851         subprogram.
31852         New implementation of expansion for remote access-to-subprogram types,
31853         based on the RACW infrastructure.
31854         This version of sem_dist is compatible with PolyORB/DSA as well as
31855         GLADE.
31856
31857         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
31858         Asynchrronous that applies to a remote access-to-subprogram type, mark
31859         the underlying RACW type as asynchronous.
31860
31861         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
31862          __gnat_using_gnu_linker to 1.
31863
31864         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
31865         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
31866         GNAT.Perfect_Hash_Generators, and remove the empty
31867         GNAT.Perfect_Hash package.
31868
31869         * atree.adb: Minor reformatting
31870
31871         * exp_ch3.adb (Expand_Derived_Record): Rename to
31872         Expand_Record_Extension.
31873         (Build_Record_Init_Proc.Build_Assignment): The default expression in
31874         a component declaration must remain attached at that point in the
31875         tree so New_Copy_Tree copies it if the enclosing record type is derived.
31876         It is therefore necessary to take a copy of the expression when building
31877         the corresponding assignment statement in the init proc.
31878         As a side effect, in the case of a derived record type, we now see the
31879         original expression, without any rewriting that could have occurred
31880         during expansion of the ancestor type's init proc, and we do not need
31881         to go back to Original_Node.
31882
31883         * exp_ch3.ads (Expand_Derived_Record): Rename to
31884         Expand_Record_Extension.
31885
31886         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
31887         Returns the RACW type used to implement a remote access-to-subprogram
31888         type.
31889         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
31890         New subprograms. Used to create a proxy tagged object for a remote
31891         subprogram. The proxy object is used as the designated object
31892         for RAS values on the same partition (unless All_Calls_Remote applies).
31893         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
31894         System.Partition_Interface.Get_Unique_Remote_Pointer.
31895         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
31896         Renamed from Add_RAS_*_Attribute.
31897         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
31898         subprograms.
31899         New implementation of expansion for remote access-to-subprogram types,
31900         based on the RACW infrastructure.
31901
31902         * exp_dist.ads (Copy_Specification): Update comment to note that this
31903         function can copy the specification from either a subprogram
31904         specification or an access-to-subprogram type definition.
31905
31906 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
31907
31908         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
31909         in an instance, between an explicit subprogram an one inherited from a
31910         type derived from an actual.
31911
31912         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
31913         add a polling call if the subprogram is to be inlined by the back-end,
31914         to avoid repeated calls with multiple inlinings.
31915
31916         * checks.adb (Apply_Alignment_Check): If the expression in the address
31917         clause is a call whose name is not a static entity (e.g. a dispatching
31918         call), treat as dynamic.
31919
31920 2004-09-09  Robert Dewar  <dewar@gnat.com>
31921
31922         * g-trasym.ads: Minor reformatting
31923
31924         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
31925         packed arrays, since unused bits are expected to be zero for a
31926         comparison.
31927
31928 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
31929
31930         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
31931         comment.
31932
31933 2004-09-09  Pascal Obry  <obry@gnat.com>
31934
31935         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
31936         enable map file generation. Add the right option to generate the map
31937         file if Map_File is set to True.
31938
31939         * gnatdll.adb (Gen_Map_File): New variable.
31940         (Syntax): Add info about new -m (Map_File) option.
31941         (Parse_Command_Line): Add support for -m option.
31942         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
31943         Minor reformatting.
31944
31945 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
31946
31947         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
31948         new gnatdist implementation.
31949         Define a subpackage isolating the output routines specific to this
31950         verbose mode.
31951
31952 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
31953
31954         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
31955
31956         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
31957
31958 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
31959
31960         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
31961         internal unit.
31962
31963         * opt.ads: Add Ada_Version_Runtime constant used to decide which
31964         version of the language is used to compile the run time.
31965
31966 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
31967
31968         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
31969         of variable length temporaries for function return now that the
31970         back-end and gigi support it.
31971
31972 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31973
31974         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
31975
31976         * trans.c (struct stmt_group): Delete field GLOBAL.
31977         (gnat_init_stmt_group): Do not initialize it.
31978         (call_to_gnu): Use save_expr, not protect_multiple_eval.
31979         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
31980         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
31981         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
31982         (start_stmt_group): Likewise.
31983         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
31984
31985         * utils2.c (ggc.h): Include.
31986         (build_call_raise): Call build_int_cst, not build_int_2.
31987
31988         * utils.c (gnat_init_decl_processing): Fix arg to
31989         build_common_tree_nodes.
31990         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
31991         (gnat_define_builtin): Set built_in_decls.
31992         (init_gigi_decls): Call build_int_cst, not build_int_2.
31993
31994         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
31995         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
31996         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
31997         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
31998         SET_TYPE_MODULE): Use them.
31999         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
32000         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
32001         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
32002         SET_TYPE_ADA_SIZE): Likewise.
32003         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
32004         (DECL_CONST_CORRESPONDING_VAR,
32005         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
32006         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
32007         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
32008         (TYPE_RM_SIZE_NUM): New macro.
32009         (TYPE_RM_SIZE): Modified to use above.
32010
32011         * cuintp.c: (build_cst_from_int): New function.
32012         (UI_To_gnu): Use it.
32013
32014         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
32015         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
32016         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
32017         MIN_EXPR for the size, copy it into new.
32018
32019 2004-09-01  Robert Dewar  <dewar@gnat.com>
32020
32021         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
32022         packed indexed component where array is an IN OUT formal. This
32023         generated garbage code previously.
32024
32025         * gnat_ugn.texi: Document -fverbose-asm
32026
32027         * gnat-style.texi: Minor updates (note that boolean constants and
32028         variables are joined with AND/OR rather than short circuit forms).
32029
32030 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
32031
32032         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
32033         it is an upward conversion of an untagged type with no representation
32034         change.
32035
32036 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
32037
32038         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
32039         System.Partition_Interface.
32040
32041         * checks.adb (Apply_Access_Checks): Do not generate checks when
32042         expander is not active (but check for unset reference to prefix of
32043         dereference).
32044
32045         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
32046         pragma Debug as an if statement with a constant condition, for
32047         consistent treatment of entity references contained within the
32048         enclosed procedure call.
32049
32050 2004-09-01  Vincent Celier  <celier@gnat.com>
32051
32052         * bindgen.adb: (Set_EA_Last): New procedure
32053         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
32054         Set_EA_Last.
32055         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
32056         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
32057         linked without errors.
32058         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
32059         ST and EA.
32060         (Gen_Exception_Table_C): Correct same bugs
32061
32062         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
32063
32064         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
32065         on Windows, make sure that the drive letter is in upper case.
32066
32067         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
32068         Windows, when the drive letter is added and Case_Sensitive is True, the
32069         drive letter is forced to upper case.
32070
32071         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
32072         to Options_2 for the call to MLib.Utl.Gcc.
32073
32074         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
32075         directory separator when defining BASE_DIR.
32076
32077 2004-09-01  Pascal Obry  <obry@gnat.com>
32078
32079         * gprcmd.adb (Extend): Do not output trailing directory separator. This
32080         is not needed and it confuses Windows GNU/make which does not report
32081         directory terminated by a slash as a directory.
32082         (gprcmd): Idem for "pwd" internal command.
32083
32084         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
32085         target names rewrite to fix regressions with recent version of
32086         GNU/make. Starting with GNU/make 3.80 the pipe character was not
32087         handled properly anymore.
32088
32089 2004-09-01  Andreas Schwab  <schwab@suse.de>
32090
32091         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
32092         * raise.c [!IN_RTS]: Undef abort.
32093
32094 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
32095
32096         * utils2.c (build_allocator): Use ssize_int.
32097
32098         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
32099
32100 2004-08-27  Andreas Schwab  <schwab@suse.de>
32101
32102         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
32103
32104 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
32105             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32106
32107         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
32108
32109 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
32110
32111         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
32112         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
32113         * utils.c (init_gigi_decls): Likewise.
32114         * utils2.c (build_call_raise, build_allocator): Likewise.
32115
32116 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
32117
32118         * utils.c (gnat_init_decl_processing): Adjust
32119         build_common_tree_nodes call.
32120
32121 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
32122
32123         * utils2.c (build_allocator): Use build_int_cst for negative
32124         size types.
32125
32126 2004-08-18  Richard Henderson  <rth@redhat.com>
32127
32128         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
32129
32130 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
32131
32132         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
32133         call.s
32134         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
32135         (gnat_to_gnu): Likewise.
32136
32137 2004-08-16  Pascal Obry  <obry@gnat.com>
32138
32139         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
32140         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
32141         option and not mdll anymore. Update comment.
32142
32143 2004-08-16  Pascal Obry  <obry@gnat.com>
32144
32145         * bld.adb (Put_Include_Project): Properly handle directory separators
32146         on Windows.
32147
32148 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
32149
32150         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
32151         decreasing the number of allocated junk nodes while searching for the
32152         appropriate subprogram.
32153
32154 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
32155
32156         * cuintp.c (UI_To_gnu): Use build_int_cst..
32157         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
32158         * utils.c (init_gigi_decls): Likewise.
32159         * utils2.c (build_call_raise): Likewise.
32160
32161 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
32162
32163         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
32164         for a global aliased object with a variable size and an unconstrained
32165         nominal subtype, pretend there is no initializer if the one we have is
32166         incomplete, and avoid referencing an inexistant component in there. The
32167         part we have will be rebuilt anyway and the reference may confuse
32168         further operations.
32169
32170 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
32171
32172         * einfo.ads: Minor reformatting
32173
32174         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
32175         restrictions in the ALI if we only want to warn about violations.
32176
32177 2004-08-13  Vincent Celier  <celier@gnat.com>
32178
32179         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
32180         when creating a new Unit_Record in table Units.
32181
32182         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
32183         that are violated, if any.
32184
32185         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
32186         add directory separator if path already ends with a directory separator.
32187
32188 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
32189
32190         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
32191         unit, this is an attempt to inline a construct that is not available in
32192         the current restricted mode, so abort rather than trying to continue.
32193
32194         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
32195         discriminants that rename those of the parent, recover names of
32196         original discriminants for the constraint on the full view of the
32197         parent.
32198         (Complete_Private_Subtype): Do not create a subtype declaration if the
32199         subtype is an itype.
32200
32201         * gnat_rm.texi: Added section on implementation of discriminated
32202         records with default values for discriminants.
32203
32204 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
32205
32206         PR ada/15601
32207         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
32208         the second operand is overloaded.
32209
32210 2004-08-10  Richard Henderson  <rth@redhat.com>
32211
32212         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
32213         add __builtin_alloca.
32214
32215 2004-08-10  Richard Henderson  <rth@redhat.com>
32216
32217         * config-lang.in (boot_language): Yes.
32218
32219 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
32220
32221         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
32222         from complaining on potential uninitialized reference.
32223         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
32224         new specification and test explicitly for non-zero return value.
32225
32226         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
32227         returning C.int, to avoid using a derived boolean type.
32228
32229         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
32230         Duplicate_Subexpr_No_Checks in preference to direct use of
32231         Remove_Side_Effects and New_Copy_Tree.
32232         Clear Comes_From_Source on prefix of 'Size attribute reference.
32233
32234         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
32235         g-socthi-vxworks.adb: Change calls to
32236         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
32237         and test explicitly for non-zero return value.
32238
32239         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
32240         (Is_Socket_In_Set): Declare imported function as returning C.int, to
32241         avoid using a derived boolean type.
32242
32243 2004-08-09  Albert Lee  <lee@gnat.com>
32244
32245         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
32246
32247 2004-08-09  Pascal Obry  <obry@gnat.com>
32248
32249         * gnat_ugn.texi: Document new way to build DLLs on Windows using
32250         GCC's -shared option.
32251
32252         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
32253         Options_2 parameter (options put after object files).
32254
32255 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
32256
32257         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
32258         ignore overflows on low and high bounds of an index to also account for
32259         differences in signedness between sizetype and gnu_index_subtype.
32260         These are as legitimate as the ones caused by a lower TYPE_PRECISION
32261         on sizetype.
32262
32263 2004-08-09  Robert Dewar  <dewar@gnat.com>
32264
32265         * s-solita.ads, s-solita.adb: Minor reformatting
32266
32267         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
32268         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
32269         obsolescent section
32270         Add note that No_Implicit_Conditionals does not suppress
32271         run time constraint checks.
32272
32273         * vms_conv.ads: Minor reformatting
32274
32275         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
32276         and necessary for following change).
32277         (Mark): Return new format Mark_Id containing sec stack address
32278         (Release): Use sec stack address from Mark_Id avoiding Self call
32279
32280         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
32281         pointer (cleanup and necessary for following change).
32282         Define Mark_Id as record containing address of secondary stack, that way
32283         Release does not need to find the stack again, decreasing the number of
32284         calls to Self and improving efficiency.
32285
32286         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
32287
32288         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
32289         case variable into the individual case branches when possible.
32290
32291         * sem_ch11.adb: Minor reformatting
32292
32293         * prj.ads: Correct spelling of suffixs
32294
32295         * prj-nmsc.adb: Minor reformatting
32296         Correct spelling suffixs throughout (also in identifiers)
32297
32298         * freeze.adb: Minor spelling correction
32299
32300         * exp_ch2.adb: Cleanups to handling of Current_Value
32301         (no functional effect).
32302
32303         * bld.adb: Correct spelling of suffixs
32304
32305         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
32306
32307 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
32308
32309         PR ada/15408
32310         * sem_ch7.adb (Install_Private_Declarations): In the body of the
32311         package or of a child, private entities are both immediately_visible
32312         and not hidden.
32313
32314 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
32315
32316         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
32317         there are no range checks on the value of the literal.
32318
32319         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
32320         wrapped is the triggering alternative of an asynchronous select, action
32321         statements mustbe inserted before the select itself.
32322
32323         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
32324         case where the prefix is a protected function call.
32325         (Resolve_Attribute, case 'Access): The attribute reference on a
32326         subprogram is legal in a generic body if the subprogram is declared
32327         elsewhere.
32328
32329 2004-08-09  Vincent Celier  <celier@gnat.com>
32330
32331         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
32332         languages, otherwise building the library may fail with unresolved
32333         symbols.
32334         (Compile_Sources): Do not build libraries if -c switch is used
32335
32336         * gnatlink.adb (Process_Args): New switches -M and -Mmap
32337         (Write_Usage): If map file creation is supported, output new switches
32338         -M and -Mmap.
32339         (Gnatlink): When -M is specified, add the necessary switch(es) to the
32340         gcc call, when supported.
32341
32342         * Makefile.in: Added indepsw.o to the object list for gnatlink
32343         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
32344
32345         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
32346         indepsw.adb, indepsw.ads: New files.
32347
32348 2004-08-09  Bernard Banner  <banner@gnat.com>
32349
32350         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
32351
32352         * Makefile.in: add section for vxworks x86
32353
32354 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
32355
32356         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
32357         per-object constrained components where the discriminant is of an
32358         Access type.
32359         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
32360         the parent initialization procedure for derived Unchecked_Unions.
32361         Instead, derived Unchecked_Unions build their own initialization
32362         procedure.
32363         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
32364         Check the body of the subprogram for details.
32365         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
32366         functions for derived Unchecked_Union types by introducing a condition.
32367         Allow the creation of TSS equality functions for Unchecked_Unions.
32368         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
32369         Add formal parameter Discr to function signature. Discr is used to
32370         control the generated case statement for Unchecked_Union types.
32371         (Make_Eq_If): Rename formal parameter Node to E in function signature.
32372
32373         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
32374         Unchecked_Unions.
32375         Check the body of the subprogram for details.
32376         (Expand_Composite_Equality): Augment composite type equality to include
32377         correct handling of Unchecked_Union components.
32378         (Expand_N_In): Add condition to detect illegal membership tests when the
32379         subtype mark is a constrained Unchecked_Union and the expression lacks
32380         inferable discriminants, and build a Raise_Program_Error node.
32381         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
32382         to detect types that contain components of unconstrained Unchecked_Union
32383         subtype. Add condition to detect equality between types that have an
32384         unconstrained Unchecked_Union component, and build a Raise_Program_Error
32385         node. Add condition to detect equality between Unchecked_Union types
32386         that lack inferable discriminants, and build a Raise_Program_Error node.
32387         Otherwise build a TSS equality function call.
32388         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
32389         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
32390         with the operand lacking inferable discriminants, and build a Raise_
32391         Program_Error node.
32392         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
32393         composite equality.
32394         (Has_Inferable_Discriminants): Implement new predicate for objects and
32395         expressions of Unchecked_Union type. Check the body of subprogram for
32396         details.
32397         (Has_Unconstrained_UU_Components): Add function
32398         Component_Is_Unconstrained_UU. It is used to detect whether a single
32399         component is of an unconstrained Unchecked_Union subtype. Add function
32400         Variant_Is_Unconstrained_UU. It is used to detect whether a single
32401         component inside a variant is of an unconstrained Unchecked_Union type.
32402
32403         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
32404         inferred discriminant values. Add condition to generate a case
32405         statement with an inferred discriminant as the switch.
32406         (Make_Component_List_Assign): Introduce a Boolean flag that determines
32407         the behaviour of the subprogram in the presence of an Unchecked_Union.
32408         Add condition to trigger the usage of the inferred discriminant value
32409         as the generated case statement switch.
32410         (Make_Field_Assign): Introduce a Boolean flag that determines the
32411         behaviour of the subprogram in the presence of an Unchecked_Union. Add
32412         condition to trigger the usage of the inferred discriminant value as
32413         the right-hand side of the generated assignment.
32414
32415         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
32416         parameter generation when dealing with Unchecked_Unions.
32417
32418         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
32419         checks for Unchecked_Unions.
32420
32421         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
32422
32423         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
32424         Raise_Program_Error nodes for the execution of Read and Write
32425         attributes of Unchecked_Union types and the execution of Input and
32426         Output attributes of Unchecked_Union types that lack default
32427         discriminant values.
32428
32429         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
32430         Unchecked_Union. Add procedure Check_Component. It is used to inspect
32431         per-object constrained components of Unchecked_Unions for being
32432         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
32433         check individual components withing a variant.
32434
32435         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
32436         comparison of Unchecked_Unions.
32437         (Resolve_Equality_OP): Remove guard that prevents equality between
32438         Unchecked_Unions.
32439
32440         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
32441         of component subtypes for Unchecked_Union components.
32442         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
32443         since it is the actual subtype.
32444
32445         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
32446         pass of Unchecked_Union subtypes as generic actuals to formal types
32447         that lack known_discriminant_parts or that are derived Unchecked_Union
32448         types, and do nothing. In any other case, produce an error message.
32449
32450         * sem_ch3.adb (Analyze_Component_Declaration): Add function
32451         Contains_POC. It determines whether a constraint uses the discriminant
32452         of an enclosing record type.
32453         Add condition to detect per-object constrained component and set the
32454         appropriate flag.
32455         (Derived_Type_Declaration): Remove guard that prevents derivation from
32456         Unchecked_Union types.
32457         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
32458         Union subtypes.
32459
32460         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
32461         references to Unchecked_Union discriminants.
32462
32463         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
32464         formal generation when dealing with Unchecked_Unions.
32465         (Set_Actual_Subtypes): Add condition to prevent generation of actual
32466         subtypes for Unchecked_Unions.
32467
32468         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
32469         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
32470         completions of discriminated partial views by Unchecked_Unions and
32471         produce an error message.
32472
32473 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32474
32475         * trans.c (struct stmt_group): New field, GLOBAL.
32476         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
32477         (struct elab_info): New struct.
32478         (elab_info_list, gnu_elab_proc_stack): New variables.
32479         (Compilation_Unit_to_gnu): New procedure.
32480         (gigi): Call it and also handle elaboration procs we've saved.
32481         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
32482         global field from parent.
32483         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
32484         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
32485         (start_stmt_group): Initialize global field from parent.
32486         (add_decl_expr): Set to global for current statement group.
32487         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
32488         post.
32489
32490         * utils.c (global_bindings_p): True when no current_function_decl; no
32491         longer check current_binding_level.
32492
32493 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
32494
32495         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
32496         choice.
32497
32498         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
32499
32500 2004-08-06  Andreas Schwab  <schwab@suse.de>
32501
32502         * utils.c (gnat_define_builtin): Remove second parameter of
32503         make_decl_rtl.
32504         (begin_subprog_body): Likewise.
32505
32506 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
32507
32508         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
32509         optimization, not supported by the tree-ssa back-end.
32510
32511 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
32512
32513         * s-mastop-irix.adb: Update comments.
32514
32515         * a-except.adb (Exception_Information): Raise Constraint_Error if
32516         exception Id is Null_Id.
32517         This is required behavior, which is more reliably and clearly checked
32518         at the top level interface level.
32519
32520 2004-07-26  Javier Miranda  <miranda@gnat.com>
32521
32522         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
32523         call if a component has no default_expression and the box is used.
32524
32525         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
32526         default_expression and you use box, it behaves as if you had declared a
32527         stand-alone object.
32528         (Resolve_Record_Aggregate): If a component has no default_expression and
32529         you use box, it behaves as if you had declared a stand-alone object.
32530
32531         * sem_ch10.adb (Install_Siblings): Do not make visible the private
32532         entities of private-with siblings.
32533
32534 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
32535
32536         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
32537         for a component of an itype, set the parent pointer for analysis,
32538         there is no list in which to insert it.
32539
32540         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
32541         bona-fide renamings, not for inherited operations.
32542
32543         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
32544         actual for a formal that is an access parameter, create local
32545         finalization list even if the expression is not an aggregate.
32546
32547 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
32548
32549         PR ada/16213
32550         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
32551         Diagnose properly illegal subprogram renamings that are library units.
32552
32553 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
32554
32555         PR ada/15588
32556         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
32557         conversion rewritten as an unchecked conversion, check that original
32558         expression is a variable.
32559
32560         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
32561         unchecked_conversion, create new node rather than rewriting in place,
32562         to preserve original construct.
32563
32564 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32565
32566         * gigi.h (gnat_expand_body): Deleted.
32567
32568         * Make-lang.in: (trans.o): Depends on function.h.
32569
32570         * misc.c: (gnat_expand_body): Moved to here.
32571
32572         * trans.c (gnat_expand_body_1): Deleted.
32573         (gnat_expand_body): Moved from here.
32574         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
32575         (add_stmt): Check for marked visited with global_bindings_p.
32576         (gnat_gimplify_expr, case COMPONENT_REF): New case.
32577         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
32578
32579         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
32580         VIEW_CONVERT_EXPR if not operation type.
32581
32582         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
32583         fat pointer.
32584
32585         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
32586         changes: reformatting of negation operators, removing unneeded
32587         inequality comparison with zero, converting equality comparisons with
32588         zero to negations, changing int/0/1 to bool/false/true, replace calls
32589         to gigi_abort with abort, and various other similar changes.
32590
32591 2004-07-26  Vincent Celier  <celier@gnat.com>
32592
32593         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
32594         "setup".
32595
32596         * make.adb (Gnatmake): Fail when a library is not present and there is
32597         no object directory.
32598
32599         * mlib-prj.adb (Check_Library): No need to check if the library needs
32600         to be rebuilt if there is no object directory, hence no object files
32601         to build the library.
32602
32603         * opt.ads (Setup_Projects): New Boolean flag.
32604
32605         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
32606         Location.
32607         Create directory when Kind /= "" and in "gnat setup". Report error if
32608         directory cannot be created.
32609         (Ada_Check): Create library interface copy dir if it does not exist
32610         and we are in "gnat setup".
32611         (Find_Sources): No error if in "gnat setup" and no Ada sources were
32612         found.
32613         (Language_Independent_Check): Create object directory, exec directory
32614         and/or library directory if they do not exist and we are in
32615         "gnat setup".
32616
32617         * vms_conv.ads: (Command_Type): New command Setup.
32618
32619         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
32620
32621         * vms_data.ads: Add qualifiers/switches for new built-in command
32622         "setup".
32623
32624 2004-07-25  Richard Henderson  <rth@redhat.com>
32625
32626         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
32627         DECL_IGNORED_P on RESULT_DECL.
32628
32629 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
32630
32631         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
32632         allocation and potentially overflowing update with
32633         Tailored_Exception_Information. Use the sec-stack free procedural
32634         interface to output Exception_Information instead.
32635
32636         * a-except.adb (To_Stderr): New subprogram for character, and string
32637         version moved from a-exextr to be visible from other separate units.
32638         (Tailored_Exception_Information): Remove the procedural version,
32639         previously used by the default Last_Chance_Handler and not any more.
32640         Adjust various comments.
32641
32642         * a-exexda.adb: Generalize the exception information procedural
32643         interface, to minimize the use of secondary stack and the need for
32644         local buffers when the info is to be output to stderr:
32645         (Address_Image): Removed.
32646         (Append_Info_Character): New subprogram, checking for overflows and
32647         outputing to stderr if buffer to fill is of length 0.
32648         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
32649         (Append_Info_Address, Append_Info_Exception_Name,
32650         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
32651         Append_Info_Basic_Exception_Traceback,
32652         Append_Info_Exception_Information): New subprograms.
32653         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
32654         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
32655         Exception_Info_Maxlength, Exception_Name_Length,
32656         Exception_Message_Length): New subprograms.
32657         (Exception_Information): Use Append_Info_Exception_Information.
32658         (Tailored_Exception_Information): Use
32659         Append_Info_Basic_Exception_Information.
32660         Export services for the default Last_Chance_Handler.
32661
32662         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
32663         other separate units.
32664
32665 2004-07-20  Vincent Celier  <celier@gnat.com>
32666
32667         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
32668
32669 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
32670
32671         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
32672         emit itype references for the designated types of component types that
32673         are declared outside of the full record declaration, and that may
32674         denote a partial view of that record type.
32675
32676 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
32677
32678         PR ada/15607
32679         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
32680         which is the designated type in an access component declaration, to the
32681         list of incomplete dependents of the parent type, to avoid elaboration
32682         issues with out-of-scope subtypes.
32683         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
32684         full view of the parent.
32685
32686 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
32687
32688         PR ada/15610
32689         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
32690         entities that are hidden, such as references to generic actuals
32691         outside an instance.
32692
32693 2004-07-20  Javier Miranda  <miranda@gnat.com>
32694
32695         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
32696         support to the new notation.
32697         (Analyze_Selected_Component): Add call to Try_Object_Operation.
32698
32699 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
32700
32701         * s-taprob.adb: Adding the elaboration code required for initializing
32702         the tasking soft links that are common to the full and the restricted
32703         run times.
32704
32705         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
32706         restricted run time has been moved to the package
32707         System.Soft_Links.Tasking.
32708
32709         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
32710         restricted run time has been moved to the package
32711         System.Soft_Links.Tasking.
32712
32713         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
32714
32715         * s-solita.ads, s-solita.adb: New files.
32716
32717 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32718
32719         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
32720         Case_Statement_to_gnu): Split off from gnat_to_gnu.
32721         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
32722         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
32723         Exception_Handler_to_gnu_zcx): Likewise.
32724
32725 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
32726
32727         * gigi.h (builtin_function): Declare.
32728
32729 2004-07-15  Robert Dewar  <dewar@gnat.com>
32730
32731         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
32732         reformatting
32733
32734         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
32735         access values as an example of a warning.
32736
32737         * gnat_rm.texi: Document new attribute Has_Access_Values
32738
32739         * gnat-style.texi: Document that box comments belong on nested
32740         subprograms
32741
32742         * sem_util.ads (Has_Access_Values): Improved documentation
32743
32744         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
32745
32746         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
32747         (Process_Interface_Name): Call to this new procedure
32748         (Set_Extended_Import_Export_External_Name): Call to this new procedure
32749
32750         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
32751
32752         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
32753
32754         * einfo.ads: Minor comment typo fixed
32755
32756 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
32757
32758         * snames.adb: Add _atcb.
32759
32760         * snames.ads: Add Name_uATCB.
32761
32762         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
32763         (in the expanded code) when using the restricted run time.
32764
32765         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
32766         a in parameter in order to allow ATCBs to be preallocated (in the
32767         expanded code).
32768
32769         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
32770         order to allow ATCBs to be preallocated. In case of error, the ATCB is
32771         deallocated in System.Tasking.Stages.
32772
32773         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
32774         order to allow ATCBs to be preallocated.
32775
32776         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
32777         here. It was previously done in Initialize_ATCB.
32778
32779         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
32780
32781         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
32782         Restricted run time.
32783
32784         * exp_ch3.adb: When using the Restricted run time, pass the
32785         preallocated Ada_Task_Control_Block when creating a task.
32786
32787 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
32788
32789         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
32790         function call that is itself an actual in an enclosing call, diagnose
32791         problem here rather than assuming that resolution will catch it.
32792
32793         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
32794         the local copy of a generic unit for a formal package, and the generic
32795         is a child unit, install private part of ancestors before compiling
32796         private part of spec.
32797
32798         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
32799         use scope entities rather than tree structures, to handle properly
32800         parent units that are instances rewritten as bodies for inlining
32801         purposes.
32802
32803         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
32804         Remove_Parents): Handle properly a parent unit that is an
32805         instantiation, when the unit has been rewritten as a body for inlining
32806         purposes.
32807
32808         * par.adb (Goto_List): Global variable to collect goto statements in a
32809         given unit, for use in detecting natural loops.
32810
32811         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
32812         use in detecting natural loops.
32813
32814         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
32815         backwards goto's, and rewrite as a infinite loop, to improve locality
32816         of temporaries.
32817
32818         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
32819         subcomponent that includes an indexed reference, to prevent the
32820         generation of copies that would miscompile the desired assignment
32821         statement.
32822         (Build_Task_Image_Decls): Add a numeric suffix to
32823         generated name for string variable, to avoid spurious conflicts with
32824         the name of the type of a single protected object.
32825
32826         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
32827         loop with an explicit exit statement, to avoid generating an
32828         out-of-range value with 'Succ leading to spurious constraint_errors
32829         when compiling with -gnatVo.
32830
32831 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
32832
32833         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
32834         might not be analyzed yet, even if its Etype is already set (case of an
32835         unchecked conversion built using Unchecked_Convert_To, for example).
32836         If the prefix has already been analyzed, this will be a nop anyway.
32837
32838         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
32839         controller type, or an assignment of a record type with controlled
32840         components, copy only user data, and leave the finalization chain
32841         pointers untouched.
32842
32843 2004-07-15  Vincent Celier  <celier@gnat.com>
32844
32845         * make.adb (Collect_Arguments): Improve error message when attempting
32846         to compile a source not part of any project, when -x is not used.
32847
32848         * prj.ads: (Defined_Variable_Kind): New subtype
32849
32850         * prj-attr.adb (Register_New_Package): Two new procedures to register
32851         a package with or without its attributes.
32852         (Register_New_Attribute): Mew procedure to register a new attribute in a
32853         package.
32854         New attribute oriented subprograms: Attribute_Node_Id_Of,
32855         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32856         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32857         Next_Attribute.
32858         New package oriented subprograms: Package_Node_Id_Of,
32859         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32860
32861         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
32862         type.
32863         (Package_Node_Id): Now a private, self initialized type
32864         (Register_New_Package): New procedure to register a package with its
32865         attributes.
32866         New attribute oriented subprograms: Attribute_Node_Id_Of,
32867         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
32868         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
32869         Next_Attribute.
32870         New package oriented subprograms: Package_Node_Id_Of,
32871         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
32872
32873         * prj-dect.adb (Parse_Attribute_Declaration,
32874         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
32875
32876         * prj-makr.adb (Make): Parse existing project file before creating
32877         other files. Fail if there was an error during parsing.
32878
32879         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
32880         new spec of Prj.Attr.
32881
32882         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
32883         to new spec of Prj.Attr.
32884
32885 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32886
32887         * utils2.c: Fix typo in comment.
32888
32889 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32890
32891         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
32892         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
32893
32894 2004-07-14  Andreas Schwab  <schwab@suse.de>
32895
32896         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
32897
32898 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
32899
32900         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
32901         object type.
32902         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
32903         TYPE_STUB_DECL.
32904
32905         * misc.c (gnat_types_compatible_p): New function.
32906         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
32907         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
32908
32909         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
32910         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
32911         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
32912         (mark_visited): Don't mark dummy type.
32913         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
32914         parameter, we must remove any LJM building from GNU_NAME.
32915         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
32916         (pos_to_constructor): Use int_const_binop.
32917         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
32918         PARM_DECL.
32919
32920         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
32921         (gnat_pushlevel): Set TREE_USE on BLOCK node.
32922         (gnat_install_builtins): Add __builtin_memset.
32923
32924 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
32925
32926         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
32927         for a renaming, stabilize the initialization expression if we are at a
32928         local level.  At the local level, uses of the renaming may be performed
32929         by a direct dereference of the initializing expression, and we don't
32930         want possible variables there to be evaluated for every use.
32931
32932         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
32933         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
32934         them on the way.  Account for the fact that we may introduce side
32935         effects in the process.
32936
32937 2004-07-13  Richard Henderson  <rth@redhat.com>
32938
32939         * misc.c (default_pass_by_ref): Use pass_by_reference.
32940
32941 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
32942
32943         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
32944         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
32945
32946 2004-07-08  Richard Henderson  <rth@redhat.com>
32947
32948         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
32949         commentary.
32950
32951 2004-07-06  Vincent Celier  <celier@gnat.com>
32952
32953         * vms_conv.ads: Minor reformatting.
32954         Alphabetical order for enumerated values of type Command_Type, to have
32955         the command in alphabetical order for the usage.
32956
32957         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
32958         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
32959
32960         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
32961
32962         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
32963         (Add_Archive_Path): Only add the global archive if there is one.
32964         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
32965         or not any object file to put in the global archive, and don't build
32966         a global archive if there is none.
32967         (X_Switches): New table
32968         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
32969         in the X_Switches table, if any.
32970         (Initialize): Make sure the X_Switches table is empty
32971         (Scan_Arg): Record -X switches in table X_Switches
32972
32973         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
32974
32975         * make.adb: Minor comment fix
32976
32977         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
32978         invoked with directory information, add the directory in front of the
32979         path.
32980
32981         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
32982         invoked with directory information, add the directory in front of the
32983         path.
32984
32985         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
32986         when Keep_Temporary_Files is False.
32987         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
32988         directory information, add the directory in front of the path.
32989         When not on VMS, handle new switch -dn before the command to set
32990         Keep_Temporary_Files to True.
32991         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
32992         everywhere.
32993
32994         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
32995         invoked with directory information, add the directory in front of the
32996         path.
32997
32998 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
32999
33000         * snames.ads, snames.adb (Name_Stub): New name for the distributed
33001         systems annex.
33002
33003         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
33004         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
33005
33006         * g-socket.adb (To_Timeval): Fix incorrect conversion of
33007         Selector_Duration to Timeval for the case of 0.0.
33008
33009         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
33010         documentation from Evolve_And_Then.
33011
33012 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
33013
33014         * s-taprop-tru64.adb, s-taprop-os2.adb,
33015         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
33016
33017 2004-07-06  Robert Dewar  <dewar@gnat.com>
33018
33019         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
33020         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
33021         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
33022         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
33023         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
33024         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
33025         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
33026         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
33027         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
33028         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
33029         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
33030         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
33031         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
33032         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
33033         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
33034         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
33035         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
33036         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
33037         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
33038         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
33039         vms_data.ads: Minor reformatting,
33040         Fix bad box comment format.
33041
33042         * gnat_rm.texi: Fix minor grammatical error
33043
33044         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
33045
33046         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
33047         more cases of discriminated records to be recognized as not needing a
33048         secondary stack.
33049         (Has_Access_Values): New function.
33050
33051         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
33052
33053         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
33054         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
33055         with LRM terminology).
33056         Change terminology in comments primitive type => elementary type.
33057
33058 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
33059
33060         PR ada/15602
33061         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
33062         parameters do not impose any requirements on the presence of a body.
33063
33064 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
33065
33066         PR ada/15593
33067         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
33068         compilation unit and is in an open scope at the point of instantiation,
33069         assume that a body may be present later.
33070
33071 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
33072
33073         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
33074         Improve error message when specified size is not supported.
33075
33076         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
33077         is never a primitive operation.
33078
33079 2004-07-05  Andreas Schwab  <schwab@suse.de>
33080
33081         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
33082         RECORD_OR_UNION_CHECK.
33083         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
33084
33085 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
33086
33087         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
33088         dependency on xgnatugn, instead build it via a submake.
33089         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
33090
33091 2004-07-04  Richard Henderson  <rth@redhat.com>
33092
33093         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
33094
33095 2004-07-01  Richard Henderson  <rth@redhat.com>
33096
33097         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
33098         * utils.c (max_size): Likewise.
33099
33100 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33101
33102         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
33103         and rest_of_type_compilation; add arg to create_*_decl.
33104         (annotate_decl_with_node): Deleted.
33105         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
33106         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
33107         (get_current_block_context, gnat_pushdecl): New declarations.
33108         (gnat_init_stmt_group): Likewise.
33109         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
33110         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
33111         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
33112         (gnat_init): Call gnat_init_stmt_group.
33113         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
33114         (gnu_pending_elaboration_list): Deleted.
33115         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
33116         (gigi): Rearrange initialization calls and move some to last above.
33117         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
33118         Delete calls to add_decl_expr; add arg to create_*_decl.
33119         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
33120         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
33121         begin_subprog_body and call it.
33122         Don't push and pop ggc context.
33123         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
33124         (add_stmt): Remove handling of DECL_EXPR from here.
33125         If not in function, mark visited.
33126         (add_decl_expr): Put global at top level.
33127         Check for cases of DECL_INITIAL we have to handle here.
33128         (process_type): Add extra arg to create_type_decl.
33129         (build_unit_elab): Rework to just gimplify.
33130         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
33131         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
33132         (get_pending_elaborations, pending_elaborations_p): Likewise.
33133         (push_pending_elaborations, pop_pending_elaborations): Likewise.
33134         (get_elaboration_location, insert_elaboration_list): Likewise.
33135         (gnat_binding_level): Renamed from ada_binding_level.
33136         (init_gnat_to_gnu): Don't clear pending_elaborations.
33137         (global_bindings_p): Treat as global if no current_binding_level.
33138         (set_current_block_context): New function.
33139         (gnat_pushdecl): Renamed from pushdecl; major rework.
33140         All callers changed.
33141         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
33142         (finish_record_type): Call call pushdecl for stub decl.
33143         (function_nesting_depth): Deleted.
33144         (begin_subprog_body): Delete obsolete code.
33145         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
33146
33147 2004-06-28  Robert Dewar  <dewar@gnat.com>
33148
33149         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
33150         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
33151         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
33152         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
33153         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
33154
33155         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
33156         deal with problem of inefficient slices on machines with strict
33157         alignment, when the slice is a component of a composite.
33158
33159         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
33160         machines, we need the check there as well.
33161
33162 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
33163
33164         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
33165         determine safe copying direction for overlapping slice assignments
33166         when component is controlled.
33167
33168         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
33169         formal derived type in the actual for a formal package are visible in
33170         the enclosing instance.
33171
33172 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
33173
33174         PR ada/15600
33175         * sem_util.adb (Trace_Components): Diagnose properly an illegal
33176         circularity involving a private type whose completion includes a
33177         self-referential component.
33178         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
33179         renaming or an instantiation from an implicit derived operation.
33180
33181 2004-06-28  Pascal Obry  <obry@gnat.com>
33182
33183         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
33184         DLL.
33185         (Library_File_Name_For): Idem.
33186
33187 2004-06-28  Matthew Gingell  <gingell@gnat.com>
33188
33189         * g-traceb.ads: Add explanatory note on the format of addresses
33190         expected by addr2line.
33191
33192 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
33193
33194         * Makefile.in: Force debugging information on s-tasdeb.adb,
33195         a-except.adb and s-assert.adb needed by the debugger.
33196
33197 2004-06-28  Vincent Celier  <celier@gnat.com>
33198
33199         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
33200         Need_To_Build_Lib.
33201         (Gnatmake): Ditto.
33202
33203         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
33204
33205         * prj.adb: Minor reformatting
33206         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
33207
33208         * prj.ads: Comment updates
33209         Minor reformatting
33210         (Project_Data): Change Flag1 to Need_To_Build_Lib.
33211         Remove Flag2: not used.
33212
33213         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
33214         declaration.
33215
33216         * gnat_ugn.texi: Put a "null;" declaration in one project file example
33217
33218         * gnat_rm.texi: Document Empty declarations "null;".
33219
33220         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
33221         front of the linker options.
33222         (Link_Foreign): Put the global archives and the libraries in front of
33223         the linker options.
33224
33225 2004-06-28  Javier Miranda  <miranda@gnat.com>
33226
33227         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
33228         (RTU_Loaded): Code cleanup
33229         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
33230         withed predefined units.
33231
33232         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
33233         explicitly withed predefined units.
33234         Fix typo in comment
33235
33236         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
33237         explicitly withed predefined units.
33238
33239 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33240
33241         * ada-tree.def (DECL_STMT): Deleted.
33242         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
33243         (DECL_STMT_VAR): Deleted.
33244         * decl.c: add_decl_stmt now add_decl_expr.
33245         * gigi.h: Likewise.
33246         * trans.c: Likewise.
33247         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
33248         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
33249         (add_stmt): Only handle padded type here.
33250         (add_stmt_with_node): Allow gnat_node to not be present.
33251         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
33252         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
33253         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
33254         make a SAVE_EXPR for the entire fat pointer.
33255         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
33256         (create_index_type): Make a DECL_EXPR.
33257         (end_subprog_body): Don't call allocate_struct_function here but
33258         do clear cfun.
33259
33260 2004-06-25  Pascal Obry  <obry@gnat.com>
33261
33262         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
33263         Relocatable from Build_Dynamic_Library call.
33264
33265         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
33266         Relocatable are now synonym.
33267
33268         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
33269
33270         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
33271         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
33272         call.
33273
33274         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
33275         Lib_Address and Relocatable.
33276         (Default_DLL_Address): Removed.
33277
33278         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
33279         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
33280         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
33281         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
33282         (Default_DLL_Address): Removed.
33283
33284         * mlib-tgt-mingw.adb: Ditto.
33285         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
33286
33287         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
33288         the initial thread stack size.
33289
33290         * a-strmap.ads: Move package L to private part as it is not used in
33291         the spec. Found while reading code.
33292
33293 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
33294
33295         * tracebak.c: Introduce support for a GCC infrastructure based
33296         implementation of __gnat_backtrace.
33297
33298         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
33299         any more. Use accessors instead. This eases maintenance and relaxes
33300         some alignment constraints.
33301         (_GNAT_Exception structure): Remove the Ada specific fields
33302         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
33303         a-exexpr.adb.
33304         (is_handled_by, __gnat_eh_personality): Replace component references to
33305         exception structure by use of the new accessors.
33306
33307         * init.c (__gnat_initialize): Adjust comments to match the just
33308         reverted meaning of the -static link-time option.
33309
33310         * adaint.c (convert_addresses): Arrange not to define a stub for
33311         mips-irix any more, as we now want to rely on a real version from a
33312         recent libaddr2line.
33313
33314         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
33315         the personality routine can use them and not have to rely on a C
33316         counterpart of the record anymore. This simplifies maintenance and
33317         relaxes the constraint of having Standard'Maximum_Alignment match
33318         BIGGEST_ALIGNMENT.
33319         Update comments, and add a section on the common header alignment issue.
33320
33321 2004-06-25  Geert Bosch  <bosch@gnat.com>
33322
33323         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
33324         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
33325
33326 2004-06-25  Robert Dewar  <dewar@gnat.com>
33327
33328         * gnat_rm.texi: Fix section on component clauses to indicate that the
33329         restriction on byte boundary placement still applies for bit packed
33330         arrays.
33331         Add comment on stack usage from Initialize_Scalars
33332
33333         * gnat_ugn.texi: Add documentation for -gnatyLnnn
33334
33335         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
33336         limiting nesting level.
33337
33338         * usage.adb: Add line for -gnatyLnnn switch
33339
33340         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
33341         sem_ch13.adb, exp_aggr.adb: Minor reformatting
33342
33343         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
33344         type as well as on the subtype. This corrects a problem in freeze in
33345         setting alignments of atomic types.
33346
33347         * sem_eval.ads: Minor comment typo fixed
33348
33349         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
33350         level.  Minor reformatting.
33351
33352         * fname.adb (Is_Predefined_File_Name): Require a letter after the
33353         minus sign. This means that file names like a--b.adb will not be
33354         considered predefined.
33355
33356         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
33357         record Test new flag and give diagnostic for bad component clause.
33358         (Freeze_Entity): Set alignment of array from component alignment in
33359         cases where this is safe to do.
33360
33361         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
33362         arrays.
33363
33364         * cstand.adb: (Create_Standard): Set alignment of String to 1
33365
33366         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
33367
33368         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
33369         code in the common constrained array cases.
33370
33371         * a-storio.adb: Change implementation to avoid possible alignment
33372         problems on machines requiring strict alignment (data should be moved
33373         as type Buffer, not type Elmt).
33374
33375         * checks.adb (Apply_Array_Size_Check): Improve these checks by
33376         killing the overflow checks which we really do not need (64-bits is
33377         enough).
33378
33379 2004-06-25  Vincent Celier  <celier@gnat.com>
33380
33381         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
33382         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
33383         inconditionally for the main project.
33384         (Recursive_Add_Archives.Add_Archive_Path): New procedure
33385         (Link_Executables.Check_Time_Stamps): New procedure
33386         (Link_Executables.Link_Foreign): New procedure
33387         Changes made to reduce nesting level of this package
33388         (Check): New procedure
33389         (Add_Switches): When not in quiet output, check that a switch is not
33390         the concatenation of several valid switches. If it is, issue a warning.
33391         (Build_Global_Archive): If the global archive is rebuilt, linking need
33392         to be done.
33393         (Compile_Sources): Rebuilding a library archive does not imply
33394         rebuilding the global archive.
33395         (Build_Global_Archive): New procedure
33396         (Build_Library): New name for Build_Archive, now only for library
33397         project
33398         (Check_Archive_Builder): New procedure
33399         (Create_Global_Archive_Dependency_File): New procedure
33400         (Gprmake): Call Build_Global_Archive before linking
33401         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
33402         throughout.
33403         (Scan_Arg): Display the Copyright notice when -v is used
33404
33405         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
33406         for gnatls.
33407
33408         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
33409         COMPILE.
33410         Add new GNAT LIST qualifier /FILES=
33411         Added qualifier /DIRECTORY= to GNAT METRIC
33412         Added qualifier /FILES= to GNAT METRIC
33413         Added qualifier /FILES to GNAT PRETTY
33414
33415         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
33416         to take into account both versions of the switch.
33417
33418         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
33419         always be the last switch to the gcc driver. Disable switch storing so
33420         that switches automatically added by the gcc driver are not put in the
33421         ALI file.
33422
33423         * prj.adb (Project_Empty): Take into account changes in components of
33424         Project_Data.
33425
33426         * prj.ads (Languages_Processed): New enumaration value All_Languages.
33427
33428         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
33429         used. Split Boolean component Ada_Sources_Present in two Boolean
33430         components Ada_Sources_Present and Other_Sources_Present.
33431         Minor reformatting
33432
33433         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
33434         instead of Sources_Present.
33435         (Set_Ada_Paths.Add.Recursive_Add): Ditto
33436
33437         * prj-nmsc.adb: Minor reformatting
33438         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
33439         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
33440         Check_Ada_Naming_Scheme.
33441         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
33442         throughout.
33443
33444         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
33445         In_Limited.
33446         Make sure that all cycles where there is at least one "limited with"
33447         are detected.
33448         (Parse_Single_Project): New Boolean parameter In_Limited
33449
33450         * prj-proc.adb (Recursive_Check): When Process_Languages is
33451         All_Languages, call first Prj.Nmsc.Ada_Check, then
33452         Prj.Nmsc.Other_Languages_Check.
33453
33454         * prj-proc.adb (Process): Use Ada_Sources_Present or
33455         Other_Sources_Present (instead of Sources_Present) depending on
33456         Process_Languages.
33457
33458         * lang-specs.h: Keep -g and -m switches in the same order, and as the
33459         last switches.
33460
33461         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
33462         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
33463         False.
33464         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
33465         False.
33466
33467         * lib.ads (Disable_Switch_Storing): New procedure.
33468
33469         * make.adb: Modifications to reduce nesting level of this package.
33470         (Check_Standard_Library): New procedure
33471         (Gnatmake.Check_Mains): New procedure
33472         (Gnatmake.Create_Binder_Mapping_File): New procedure
33473         (Compile_Sources.Compile): Add switch -gnatez as the last option
33474         (Display): Never display -gnatez
33475
33476         * Makefile.generic:
33477         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
33478
33479         * gnatcmd.adb (Check_Project): New function
33480         (Process_Link): New procedure to reduce nesting depth
33481         (Check_Files): New procedure to reduce the nesting depth.
33482         For GNAT METRIC, include the inherited sources in extending projects.
33483         (GNATCmd): When GNAT LS is invoked with a project file and no files,
33484         add the list of files from the sources of the project file. If this list
33485         is too long, put it in a temp text files and use switch -files=
33486         (Delete_Temp_Config_Files): Delete the temp text file that contains
33487         a list of source for gnatpp or gnatmetric, if one has been created.
33488         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
33489         in the project file is too large, create a temporary text file that
33490         list them and pass it to the tool with "-files=<temp text file>".
33491         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
33492
33493         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
33494         generated file is in not in Ada.
33495
33496         * gnatls.adb: Remove all parameters And_Save that are no longer used.
33497         (Scan_Ls_Arg): Add processing for -files=
33498         (Usage): Add line for -files=
33499
33500         * g-os_lib.adb (On_Windows): New global constant Boolean flag
33501         (Normalize_Pathname): When on Windows and the path starts with a
33502         directory separator, make sure that the resulting path will start with
33503         a drive letter.
33504
33505         * clean.adb (Clean_Archive): New procedure
33506         (Clean_Project): When there is non-Ada code, delete the global archive,
33507         the archive dependency files, the object files and their dependency
33508         files, if they exist.
33509         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
33510
33511 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
33512
33513         * sinfo.ads: Fix typo in comment.
33514
33515         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
33516         the TSS for remote access-to-subprogram types, since these TSS are
33517         always present once the type has been analyzed.
33518         (RAS_E_Dereference): Same.
33519
33520         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
33521         reference raises Bad_Attribute, mark the reference as analyzed so the
33522         node (and any children resulting from rewrites that could have occurred
33523         during the analysis that ultimately failed) is not analyzed again.
33524
33525         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
33526
33527         * exp_dist.adb: Minor comment fix.
33528
33529         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
33530         type is an anonymous access type, no unchecked deallocation of the
33531         allocated object can occur. If the object is controlled, attach it with
33532         a count of 1. This allows attachment to the Global_Final_List, if
33533         no other relevant list is available.
33534         (Get_Allocator_Final_List): For an anonymous access type that is
33535         the type of a discriminant or record component, the corresponding
33536         finalisation list is the one of the scope of the type.
33537
33538 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
33539
33540         * sem_ch3.adb (Replace_Type): When computing the signature of an
33541         inherited subprogram, use the first subtype if the derived type
33542         declaration has no constraint.
33543
33544         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
33545         before applying previous optimization. Minor code cleanup.
33546
33547         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
33548         placed at the beginning of an unpacked record without explicit
33549         alignment, a slice of it will be aligned and does not need a copy when
33550         used as an actual.
33551
33552 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
33553
33554         PR ada/15591
33555         PR ada/15592
33556         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
33557         reference is written with expressions mimicking parameters.
33558
33559 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
33560
33561         PR ada/15589
33562         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
33563         STEP 2a. The constraints of a full type declaration of a derived record
33564         type are checked for conformance with those declared in the
33565         corresponding private extension declaration. The message
33566         "not conformant with previous declaration" is emitted if an error is
33567         detected.
33568
33569 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
33570
33571         * g-traceb.ads: Document the need for -E binder switch in the spec.
33572
33573         * g-trasym.ads: Document the need for -E binder switch in the spec.
33574
33575 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
33576
33577         * sem_prag.adb: Add handling of pragma Detect_Blocking.
33578
33579         * snames.h, snames.ads, snames.adb: Add entry for pragma
33580         Detect_Blocking.
33581
33582         * s-rident.ads: Change reference to pragma Detect_Blocking.
33583
33584         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
33585         system.ads.
33586
33587         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
33588         to indicate whether pragma Detect_Blocking is active.
33589
33590         * par-prag.adb: Add entry for pragma Detect_Blocking.
33591
33592         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
33593         of not handling WITH.
33594         Note that this replaces the previous update which was incorrect.
33595
33596 2004-06-25  Javier Miranda  <miranda@gnat.com>
33597
33598         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
33599         use-clauses to have a clean environment.
33600
33601         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
33602         the installation of the use-clauses to stablish a clean environment in
33603         case of compilation of a separate unit; otherwise the call to
33604         use_one_package is protected by the barrier Applicable_Use.
33605
33606         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
33607         the installation of the use-clauses to stablish a clean environment in
33608         case of compilation of a separate unit.
33609         (End_Use_Clauses): Minor comment cleanup.
33610
33611 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
33612
33613         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
33614
33615 2004-06-23  Richard Henderson  <rth@redhat.com>
33616
33617         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
33618
33619 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33620
33621         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
33622         now bool instead of int.
33623         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
33624         * trans.c (gnu_switch_label_stack): New function.
33625         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
33626         elaboration of renamed entity returns.
33627         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
33628         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
33629         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
33630         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
33631         DECL_SIZE_UNIT and simplify variable-sized case.
33632         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
33633         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
33634         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
33635         (build_unit_elab): Disable for now.
33636         * utils.c (mark_visited): New function.
33637         (pushdecl): Walk tree to call it for global decl.
33638         (update_pointer_to): Update all variants of pointer and ref types.
33639         Add arg to COMPONENT_REF.
33640         (convert): Likewise.
33641         Move check for converting between variants lower down.
33642         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
33643         (build_allocator): Don't force type of MODIFY_EXPR.
33644         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
33645         put_var_into_stack.
33646
33647 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33648
33649         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
33650         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
33651         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
33652         subprograms.
33653         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
33654         all callers changed.
33655         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
33656         the way that EXIT_STMT finds the loop label.
33657         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
33658         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
33659         (add_stmt): Use annotate_with_locus insted of setting directly.
33660         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
33661         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
33662         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
33663         (build_vms_descriptor): Add extra args to ARRAY_REF.
33664         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
33665         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
33666         New cases.
33667         (build_binary_op): Don't make explicit CONVERT_EXPR.
33668         Add extra rgs to ARRAY_REF.
33669
33670 2004-06-14  Pascal Obry  <obry@gnat.com>
33671
33672         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
33673         Windows.  Fix minor typo.
33674
33675         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
33676         which is now supported on Windows. With this implementation using the
33677         Library Project feature is no different on Windows than on UNIX.
33678
33679 2004-06-14  Vincent Celier  <celier@gnat.com>
33680
33681         * makegpr.adb (Compile_Sources): Nothing to do when there are no
33682         non-Ada sources.
33683
33684         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
33685
33686         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
33687         found, show the project name and the path of the previously parsed
33688         project file.
33689
33690 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
33691
33692         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
33693         array, avoid copying the actual before the call.
33694
33695 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
33696
33697         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
33698         Instead, allocate memory on worst-case alignment assumptions, and then
33699         return an aligned address within the allocated zone.
33700
33701 2004-06-14  Robert Dewar  <dewar@gnat.com>
33702
33703         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
33704         elab entities in predefined units in No_Run_Time_Mode.
33705         (Gen_Adainit_C): Same fix
33706         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
33707         units in No_Run_Time_Mode
33708         (Gen_Elab_Calls_C): Same fix
33709
33710         * symbols-vms-alpha.adb: Minor reformatting
33711
33712         * g-debpoo.ads: Minor reformatting
33713
33714         * lib.adb (In_Same_Extended_Unit): Version working on node id's
33715
33716         * lib.ads (In_Same_Extended_Unit): Version working on node id's
33717
33718         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
33719         working on nodes.
33720
33721         * make.adb: Minor reformatting
33722
33723         * par-ch12.adb: Minor reformatting
33724
33725         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
33726
33727         * prj-strt.adb: Minor reformatting
33728
33729         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
33730         be more general.
33731
33732         * sem_attr.adb: Minor reformatting
33733
33734         * sem_ch7.adb: Minor reformatting
33735
33736         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
33737         for type in the same unit as the object declaration.
33738
33739         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
33740         static string expressions and not just string literals.
33741         Minor reformatting
33742         (Set_Warning): Reset restriction warning flag for restriction pragma
33743         Implement pragma Profile_Warnings
33744         Implement pragma Profile (Restricted)
33745         Give obolescent messages for old restrictions and pragmas
33746
33747         * snames.h, snames.ads, snames.adb: Add new entry for pragma
33748         Profile_Warnings.
33749
33750         * s-rident.ads: Add declarations for restrictions required by profile
33751         Restricted and profile Ravenscar.
33752
33753         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
33754
33755         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
33756         configuration pragmas.
33757
33758 2004-06-11  Vincent Celier  <celier@gnat.com>
33759
33760         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
33761         gnatsym, when symbol policy is Restricted.
33762
33763         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
33764         gnatsym, when symbol policy is Restricted.
33765
33766         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
33767         read the symbol file.
33768         (Finalize): Fail in symbol policy Restricted if a symbol in the original
33769         symbol file is not in the object files. Do not create a new symbol file
33770         when symbol policy is Restricted.
33771
33772         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
33773         in Scng.
33774
33775         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
33776         Restricted.
33777         (Usage): Line for new switch -R
33778
33779         * make.adb (Initialize): When the platform is not VMS, add the
33780         directory where gnatmake is invoked in the front of the path, if
33781         gnatmake is invoked with directory information.  Change the Scan_Args
33782         while loop to a for loop.
33783         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
33784         if Depth is equal or greater than the proposed depth, there is nothing
33785         to do.
33786         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
33787         instead of 0.
33788
33789         * prj.ads: Add new symbol policy Restricted.
33790
33791         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
33792         with the new parameters Check_All_Labels and Case_Location.
33793
33794         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
33795         (Library_Symbol_File needs to be defined).
33796
33797         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
33798         and Case_Location If Check_All_Labels is True, check that all values of
33799         the string type are used, and output warning(s) if they are not.
33800
33801         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
33802         and Case_Location.
33803
33804         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
33805
33806         * gnat_ugn.texi: Update documentation about the library directory in
33807         Library Projects.
33808
33809         * makegpr.adb (Display_Command): In verbose mode, also display the
33810         value of the CPATH env var, when the compiler is gcc.
33811         (Initialize): Change the Scan_Args while loop to a for loop
33812         (Compile_Individual_Sources): Change directory to object directory
33813         before compilations.
33814
33815         * symbols.ads: New symbol policy Restricted.
33816
33817 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
33818
33819         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
33820         is now taken care of internally in the Exception_Propagation package
33821         and does not require clients assistance any more.
33822
33823         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
33824         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
33825         functions. Helpers to maintain a predicate required in the handling of
33826         occurrence transfer between tasks.
33827         This is now handled internally and does not require clients assistance
33828         for the setup/propagate separation anymore.
33829         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
33830         allocation strategy, handle the Setup_And_Not_Propagated predicate and
33831         document.
33832
33833         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
33834         raise_after_setup, now that everything is handled internally within the
33835         setup/propagation engine.
33836
33837 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
33838
33839         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
33840         Add additional conditions for the case of an actual being a simple
33841         name or literal. Improve inlining by preventing the generation
33842         of temporaries with a short lifetime (one use).
33843
33844 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
33845
33846         PR ada/15587
33847         * einfo.ads: Minor comment updates for Has_Completion and
33848         E_Constant list of flags.
33849
33850         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
33851         and constant redeclarations now set the Has_Completion flag of their
33852         defining identifiers.
33853
33854         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
33855         Inspect_Deferred_Constant_Completion.
33856         Used to detect private deferred constants that have not been completed
33857         either by a constant redeclaration or pragma Import. Emits error message
33858         "constant declaration requires initialization expression".
33859
33860         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
33861         completes a deferred constant.
33862
33863 2004-06-11  Geert Bosch  <bosch@gnat.com>
33864
33865         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
33866
33867         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
33868         calculating exponent for scaling denormal numbers.
33869         (Leading_Part): Properly raise Constraint_Error for zero or negative
33870         Adjustment.
33871         (Remainder): Properly raise Constraint_Error for zero divisor.
33872
33873 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
33874
33875         * sem_util.adb: Minor reformatting.
33876
33877         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
33878         dereference when accessing the entry parameter record.
33879         (Check_Array_Type): Always check for possible implicit dereference.
33880         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33881         Abort if a pointer is still present (denoting that an implicit
33882         dereference was left in the tree by the front-end).
33883
33884         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
33885         dereference when accessing the entry parameter record.
33886         (Check_Array_Type): Always check for possible implicit dereference.
33887         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
33888         Abort if a pointer is still present (denoting that an implicit
33889         dereference was left in the tree by the front-end).
33890
33891 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
33892
33893         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
33894         message, like the compiler itself does. Easier to parse the output.
33895
33896         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
33897
33898         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
33899         be base names, and not includes directories.
33900
33901 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
33902
33903         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
33904         so that dependencies are properly taken into account by make.
33905
33906 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
33907
33908         PR ada/15622
33909         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
33910         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
33911
33912 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
33913
33914         * Makefile.in (install-gnatlib): install target-specific run-time files.
33915
33916         * Make-lang.in: Remove obsolete targets.
33917
33918 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
33919
33920         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
33921         specification, to catch misuses of program unit names.
33922
33923         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
33924         superfluous conversions in an instance.
33925
33926 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
33927
33928         PR ada/15403
33929         * sem_ch12.adb (Save_References): If operator node has been folded to
33930         enumeration literal, associated_node must be discarded.
33931
33932 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
33933
33934         * s-stchop-vxworks.adb: Add required pragma Convention to
33935         Task_Descriptor because it is updated by a C function.
33936
33937 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
33938
33939         PR ada/15568
33940         * Makefile.in: Remove target specific SO_OPT on IRIX
33941
33942 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33943
33944         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
33945         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
33946         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
33947         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
33948         (STMT_STMT, USE_STMT): New statement codes.
33949         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
33950         * ada-tree.h: Reflect above changes.
33951         (struct tree_loop_id): Deleted.
33952         (union lang_tree_node, struct lang_decl, struct lang_type):
33953         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
33954         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
33955         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
33956         (IS_ADA_STMT): New macro.
33957         * decl.c (annotate_decl_with_node): New function.
33958         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
33959         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
33960         Call add_stmt_with_node to do needed assignments.
33961         Add call to update setjmp buffer directly, not via EXPR_STMT.
33962         (maybe_variable): Argment GNAT_NODE deleted.
33963         * gigi.h (maybe_variable): Likewise.
33964         (make_transform, add_stmt_with_node, set_block_for_group): New.
33965         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
33966         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
33967         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
33968         (set_lineno, set_lineno_from_sloc): Likewise.
33969         (record_code_position, insert_code_for): Likewise.
33970         (gnat_poplevel): Now returns void.
33971         (end_subprog_body): Now takes argument.
33972         * misc.c (cgraph.h, tree-inline.h): New includes.
33973         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
33974         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
33975         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
33976         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
33977         (gnat_parse_file): Don't set immediate_size_expand.
33978         Call cgraph functions.
33979         (gnat_expand_expr): Remove most cases.
33980         (record_code_position, insert_code_for): Remove from here.
33981         * trans.c (toplev.h, tree-gimple.h): Now included.
33982         (discard_file_names): Deleted.
33983         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
33984         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
33985         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
33986         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
33987         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
33988         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
33989         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
33990         (set_block_for_group, add_stmt_list): Likewise.
33991         (start_stmt_group): Renamed from start_block_stmt.
33992         (end_stmt_group): Likewise, from end_block_stmt.
33993         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
33994         (gigi): Don't set discard_file_names or call set_lineno.
33995         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
33996         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
33997         Numerous changes throughout to reflect new names and complete
33998         function-at-a-time implementation.
33999         (gnat_expand_stmt): Delete or comment out all cases.
34000         (process_inlined_subprograms): Use add_stmt.
34001         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
34002         call set_lineno; also remove unneeded block handling.
34003         (process_type): Remove unneeded block handling.
34004         (build_unit_elab): Remove calls to deleted functions.
34005         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
34006         (tree-dump.h): Likewise.
34007         (struct ada_binding_level): Add field jmpbuf_decl.
34008         (gnat_define_builtin, gnat_install_builtins): New.
34009         (gnat_gimplify_function, gnat_finalize): Likewise.
34010         (gnat_poplevel): No longer return BLOCK, set it instead.
34011         Remove code dealing with nested functions.
34012         (gnat_init_decl_processing): Also set size_type_node.
34013         Call gnat_install_builtins.
34014         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
34015         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
34016         Remove special-case for "main".
34017         (end_subprog_body): Add arg and rework for tree-ssa.
34018         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
34019         Add case for BOOLEAN_TYPE.
34020         * utils2.c (rtl.h): Now include.
34021         (build_call_raise): Test Debug_Flag_NN directly.
34022         (build_call_alloc_dealloc): Don't use local stack allocation for now.
34023         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
34024         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
34025
34026 2004-06-07  Robert Dewar  <dewar@gnat.com>
34027
34028         * a-direct.ads, einfo.ads: Minor comment updates
34029
34030         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
34031         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
34032         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
34033         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
34034         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
34035
34036         * s-interr-sigaction.adb: Remove unreferenced variable
34037         (Attached_Interrupts).  Minor reformatting.
34038         Avoid use of variable I (replace by J).
34039
34040         * par-ch10.adb: Fix text of one error message
34041
34042         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
34043         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
34044         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
34045         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
34046         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
34047         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
34048         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
34049         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
34050         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
34051         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
34052         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
34053         2005 support.
34054
34055 2004-06-07  Doug Rupp  <rupp@gnat.com>
34056
34057         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
34058
34059         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
34060
34061         * mlib-tgt-vms-ia64.adb: New file.
34062
34063         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
34064         Add mlib-tgt-vms-ia64.adb
34065         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
34066         Move to alpha specific ifeq section.
34067         Add VMS specific versions of symbols.adb
34068         Renaming of 5q vms files.
34069
34070         * 5qsystem.ads renamed to system-vms_64.ads.
34071
34072 2004-06-07  Vincent Celier  <celier@gnat.com>
34073
34074         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
34075         explain that when a time of day corresponding to the non existing hour
34076         on the day switching to DST is specified, Split may return a different
34077         value for Seconds.
34078
34079         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
34080         to GNAT PRETTY.
34081
34082         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
34083         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
34084
34085         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
34086         to False.
34087         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
34088         the linking options.
34089         (Build_Library.Check_Libs): On VMS, if there is a dependency on
34090         g-trasym.ads, set Gtrasymobj_Needed to True.
34091
34092         * prj-attr.adb: Add new package Metrics for gnatmetric
34093
34094         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
34095         canonical case to take into account files with upper case characters on
34096         Windows.
34097         (Ada_Check): Load the reference symbol file name in the name buffer to
34098         check it, not the symbol file name.
34099
34100         * snames.ads, snames.adb: Add standard name Metrics (name of project
34101         file package for gnatmetric).
34102
34103         * vms_conv.ads: Add Metric to Comment_Type
34104
34105         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
34106
34107         * vms_data.ads: Add qualifiers for GNAT METRIC
34108
34109         * makegpr.adb (Link_Executables): Take into account the switches
34110         specified in package Linker of the main project.
34111
34112 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
34113
34114         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
34115         the index of the last element is Units.Last, not Units.Table'Last
34116         (which is usually not a valid index within the actually allocated
34117         storage for the table).
34118
34119         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
34120         determines whether to generate a call to a checked storage pool
34121         Dereference action.
34122         Generate such a call only for a dereference that either comes from
34123         source, or is the result of rewriting a dereference that comes from
34124         source.
34125
34126 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
34127
34128         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
34129
34130 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
34131
34132         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
34133         file level, elaborate the stride for inner dimensions in alignment
34134         units, not bytes.
34135
34136         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
34137         in a comment.
34138
34139 2004-06-07  Javier Miranda  <miranda@gnat.com>
34140
34141         * exp_ch6.adb: Correct wrong modification in previous patch
34142
34143 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
34144
34145         * g-trasym.ads: Corrected comment to properly reflect level of support
34146         on VMS.
34147
34148 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
34149
34150         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
34151         includes case of a variable referenced on the left hand side of an
34152         assignment, therefore remove redundant code. Variables and prefixes of
34153         indexed or selected components are now marked as referenced on left
34154         hand side. Warnings are now properly emitted when variables or prefixes
34155         are assigned but not read.
34156
34157         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
34158         left hand side referenced variables. Private access types do not
34159         produce the warning "variable ... is assigned but never read".
34160         Add also additional checks to left hand side referenced variables.
34161         Aliased, renamed objects and access types do not produce the warning
34162         "variable ... is assigned but never read" since other entities may read
34163         the memory location.
34164
34165 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
34166
34167         * Makefile.in: In the powerpc/vxworks-specific section, restore
34168         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
34169         by mistake).
34170
34171 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
34172
34173         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
34174         predefined operators.
34175         Removes spurious type errors from g-trasym-vms.adb.
34176
34177         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
34178         distinct from the operator appearing in the source, call appropriate
34179         routine to insert conversions when needed, and complete resolution of
34180         node.
34181         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
34182         interpretations for rewritten right operand.
34183         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
34184         the other operand is overloaded and the context is a type conversion.
34185
34186 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34187
34188         * ada-tree.def (BLOCK_STMT): Now has two operands.
34189         (BREAK_STMT): New.
34190
34191         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
34192
34193         * gigi.h: (gnat_poplevel): Now returns a tree.
34194
34195         * trans.c (end_block_stmt): Add arg; all callers changed.
34196         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
34197         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
34198         (add_stmt): Set TREE_TYPE.
34199         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
34200         (gnat_expand_stmt, case BREAK_STMT): New case.
34201
34202         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
34203
34204 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
34205
34206         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
34207         procedure Set_Stack_Size that is not needed.
34208
34209 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
34210
34211         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
34212         used for gnatpp input file and for the files upon which it depends
34213
34214 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
34215
34216         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
34217
34218 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
34219
34220         * gnatvsn.ads: Bump version numbers appropriately.
34221         Add new build type.
34222
34223 2004-06-07  Pascal Obry  <obry@gnat.com>
34224
34225         * gnat_ugn.texi: Improve comments about imported names and link names
34226         on Windows. Add a note about the requirement to use -k gnatdll's option
34227         when working with a DLL which has stripped stdcall symbols (no @nn
34228         suffix).
34229
34230 2004-05-27  Vincent Celier  <celier@gnat.com>
34231
34232         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
34233         COMMENTS_LAYOUT=UNTOUCHED
34234
34235         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
34236         symbols-vms-alpha.adb
34237
34238 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
34239
34240         * sem.ads: Clarify documentation on checks suppression.
34241
34242         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
34243
34244 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
34245
34246         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
34247         the case of multiple derivations.
34248         (Is_Object_Reference): For a selected component, verify that the prefix
34249         is itself an object and not a value.
34250
34251         * sem_ch12.adb (Same_Instantiated_Constant): New name for
34252         Same_Instantiated_Entity.
34253         (Same_Instantiated_Variable): Subsidiary to
34254         Check_Formal_Package_Instance, to recognize actuals for in-out generic
34255         formals that are obtained from a previous formal package.
34256         (Instantiate_Subprogram_Body): Emit proper error when
34257         generating code and the proper body of a stub is missing.
34258
34259         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
34260         has a universal interpretation, do the disambiguation here.
34261
34262         * exp_ch4.adb (Expand_N_Type_Conversion,
34263         Expand_N_Unchecked_Type_Conversion): Special handling when target type
34264         is Address, to avoid typing anomalies when Address is a visible integer
34265         type.
34266
34267         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
34268         to determine whether a subprogram should not be marked Pure, even when
34269         declared in a pure package.
34270
34271 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
34272
34273         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
34274
34275         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
34276         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
34277         Update the documentation about the Ravenscar profile, following the
34278         definition found in AI-249.
34279
34280         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
34281         setting the Profile (Ravenscar). This must be done in addition to
34282         setting the required restrictions.
34283
34284         * rtsfind.ads: Add the set of operations defined in package
34285         Ada.Interrupts.
34286
34287         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
34288         restriction.
34289
34290 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
34291
34292         lang-specs.h: Always require -c or -S and always redirect to /dev/null
34293         if -gnatc or -gnats is passed.
34294
34295 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
34296
34297         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
34298         a significant reference. Warnings are now properly emitted when a
34299         discriminated type is not referenced.
34300
34301         * lib-xref.adb (Generate_Reference): A deferred constant completion,
34302         record representation clause or record type discriminant does not
34303         produce a reference to its corresponding entity. Warnings are now
34304         properly emitted when deferred constants and record types are not
34305         referenced.
34306
34307 2004-05-27  Geert Bosch  <bosch@gnat.com>
34308
34309         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
34310         Fixes ACATS Annex G tests.
34311
34312 2004-05-27  Robert Dewar  <dewar@gnat.com>
34313
34314         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
34315         handling WITH
34316
34317 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
34318
34319         * s-interr.adb (Server_Task): Take into account case of early return
34320         from sigwait under e.g. linux.
34321
34322 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
34323
34324         * gnat_ugn.texi: Add description for the new gnatpp options:
34325          -rnb - replace the original source without creating its backup copy
34326          -c0 - do not format comments
34327
34328 2004-05-24  Geert Bosch  <bosch@gnat.com>
34329
34330         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
34331         with 192 bits of precision, sufficient to reduce a double-extended
34332         arguments X with a maximum relative error of T'Machine_Epsilon, for X
34333         in -2.0**32 .. 2.0**32.
34334         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
34335         reduction by the processor, which only uses a 68-bit approximation of
34336         Pi.
34337         (Tan): Always reduce arguments and compute function either using
34338         the processor's fptan instruction, or by dividing sin and cos as needed.
34339
34340 2004-05-24  Doug Rupp  <rupp@gnat.com>
34341
34342         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
34343         gcc error on 32/64 bit VMS.
34344
34345 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
34346
34347         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
34348         since this is what we get for stack overflows although not documented
34349         as such.
34350         Document the issues which may require adjustments to our signal
34351         handlers.
34352
34353 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
34354
34355         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
34356         enclosing dynamic scope if the instantiation is within a generic unit.
34357
34358 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
34359
34360         * exp_dbug.ads: Fix typo.
34361
34362         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
34363         Rename it to its proper name: system-linux-ia64.ads
34364         (stamp-gnatlib1): Remove extra target specific run time files when
34365         setting up the rts directory.
34366
34367 2004-05-24  Javier Miranda  <miranda@gnat.com>
34368
34369         * einfo.ads, einfo.adb (Limited_Views): Removed.
34370         (Limited_View): New attribute that replaces the previous one. It is
34371         now a bona fide package with the limited-view list through the
34372         first_entity and first_private attributes.
34373
34374         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
34375         limited-private-with clause.
34376         (Install_Limited_Withed_Unit): Install the private declarations of a
34377         limited-private-withed package. Update the installation of the shadow
34378         entities according to the new structure (see Build_Limited_Views)
34379         (Build_Limited_Views): Replace the previous implementation of the
34380         limited view by a package entity that references the first shadow
34381         entity plus the first shadow private entity (required for limited-
34382         private-with clause)
34383         (New_Internal_Shadow_Entity): Code cleanup.
34384         (Remove_Limited_With_Clause): Update the implementation to undo the
34385         new work carried out by Build_Limited_Views.
34386         (Build_Chain): Complete documentation.
34387         Replace Ada0Y by Ada 0Y in comments
34388         Minor reformating
34389
34390         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
34391         types the level of accessibility depends on the enclosing type
34392         declaration.
34393
34394         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
34395         entities. Complete documentation of previous change.
34396
34397 2004-05-24  Robert Dewar  <dewar@gnat.com>
34398
34399         * namet.adb: Minor reformatting
34400         Avoid use of name I (replace by J)
34401         Minor code restructuring
34402
34403         * sem_ch6.adb: Minor reformatting
34404
34405         * lib-writ.adb: Do not set restriction as active if this is a
34406         Restriction_Warning case.
34407
34408         * sem_prag.adb: Reset restriction warning flag if real pragma
34409         restriction encountered.
34410
34411         * s-htable.adb: Minor reformatting
34412         Change rotate count to 3 in Hash (improves hash for small strings)
34413
34414         * 5qsystem.ads: Add comments for type Address (no literals allowed).
34415
34416         * gnat_ugn.texi: Add new section of documentation "Code Generation
34417         Control", which describes the use of -m switches.
34418
34419 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
34420
34421         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
34422         through the DECL_INITIAL for renamed variables.
34423
34424 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
34425
34426         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
34427
34428 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
34429
34430         * exp_dbug.ads: Correct comments concerning handling of overloading,
34431         since we no longer use $ anymore.
34432
34433 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
34434
34435         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
34436         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
34437         with illegal subunits.
34438
34439 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
34440
34441         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
34442         body with front-end inlining enabled, check whether an inline pragma
34443         appears immediately after the body and applies to it.
34444
34445         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
34446         enabled and the pragma appears after the body of the subprogram.
34447
34448 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34449
34450         Part of function-at-a-time conversion
34451
34452         * misc.c (adjust_decl_rtl): Deleted.
34453         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
34454         Define.
34455
34456         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
34457         (add_decl_stmt, add_stmt, block_has_vars): New functions.
34458         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
34459
34460         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
34461         when making a decl.
34462         (gnat_to_gnu_entity): Likewise.
34463         Use add_stmt to update setjmp buffer.
34464         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
34465         flush_addressof.
34466         No longer call adjust_decl_rtl.
34467         (DECL_INIT_BY_ASSIGN_P): New macro.
34468         (DECL_STMT_VAR): Likewise.
34469
34470         * trans.c (gigi): Call start_block_stmt to make the outermost
34471         BLOCK_STMT.
34472         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
34473         Call start_block_stmt and end_block_stmt temporarily.
34474         Use gnat_expand_stmt instead of expand_expr_stmt.
34475         (add_decl_stmt): New function.
34476         (tree_transform): Call it.
34477         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
34478         (end_block_stmt): Set type and NULL_STMT.
34479         (gnat_expand_stmt): Make recursize call instead of calling
34480         expand_expr_stmt.
34481         (gnat_expand_stmt, case DECL_STMT): New case.
34482         (set_lineno_from_sloc): Do nothing if global.
34483         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
34484         (start_block_stmt, add_stmt, end_block_stmt): New functions.
34485         (build_block_stmt): Call them.
34486         (gnat_to_code): Don't expand NULL_STMT.
34487         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
34488         args.
34489         (tree_transform): Likewise.
34490         (tree_transform, case N_Null_Statement): Return NULL_STMT.
34491         (gnat_expand_stmt, case NULL_STMT): New case.
34492         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
34493         IF_STMT_TRUE.
34494
34495         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
34496         TREE_ADDRESSABLE.
34497
34498         * utils.c (create_var_decl): Do not call expand_decl or
34499         expand_decl_init.
34500         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
34501         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
34502         here.
34503         (struct e_stack): Add chain_next to GTY.
34504         (struct binding_level): Deleted.
34505         (struct ada_binding_level): New struct.
34506         (free_block_chain): New.
34507         (global_binding_level, clear_binding_level): Deleted.
34508         (global_bindings_p): Rework to see if no chain.
34509         (kept_level_p, set_block): Deleted.
34510         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
34511         new data structure and work directly on BLOCK node.
34512         (gnat_poplevel): Similarly.
34513         (get_decls): Look at BLOCK_VARS.
34514         (insert_block): Work directly on BLOCK node.
34515         (block_has_var): New function.
34516         (pushdecl): Rework for new binding structures.
34517         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
34518         poplevel.
34519         (build_subprog_body): Likewise.
34520         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
34521
34522         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
34523
34524         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
34525         (DECL_STMT_VAR): Likewise.
34526
34527 2004-05-17  Robert Dewar  <dewar@gnat.com>
34528
34529         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
34530         procedure
34531
34532         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
34533         of restriction synonyums by using
34534         Restrict.Process_Restriction_Synonyms.
34535
34536         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
34537
34538         * s-restri.ads (Tasking_Allowed): Correct missing comment
34539
34540         * s-rident.ads: Add entries for restriction synonyms
34541
34542         * ali.adb: Fix some problems with badly formatted ALI files that can
34543         result in infinite loops.
34544
34545         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
34546         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
34547         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
34548         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
34549         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
34550         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
34551         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
34552         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
34553         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
34554         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
34555         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
34556         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
34557         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
34558         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
34559         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
34560         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
34561         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
34562         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
34563         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
34564         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
34565         to Task_Id (minor cleanup).
34566
34567 2004-05-17  Vincent Celier  <celier@gnat.com>
34568
34569         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
34570         directory separator.
34571
34572         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
34573         project being extended, if Languages is not declared in extending
34574         project.
34575
34576 2004-05-17  Javier Miranda  <miranda@gnat.com>
34577
34578         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
34579         limited view of a visible sibling.
34580
34581 2004-05-14  Robert Dewar  <dewar@gnat.com>
34582
34583         * gnat_ugn.texi: Minor change to -gnatS documentation
34584
34585         * sprint.adb: Remove some instances of Assert (False) and for this
34586         purpose replace them by output of a ??? string.
34587
34588         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
34589         Assert (False).
34590
34591         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
34592         flag processing. This was suppressing required dependencies in
34593         No_Run_Time mode and is not needed since the binder does not generate
34594         references for things in libgnat anyway.
34595
34596         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
34597         warning.
34598
34599 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
34600
34601         * gnat_ugn.texi: Document AIX-specific issue with initialization of
34602         resolver library.
34603
34604         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
34605         action for the case of an actual parameter in an init proc call.
34606
34607 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
34608
34609         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
34610         subtype, check visible entities in base type.
34611
34612         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
34613         actions if the object is a renaming.
34614
34615         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
34616         Check_Formal_Package_Instance, to determine more precisely when the
34617         formal and the actual denote the same entity.
34618
34619 2004-05-14  Javier Miranda  <miranda@gnat.com>
34620
34621         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
34622
34623         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
34624         corresponding to a private_with must be removed from visibility; it
34625         will be made visible later, just before we analyze the private part of
34626         the package.
34627         (Check_Private_Child_Unit): Allow private_with clauses in public
34628         siblings.
34629         (Install_Siblings): Make visible the private entities of private-withed
34630         siblings.
34631         (Install_Withed_Unit): Do not install the private withed unit if we
34632         are compiling a package declaration and the Private_With_OK flag was
34633         not set by the caller. These declarations will be installed later,
34634         just before we analyze the private part of the package.
34635
34636         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
34637         during the evaluation of the expression that initializes the object,
34638         decorate it with the expected type to avoid cascade errors.
34639         Code cleanup.
34640
34641         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
34642         subprogram we have to install the private_with clauses after its
34643         specification has been analyzed (as documented in AI-262.TXT).
34644
34645         * sem_ch8.adb (Has_Private_With): New function. Determines if the
34646         current compilation unit has a private with on a given entity.
34647         (Find_Direct_Name): Detect the Beaujolais problem described in
34648         AI-262.TXT
34649
34650         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
34651         provides the functionality of the function Is_Ancestor that was
34652         previously available in sem_ch10. It has been renamed to avoid
34653         overloading.
34654
34655         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
34656
34657 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
34658
34659         * utils.c (build_vms_descriptor): Use SImode pointers.
34660
34661 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
34662
34663         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
34664
34665 2004-05-14  GNAT Script  <nobody@gnat.com>
34666
34667         * Make-lang.in: Makefile automatically updated
34668
34669 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
34670
34671         Renaming of target specific files for clarity
34672
34673         * Makefile.in: Rename GNAT target specific files.
34674
34675         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
34676         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
34677         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
34678         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
34679         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
34680         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
34681         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
34682         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
34683         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
34684         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
34685         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
34686         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
34687         51osinte.adb, 51osinte.ads, 51system.ads,
34688         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
34689         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
34690         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
34691         56tpopsp.adb, 57system.ads, 58system.ads,
34692         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
34693         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
34694         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
34695         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
34696         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
34697         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
34698         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
34699         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
34700         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
34701         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
34702         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
34703         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
34704         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
34705         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
34706         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
34707         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
34708         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
34709         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
34710         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
34711         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
34712         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
34713         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
34714         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
34715         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
34716         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
34717         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
34718         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
34719         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
34720         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
34721         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
34722         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
34723         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
34724         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
34725         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
34726         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
34727         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
34728         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
34729         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
34730         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
34731         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
34732
34733         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
34734         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
34735         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
34736         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
34737         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
34738         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
34739         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
34740         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
34741         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
34742         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
34743         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
34744         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
34745         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
34746         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
34747         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
34748         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
34749         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
34750         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
34751         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
34752         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
34753         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
34754         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
34755         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
34756         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
34757         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
34758         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
34759         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
34760         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
34761         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
34762         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
34763         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
34764         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
34765         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
34766         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
34767         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
34768         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
34769         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
34770         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
34771         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
34772         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
34773         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
34774         s-osinte-vms.ads, s-osinte-vxworks.adb,
34775         s-osinte-vxworks.ads, s-osprim-mingw.adb,
34776         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
34777         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
34778         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
34779         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
34780         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
34781         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
34782         s-stchop-vxworks.adb, s-taprop-dummy.adb,
34783         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
34784         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
34785         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
34786         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
34787         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
34788         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
34789         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
34790         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
34791         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
34792         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
34793         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
34794         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
34795         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
34796         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
34797         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
34798         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
34799         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
34800         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
34801         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
34802         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
34803         system-irix-o32.ads, system-linux-x86_64.ads,
34804         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
34805         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
34806         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
34807         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
34808         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
34809         system-vxworks-mips.ads, system-vxworks-ppc.ads,
34810         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
34811         above.
34812
34813 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
34814
34815         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
34816
34817 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
34818
34819         Merge from tree-ssa-20020619-branch.
34820
34821         * config-lang.in (boot_language, build_by_default): Set
34822         to no.
34823         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
34824         (max_size): Add static chain op for call_expr.
34825
34826 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
34827
34828         PR target/15331
34829         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
34830
34831 2004-05-11  Roger Sayle  <roger@eyesopen.com>
34832
34833         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
34834         COND_EXPR.
34835
34836 2004-05-10  Doug Rupp  <rupp@gnat.com>
34837
34838         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
34839         system.aux_dec.
34840
34841         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
34842
34843         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
34844
34845         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
34846         Fixes undefined symbols in IA64 gnatlib.
34847
34848         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
34849
34850         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
34851         Short_Address). This will be moved to system.auxdec.
34852
34853 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
34854
34855         * sem_util.adb: Replace test for presence of a node that is always
34856         present with a call to Discard_Node.
34857
34858         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
34859         Analyze on the library unit node after generation of distribution stub
34860         constructs.  The call was a no-op because Unit_Node has already been
34861         Analyzed, and the tree fragments for the distribution stubs are
34862         analyzed as they are inserted in Exp_Dist.
34863         Update comment regarding to distribution stubs to reflect that we
34864         do not generate stub in separate files anymore.
34865
34866         * einfo.ads: Clarify the fact that a tagged private type has the
34867         E_Record_Type_With_Private Ekind.
34868
34869         * erroutc.adb: Minor reformatting
34870
34871         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
34872         values if line length is increased using -gnatyM (noticed during code
34873         reading).
34874
34875         * eval_fat.adb: Minor reformatting
34876         Put spaces around exponentiation operator
34877
34878 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
34879
34880         PR ada/15005
34881         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
34882         has been rewritten as an explicit dereference, retrieve type of
34883         original node to check for possibly unconstrained record type.
34884
34885 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
34886
34887         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
34888         overriding, use the operation of the parent unconditionally.
34889
34890         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
34891         operation when either operand is a literal, to avoid further
34892         ambiguities.
34893
34894         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
34895         overridden by a previous explicit declaration, mark the previous entity
34896         as overriding.
34897
34898         * sem_disp.adb (Check_Dispatching_Operation): New predicate
34899         Is_Visibly_Controlled, to determine whether a declaration of a
34900         primitive control operation for a derived type overrides an inherited
34901         one. Add warning if the explicit declaration does not override.
34902
34903 2004-05-10  Vincent Celier  <celier@gnat.com>
34904
34905         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
34906         some cases when the sources are no longer present.
34907
34908         * make.adb (Collect_Arguments): Fail if an external source, not part
34909         of any project need to be compiled, when switch -x has not been
34910         specified.
34911
34912         * makeusg.adb: Document new switch -x
34913
34914         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
34915         defaulted to False.
34916
34917         * switch-m.adb (Scan_Make_Switches): New switch -x
34918
34919         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
34920         gnatmake switch -x.
34921
34922         * gnat_ugn.texi: Document new gnatmake switch -x
34923
34924 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
34925
34926         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
34927
34928         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
34929         (process_attributes): Likewise.
34930
34931 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
34932
34933         * s-inmaop.ads: Fix spelling mistake in one of the comments.
34934
34935 2004-05-10  Robert Dewar  <dewar@gnat.com>
34936
34937         * gnat_ugn.texi: Document that for config pragma files, the maximum
34938         line length is always 32767.
34939
34940         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
34941         literals is now allowed.
34942
34943         * gnat-style.texi: Remove statement about splitting long lines before
34944         an operator rather than after, since we do not follow this rule at all.
34945         Clarify rule (really lack of rule) for spaces around exponentiation
34946
34947         * sem_elim.adb: Allow concatenation of string literals as well as a
34948         single string literal for pragma arguments.
34949
34950         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
34951
34952         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
34953         written for append case.
34954
34955         * frontend.adb: Changes to avoid checking max line length in config
34956         pragma files.
34957
34958         * g-os_lib.ads: Minor reformatting
34959
34960         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
34961         wrong in any case. Instead use standard value. Noticed during code
34962         reading.
34963
34964         * opt.ads (Max_Line_Length): New field, used to implement removal of
34965         limitation on length of lines when scanning config pragma files.
34966
34967         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
34968         makeutl.ads, makeutl.adb: Minor reformatting
34969
34970         * scn.adb: Do not check line length while scanning config pragma files
34971         Do not check line length while scanning out license information
34972
34973         * scng.adb: Changes to avoid line length checks while parsing config
34974         pragma files.
34975
34976 2004-05-10  GNAT Script  <nobody@gnat.com>
34977
34978         * Make-lang.in: Makefile automatically updated
34979
34980 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
34981
34982         * osint.adb (Find_Program_Name): Fix handling of VMS version
34983         number.
34984
34985 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
34986
34987         * g-os_lib.ads (Invalid_Time): New constant
34988
34989         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
34990         return OS_Time instead of time_t to match what is imported by Ada.
34991         Now return -1 if the file doesn't exist, instead of a random value
34992
34993 2004-05-05  Robert Dewar  <dewar@gnat.com>
34994
34995         * usage.adb: Add line for -gnatR?s switch
34996
34997         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
34998
34999         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
35000         and for Match (Data_First, Data_last)
35001
35002         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
35003         written when we are dealing with multi-unit files.
35004
35005 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
35006
35007         * Makefile.in: Remove unused targets and variables.
35008
35009 2004-05-05  Vincent Celier  <celier@gnat.com>
35010
35011         * switch-m.adb: New gnatmake switch -eI
35012
35013         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
35014         of new gnatmake switch -eInnn.
35015
35016         * makegpr.adb: Take into account new parameters Index and Src_Index in
35017         Prj.Util.
35018
35019         * clean.adb: Implement support for multi-unit sources, including new
35020         switch -i.
35021
35022         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
35023         Src_Index.
35024
35025         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
35026         (Extract_From_Q): New out parameter Index
35027         (Mark, Is_Marked): Subprograms moved to Makeutl
35028         (Switches_Of): New parameter Source_Index
35029         (Add_Switch): New parameter Index
35030         (Check): New parameter Source_Index
35031         (Collect_Arguments): New parameter Source_Index
35032         (Collect_Arguments_And_Compile): New parameter Source_Index
35033         (Compile): New parameter Source_Index
35034         Put subprograms in alphabetical order
35035         Add support for multi-source sources, including in project files.
35036
35037         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
35038         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
35039         Make.
35040
35041         * makeusg.adb: New gnatmake switch -eInnn
35042
35043         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
35044         Prj.Util.Value_Of.
35045
35046         * opt.ads (Main_Index): New variable, defaulted to 0.
35047
35048         * osint.ads, osinte.adb (Add_File): New parameter Index
35049         (Current_Source_Index): New function
35050
35051         * prj.adb: Take into account new components Index and Src_Index
35052
35053         * prj.ads (String_Element): New component Index
35054         (Variable_Value): New component Index
35055         (Array_Element): New component Src_Index
35056
35057         * prj-attr.adb: Indicate that optional index may be specified for
35058         attributes Main, Executable, Spec, Body and some of Switches.
35059
35060         * prj-attr.ads (Attribute_Kind): New values for optional indexes
35061         (Attribute_Record): New component Optional_Index
35062
35063         * prj-com.ads (File_Name_Data): New component Index
35064
35065         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
35066
35067         * prj-env.adb (Put): Output optional index
35068
35069         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
35070         attributes Spec and Body.
35071
35072         * prj-nmsc.adb: Process optional indexes
35073
35074         * prj-pp.adb: Ouput "at" for optional indexes
35075
35076         * prj-proc.adb: Take into account optional indexes
35077
35078         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
35079         Optional_Index. For string literal,
35080         process optional index when Optional_Index is True.
35081         (Parse_Expresion): New Boolean parameter Optional_Index
35082
35083         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
35084         (Set_Source_Index_Of): New procedure
35085
35086         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
35087         index.
35088
35089         * prj-util.ads (Executable_Of): New parameter Index
35090         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
35091         New parameter Src_Index, defaulted to 0.
35092
35093 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
35094
35095         PR ada/15257
35096         * sem_ch3.adb (Access_Definition): If this is an access parameter
35097         whose designated type is imported through a limited_with clause, do
35098         not add the enclosing subprogram to the list of private dependents of
35099         the type.
35100
35101 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
35102
35103         PR ada/15258
35104         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
35105         a limited_with clause, and the other is its non-limited view.
35106
35107 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
35108
35109         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
35110
35111         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
35112         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
35113         Stand.Boolean_Literals to produce references to entities
35114         Standard_False and Standard_True from compile-time computed boolean
35115         values.
35116
35117         * stand.ads (Boolean_Literals): New variable, provides the entity
35118         values for False and True, for use by the expander.
35119
35120 2004-05-05  Doug Rupp  <rupp@gnat.com>
35121
35122         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
35123         5vinmaop.adb: Unchecked convert Short_Address vice Address
35124
35125         * adaint.c, raise.c: Caste CRTL function return value
35126         to avoid gcc error on 32/64 bit IVMS.
35127
35128         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
35129         target = IA64/VMS.
35130
35131         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
35132
35133         * 5qsystem.ads (Address): Declare as Long_Integer
35134         (Short_Address): Declare as 32 bit subtype of Address
35135         Declare  abstract address operations to avoid gratuitous ambiguities.
35136
35137 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
35138
35139         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
35140         instead of the old Boolean_Entry_Barriers.
35141         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
35142
35143 2004-05-05  GNAT Script  <nobody@gnat.com>
35144
35145         * Make-lang.in: Makefile automatically updated
35146
35147 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
35148
35149         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
35150
35151 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
35152
35153         PR ada/15152
35154         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
35155         alone. Replacing object references by literals is inappropriate in a
35156         so low level context.
35157
35158 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
35159
35160         * a-exexpr.adb: Add comments
35161
35162 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
35163
35164         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
35165         declare the Ancestor_Tags array in Type_Specific_Data with a small size
35166         without risking a bounds check error when accessing one of its
35167         components.
35168         (Type_Specific_Data): Define Ancestor_Tags as a small array.
35169         This prevents us from hitting a limitation during the debug info
35170         generation when using stabs.
35171
35172         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
35173         small array.
35174         This prevents us from hitting a limitation during the debug info
35175         generation when using stabs.
35176
35177 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
35178
35179         lang-specs.h: Remove -gnatz* from specs.
35180
35181 2004-05-03  Vincent Celier  <celier@gnat.com>
35182
35183         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
35184
35185         * Make-lang.in, Makefile.in: Add gprmake
35186
35187 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
35188
35189         * sem_aggr.adb: Fix typo in comment.
35190
35191 2004-05-03  Robert Dewar  <dewar@gnat.com>
35192
35193         * make.adb: Minor reformatting
35194
35195         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
35196
35197         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
35198         so that it works when address is not a private type.
35199
35200         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
35201         properly with rewritten unchecked conversions. This prevents
35202         order-of-elaboration issues that can otherwise arise.
35203         (Minimum_Size): Don't check size of access types under VMS
35204
35205         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
35206         interpretations of integer literals as type System.Address.
35207
35208         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
35209         (Is_Descendent_Of): New function
35210
35211 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
35212
35213         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
35214         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
35215         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
35216
35217         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
35218         of the old Max_Entry_Queue_Depth.
35219
35220         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
35221         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
35222         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
35223
35224         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
35225         New entry for proper handling of Max_Entry_Queue_Depth.
35226         New entry for proper handling of No_Dynamic_Interrupts.
35227
35228         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
35229         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
35230         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
35231         the GNAT specific restriction Max_Entry_Queue_Depth.
35232         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
35233         the GNAT specific restriction No_Dynamic_Interrupts.
35234
35235         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
35236         instead of the old Boolean_Entry_Barriers.
35237         Use the new restriction No_Dynamic_Attachment instead of the old
35238         No_Dynamic_Interrupts.
35239
35240         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
35241         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
35242
35243         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
35244         of the old Max_Entry_Queue_Depth.
35245
35246 2004-05-03  GNAT Script  <nobody@gnat.com>
35247
35248         * Make-lang.in: Makefile automatically updated
35249
35250 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
35251
35252         * checks.adb (Enable_Range_Check): If the prefix of an index component
35253         is an access to an unconstrained array, perform check unconditionally.
35254
35255 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35256
35257         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
35258         Component_Clause.
35259
35260 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
35261
35262         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
35263         alternate stack setting. There was no support for the tasking cases
35264         and the changes eventually caused a number of side-effect failures in
35265         the non-tasking case too.
35266
35267 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
35268
35269         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
35270         -gnats is passed.
35271
35272 2004-04-29  Vincent Celier  <celier@gnat.com>
35273
35274         * make.adb (Gnatmake): Increase max size of argument array for
35275         gnatbind for the potential addition of -F.
35276         If there are Stand-Alone Library projects, invoke gnatbind with -F to
35277         be sure that elaboration flags will be checked.
35278
35279         * switch-c.adb: Correct call to Scan_Pos for -gnateI
35280
35281 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
35282
35283         * sem_warn.adb (Check_References): Move '<access-variable> may be
35284         null' warning out of under Warn_On_No_Value_Assigned.
35285
35286 2004-04-29  Ed Falis  <falis@gnat.com>
35287
35288         * gnat_ugn.texi: Fixed texi error
35289
35290 2004-04-29  Robert Dewar  <dewar@gnat.com>
35291
35292         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
35293         abstract operations if they come from predefined files.
35294
35295         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
35296         Dynamic, not RM).
35297
35298         * s-addope.adb: Correct obvious error in mod function
35299
35300 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
35301
35302         * Makefile.in: Add target pairs for powerpc darwin*
35303         tasking support.
35304
35305         * a-intnam-darwin.ads, s-osinte-darwin.adb,
35306         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
35307
35308 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
35309
35310         * Makefile.in: Add target macro definitions for s390*-linux*.
35311         * system-linux-s390.ads: New file.
35312         * system-linux-s390x.ads: New file.
35313
35314 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
35315
35316         * gnat_ugn.texi: Correct argument to @setfilename.
35317
35318 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
35319
35320         * a-exexpr.adb (Unwind_Word): New data type.
35321         (Unwind_Exception): Use it as type of Private1 and Private2.
35322
35323         * raise.c (db_action_for): Fix debug printf.
35324
35325 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
35326
35327         * a-wtmoio.ads: Formal type must be a modular type, not a signed
35328         integer type.
35329
35330 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35331
35332         * decl.c (gnat_to_gnu_entity, case object): Call
35333         __builtin_update_setjmp_buf.
35334
35335         * gigi.h (update_setjmp_buf): Deleted.
35336         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
35337
35338         * misc.c: (update_setjmp_buf): Deleted.
35339
35340         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
35341         around block of RTL.
35342
35343         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
35344
35345 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
35346
35347         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
35348         subprogram for which no pragma All_Calls_Remote applies, store the
35349         address of the real subprogram in the underlying record type, so local
35350         dereferences do not go through the PCS.
35351
35352 2004-04-26  Robert Dewar  <dewar@gnat.com>
35353
35354         * i-c.ads: Add some type qualifications to avoid ambiguities when
35355         compiling with s-auxdec.ads and a non-private address type.
35356
35357 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
35358
35359         * Makefile.rtl: Fix error in previous check-in:
35360         Add s-addope.o to non tasking object list (rather than tasking object
35361         list).
35362
35363 2004-04-26  Javier Miranda  <miranda@gnat.com>
35364
35365         * sem_aggr.adb: Fix typo in comments
35366         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
35367         Required to check the null-exclusion attribute.
35368
35369         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
35370         case of anonymous access types in record and array components. For a
35371         component definition the level is the same of the enclosing composite
35372         type.
35373
35374         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
35375         that are anonymous access types the level of accessibility depends on
35376         the enclosing type declaration. In order to have this information, set
35377         the scope of the anonymous access type to the enclosing record type
35378         declaration.
35379         (Array_Type_Declaration): In case of components that are anonymous
35380         access types the level of accessibility depends on the enclosing type
35381         declaration. In order to have this information, set the scope of the
35382         anonymous access type to the enclosing array type declaration.
35383
35384         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
35385         access type.
35386
35387         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
35388         renaming of anonymous access-to-constant types allowed if and only if
35389         the renamed object is access-to-constant.
35390
35391         * sem_util.adb (Type_Access_Level): In case of anonymous access types
35392         that are component_definition or discriminants of a nonlimited type,
35393         the level is the same as that of the enclosing component type.
35394
35395 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
35396
35397         * sem_elim.adb: Some minor code reorganization from code reading. Fix
35398         misprint in the function name (File_Name_Match).
35399
35400 2004-04-23  Laurent Guerby  <laurent@guerby.net>
35401
35402         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
35403         install.
35404
35405 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
35406
35407         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
35408
35409 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
35410
35411         * adaint.c (__gnat_try_lock): No longer requires that the parent
35412         directory be writable, the directory itself is enough.
35413         (gnat_is_absolute_path): Change profile, so that the call from
35414         GNAT.OS_Lib can be made more efficient.
35415
35416         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
35417         from GNAT.OS_Lib can be made more efficient.
35418
35419         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
35420         one copy of the file name. Found by code reading.
35421
35422 2004-04-23  Vincent Celier  <celier@gnat.com>
35423
35424         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
35425         Correct documentation on gnatmake switches transmitted to the compiler
35426
35427         * ali.ads: Minor comment fix
35428
35429 2004-04-23  Javier Miranda  <miranda@gnat.com>
35430
35431         * sem_ch6.adb: (Confirming Types): Code cleanup
35432
35433         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
35434         subprogram types: E_Anonymous_Access_Subprogram_Type and
35435         E_Anonymous_Access_Protected_Subprogram_Type.
35436
35437 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
35438
35439         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
35440         whether a pragma All_Calls_Remote applies to the subprogram on which
35441         'Access is taken.
35442         No functional change is introduced by this revision; the new parameter
35443         will be used to allow calls to local RCI subprograms to be optimized
35444         to not use the PCS in the case where no pragma All_Calls_Remote applies,
35445         as is already done in the PolyORB implementation of the DSA.
35446
35447         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
35448         whether a pragma All_Calls_Remote applies to the subprogram on which
35449         'Access is taken.
35450         No functional change is introduced by this revision; the new parameter
35451         will be used to allow calls to local RCI subprograms to be optimized
35452         to not use the PCS in the case where no pragma All_Calls_Remote applies,
35453         as is already done in the PolyORB implementation of the DSA.
35454
35455 2004-04-23  Robert Dewar  <dewar@gnat.com>
35456
35457         * Makefile.rtl: Add entry for s-addope.o in run time library list
35458         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
35459         * s-addope.ads, s-addope.adb: New files.
35460
35461         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
35462         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
35463         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
35464         System.Address to be non-private and signed.
35465
35466         * sem_elim.adb: Minor reformatting (fairly extensive)
35467         Some minor code reorganization from code reading
35468         Add a couple of ??? comments
35469
35470 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35471
35472         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
35473         (tree_transform, case N_If_Statement): Remove non-determinism.
35474
35475         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
35476
35477 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
35478
35479         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
35480         Eliminate' section.
35481
35482         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
35483         no longer used as a parameter name for Eliminate pragma).
35484
35485 2004-04-22  Laurent Guerby  <laurent@guerby.net>
35486
35487         PR optimization/14984
35488         PR optimization/14985
35489         * trans.c (gigi): Fix non determinism leading to bootstrap
35490         comparison failures.
35491
35492 2004-04-21  Pascal Obry  <obry@gnat.com>
35493
35494         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
35495         passed to spawnvp() to properly handle program pathname with spaces on
35496         Win32.
35497
35498 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
35499
35500         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
35501         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
35502         unlocked in case of exceptions.
35503
35504 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
35505
35506         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
35507         This function does not exist anymore.
35508
35509 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
35510
35511         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
35512
35513         * link.c: Move variables to the __gnat name space.
35514
35515         * Makefile.in: list link.o explicitly when needed.
35516
35517         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
35518
35519 2004-04-21  Javier Miranda  <miranda@gnat.com>
35520
35521         * einfo.adb (Original_Access_Type): New subprogram
35522         (Set_Original_Access_Type): New subprogram
35523         (Write_Field21_Name): Write the name of the new field
35524
35525         * einfo.ads (Original_Access_Type): New field present in access to
35526         subprogram types.
35527         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
35528         E_Anonymous_Access_Protected_Subprogram_Type.
35529
35530         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
35531         subprogram types.
35532
35533         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
35534         to anonymous access to subprogram types.
35535
35536         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
35537         to subprogram types.
35538
35539         * sem_ch3.adb (Access_Definition): Complete decoration of entities
35540         corresponding to anonymous access to subprogram types.
35541         (Analyze_Component_Declaration): Add new actual to the call to
35542         subprogram replace_anonymous_access_to_protected_subprogram.
35543         (Array_Type_Declaration): Add new actual to the call to subprogram
35544         replace_anonymous_access_to_protected_subprogram.
35545         (Process_Discriminants): Add new actual to the call to subprogram
35546         replace_anonymous_access_to_protected_subprogram.
35547         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
35548
35549         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
35550         formal.
35551
35552         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
35553         access to subprogram types.
35554
35555         * sem_util.adb (Has_Declarations): Addition of package_specification
35556         nodes.
35557
35558 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
35559
35560         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
35561         inlined flags to renamed entity only if in current unit.
35562
35563 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
35564
35565         * s-parint.ads: Add DSA implementation marker.
35566
35567         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
35568         value of System.Partition_Interface.DSA_Implementation to determine
35569         what version of the distributed systems annex is available (no
35570         implementation, GLADE, or PolyORB).
35571
35572 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
35573
35574         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
35575
35576 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35577
35578         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
35579         with new type if alias sets differ.
35580         Fixes ACATS c41103b.
35581
35582 2004-04-21  Vincent Celier  <celier@gnat.com>
35583
35584         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
35585         Add array Lang_Args for the language specific compiling argument
35586         switches.
35587
35588         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
35589
35590 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
35591
35592         * gnat_rm.texi: Update the descripton of the Eliminate pragma
35593         according to the recent changes in the format of the parameters of the
35594         pragma (replacing Homonym_Number with Source_Location).
35595
35596 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
35597
35598         * 5isystem.ads: Removed, unused.
35599
35600         * gnat_rm.texi: Redo 1.13 change.
35601
35602 2004-04-19  Robert Dewar  <dewar@gnat.com>
35603
35604         * s-stoele.ads: Clean up definition of Storage_Offset (the new
35605         definition is cleaner, avoids the kludge of explicit Standard operator
35606         references, and also is consistent with a visible System.Address with
35607         no visible operations.
35608
35609         * s-geveop.adb: Add declarations to avoid assumption of visible
35610         operations on type System.Address (since these might not be available
35611         if Address is a non-private type for which the operations
35612         are made abstract).
35613
35614         * sem_eval.adb: Minor reformatting
35615
35616         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
35617         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
35618         reformatting (new function spec format).
35619
35620         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
35621         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
35622         s-caun64.adb: Add declarations to avoid assumption of visible
35623         operations on type System.Address (since these might not be available
35624         if Address is a non-private type for which the operations are made
35625         abstract).
35626
35627         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
35628
35629         * exp_intr.adb: Minor comment update
35630
35631         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
35632
35633         * 5omastop.adb: Add declarations to avoid assumption of visible
35634         operations on type System.Address (since these might not be available
35635         if Address is a non-private type for which the operations
35636         are made abstract).
35637
35638 2004-04-19  Vincent Celier  <celier@gnat.com>
35639
35640         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
35641
35642         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
35643         defaulted to Ada.
35644
35645         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
35646         defaulted to Ada.
35647         Call Check with Process_Languages.
35648         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
35649         with Process_Languages.
35650         (Recursive_Check): New Boolean parameter Process_Languages. Call
35651         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
35652         Process_Languages.
35653
35654         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
35655
35656         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
35657         parameter Ada_Main, defaulted to True.
35658         Check for Ada specific characteristics only when Ada_Main is True.
35659
35660         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
35661
35662         * prj.adb: (Project_Empty): Add new Project_Data components.
35663
35664         * prj.ads: New types and tables for non Ada languages.
35665         (Project_Data): New components Languages, Impl_Suffixes,
35666         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
35667         Include_Path, Include_Data_Set.
35668
35669         * prj-env.ads, prj-env.adb: Minor reformatting
35670
35671         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
35672         Put subprograms in alphabetical order
35673
35674         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
35675         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
35676         Opt.Follow_Links.
35677
35678         * mlib-prj.adb: Back out modification in last version, as they are
35679         incorrect.
35680         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
35681
35682         * make.adb: (Mains): Moved to package Makeutl
35683         (Linker_Opts): Moved to package Makeutl
35684         (Is_External_Assignment): Moved to package Makeutl
35685         (Test_If_Relative_Path): Moved to package Makeutl
35686         (Gnatmake): Move sorting of linker options to function
35687         Makeutl.Linker_Options_Switches.
35688
35689         * makeutl.ads, makeutl.adb: New files.
35690
35691         * Makefile.in: Add makeutl.o to the object files for gnatmake
35692
35693         * makeusg.adb: Add line for new switch -eL.
35694
35695         * gnatls.adb (Image): New function.
35696         (Output_Unit): If in verbose mode, output the list of restrictions
35697         specified by pragmas Restrictions.
35698
35699         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
35700         Text_IO.
35701
35702         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
35703         needed, to put it in the range 1970 (included) - 2026 (excluded).
35704         (Time_Of): Do not shift Unix_Min_Year (1970).
35705         Shift the date by multiple of 56 years, if needed, to put it in the
35706         range 1970 (included) - 2026 (excluded).
35707
35708         * adaint.h, adaint.c (__gnat_set_executable): New function.
35709
35710 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35711
35712         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
35713         and pop GC context.
35714         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
35715         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
35716         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
35717         (tree_transform, case N_Code_Statement): Likewise.
35718         (gnat_expand_stmt, case LABEL_STMT): Don't look at
35719         LABEL_STMT_FIRST_IN_EH.
35720         (gnat_expand_stmt, case ASM_STMT): New case.
35721
35722         * utils2.c (build_unary_op): Properly set TREE_READONLY of
35723         UNCONSTRAINED_ARRAY_REF.
35724
35725         * utils.c (poplevel): Temporarily push/pop GC context around inline
35726         function expansion.
35727
35728         * decl.c (maybe_variable): Properly set TREE_READONLY of
35729         UNCONSTRAINED_ARRAY_REF.
35730         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
35731
35732         * ada-tree.def: (ASM_STMT): New.
35733
35734         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
35735         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
35736         ASM_STMT_INPUT): New.
35737         (ASM_STMT_CLOBBER): Likewise.
35738
35739 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
35740
35741         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
35742         general rcheck mechanism to raise Program_Error for E.4(18), instead
35743         of a custom raiser in System.Partition_Interface.
35744         Part of general cleanup work before PolyORB integration.
35745
35746         * snames.ads, snames.adb: Add new runtime library entities and names
35747         for PolyORB DSA.
35748
35749         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35750         exp_dist.
35751         (Build_Subprogram_Id): New subprogram provided by exp_dist
35752         Code reorganisation in preparation for PolyORB integration.
35753
35754         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
35755         exp_dist.
35756         (Build_Subprogram_Id): New subprogram provided by exp_dist
35757
35758         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
35759         actual parameter types for call to dereference of an
35760         access-to-subprogram type.
35761
35762         * rtsfind.ads: Add new runtime library entities and names for PolyORB
35763         DSA.
35764
35765         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
35766         instead, which has the same behaviour here since we never pass it a
35767         NULL pointer.
35768
35769         * link.c (run_path_option, Solaris case): Use -Wl, as for other
35770         platforms.
35771
35772         * Makefile.in: adjust object file lists for gnatlink and gnatmake
35773         to account for new dependency upon Interfaces.C.Strings + link.o
35774         For x86 FreeBSD, use 86numaux.
35775
35776         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
35777         from Mlib.Tgt to Mlib.
35778
35779         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
35780         target-independent.
35781
35782         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
35783         target-specific versions of this subprogram, now implemented as a
35784         target-independent function in Mlib.
35785
35786         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
35787         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
35788         (Linker_Library_Path_Option): Remove target-specific versions of this
35789         subprogram, now implemented as a target-independent function in Mlib.
35790
35791         * atree.adb: (Allocate_Initialize_Node): New subprogram.
35792         Factors out node table slots allocation.
35793         (Fix_Parents): New subprogram.
35794         Encapsulate the pattern of fixing up parent pointers for syntactic
35795         children of a rewritten node.
35796         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
35797         (Rewrite): Use New_Copy when creating saved copy of original node.
35798         (Replace): Use Copy_Node to copy nodes.
35799
35800 2004-04-19  Javier Miranda  <miranda@gnat.com>
35801
35802         * sprint.adb (Sprint_Node_Actual): Give support to the new
35803         Access_To_Subprogram node available in Access_Definition nodes. In
35804         addition, give support to the AI-231 node fields: null-exclusion,
35805         all-present, constant-present.
35806
35807         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
35808
35809         * sinfo.ads, sinfo.adb:
35810         New field Access_To_Subprogram_Definition in Access_Definition nodes
35811
35812         * sem_ch6.adb (Process_Formals): Move here the code that creates and
35813         decorates internal subtype declaration corresponding to the
35814         null-excluding formal. This code was previously in Set_Actual_Subtypes.
35815         In addition, carry out some code cleanup on this code. In case of
35816         access to protected subprogram call
35817         Replace_Anonymous_Access_To_Protected_Subprogram.
35818         (Set_Actual_Subtypes): Code cleanup.
35819
35820         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
35821         Find_Type in case of anonymous access renamings. Add warning in case of
35822         null-excluding attribute used in anonymous access renaming.
35823
35824         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
35825         subprogram
35826
35827         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
35828         subprogram.
35829         (Access_Definition): In case of anonymous access to subprograms call
35830         the corresponding semantic routine to decorate the node.
35831         (Access_Subprogram_Declaration): Addition of some comments indicating
35832         some code that probably should be added here. Detected by comparison
35833         with the access_definition subprogram.
35834         (Analyze_Component_Declaration): In case of access to protected
35835         subprogram call Replace_Anonymous_Access_To_Protected.
35836         (Array_Type_Declaration): In case of access to protected subprogram call
35837         Replace_Anonymous_Access_To_Protected_Subprogram.
35838         (Process_Discriminants): In case of access to protected subprogram call
35839         Replace_Anonymous_Access_To_Protected_Subprogram.
35840
35841         * par.adb (P_Access_Definition): New formal that indicates if the
35842         null-exclusion part was present.
35843         (P_Access_Type_Definition): New formal that indicates if the caller has
35844         already parsed the null-excluding part.
35845
35846         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
35847         (P_Identifier_Declarations): Code cleanup and give support to renamings
35848         of anonymous access to subprogram types.
35849         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
35850         (P_Array_Type_Definition): Give support to AI-254.
35851         (P_Component_Items): Give support to AI-254.
35852         (P_Access_Definition): New formal that indicates if the header was
35853         already parsed by the caller.
35854         (P_Access_Type_Definition): New formal that indicates if the caller has
35855         already parsed the null-excluding part.
35856
35857         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
35858         call to P_Access_Definition.
35859
35860 2004-04-19  Geert Bosch  <bosch@gnat.com>
35861
35862         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
35863         the delicate semantics of floating-point to integer conversion.
35864         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
35865
35866         * eval_fat.adb (Machine_Mantissa): Moved to spec.
35867         (Machine_Radix): New function.
35868
35869         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
35870         conversion checks.
35871         (Machine_Radix): New function also for use in conversion checks.
35872
35873 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
35874
35875         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
35876
35877         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
35878         to decorate the access-to-protected subprogram and the equivalent type.
35879
35880         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
35881         to anonymous access to subprogram types.
35882
35883         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
35884         constant-folding, for legality checks in contexts that require an RM
35885         static expression.
35886
35887         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
35888         temporary but stack checking is not enabled, increment serial number
35889         to so that symbol generation is consistent with and without stack
35890         checking.
35891
35892         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
35893         independent on whether stack checking is enabled, caller must check
35894         the corresponding flag.
35895
35896         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
35897         range checks.
35898         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
35899         parent if it has discriminants.
35900         (Build_Derived_Private_Type): Constructed full view does
35901         not come from source.
35902         (Process_Discriminants): Default discriminants on a tagged type are
35903         legal if this is the internal completion of a private untagged
35904         derivation.
35905
35906         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
35907         no constraint checks, because it corresponds to an existing object.
35908
35909         * sem_prag.adb (Process_Convention): Pragma applies
35910         only to subprograms in the same declarative part, i.e. the same unit,
35911         not the same scope.
35912
35913         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
35914         ignore type mismatch on a numeric conversion if expression comes from
35915         expansion.
35916
35917 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
35918
35919         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
35920         Homonym_Number parameter, add processing for Source_Location parameter
35921         corresponding.
35922         (Check_Eliminated): Remove the check for homonym numbers, add the check
35923         for source location traces.
35924
35925         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
35926         with Arg_Source_Location corresponding to the changes in the format of
35927         the pragma.
35928
35929         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
35930         Eliminate pragma corresponding to the changes in the format of the
35931         pragma: Homonym_Number is replaced with Source_Location, two ways of
35932         distinguishing homonyms are mutially-exclusive.
35933
35934 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
35935
35936         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
35937
35938         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
35939         No_Dollar_In_Label, no longer necessary, as it is always True.
35940         (Strip_Suffixes): Likewise.
35941
35942 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
35943
35944         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
35945         modulus for compatibility with size clause on targets with 16-bit
35946         Integer.
35947
35948         * layout.adb (Discrimify): In the case of private types, set Vtyp to
35949         full type to fix type mismatches on calls to size functions for
35950         discriminant-dependent array components.
35951
35952 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
35953
35954         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
35955         lib.
35956
35957 2004-04-19  Pascal Obry  <obry@gnat.com>
35958
35959         * mdll-utl.adb (Locate): New version is idempotent.
35960
35961 2004-04-17  Laurent Guerby  <laurent@guerby.net>
35962
35963         PR ada/14988 (partial)
35964         * impunit.adb: Fix typo.
35965
35966 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
35967
35968         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
35969         and install-rts-cert targets.  Remove all gnatlib and gnattools
35970         targets and all other rts-* targets (moved to libada).  Remove (now)
35971         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
35972         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
35973
35974 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35975
35976         * trans.c (tree_transform): Shortcut returning error_mark_node for
35977         statements in annotate_only_mode.
35978         (tree_transform, case N_Label, case N_Return_Statement,
35979         N_Goto_Statement): Make statement tree instead of generating code.
35980         (tree_transform, case N_Assignment_Statement): No longer check
35981         type_annotate_only.
35982         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
35983         RETURN_STMT): New.
35984         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
35985         New fcns.
35986         (gnat_to_gnu): Collect any RTL generated and deal with it.
35987         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
35988         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
35989         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
35990
35991         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
35992
35993         * ada-tree.def (EXPR_STMT): Fix typo in name.
35994         (BLOCK_STMT, IF_STMT): New nodes.
35995
35996         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
35997         LABEL_STMT_FIRST_IN_EH): New macros.
35998         (RETURN_STMT_EXPR): Likewise.
35999
36000         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
36001         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
36002
36003 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
36004
36005         * atree.ads: Correct documentation on extended nodes.
36006
36007         * link.c: Set run_path_option for FreeBSD.
36008
36009 2004-04-08  Vincent Celier  <celier@gnat.com>
36010
36011         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
36012         one of the ALI file, do not link with DEC lib.
36013
36014         * par.adb Remove the last two characters ("%s" or "%b") when checking
36015         if a language defined unit may be recompiled.
36016
36017 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
36018
36019         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
36020         removal of abstract operation leaves no possible interpretation for
36021         expression.
36022
36023         * sem_eval.adb (Eval_Qualified_Expression): Use
36024         Set_Raises_Constraint_Error on node when needed, so that it does not
36025         get optimized away by subsequent optimizations.
36026
36027         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
36028         operands even when they are not wrapped in a type conversion.
36029
36030 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
36031
36032         * sem_prag.adb (Set_Exported): Warn about making static as result of
36033         export only when the export is coming from source. This may be not
36034         be true e.g. on VMS where we expand export pragmas for exception codes
36035         together with imported or exported exceptions, and we don't want the
36036         user to be warned about something he didn't write.
36037
36038 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
36039
36040         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
36041         duplication between normal entities and those declared as renamings.
36042         No functional change.
36043
36044         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
36045         inline functions returning an unconstrained result.
36046
36047 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
36048
36049         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
36050         conform to what other front-ends do.
36051
36052 2004-04-08  Doug Rupp  <rupp@gnat.com>
36053
36054         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
36055         libraries.
36056
36057 2004-04-06  Pascal Obry  <obry@gnat.com>
36058
36059         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
36060
36061         * osint.adb (Program_Name): Do not look past a directory separator.
36062
36063 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
36064
36065         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
36066
36067         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
36068         requirement for preserving a copy of the original assignment node.
36069
36070         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
36071
36072 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
36073
36074         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
36075         when supported.
36076
36077 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
36078
36079         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
36080         operator calls in functional notation, and apply
36081         Universal_Interpretation to operands, not to their type.
36082
36083 2004-04-06  Robert Dewar  <dewar@gnat.com>
36084
36085         * 5wdirval.adb: Minor reformatting
36086
36087 2004-04-06  Ed Falis  <falis@gnat.com>
36088
36089         * gnat_rm.texi: Improve a reference to the GCC manual
36090
36091 2004-04-05  Vincent Celier  <celier@gnat.com>
36092
36093         * adaint.h, adaint.c: Add function __gnat_named_file_length
36094
36095         * impunit.adb: Add Ada.Directories to the list
36096
36097         * Makefile.in: Add VMS and Windows versions of
36098         Ada.Directories.Validity package body.
36099
36100         * Makefile.rtl: Add a-direct and a-dirval
36101
36102         * mlib-tgt.ads: Minor comment update.
36103
36104         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
36105         a-direct.ads, a-direct.adb: New files.
36106
36107 2004-04-05  Vincent Celier  <celier@gnat.com>
36108
36109         PR ada/13620
36110         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
36111         just to the compiler.
36112
36113 2004-04-05  Robert Dewar  <dewar@gnat.com>
36114
36115         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
36116         returned string is 1.
36117
36118         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
36119
36120         * eval_fat.ads: Minor reformatting
36121
36122         * g-curexc.ads: Document that lower bound of returned string values
36123         is always one.
36124
36125         * gnatlink.adb: Add ??? comment for previous change
36126         (need to document why this is VMS specific)
36127
36128         * s-stoele.ads: Minor reformatting
36129
36130         * tbuild.ads: Minor reformatting throughout (new function specs)
36131
36132         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
36133         after WITH.
36134
36135         * scng.adb: Minor reformatting
36136
36137 2004-04-05  Geert Bosch  <bosch@gnat.com>
36138
36139         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
36140         (Leading_Part): Still perform truncation to machine number if the
36141         specified radix_digits is greater or equal to machine_mantissa.
36142
36143 2004-04-05  Javier Miranda  <miranda@gnat.com>
36144
36145         * par-ch3.adb: Complete documentation of previous change
36146         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
36147         (aliased must appear before constant).
36148
36149         * par-ch4.adb: Complete documentation of previous change.
36150
36151         * par-ch6.adb: Complete documentation of previous change.
36152
36153         * sinfo.ads: Fix typo in commment.
36154
36155 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
36156
36157         * sem_ch3.adb (Inherit_Components): If derived type is private and has
36158         stored discriminants, use its discriminants to constrain parent type,
36159         as is done for non-private derived record types.
36160
36161         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
36162         Ada 2005 AI-310: an abstract non-dispatching operation is not a
36163         candidate interpretation in an overloaded call.
36164
36165         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
36166         expression is Null and target type is not an access type (e.g. a
36167         non-private address type).
36168
36169 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
36170
36171         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
36172         statement whose right-hand side is an inlined call, save a copy of the
36173         original assignment subtree to preserve enough consistency for
36174         Analyze_Assignment to proceed.
36175
36176         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
36177         complete assignment subtree which is now unnecessary, as the expansion
36178         of inlined call has been improved to preserve a consistent assignment
36179         tree.  Note_Possible_Modification must be called only
36180         after checks have been applied, or else unnecessary checks will
36181         be generated.
36182
36183         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
36184         of explicit dereferences that do not Come_From_Source:
36185          - be selective on cases where we must go back to the dereferenced
36186            pointer (an assignment to an implicit dereference must not be
36187            recorded as modifying the pointer);
36188          - do not rely on Original_Node being present (Analyze_Assignment
36189            calls Note_Possible_Modification on a copied tree).
36190
36191         * sem_warn.adb (Check_References): When an unset reference to a pointer
36192         that is never assigned is encountered, prefer '<pointer> may be null'
36193         warning over '<pointer> is never assigned a value'.
36194
36195 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
36196
36197         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
36198         the ABI.
36199
36200 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
36201
36202         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
36203         libexc. We currently don't reference anything in this library and
36204         linking it in triggers linker warnings we don't want to see.
36205
36206         * init.c: Update comments.
36207
36208 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36209
36210         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
36211         * utils.c (create_field_decl): Likewise.
36212         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
36213
36214 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
36215
36216         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
36217         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
36218         Add info directory entry and category.
36219
36220 2004-04-02  Jan Hubicka  <jh@suse.cz>
36221
36222         * utils.c: Include function.h
36223         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
36224
36225 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
36226
36227         PR ada/14150
36228         * Make-lang.in: Clean up generation of documentation
36229
36230         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
36231
36232         * xgnatug.adb: Removed, replaced by xgnatugn.adb
36233
36234         * xgnatugn.adb: Replaces xgnatug.adb
36235
36236         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
36237
36238         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
36239
36240         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
36241         gnat_ug_wnt.texi: Removed.
36242
36243 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
36244
36245         * utils2.c: Update copyright notice.
36246
36247 2004-04-01  Robert Dewar  <dewar@gnat.com>
36248
36249         * checks.adb: Minor reformatting throughout
36250         Note that prev checkin added RM reference to alignment warning
36251
36252 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
36253
36254         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
36255         non-static when building aggregate for bit-packed array.
36256
36257         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
36258         function call that is itself the actual in a procedure call, build
36259         temporary for it.
36260
36261         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
36262         a string literal, create a temporary for it, constant folding only
36263         handles scalars here.
36264
36265 2004-04-01  Vincent Celier  <celier@gnat.com>
36266
36267         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
36268         Error_Msg_SP): New empty procedures to instantiate the Scanner.
36269         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
36270         tokens.
36271         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
36272         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
36273         and get the checksum.
36274
36275         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
36276         already in the Q.
36277         Increase the Marking_Label at the end of the Multiple_Main_Loop,
36278         instead of at the beginning.
36279
36280         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
36281         directly.
36282         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
36283         on VMS.
36284
36285         * osint.ads (Multi_Unit_Index_Character): New Character global variable
36286
36287         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
36288         not '~' directly.
36289
36290         * par.adb: Remove test on file name to detect language defined units.
36291         Add test on unit name, after parsing, to detect language defined units
36292         that are not compiled with -gnatg (except System.RPC and its children)
36293
36294         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
36295         following units without style checking.
36296
36297         * switch-c.adb: Change -gnatC to -gnateI
36298
36299         * usage.adb: Document new switch -gnateInnn
36300
36301         * scng.adb (Accumulate_Token_Checksum): New procedure
36302         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
36303         word or literal number.
36304         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
36305         numbers.
36306
36307 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
36308
36309         * a-tasatt.adb,
36310         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
36311         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
36312         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
36313         5vtpopde.adb: Add missing 'constant' keywords.
36314
36315 2004-04-01  Javier Miranda  <miranda@gnat.com>
36316
36317         * par-ch4.adb: (P_Allocator): Code cleanup
36318
36319         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
36320         attribute.
36321
36322         * sinfo.ads: Complete documentation of previous change
36323
36324 2004-04-01  Pascal Obry  <obry@gnat.com>
36325
36326         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
36327         only on VMS.  This special handling was done because an old GNU/ld bug
36328         on Windows which has been fixed.
36329
36330 2004-04-01  GNAT Script  <nobody@gnat.com>
36331
36332         * Make-lang.in: Makefile automatically updated
36333
36334 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36335
36336         * decl.c (gnat_to_gnu_entity, make_type_from_size):
36337         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
36338         * trans.c (tree_transform, convert_with_check): Likewise.
36339         * utils.c (gnat_signed_or_unsigned_type): Likewise.
36340         (build_vms_descriptor, unchecked_convert): Likewise.
36341         * utils2.c (nonbinary_modular_operation): Likewise.
36342
36343 2004-03-29  Javier Miranda  <miranda@gnat.com>
36344
36345         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
36346         (Install_Null_Excluding_Check): Local subprogram that determines whether
36347         an access node requires a runtime access check and if so inserts the
36348         appropriate run-time check.
36349         (Apply_Access_Check): Call Install_Null_Excluding check if required
36350         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
36351
36352         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
36353
36354         * einfo.ads: Fix typo in comment
36355
36356         * exp_ch3.adb (Build_Assignment): Generate conversion to the
36357         null-excluding type to force the corresponding run-time check.
36358         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
36359         type to force the corresponding run-time check.
36360
36361         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
36362         the null-excluding type to force the corresponding run-time check.
36363
36364         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
36365         case of access types unless they have the null-excluding attribute.
36366
36367         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
36368         part.
36369
36370         * exp_util.ads: Fix typo in comment
36371
36372         * par.adb (P_Null_Exclusion): New subprogram
36373         (P_Subtype_Indication): New formal that indicates if the null-excluding
36374         part has been scanned-out and it was present
36375
36376         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
36377
36378         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
36379         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
36380         type to force the corresponding run-time check
36381         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
36382         components
36383         (Resolve_Array_Aggregate): Carry out some static checks
36384         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
36385
36386         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
36387         attribute must be set only if specified by means of the null-excluding
36388         part. In addition, we must also propagate the access-constant attribute
36389         if present.
36390         (Access_Subprogram_Declaration, Access_Type_Declaration,
36391         Analyze_Component_Declaration, Analyze_Object_Declaration,
36392         Array_Type_Declaration, Process_Discriminants,
36393         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
36394         and carry out some static checks.
36395         (Build_Derived_Access_Type): Set the null-excluding attribute
36396         (Derived_Type_Declaration, Process_Subtype): Carry out some static
36397         checks.
36398
36399         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
36400
36401         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
36402
36403         * sem_ch6.adb (Process_Formals): Carry out some static checks.
36404         (Set_Actual_Subtypes): Generate null-excluding subtype if the
36405         null-excluding part was present; it is not required to be done here in
36406         case of anonymous access types.
36407         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
36408         value.
36409
36410         * sem_res.adb (Resolve_Actuals): Carry out some static check
36411         (Resolve_Null): Allow null in anonymous access
36412
36413         * sinfo.adb: New subprogram Null_Exclusion_Present
36414         All_Present and Constant_Present available on access_definition nodes
36415
36416         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
36417         object_declaration, derived_type_definition, component_definition,
36418         discriminant_specification, access_to_object_definition,
36419         access_function_definition, allocator, access_procedure_definition,
36420         access_definition, parameter_specification, All_Present and
36421         Constant_Present flags available on access_definition nodes.
36422
36423 2004-03-29  Robert Dewar  <dewar@gnat.com>
36424
36425         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
36426         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
36427         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
36428         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
36429         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
36430         sem_prag.adb: Updates to handle multiple units/file
36431
36432         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
36433
36434         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
36435         sem_util.adb: Minor reformatting
36436
36437         * sem_ch12.adb: Add comment for previous change
36438
36439 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
36440
36441         * osint.adb (Executable_Prefix): Set Exec_Name to the current
36442         executable name when not initialized. Otherwise, use its current value.
36443
36444         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
36445         initialize it to another executable name than the current one. This
36446         allows to configure paths for an executable name (gnatmake) different
36447         from the current one (gnatdist).
36448
36449 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
36450
36451         * exp_ch6.adb (Expand_Call): A call to a function declared in the
36452         current unit cannot be inlined if it appears in the body of a withed
36453         unit, to avoid order of elaboration problems in gigi.
36454
36455         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
36456         information for protected (wrapper) operation as well, to simplify gdb
36457         use.
36458
36459         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
36460         protected body, indicate that the entity for the generated spec comes
36461         from source, to ensure that references are properly generated for it.
36462         (Build_Body_To_Inline): Do not inline a function that returns a
36463         controlled type.
36464
36465         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
36466         apply convention to homonyms that are declared explicitly.
36467
36468         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
36469         that renames an equality operator and the operands are overloaded,
36470         resolve them with the declared formal types, before rewriting as an
36471         operator.
36472
36473 2004-03-29  GNAT Script  <nobody@gnat.com>
36474
36475         * Make-lang.in: Makefile automatically updated
36476
36477 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
36478
36479         * memtrack.adb: Log realloc calls, which are treated as free followed
36480         by alloc.
36481
36482 2004-03-25  Vincent Celier  <celier@gnat.com>
36483
36484         * prj-makr.adb (Process_Directories): Detect when a file contains
36485         several units. Do not include such files in the config pragmas or
36486         in the naming scheme.
36487
36488         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
36489         Resolve links only when not in Trusted_Mode.
36490         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
36491         Do not resolve links for the display names.
36492
36493         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
36494         resolve links when computing the display names.
36495
36496 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
36497
36498         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
36499         attribute reference does not denote a subtype, it can be any
36500         expression that has a classwide type, potentially after an implicit
36501         dereference.  In particular, the prefix can be a view conversion for
36502         a classwide type (for which Is_Object_Reference holds), but it can
36503         also be a value conversion for an access-to-classwide type. In the
36504         latter case, there is an implicit dereference, and the original node
36505         for the prefix does not verify Is_Object_Reference.
36506
36507         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
36508         conversion of a discriminant-dependent component of a mutable object
36509         is one itself.
36510
36511 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
36512
36513         * freeze.adb (Freeze_Entity): When an inherited subprogram is
36514         inherited, has convention C, and has unconstrained array parameters,
36515         place the corresponding warning on the derived type declaration rather
36516         than the original subprogram.
36517
36518         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
36519         indication on renaming declaration, if formal has a box and actual
36520         is absent.
36521
36522         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
36523         determine whether to generate an implicit or explicit reference to
36524         the renamed entity.
36525
36526         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
36527         subprogram renaming comes from a defaulted formal subprogram in an
36528         instance.
36529
36530 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
36531
36532         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
36533         value expressions to ensure that calls within a component definition
36534         will be checked (since those are evaluated during the record type's
36535         elaboration).
36536
36537 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
36538
36539         * s-tpobop.adb: Code clean up:
36540         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
36541         code.
36542         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
36543
36544 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
36545
36546         * Makefile.in: Clean up in the ravenscar run time.
36547
36548 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36549
36550         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
36551         of No_Strict_Aliasing to build_pointer_type_for_mode.
36552         * utils.c (update_pointer_to): Walk pointer and ref chains.
36553
36554 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
36555
36556         * ali.ads: Fix Comment about Dynamic_Elab.
36557
36558         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
36559         Has_RACW, Is_Generic, etc.)
36560         (Output_Object, Gnatls): Take into account ALI files not attached to
36561         an object.
36562
36563 2004-03-22  Vincent Celier  <celier@gnat.com>
36564
36565         * gprep.adb: Change all String_Access to Name_Id
36566         (Is_ASCII_Letter): new function
36567         (Double_File_Name_Buffer): New procedure
36568         (Preprocess_Infile_Name): New procedure
36569         (Process_Files): New procedure
36570         (Gnatprep): Check if output and input are existing directories.
36571         Call Process_Files to do the real job.
36572
36573 2004-03-22  Robert Dewar  <dewar@gnat.com>
36574
36575         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
36576         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
36577
36578 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
36579
36580         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
36581         case when the source contains only comments.
36582
36583 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
36584
36585         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
36586         declaration for a child subprogram body that acts as a spec, indicate
36587         that the entity in the declaration needs debugging information.
36588
36589         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
36590         full view if the subtype is created for a constrained record component;
36591         gigi has enough information to construct the record, and there is no
36592         place in the tree for the declaration.
36593
36594         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
36595         serial number for the dummy body that is built for analysis, to avoid
36596         inconsistencies in the generation of internal names when compiling
36597         with -gnatN.
36598
36599 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
36600
36601         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
36602         object.
36603
36604 2004-03-22  GNAT Script  <nobody@gnat.com>
36605
36606         * Make-lang.in: Makefile automatically updated
36607
36608 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36609
36610         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
36611         * trans.c (tree_transform, emit_index_check): Likewise.
36612         * utils.c (build_template): Likewise.
36613         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
36614         (maybe_unconstrained_array, unchecked_convert): Likewise.
36615         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
36616         (build_unary_op): Likewise.
36617         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
36618         (fill_vms_descriptor): Likewise.
36619         (build_call_alloc_dealloc): Likewise.
36620         ALIGN is unsigned.
36621         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
36622
36623 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
36624
36625         PR other/14630
36626         * gnat_ug.texi: Add info directory category and entry.
36627         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
36628         gnat_ug_wnt.texi: Regenerate.
36629
36630 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
36631
36632         * ada-tree.h: Update copyright notice.
36633         Minor reformatting.
36634
36635 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
36636
36637         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
36638         as regular exception objects and not as mere integers representing the
36639         condition code.  The latter approach required some dynamics to mask off
36640         severity bits, which did not fit well into the GCC table based model.
36641         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
36642         exception data objects. We don't it and it would conflict with the other
36643         external symbol we have to generate for such exceptions.
36644
36645         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
36646         the special code for VMS exceptions, since these are now represented
36647         as regular exceptions objects.
36648
36649 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36650
36651         * decl.c (debug_no_type_hash): Remove.
36652         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
36653         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
36654
36655 2004-03-19  Laurent Guerby  <laurent@guerby.net>
36656
36657         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
36658         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
36659
36660 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36661
36662         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
36663         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
36664         (TYPE_RM_SIZE_INT): Directly use type.values.
36665         (TREE_LOOP_ID): Clean up check.
36666         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
36667         TYPE_VALUES, not TYPE_FIELDS.
36668         * trans.c (convert_with_check): Delay access of bounds of basetype
36669         until sure is numeric.
36670
36671 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
36672
36673         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
36674
36675         Code clean up:
36676         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
36677         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
36678         Specific.Set instead of direct call to e.g pthread_setspecific.
36679
36680 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
36681
36682         * adaint.c: Update comments.
36683
36684         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
36685         GNATLIB_SHARED for FreeBSD.
36686
36687 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
36688
36689         * init.c [VxWorks]: Do not fix the stack size for the environment task.
36690         When needed (stack checking) the stack size is retrieved
36691         from the VxWorks kernel.
36692
36693         * Makefile.in: Flag -nostdinc is required when building the run time
36694         for avoiding looking for files in the base compiler.
36695         Add the VxWorks specific version of the package body for
36696         System.Stack_checking.Operations (5zstchop.adb).
36697
36698         * Make-lang.in: Add the object file for
36699         System.Stack_Checking.Operations.
36700
36701         * Makefile.rtl: Add object file for the package
36702         System.Stack_Checking.Operations.
36703
36704         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
36705
36706         * s-stache.ads, s-stache.adb: Move the operations related to stack
36707         checking from this package to package System.Stack_Checking.Operations.
36708         This way, stack checking operations are only linked in the final
36709         executable when using the -fstack-check flag.
36710
36711 2004-03-18  Doug Rupp  <rupp@gnat.com>
36712
36713         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
36714         Reorganize ifeq's.
36715
36716         * 5qsystem.ads, 5xcrtl.ads: New files.
36717
36718 2004-03-18  Vincent Celier  <celier@gnat.com>
36719
36720         * prj.adb (Reset): Reset hash table Files_Htable
36721
36722         * prj-env.adb (Source_Paths, Object_Paths): New tables.
36723         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
36724         the procedures Add_To_Path_File.
36725         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
36726         making sure that each directory is present only once and, for object
36727         dirs, when a directory already present is added, the duplicate is
36728         removed and the directory is always put as the last in the table.
36729         Write the path files at the end of these accumulations.
36730
36731         * prj-nmsc.adb (Record_Source): Add source file name in hash table
36732         Files_Htable for all sources.
36733
36734         * prj-proc.adb (Process): Remove restrictions between not directly
36735         related extending projects.
36736
36737 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
36738
36739         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
36740         (Find_Sources): Minor speed optimization.
36741
36742         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
36743         parameter Trusted_Mode.
36744
36745 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
36746
36747         * scn.adb (Determine_License): Take into account a degenerated case
36748         when the source contains only comments.
36749
36750 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
36751
36752         * sem_warn.adb (Check_References): For a warning on a selected
36753         component that does not come from source, locate an uninitialized
36754         component of the record type to produce a more precise error message.
36755
36756 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
36757
36758         * 3zsoccon.ads: Fix multicast options.
36759
36760         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
36761         in the spec.
36762
36763 2004-03-15  Robert Dewar  <dewar@gnat.com>
36764
36765         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
36766         pragma used for a private type.
36767
36768         * lib-xref.adb (Generate_Reference): Do not generate warning if
36769         reference is in a different unit from the pragma Unreferenced.
36770
36771         * 5vtpopde.adb: Minor reformatting
36772         Fix casing of To_Task_ID
36773
36774         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
36775         flag if we have an unchecked conversion to an access type in the same
36776         unit.
36777
36778 2004-03-15  Geert Bosch  <bosch@gnat.com>
36779
36780         * a-ngcoty.adb (Modulus): In alternate formula for large real or
36781         imaginary parts, use Double precision throughout.
36782
36783         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
36784         we want to be able to compile run-time with -gnata for testing, but
36785         this may also be instantiated in user code that is compiled with -gnata.
36786
36787 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
36788
36789         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
36790         codes. Having a separate type for this is useful to enforce consistency
36791         throughout the various run-time units.
36792         (Exception_Data): Use Exception_Code for Import_Code.
36793
36794         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
36795         Natural and Integer in various places.
36796         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
36797         with the severity bits masked off.
36798         (Register_VMS_Exception): Handle the additional exception data pointer
36799         argument.
36800
36801         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
36802         component, now reflected by an exported accessor.
36803         (is_handled_by): New routine to compute whether the propagated
36804         occurrence matches some handler choice specification. Extracted out of
36805         get_action_description_for, and expanded to take care of the VMS
36806         specifities.
36807         (get_action_description_for): Use is_handled_by instead of an explicit
36808         complex condition to decide if the current choice at hand catches the
36809         propagated occurrence.
36810
36811         * raise.h (Exception_Code): New type for C.
36812
36813         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
36814         System.Standard_Library.Exception_Code, to allow references from the
36815         pragma import/export expander.
36816
36817         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
36818         New accessors to allow easy access to GNAT exception data
36819         characteristics.
36820         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
36821         redundant Handled_By_Others component, helper for the personality
36822         routine which will now be able to call the appropriate exception data
36823         accessor instead.
36824
36825         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
36826         component of Standard_Exception_Type to be the closest possible to
36827         Exception_Code in System.Standard_Library, that we cannot get at this
36828         point. Expand a ??? comment to notify that this type node should
36829         probably be rewritten later on.
36830
36831         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
36832         registration call to include a pointer to the exception object in the
36833         arguments.
36834
36835         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
36836         instead of int and explicit bitmasks.
36837
36838 2004-03-15  Vincent Celier  <celier@gnat.com>
36839
36840         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
36841         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
36842
36843         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
36844         longer needed now that it is in the spec of
36845         System.Tasking.Task_Attributes.
36846
36847         * adaint.h, adaint.c: (__gnat_create_output_file): New function
36848
36849         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
36850
36851         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
36852
36853         * make.adb (Gnatmake): Do not check the executable suffix; it is being
36854         taken care of in Scan_Make_Arg.
36855         (Scan_Make_Arg): Add the executable suffix only if the argument
36856         following -o, in canonical case, does not end with the executable
36857         suffix.  When in verbose mode and executable file name does not end
36858         with executable suffix, output the executable name, in canonical case.
36859
36860         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
36861         to avoid warnings when instantiating Ada.Task_Attributes.
36862         Minor reformating.
36863
36864         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
36865         in the correct order.
36866
36867         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
36868         redirect standard output and error to a file for the invocation of the
36869         compiler, then read the file.
36870
36871         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
36872         directory, instead of the Value.
36873         (Find_Source_Dirs): Remove useless code & comments.
36874
36875 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
36876
36877         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
36878         tagged type is inherited, and the parent operation is not frozen yet,
36879         force generation of a freeze node for the inherited operation, so the
36880         corresponding dispatch entry is properly initialized.
36881         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
36882         when looking for user-defined equality operation.
36883
36884         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
36885         boolean when locating primitive equality of tagged component.
36886
36887         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
36888         bit-aligned field and the right-hand side a string literal, introduce
36889         a temporary before expanding assignment into a loop.
36890
36891         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
36892         priority in full, to ensure that any expanded subepxressions of it are
36893         elaborated in the scope of the init_proc.
36894
36895         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
36896         after object declaration, skipping over code that may have been
36897         generated for validity checks.
36898
36899         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
36900         discriminants, ignore the known discriminants of its full view, if
36901         any, to check legality.
36902
36903         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
36904         component if type has unknown discriminants.
36905         (Analyze_Private_Extension_Declaration): Discriminant constraint is
36906         null if type has unknown discriminants.
36907
36908         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
36909         for end label when present.
36910
36911         * s-fileio.adb (Open): When called with a C_Stream, use given name for
36912         temporary file, rather than an empty string.
36913
36914 2004-03-15  Ed Falis  <falis@gnat.com>
36915
36916         * s-thread.adb: Removed, no longer used.
36917
36918 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
36919
36920         * decl.c (target.h): Now include.
36921         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
36922         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
36923         (validate_size): For POINTER_TYPE, get smallest size permitted on
36924         machine.
36925
36926         * fe.h: Sort Einfo decls and add Set_Mechanism.
36927
36928         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
36929         (ada/decl.o): Depends on target.h.
36930
36931         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
36932         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
36933
36934 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
36935
36936         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
36937
36938         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
36939         Insert_Dereference_Action when rewriting an implicit dereference into
36940         an explicit one, this will be taken care of during expansion of the
36941         explicit dereference.
36942         (Expand_N_Slice): Same. Always do the rewriting, even for the case
36943         of non-packed slices, since the dereference action generated by
36944         expansion of the explicit dereference is needed in any case.
36945         (Expand_N_Selected_Component): When rewriting an implicit dereference,
36946         analyze and resolve the rewritten explicit dereference so it is seen
36947         by the expander.
36948         (Insert_Dereference_Action): This procedure is now called only for the
36949         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
36950         dereferences that do not come from source (including explicit
36951         dereferences resulting from rewriting implicit ones), but do not
36952         recursively insert a check for the dereference nodes contained within
36953         the check.
36954         (Insert_Dereference_Action): Clarify and correct comment.
36955
36956 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
36957
36958         PR ada/14131
36959         Move language detection to the top level.
36960         * config-lang.in: Build by default.
36961
36962 2004-03-05  Robert Dewar  <dewar@gnat.com>
36963
36964         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
36965
36966         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
36967         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
36968         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
36969         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
36970         unchecked conversion to spec to avoid warnings.
36971
36972         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
36973         to Task_ID
36974
36975         * 7stpopsp.adb: Correct casing in To_Task_ID call
36976
36977         * a-strsea.ads, a-strsea.adb: Minor reformatting
36978
36979         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
36980
36981         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
36982         Adjust Max_Msg_Length to be clearly large enough.
36983
36984         * fe.h: Define In_Same_Source_Unit
36985
36986         * osint.adb: Add pragma Warnings Off to suppress warnings
36987         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
36988         aliasing warnings.
36989
36990         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
36991
36992         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
36993
36994         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
36995
36996         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
36997
36998         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
36999
37000         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
37001         node. We now do generate them for gcc back end.
37002
37003         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
37004         warning.
37005
37006         * sinput-c.adb: Fix bad name in header.
37007         Add pragma Warnings Off to suppress aliasing warning.
37008
37009         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
37010
37011         * snames.h, snames.ads, snames.adb: Add entry for pragma
37012         No_Strict_Aliasing.
37013
37014 2004-03-05  Vincent Celier  <celier@gnat.com>
37015
37016         * prj-com.ads: Add hash table Files_Htable to check when a file name
37017         is already a source of another project.
37018
37019         * prj-nmsc.adb (Record_Source): Before recording a new source, check
37020         if its file name is not already a source of another project. Report an
37021         error if it is.
37022
37023         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
37024         source file name, call gnatpp with all the sources of the main project.
37025
37026         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
37027         of file names.
37028
37029         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
37030         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
37031         /RUNTIME_SYSTEM=, converted to --RTS=
37032         /NOTABS, converted to -notabs
37033
37034 2004-03-05  Pascal Obry  <obry@gnat.com>
37035
37036         * make.adb: Minor reformatting.
37037
37038 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
37039
37040         Part of implemention of AI-262.
37041         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
37042
37043         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
37044         procedure.
37045
37046         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
37047         when component type is a partially constrained class-wide subtype.
37048         (Constrain_Discriminated_Type): If parent type has unknown
37049         discriminants, a constraint is illegal, even if full view has
37050         discriminants.
37051         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
37052         with unknown discriminants whose full view is a discriminated record.
37053
37054         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
37055         flag, to handle properly derivations of tagged types with unknown
37056         discriminants.
37057         (Analyze_Package_Spec, Analyze_Package_Body): Install
37058         Private_With_Clauses before analyzing private part or body.
37059
37060         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
37061         Has_Discriminants can be true for a given type (documentation).
37062
37063 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
37064
37065         * s-restri.ads: Fix license (GPL->GMGPL).
37066
37067         * s-tassta.adb: Minor reformatting.
37068
37069         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
37070         by calls to Exit_One_ATC_Level, since additional clean up is performed
37071         by this function.
37072
37073         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
37074         by calls to Exit_One_ATC_Level, since additional clean up is performed
37075         by this function.
37076
37077 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37078
37079         * trans.c: Reflect GCC changes to fix bootstrap problem.
37080         Add warning for suspicious aliasing unchecked conversion.
37081
37082 2004-03-05  GNAT Script  <nobody@gnat.com>
37083
37084         * Make-lang.in: Makefile automatically updated
37085
37086 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
37087
37088         * ali.adb (Read_Instantiation_Instance): Do not modify the
37089         current_file_num when reading information about instantiations, since
37090         this corrupts files in later references.
37091
37092 2004-03-02  Vincent Celier  <celier@gnat.com>
37093
37094         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
37095         before checking if it is read-only.
37096
37097         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
37098         of SRC_DIRS and eliminate duplicates.
37099
37100         * gprcmd.adb: Replace command "path" with command "path_sep" to return
37101         the path separator.
37102         (Usage): Document path_sep
37103
37104         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
37105         C++ compiler. No need for a script.
37106         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
37107         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
37108         subst.
37109
37110         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
37111         where there are Ada sources.
37112         (Set_Ada_Paths): Only add to the include path the source dirs of project
37113         with Ada sources.
37114         (Add_To_Path): Add the Display_Values of the directories, not their
37115         Values.
37116
37117         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
37118         data.
37119
37120         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
37121         is not No_Name.
37122         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
37123         Value is canonicalized.
37124         (Language_Independent_Check): Do not copy Value to Display_Value when
37125         canonicalizing Value.
37126
37127         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
37128         path to find limited with cycles.
37129         (Parse_Single_Project): Use canonical cased path to find the end of a
37130         with cycle.
37131
37132 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
37133
37134         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
37135         and not a child unit.
37136
37137         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
37138         appear in a with_clause.
37139
37140         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
37141         only happen in type_annotate mode, do not try to elaborate it.
37142
37143         * exp_util.adb (Force_Evaluation): If expression is a selected
37144         component on the left of an assignment, use a renaming rather than a
37145         temporary to remove side effects.
37146
37147         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
37148         inlined instance body, which is analyzed before the end of the
37149         enclosing scope.
37150
37151 2004-03-02  Robert Dewar  <dewar@gnat.com>
37152
37153         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
37154         sem_ch4.adb: Use new feature for substitution of keywords in VMS
37155
37156         * errout.ads, errout.adb: Implement new circuit for substitution of
37157         keywords in VMS.
37158
37159         * sem_case.adb (Analyze_Choices): Place message properly when case is
37160         a subtype reference rather than an explicit range.
37161
37162         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
37163
37164 2004-03-02  Doug Rupp  <rupp@gnat.com>
37165
37166         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
37167
37168 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
37169
37170         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
37171
37172 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37173
37174         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
37175         BLKmode bitfield.
37176
37177 2004-02-25  Robert Dewar  <dewar@gnat.com>
37178
37179         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
37180         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
37181         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
37182         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
37183         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
37184         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
37185         the defining instance of the type to avoid aliasing problems.
37186         Fix copyright header.  Fix bad comments in package header.
37187
37188         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
37189
37190 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
37191
37192         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
37193         rewritten as references when aliased through an address clause.
37194
37195         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
37196         whether call can be interpreted as an indirect call to the result of a
37197         parameterless function call returning an access subprogram.
37198
37199 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
37200
37201         Code clean up:
37202         * exp_ch7.adb (Make_Clean): Remove generation of calls to
37203         Unlock[_Entries], since this is now done by Service_Entries directly.
37204
37205         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
37206
37207         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
37208         Requeue_Call for better code readability. Change spec and update calls:
37209         PO_Service_Entries now unlock the PO on exit.
37210         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
37211         PO_Service_Entries.
37212
37213         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
37214
37215         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
37216
37217 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
37218
37219         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
37220         protected subprogram call and analyzing the result of such expanding
37221         in case when the called protected subprogram is eliminated.
37222
37223         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
37224         names.
37225
37226 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
37227
37228         * Makefile.in: Clean ups.
37229
37230 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
37231
37232         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
37233         protected operations if original subprogram is flagged as eliminated.
37234         (Expand_N_Subprogram_Body): For a protected operation, create
37235         discriminals for next operation before checking whether the operation
37236         is eliminated.
37237
37238         * exp_ch9.adb (Expand_N_Protected_Body,
37239         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
37240         for internal protected operations if the original subprogram is
37241         eliminated.
37242
37243         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
37244         declared in a single protected object.
37245
37246 2004-02-23  Vincent Celier  <celier@gnat.com>
37247
37248         * prj-attr.adb: Make attribute Builder'Executable an associative array,
37249         case insensitive if file names are case insensitive, instead of a
37250         standard associative array.
37251
37252         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
37253         them as case insensitive on platforms where the file names are case
37254         sensitive.
37255
37256         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
37257         project file has already been parsed that canonical path are compared.
37258
37259 2004-02-23  Robert Dewar  <dewar@gnat.com>
37260
37261         * sinput-c.ads: Correct bad unit title in header
37262
37263         * freeze.adb: Minor reformatting
37264
37265 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37266
37267         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
37268         nonaddressable COMPONENT_REF that is removing padding that we are
37269         taking the address of, take the address of the padded record instead
37270         if item is variable size.
37271
37272 2004-02-20  Robert Dewar  <dewar@gnat.com>
37273
37274         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
37275
37276 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
37277
37278         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
37279         itype references for the constrained designated type of a component
37280         whose base type is already frozen.
37281
37282 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
37283
37284         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
37285         avoid GCC warnings.
37286
37287 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
37288
37289         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
37290         identifier for a phantom package that rewrites the formal package
37291         declaration with a box. The Add semantic decorations for the defining
37292         identifier from the original node (that represents the formal package).
37293
37294 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
37295
37296         * Make-lang.in (ada/stamp-sdefault): Use the top level
37297         move-if-change.
37298
37299 2004-02-19  Richard Henderson  <rth@redhat.com>
37300
37301         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
37302
37303 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
37304
37305         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
37306         Scan_ALI can be used for multiple ALI files without reinitializing
37307         between calls.
37308
37309 2004-02-18  Robert Dewar  <dewar@gnat.com>
37310
37311         * debug.adb: Minor reformatting.
37312
37313 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37314
37315         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
37316         to zero if there is an address clause.
37317
37318 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
37319
37320         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
37321
37322 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
37323
37324         * layout.adb (Layout_Component_List): Revise generation of call to
37325         discriminant-checking function to pass selections of all of the type's
37326         discriminants rather than just the variant-controlling discriminant.
37327
37328 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
37329
37330         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
37331         fail in the current setup and triggers spurious system error messages.
37332         Pretend it occurred and failed instead.
37333
37334 2004-02-18  Vincent Celier  <celier@gnat.com>
37335
37336         * bld.adb: Mark FLDFLAGS as saved
37337         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
37338         it is not the root project.  Put each directory to be
37339         extended between double quotes to prevent it to be expanded on Windows.
37340         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
37341         the project file. Set them back to their initial values if they have not
37342         been set in the project file.
37343
37344         * gprcmd.adb: (Gprdebug, Debug): New global variables
37345         (Display_Command): New procedure
37346         (Usage): Document new command "linkopts"
37347         Call Display_Command when env var GPRDEBUG has the value "TRUE"
37348         Implement new command "linkopts"
37349         Remove quotes that may be around arguments for "extend"
37350         Always call Normalize_Pathname with arguments formatted for the platform
37351
37352         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
37353         Change @echo to @$(display) in target clean to be able to clean silently
37354
37355         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
37356
37357         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
37358         canonical case.
37359
37360         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
37361         = Extending_All when current project is an extending all project.
37362
37363         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
37364         set to True only for LINK command, after Unix switch -o.
37365         (Process_Arguments): Set Output_File_Expected to True for LINK command
37366         after Unix switch -o. When Output_File_Expected is True, never add an
37367         extension to a file name.
37368
37369         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
37370         option file name, only to the --for-linker= switch.
37371         (Option_File_Name): If option file name do not end with ".opt", append
37372         "/OPTIONS".
37373
37374 2004-02-18  GNAT Script  <nobody@gnat.com>
37375
37376         * Make-lang.in: Makefile automatically updated
37377
37378 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
37379
37380         * Make-lang.in (stamp-sdefault): Do not depend on
37381         move-if-change.
37382
37383 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
37384
37385         * config-lang.in: Disable Ada by default until probe logic for
37386         a bootstrap Ada compiler can be moved to the top level configure
37387         script.
37388
37389 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
37390
37391         * decl.c (components_to_record): Don't claim that the internal fields
37392         we make to hold the variant parts are semantically addressable, because
37393         they are not.
37394
37395         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
37396         adjust the comment describing the modular type form when we can use it.
37397         (Install_PAT): Account for the Esiz renaming.
37398
37399         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
37400         sc_onstack context indication before raising the exception to which
37401         the signal is mapped. Allows better handling of later signals possibly
37402         triggered by the resumed user code if the exception is handled.
37403
37404 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
37405
37406         * 5zinit.adb: Removed, no longer used.
37407
37408 2004-02-12  Robert Dewar  <dewar@gnat.com>
37409
37410         * ali.adb: Remove separating space between parameters on R line. Makes
37411         format consistent with format used by the binder for Set_Globals call.
37412
37413         * atree.ads, atree.adb: Minor reformatting (new function header format)
37414
37415         * bindgen.adb: Add Run-Time Globals documentation section containing
37416         detailed documentation of the globals passed from the binder file to
37417         the run time.
37418
37419         * gnatls.adb: Minor reformatting
37420
37421         * init.c (__gnat_set_globals): Add note pointing to documentation in
37422         bindgen.
37423
37424         * lib-writ.ads, lib-writ.adb: Remove separating space between
37425         parameters on R line.
37426         Makes format consistent with format used by the binder for Set_Globals
37427         call.
37428
37429         * osint.ads: Add 2004 to copyright notice
37430         Minor reformatting
37431
37432         * snames.ads: Correct capitalization of FIFO_Within_Priorities
37433         Noticed during code reading, documentation issue only
37434
37435         * usage.adb: Remove junk line for obsolete C switch
37436         Noticed during code reading
37437
37438 2004-02-12  Vincent Celier  <celier@gnat.com>
37439
37440         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
37441         extend for each directory, so that multiple /** directories are
37442         extended individually.
37443         (Recursive_Process): Set the default for LANGUAGES to ada
37444
37445         * gprcmd.adb: Define new command "ignore", to do nothing.
37446         Implement new comment "path".
37447
37448         * Makefile.generic: Suppress output when SILENT is set
37449         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
37450         used, so that the correct compiler is invoked.
37451         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
37452         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
37453
37454 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
37455
37456         * Makefile.in: Clean ups and remove obsolete targets.
37457
37458 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
37459
37460         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
37461         predicate declared in exp_util.
37462
37463         * exp_util.adb: Add comments.
37464
37465         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
37466         visibility before compiling context of the subunit.
37467
37468         * sem_res.adb (Check_Parameterless_Call): If the context expects a
37469         value but the name is a procedure, do not attempt to analyze as a call,
37470         in order to obtain more telling diagnostics.
37471
37472         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
37473         'Access on parameterless function calls.
37474         (Normalize_Actuals): For a parameterless function call with missing
37475         actuals, defer diagnostic until resolution of enclosing call.
37476
37477         * sem_util.adb (Wrong_Type): If the context type is an access to
37478         subprogram and the expression is a procedure name, suggest a missing
37479         'attribute.
37480
37481 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
37482             Nathanael Nerode  <neroden@gcc.gnu.org>
37483
37484         PR ada/6637
37485         PR ada/5911
37486         Merge with libada-branch:
37487         * config-lang.in: Build libada only when ada is built.
37488
37489 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
37490
37491         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
37492         for a tagged type, verify that both formals have the same type.
37493
37494         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
37495         temporary when the formal is an in-parameter and the actual a possibly
37496         unaligned slice.
37497
37498         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
37499         when expansion is disabled, to ensure proper name capture with
37500         overloaded literals.  Condition can be of any boolean type, resolve
37501         accordingly.
37502
37503         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
37504         renaming is for a formal subprogram with a default operator name, and
37505         there is a usable operator that is visible at the point of
37506         instantiation.
37507
37508 2004-02-09  Robert Dewar  <dewar@gnat.com>
37509
37510         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
37511         rewrite to ignore errors in ali files, intended to allow tools downward
37512         compatibility with new versions of ali files.
37513
37514         * ali.ads: Add new parameter Ignore_Errors
37515
37516         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
37517         duplicating the error message giving the file with restrictions.
37518
37519         * debug.adb: Add debug flag I for gnatbind
37520
37521         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
37522         operators for the case where the operator is a defining operator.
37523
37524         * exp_ch3.adb: Minor reformatting (new function spec format).
37525
37526         * exp_ch4.adb: Add comment for previous change, and make minor
37527         adjustment to loop to always check for improper loop termination.
37528         Minor reformatting throughout (new function spec format).
37529
37530         * gnatbind.adb: Implement -di debug flag for gnatbind
37531
37532         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
37533
37534         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
37535
37536         * lib-load.adb: Fix bad assertion.
37537         Found by testing and code reading.
37538         Minor reformatting.
37539
37540         * lib-load.ads: Minor reformatting.
37541
37542         * lib-writ.adb: There is only one R line now.
37543
37544         * lib-writ.ads: Add documentation on making downward compatible changes
37545         to ali files so old tools work with new ali files.
37546         There is only one R line now.
37547         Add documentation on format incompatibilities (with special GPS note)
37548
37549         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
37550
37551         * par-load.adb: Minor reformatting
37552
37553         * sem_ch8.adb: Fix to error message from last update
37554         Minor reformatting and restructuring of code from last update
37555
37556         * par-prag.adb, snames.adb, snames.ads, snames.h,
37557         sem_prag.adb: Implement pragma Profile.
37558
37559         * stylesw.adb: Implement -gnatyN switch to turn off all style check
37560         options.
37561
37562         * usage.adb: Add line for -gnatyN switch
37563
37564         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
37565
37566 2004-02-09  Albert Lee  <lee@gnat.com>
37567
37568         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
37569
37570 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
37571
37572         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
37573         slices.
37574
37575         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
37576         is nested in an instance that is not frozen yet, to avoid
37577         order-of-elaboration problems in gigi.
37578
37579         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
37580         body the attribute is legal.
37581
37582 2004-02-09  Robert Dewar  <dewar@gnat.com>
37583
37584         * s-rident.ads: Minor comment correction
37585
37586         * targparm.adb: Remove dependence on uintp completely. There was
37587         always a bug in Make in that it called Targparm before initializing
37588         the Uint package. The old code appeared to get away with this, but
37589         the new code did not! This caused an assertion error in gnatmake.
37590
37591         * targparm.ads: Fix bad comment, restriction pragmas with parameters
37592         are indeed fully supported.
37593
37594 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
37595
37596         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
37597
37598 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
37599
37600         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
37601         with targetm.calls.promote_prototypes.
37602
37603 2004-02-04  Robert Dewar  <dewar@gnat.com>
37604
37605         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
37606         ali.ads, gprcmd.adb: Minor reformatting
37607
37608         * bindgen.adb: Output restrictions string for new style restrictions
37609         handling
37610
37611         * impunit.adb: Add s-rident.ads (System.Rident) and
37612         s-restri (System.Restrictions)
37613
37614         * lib-writ.adb: Fix bug in writing restrictions string (last few
37615         entries wrong)
37616
37617         * s-restri.ads, s-restri.adb: Change name Restrictions to
37618         Run_Time_Restrictions to avoid conflict with package name.
37619         Add circuit to read and acquire run time restrictions.
37620
37621 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
37622
37623         * restrict.ads, restrict.adb: Use the new restriction
37624         No_Task_Attributes_Package instead of the old No_Task_Attributes.
37625
37626         * sem_prag.adb: No_Task_Attributes is a synonym of
37627         No_Task_Attributes_Package.
37628
37629         * snames.ads, snames.adb: New entry for proper handling of
37630         No_Task_Attributes.
37631
37632         * s-rident.ads: Adding restriction No_Task_Attributes_Package
37633         (AI-00249) that supersedes the GNAT specific restriction
37634         No_Task_Attributes.
37635
37636 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
37637
37638         * sem_prag.adb:
37639         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
37640          body, an identifier may be wrapped in an unchecked conversion.
37641
37642 2004-02-04  Vincent Celier  <celier@gnat.com>
37643
37644         * lib-writ.ads: Comment update for the W lines
37645
37646         * bld.adb: (Expression): An empty string list is static
37647
37648         * fname-uf.adb: Minor comment update
37649
37650         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
37651
37652         * gnatbind.adb: Initialize Cumulative_Restrictions with the
37653         restrictions on the target.
37654
37655 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
37656
37657         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
37658         gen_rtx.
37659
37660 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
37661
37662         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
37663
37664 2004-02-02  Vincent Celier  <celier@gnat.com>
37665
37666         * gprcmd.adb (Check_Args): If condition is false, print the invoked
37667         comment before the usage.
37668         Gprcmd: Fail when command is not recognized.
37669         (Usage): Document command "prefix"
37670
37671         * g-md5.adb (Digest): Process last block.
37672         (Update): Do not process last block. Store remaining characters and
37673         length in Context.
37674
37675         * g-md5.ads (Update): Document that several call to update are
37676         equivalent to one call with the concatenated string.
37677         (Context): Add fields to allow new Update behaviour.
37678
37679         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
37680         defaulted to False.
37681         When May_Fail is True and no existing file can be found, return No_File.
37682
37683         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
37684         functions.
37685
37686         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
37687         spec file name instead on the W line.
37688
37689 2004-02-02  Robert Dewar  <dewar@gnat.com>
37690
37691         * ali.adb: Read and acquire info from new format restrictions lines
37692
37693         * bcheck.adb: Add circuits for checking restrictions with parameters
37694
37695         * bindgen.adb: Output dummy restrictions data
37696         To be changed later
37697
37698         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
37699         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
37700         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
37701         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
37702         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
37703
37704         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
37705         the warning message on access to possibly uninitialized variable S)
37706         Minor changes for new restrictions handling.
37707
37708         * gnatbind.adb: Minor reformatting
37709         Minor changes for new restrictions handling
37710         Move circuit for -r processing here from bcheck (cleaner)
37711
37712         * gnatcmd.adb, gnatlink.adb: Minor reformatting
37713
37714         * lib-writ.adb: Output new format restrictions lines
37715
37716         * lib-writ.ads: Document new R format lines for new restrictions
37717         handling.
37718
37719         * s-restri.ads/adb: New files
37720
37721         * Makefile.rtl: Add entry for s-restri.ads/adb
37722
37723         * par-ch3.adb: Fix bad error messages starting with upper case letter
37724         Minor reformatting
37725
37726         * restrict.adb: Major rewrite throughout for new restrictions handling
37727         Major point is to handle restrictions with parameters
37728
37729         * restrict.ads: Major changes in interface to handle restrictions with
37730         parameters. Also generally simplifies setting of restrictions.
37731
37732         * snames.ads/adb: New entry for proper handling of No_Requeue
37733
37734         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
37735         restriction counting.
37736         Other minor changes for new restrictions handling
37737
37738         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
37739         Restriction_Warnings now allows full parameter notation
37740         Major rewrite of Restrictions for new restrictions handling
37741
37742 2004-02-02  Javier Miranda  <miranda@gnat.com>
37743
37744         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
37745         syntax rule for object renaming declarations.
37746         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
37747         component definitions.
37748
37749         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
37750         components.
37751         (Array_Type_Declaration): Give support to access components. In addition
37752         it was also modified to reflect the name of the object in anonymous
37753         array types. The old code did not take into account that it is possible
37754         to have an unconstrained anonymous array with an initial value.
37755         (Check_Or_Process_Discriminants): Allow access discriminant in
37756         non-limited types.
37757         (Process_Discriminants): Allow access discriminant in non-limited types
37758         Initialize the new Access_Definition field in N_Object_Renaming_Decl
37759         node.  Change Ada0Y to Ada 0Y in comments
37760
37761         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
37762         equality operators.
37763         Change Ada0Y to Ada 0Y in comments
37764
37765         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
37766         renamings Change Ada0Y to Ada 0Y in comments
37767
37768         * sem_type.adb (Find_Unique_Type): Give support to the equality
37769         operators for universal access types
37770         Change Ada0Y to Ada 0Y in comments
37771
37772         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
37773
37774         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
37775         field.
37776         (N_Object_Renaming_Declaration): Addition of Access_Definition field
37777         Change Ada0Y to Ada 0Y in comments
37778
37779         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
37780         component definition and object renaming nodes
37781         Change Ada0Y to Ada 0Y in comments
37782
37783 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
37784
37785         * restrict.adb: Use the new restriction identifier
37786         No_Requeue_Statements instead of the old No_Requeue for defining the
37787         restricted profile.
37788
37789         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
37790         No_Requeue_Statements.
37791
37792         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
37793         that supersedes the GNAT specific restriction No_Requeue. The later is
37794         kept for backward compatibility.
37795
37796 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
37797
37798         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
37799         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
37800         pragma and fix incorrect ones.
37801
37802         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
37803         warning if the pragma is redundant.
37804
37805 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
37806
37807         * 5staprop.adb: Add missing 'constant' keywords.
37808
37809         * Makefile.in: use consistent value for SYMLIB on
37810         platforms where libaddr2line is supported.
37811
37812 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37813
37814         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
37815         annotating types.
37816
37817 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
37818
37819         * init.c (__gnat_install_handler): Setup an alternate stack for signal
37820         handlers in the environment thread. This allows proper propagation of
37821         an exception on stack overflows in this thread even when the builtin
37822         ABI stack-checking scheme is used without support for a stack reserve
37823         region.
37824
37825         * utils.c (create_field_decl): Augment the head comment about bitfield
37826         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
37827         here, because the former is not accurate enough at this point.
37828         Let finish_record_type decide instead.
37829         Don't make a bitfield if the field is to be addressable.
37830         Always set a size for the field if the record is packed, to ensure the
37831         checks for bitfield creation are triggered.
37832         (finish_record_type): During last pass over the fields, clear
37833         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
37834         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
37835         from DECL_BIT_FIELD.
37836
37837 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
37838
37839         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
37840         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
37841         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
37842
37843 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
37844
37845         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
37846
37847         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
37848         (ZCX_By_Default): Likewise.
37849         (Front_End_ZCX_Support): Likewise.
37850
37851         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
37852         (Initialize_Lock): Mark Level unreferenced.
37853         (Sleep): Mark Reason unreferenced.
37854         (Timed_Sleep): Likewise.
37855         (Wakeup): Likewise.
37856         (Exit_Task): Use Result.
37857         (Check_No_Locks): Mark Self_ID unreferenced.
37858
37859         * 5gtasinf.adb (New_Sproc): Make Attr constant.
37860         (Bound_Thread_Attributes): Make Sproc constant.
37861         (New_Bound_Thread_Attributes): Likewise.
37862
37863 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
37864
37865         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
37866         one-dimensional array an slice assignments, when component type is
37867         controlled.
37868
37869         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
37870         component type is controlled, and control_actions are in effect, use
37871         TSS procedure rather than generating inline code.
37872
37873         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
37874         arrays with controlled components.
37875
37876 2004-01-26  Vincent Celier  <celier@gnat.com>
37877
37878         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
37879         command line for the non VMS case.
37880
37881         * gnatlink.adb (Process_Binder_File): When building object file, if
37882         GNU linker is used, put all object paths between quotes, to prevent ld
37883         error when there are unusual characters (such as '!') in the paths.
37884
37885         * Makefile.generic: When there are sources in Ada and the main is in
37886         C/C++, invoke gnatmake with -B, instead of -z.
37887
37888         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
37889         from VMS_Conversion.
37890         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
37891         specification of argument file on the command line.
37892
37893 2004-01-26  Bernard Banner  <banner@gnat.com>
37894
37895         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
37896
37897 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
37898
37899         * snames.adb: Update copyright notice.
37900         Add info on slice assignment for controlled arrays.
37901
37902 2004-01-23  Robert Dewar  <dewar@gnat.com>
37903
37904         * exp_aggr.adb: Minor reformatting
37905
37906         * exp_ch9.adb: Minor code clean up
37907         Minor reformatting
37908         Fix bad character in comment
37909
37910         PR ada/13471
37911         * targparm.adb (Get_Target_Parameters): Give clean abort error on
37912         unexpected end of file, along with more detailed message.
37913
37914 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
37915
37916         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
37917         PAT.
37918
37919         * decl.c (copy_alias_set): New function.
37920         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
37921
37922 2004-01-23  Doug Rupp  <rupp@gnat.com>
37923
37924         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
37925         lib$${file} in case subsequent character is not a separator.
37926
37927 2004-01-23  Vincent Celier  <celier@gnat.com>
37928
37929         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
37930         when the GCC version is at least 3.
37931
37932         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
37933         Remove all "Opt.", to prepare for opt split
37934
37935         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
37936         Extends_All. Set to True when the project parsed is an extending all
37937         project. Fails for importing an extending all project only when the
37938         imported project is an extending all project.
37939         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
37940         depending on the value of Extends_All returned.
37941
37942         * prj-proc.adb (Process): Check that no project shares its object
37943         directory with a project that extends it, directly or indirectly,
37944         including a virtual project.
37945         Check that no project extended by another project shares its object
37946         directory with another also extended project.
37947
37948         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
37949         Kind = N_With_Clause
37950
37951         * prj-tree.ads: Minor reformatting
37952         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
37953
37954 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
37955
37956         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
37957         applies to a type with an incomplete view, use full view in Name of
37958         clause, for consistency with uses of Get_Attribute_Definition_Clause.
37959
37960 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
37961
37962         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
37963         SCHED_RR, since other values are not supported by this policy.
37964         (Initialize): Move initialization of mutex attribute to package
37965         elaboration, to prevent early access to this variable.
37966
37967         * Makefile.in: Remove mention of Makefile.adalib, unused.
37968
37969         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
37970         1ssecsta.ads: Removed, unused.
37971
37972 2004-01-21  Javier Miranda  <miranda@gnat.com>
37973
37974         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
37975         entity if already built in the current scope.
37976
37977         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
37978         reminder in internal scopes. Required for nested limited aggregates.
37979
37980 2004-01-21  Doug Rupp  <rupp@gnat.com>
37981
37982         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
37983         VMS. Replace all occurences of libgnat- and libgnarl- with
37984         libgnat$(hyphen) and libgnarl$(hyphen).
37985         Fixed shared library build problem on VMS.
37986
37987 2004-01-21  Robert Dewar  <dewar@gnat.com>
37988
37989         * mlib-prj.adb: Minor reformatting
37990
37991 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
37992
37993         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
37994         'constant' keywords for declaration of pointers that are not modified.
37995
37996         * exp_pakd.adb: Fix English in comment.
37997
37998 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
37999
38000         PR ada/10889
38001         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
38002         copy all attributes of the parent, including the foreign language
38003         convention.
38004
38005 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
38006
38007         PR ada/10565
38008         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
38009         for 'delay until' statement.
38010
38011 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
38012
38013         * Make-lang.in: Replace $(docdir) with doc.
38014         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
38015         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
38016         to use consistent MAKEINFO rule.
38017         (ada.man, ada.srcman): Dummy entry.
38018         (ADA_INFOFILES): Define.
38019         (ada.info, ada.srcinfo): New rules.
38020
38021 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
38022
38023         * utils.c: Update copyright notice, missed in previous change.
38024
38025 2004-01-19  Vincent Celier  <celier@gnat.com>
38026
38027         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
38028         args if Bind is True. Set First_ALI, if not already done.
38029         (Build_Library): For Stand Alone Libraries, extract from one ALI file
38030         an eventual --RTS switch, for gnatbind, and all backend switches +
38031         --RTS, for linking.
38032
38033 2004-01-19  Robert Dewar  <dewar@gnat.com>
38034
38035         * sem_attr.adb, memtrack.adb: Minor reformatting
38036
38037 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
38038
38039         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
38040         that rename enumeration literals. This is properly done in sem_eval.
38041
38042         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
38043         to functions that rename enumeration literals.
38044
38045         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
38046         functions that rename enumeration literals.
38047
38048 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
38049
38050         * Make-lang.in (utils.o): Depend on target.h.
38051         * utils.c: Include target.h.
38052         (process_attributes): Use targetm.have_named_sections instead
38053         of ASM_OUTPUT_SECTION_NAME.
38054
38055 2004-01-16  Andreas Jaeger  <aj@suse.de>
38056
38057         * Makefile.in: Add $(DESTDIR).
38058
38059 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
38060
38061         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
38062         also when not defining if a Size clause applies. That information is
38063         not to be ignored.
38064
38065 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
38066
38067         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
38068         symbolic links for the shared gnat run time when needed.
38069
38070 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
38071
38072         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
38073         for writing, and terminate with an error message if not.
38074
38075 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
38076
38077         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
38078         warning on an access to subprogram in an instance, when the target
38079         type is declared in the same generic unit.
38080         (Eval_Attribute): If 'access is known to fail accessibility check,
38081         rewrite as a raise statement.
38082
38083 2004-01-15  GNAT Script  <nobody@gnat.com>
38084
38085         * Make-lang.in: Makefile automatically updated
38086
38087 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
38088
38089         * Make-lang.in (ada.srcextra): Dummy entry.
38090
38091 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
38092
38093         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
38094
38095 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
38096
38097         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
38098         components that are initialized with aggregates.
38099
38100 2004-01-13  Vincent Celier  <celier@gnat.com>
38101
38102         * gnatlink.adb (Process_Binder_File): To find directory of shared
38103         libgcc, if "gcc-lib" is not a subdirectory, look for the last
38104         subdirectory "lib" in the path of the shared libgnat or libgnarl.
38105
38106         * make.adb (Gnatmake): If GCC version is at least 3, link with
38107         -shared-libgcc, when there is at least one shared library project.
38108
38109         * opt.ads (GCC_Version): New integer constant.
38110
38111         * adaint.c (get_gcc_version): New function.
38112
38113 2004-01-13  Robert Dewar  <dewar@gnat.com>
38114
38115         * sem_dist.adb, sem_res.adb, sem_util.adb,
38116         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
38117         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
38118
38119 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
38120
38121         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
38122         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
38123         declarations.
38124
38125 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
38126
38127         * misc.c: Remove trailing spaces.
38128         Update copyright notice missed in previous change.
38129
38130         PR ada/13572
38131         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
38132         prefix/share/make
38133
38134         * Makefile.generic: Update copyright.
38135         Add license notice.
38136
38137         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
38138         of prefix/share/make.
38139
38140         * Makefile.prolog: Update copyright.
38141         Add license notice.
38142
38143 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
38144
38145         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
38146         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
38147         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
38148         instead of String.
38149
38150         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
38151         signature.
38152
38153 2004-01-12  Javier Miranda  <miranda@gnat.com>
38154
38155         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
38156         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
38157         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
38158         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
38159         Component_Definition node.
38160
38161 2004-01-12  Ed Falis  <falis@gnat.com>
38162
38163         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
38164
38165 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
38166
38167         * link.c: Change default libgnat kind to STATIC for FreeBSD.
38168
38169 2004-01-12  Bernard Banner  <banner@gnat.com>
38170
38171         * Makefile.in: map 86numaux to a-numaux for x86_64
38172
38173 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
38174
38175         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
38176         generated to rename a generic actual, go to the actual itself, the
38177         subtype is not a user-visible entity.
38178
38179         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
38180         part is a private subtype, reset the visibility of its full view, if
38181         any, to be consistent.
38182
38183         PR ada/13417
38184         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
38185         to use a generic package G as a formal package for another generic
38186         declared within G.
38187
38188 2004-01-12  Robert Dewar  <dewar@gnat.com>
38189
38190         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
38191
38192         * usage.adb: Remove mention of obsolete -gnatwb switch
38193         Noticed during code reading
38194
38195 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
38196
38197         * 1ssecsta.adb: Minor changes for -gnatwa warnings
38198
38199 2004-01-12  GNAT Script  <nobody@gnat.com>
38200
38201         * Make-lang.in: Makefile automatically updated
38202
38203 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
38204
38205         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
38206
38207 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
38208
38209         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
38210
38211 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
38212
38213         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
38214         Update comment and copyright date.
38215         * stamp-xgnatug: Delete.
38216
38217 2004-01-05  Robert Dewar  <dewar@gnat.com>
38218
38219         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
38220         be modified by the binder generated main program if the -D switch is
38221         used.
38222
38223         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
38224         imported functions (since now we expect this to be done for imported
38225         functions)
38226
38227         * 5vtaprop.adb: Add several ??? for sections requiring more comments
38228         Minor reformatting throughout
38229
38230         * 5zinit.adb: Minor reformatting
38231         Add 2004 to copyright date
38232         Minor changes to avoid -gnatwa warnings
38233         Correct some instances of using OR instead of OR ELSE (noted while
38234         doing reformatting)
38235
38236         * sprint.adb: Minor updates to avoid -gnatwa warnings
38237
38238         * s-secsta.ads, s-secsta.adb:
38239         (SS_Get_Max): New function to obtain high water mark for ss stack
38240         Default_Secondary_Stack is not a constant since it may be modified by
38241         the binder generated main program if the -D switch is used.
38242
38243         * switch-b.adb: New -Dnnn switch for binder
38244
38245         * switch-c.adb:
38246         Make -gnatg imply all warnings currently in -gnatwa
38247
38248         * vms_conv.adb: Minor reformatting
38249         Add 2004 to copyright notice
38250         Add 2004 to printed copyright notice
38251
38252         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
38253         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
38254         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
38255         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
38256         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
38257         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
38258         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
38259         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
38260         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
38261         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
38262         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
38263         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
38264         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
38265         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
38266         checks.adb, clean.adb, cstand.adb, einfo.ads,
38267         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
38268         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
38269         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
38270         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
38271         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
38272         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
38273         Minor reformatting and code clean ups.
38274         Minor changes to prevent -gnatwa warnings
38275
38276         * ali.adb: Minor reformatting and cleanup of code
38277         Acquire new SS indication of secondary stack use from ali files
38278
38279         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
38280         (since now we expect this to be done for imported functions)
38281
38282         * bindgen.adb: Generate call to modify default secondary stack size if
38283         -Dnnn switch given
38284
38285         * bindusg.adb: Add line for new -D switch
38286
38287         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
38288         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
38289         Add circuitry for both records and arrays to avoid gigi
38290         processing if the type involved has non-bit-aligned components
38291
38292         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
38293         N_String_Literal node always references an E_String_Literal_Subtype
38294         entity. This may not be true in the future.
38295         (Possible_Bit_Aligned_Component): Move processing of
38296         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
38297
38298         * exp_ch6.adb (Expand_Thread_Body): Pick up
38299         Default_Secondary_Stack_Size as variable so that we get value modified
38300         by possible -Dnnn binder parameter.
38301
38302         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
38303         (Type_May_Have_Bit_Aligned_Components): New function.
38304
38305         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
38306         (Type_May_Have_Bit_Aligned_Components): New function.
38307
38308         * fe.h: (Set_Identifier_Casing): Fix prototype.
38309         Add declaration for Sem_Elim.Eliminate_Error_Msg.
38310         Minor reformatting.
38311
38312         * freeze.adb (Freeze_Entity): Add RM reference to error message about
38313         importing constant atomic/volatile objects.
38314         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
38315         unless explicit Pure_Function pragma given, to avoid insidious bug of
38316         call to non-pure imported function getting eliminated.
38317
38318         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
38319         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
38320         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
38321         Add 2004 to printed copyright notice
38322
38323         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
38324         stack used.
38325
38326         * Makefile.rtl: Add entry for g-sestin.o
38327         g-sestin.ads: New file.
38328
38329         * mdll.adb: Minor changes to avoid -gnatwa warnings
38330
38331         * mlib-tgt.adb: Minor reformatting
38332
38333         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
38334         New switch Sec_Stack_Used (GNAT, GNATBIND)
38335         Make Default_Secondary_Stack_Size a variable instead of a constant,
38336         so that it can be modified by the new -Dnnn bind switch.
38337
38338         * rtsfind.adb (Load_Fail): Give full error message in configurable
38339         run-time mode if all_errors mode is set. This was not done in the case
38340         of a file not found, which was an oversight.
38341         Note if secondary stack unit is used by compiler.
38342
38343         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
38344         ineffective elaborate all pragmas on non-visible packages (this
38345         happened when a renamed subprogram was called). Now the elaborate all
38346         always goes on the package containing the renaming rather than the one
38347         containing the renamed subprogram.
38348
38349         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
38350         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
38351
38352         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
38353         has an Etype that references an E_String_Literal.
38354         (Eval_String_Literal): Avoid assumption that N_String_Literal node
38355         always references an E_String_Literal_Subtype entity. This may not
38356         be true in the future.
38357
38358         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
38359         pragma location.
38360
38361         * sem_res.adb (Resolve): Specialize msg for function name used in proc
38362         call.
38363
38364 2004-01-05  Ed Falis  <falis@gnat.com>
38365
38366         * g-debuti.adb: Replaced direct boolean operator with short-circuit
38367         form.
38368
38369 2004-01-05  Vincent Celier  <celier@gnat.com>
38370
38371         * bld.adb: Minor comment updates
38372         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
38373         of Item_Name).
38374
38375         * make.adb (Gnatmake): Special process for files to compile/check when
38376         -B is specified. Fail when there are only foreign mains in attribute
38377         Main of the project file and -B is not specified. Do not skip bind/link
38378         steps when -B is specified.
38379
38380         * makeusg.adb: Document new switch -B
38381
38382         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
38383
38384         * switch-m.adb: (Scan_Make_Switches): Process -B switch
38385
38386         * vms_data.ads: Add new GNAT PRETTY qualifier
38387         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
38388
38389 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
38390
38391         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
38392         case.
38393
38394         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
38395         Set_Identifier_Casing.
38396
38397         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
38398         has size that overflows.
38399
38400 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
38401
38402         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
38403         -gnatwa warning on static condition.
38404
38405 2004-01-05  Doug Rupp  <rupp@gnat.com>
38406
38407         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
38408
38409 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
38410
38411         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
38412         all attributes, including read-only attribute.
38413
38414 2004-01-05  Pascal Obry  <obry@gnat.com>
38415
38416         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
38417         library naming scheme.
38418
38419         * mlib-prj.adb (Build_Library): Generate different names for the static
38420         or dynamic version of the GNAT runtime. This is needed to support the
38421         new shared library naming scheme.
38422         (Process_Binder_File): Add detection of shared library in binder file
38423         based on the new naming scheme.
38424
38425         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
38426         scheme for the shared runtime libraries.
38427
38428         * Makefile.in:
38429         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
38430         scheme.
38431         (install-gnatlib): Do not create symlinks for shared libraries.
38432         (gnatlib-shared-default): Idem.
38433         (gnatlib-shared-dual-win32): New target. Not used for now as the
38434         auto-import feature does not support arrays/records.
38435         (gnatlib-shared-win32): Do not create copy for the shared libraries.
38436         (gnatlib-shared-vms): Fix shared runtime libraries names.
38437
38438         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
38439         dependent runtime shared library name.
38440
38441 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
38442
38443         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
38444         than the object.
38445
38446 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
38447
38448         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
38449         protected objects when allocator has a subtype indication, not a
38450         qualified expression. Note that qualified expressions may have to be
38451         checked when limited aggregates are implemented.
38452
38453         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
38454         pure, emit warning.
38455         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
38456         subprogram is imported, remove warning.
38457
38458 2004-01-05  Geert Bosch  <bosch@gnat.com>
38459
38460         * s-poosiz.adb: Update copyright notice.
38461         (Allocate): Use Task_Lock to protect against concurrent access.
38462         (Deallocate): Likewise.
38463
38464 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
38465
38466         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
38467         comment.
38468
38469 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
38470
38471         * gnat_ug.texi: Force a CVS commit by updating copyright.
38472         * gnat_ug_vxw.texi: Regenerate.
38473         * gnat_ug_wnt.texi: Regenerate.
38474         * gnat_ug_vms.texi: Regenerate.
38475         * gnat_ug_unx.texi: Regenerate.
38476
38477 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
38478
38479         * trans.c: Remove uses of "register" specifier in
38480         declarations of local variables.
38481
38482 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
38483
38484         * stamp-xgnatug: New stamp file.
38485         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
38486         (ada/doctools/xgnatug): Add $(build_exeext).
38487         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
38488         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
38489
38490 2003-12-17  Ed Falis  <falis@gnat.com>
38491
38492         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
38493         eliminate warning.
38494
38495         * a-exextr.adb: Add context clause for
38496         Ada.Exceptions.Last_Chance_Handler.
38497
38498 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
38499
38500         * cstand.adb (Create_Standard): Change the way how the declaration of
38501         the Duration type is created (making it the same way as it is for all
38502         the other standard types).
38503
38504 2003-12-17  Robert Dewar  <dewar@gnat.com>
38505
38506         * s-crtl.ads: Fix header format
38507         Change Pure to Preelaborate
38508
38509 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
38510
38511         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
38512         the expression type only if it is declared in the current unit.
38513
38514         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
38515         are universal and already analyzed, as can occur in constrained
38516         subcomponents that depend on discriminants, when one constraint is a
38517         subtype mark.
38518
38519         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
38520         type Any_Fixed is legal as the argument of a conversion, if only one
38521         fixed-point type is in context.
38522
38523 2003-12-17  GNAT Script  <nobody@gnat.com>
38524
38525         * Make-lang.in: Makefile automatically updated
38526
38527 2003-12-15  Robert Dewar  <dewar@gnat.com>
38528
38529         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
38530         sec stack size.
38531
38532 2003-12-15  Vincent Celier  <celier@gnat.com>
38533
38534         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
38535         (Gnatchop): Do not set failure status when reporting the number of
38536         warnings.
38537
38538 2003-12-15  Doug Rupp  <rupp@gnat.com>
38539
38540         * s-ctrl.ads: New file.
38541
38542         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
38543
38544         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
38545         (GNATBIND_OBJS): Add ada/s-crtl.o.
38546
38547         * Makefile.in [VMS]: Clean up ifeq rules.
38548
38549         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
38550         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
38551         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
38552         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
38553         s-tasdeb.adb: Update copyright.
38554         Import System.CRTL.
38555         Make minor modifications to use System.CRTL declared functions instead
38556         of importing locally.
38557
38558 2003-12-15  GNAT Script  <nobody@gnat.com>
38559
38560         * Make-lang.in: Makefile automatically updated
38561
38562 2003-12-11  Ed Falis  <falis@gnat.com>
38563
38564         * 5zinit.adb: Clean up.
38565
38566         * 5zintman.adb (Notify_Exception): replaced case statement with a call
38567         to __gnat_map_signal, imported from init.c to support
38568         signal -> exception mappings that depend on the vxWorks version.
38569
38570         * init.c:
38571         Created and exported __gnat_map_signal to support signal -> exception
38572         mapping that is dependent on the VxWorks version.
38573         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
38574
38575 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
38576
38577         * 5wosinte.ads: Link with -mthreads switch.
38578
38579 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
38580
38581         * init.c (__gnat_install_handler [NetBSD]): Set
38582         __gnat_handler_installed, as done on all other platforms.
38583         Remove duplicated code.
38584
38585 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
38586
38587         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
38588
38589 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
38590
38591         * sinfo.ads: Fix inconsistent example code in comment.
38592
38593 2003-12-11  Robert Dewar  <dewar@gnat.com>
38594
38595         * a-tiinau.adb: Add a couple of comments
38596
38597         * sem_ch3.adb: Minor reformatting
38598
38599         * sem_prag.adb:
38600         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
38601         Minor reformatting throughout
38602
38603 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
38604
38605         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
38606         bounds of a loop, create a separate block in order to generate proper
38607         cleanup actions to prevent memory leaks.
38608
38609         * sem_res.adb (Resolve_Call): After a call to
38610         Establish_Transient_Scope, the call may be rewritten and relocated, in
38611         which case no further processing is needed.
38612
38613         * sem_util.adb: (Wrong_Type): Refine previous fix.
38614          Fixes ACATS regressions.
38615
38616         PR ada/13353
38617         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
38618         be inlined.
38619
38620 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
38621
38622         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
38623         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
38624         obsolete files.
38625
38626         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
38627         (rts-zfp): Ditto.
38628
38629 2003-12-08  Robert Dewar  <dewar@gnat.com>
38630
38631         * 7sintman.adb: Minor reformatting
38632
38633         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
38634         standard linker options to get standard libraries linked. We now plan
38635         to provide dummy versions of these libraries to match the appropriate
38636         configurable run-time (e.g. if a library is not needed at all, provide
38637         a dummy empty library).
38638
38639         * targparm.ads: Configurable_Run_Time mode no longer affects linker
38640         options (-L parameters and standard libraries). What we plan to do is
38641         to provide dummy libraries where the libraries are not required.
38642
38643         * gnatbind.adb: Minor comment improvement
38644
38645 2003-12-08  Javier Miranda  <miranda@gnat.com>
38646
38647         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
38648         aggregate in the parent. Otherwise constants with limited aggregates
38649         are not supported. Add new formal to pass the component type (Ctype).
38650         It is required to call the corresponding IP subprogram in case of
38651         default initialized components.
38652         (Gen_Assign): In case of default-initialized component, generate a
38653         call to the IP subprogram associated with the component.
38654         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
38655         of aggregate with default initialized components.
38656         (Has_Default_Init_Comps): Improve implementation to recursively check
38657         all the present expressions.
38658
38659         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
38660         to indicate that the initialization call corresponds to a
38661         default-initialized component of an aggregate.
38662         In case of default initialized aggregate with tasks this parameter is
38663         used to generate a null string (this is just a workaround that must be
38664         improved later). In case of discriminants, this parameter is used to
38665         generate a selected component node that gives access to the discriminant
38666         value.
38667
38668         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
38669         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
38670         allocated aggregates with default-initialized components.
38671
38672         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
38673         the box notation is used in positional aggregates.
38674
38675 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
38676
38677         * lib.ads: Fix typo in comment
38678
38679 2003-12-08  Vincent Celier  <celier@gnat.com>
38680
38681         * prj.adb (Project_Empty): New component Unkept_Comments
38682         (Scan): Remove procedure; moved to Prj.Err.
38683
38684         * prj.ads (Project_Data): New Boolean component Unkept_Comments
38685         (Scan): Remove procedure; moved to Prj.Err.
38686
38687         * prj-dect.adb: Manage comments for the different declarations.
38688
38689         * prj-part.adb (With_Record): New component Node
38690         (Parse): New Boolean parameter Store_Comments, defaulted to False.
38691         Set the scanner to return ends of line and comments as tokens, if
38692         Store_Comments is True.
38693         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
38694         comments are associated with these nodes. Store the node IDs in the
38695         With_Records.
38696         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
38697         With_Records.
38698         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
38699         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
38700         current project. Call Tree.Restore afterwards. Set the various nodes
38701         for comment storage (Next_End, End_Of_Line, Previous_Line,
38702         Previous_End).
38703
38704         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
38705         defaulted to False.
38706
38707         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
38708         to False. When Truncated is True, truncate the string, never go to the
38709         next line.
38710         (Write_End_Of_Line_Comment): New procedure
38711         (Print): Process comments for nodes N_With_Clause,
38712         N_Package_Declaration, N_String_Type_Declaration,
38713         N_Attribute_Declaration, N_Typed_Variable_Declaration,
38714         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
38715         Process nodes N_Comment.
38716
38717         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
38718         without comments and there are some comments, set the flag
38719         Unkept_Comments to True.
38720         (Scan): If there are comments, set the flag Unkept_Comments to True and
38721         clear the comments.
38722         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
38723         (Next_End_Nodes: New table
38724         (Comment_Zones_Of): New function
38725         (Scan): New procedure; moved from Prj. Accumulate comments in the
38726         Comments table and set end of line comments, comments after, after end
38727         and before end.
38728         (Add_Comments): New procedure
38729         (Save, Restore, Seset_State): New procedures
38730         (There_Are_Unkept_Comments): New function
38731         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
38732         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
38733         procedures.
38734         (First_Comment_After, First_Comment_After_End): New functions
38735         (First_Comment_Before, First_Comment_Before_End): New functions
38736         (Next_Comment): New function
38737         (End_Of_Line_Comment, Follows_Empty_Line,
38738         Is_Followed_By_Empty_Line): New functions
38739         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
38740         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
38741         (Set_Next_Comment): New procedure
38742         (Default_Project_Node): Associate comment before if the node can store
38743         comments.
38744
38745         * scans.ads (Token_Type): New enumeration value Tok_Comment
38746         (Comment_Id): New global variable
38747
38748         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
38749         defaulted to False.
38750         (Scan): Store position of start of comment. If comments are tokens, set
38751         Comment_Id and set Token to Tok_Comment when scanning a comment.
38752         (Set_Comment_As_Token): New procedure
38753
38754         * sinput-p.adb: Update Copyright notice
38755         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
38756         that no longer exists.
38757
38758 2003-12-08  Javier Miranda  <miranda@gnat.com>
38759
38760         * sem_aggr.adb: Add dependence on Exp_Tss package
38761         Correct typo in comment
38762         (Resolve_Aggregate): In case of array aggregates set the estimated
38763         type of the aggregate before calling resolve. This is needed to know
38764         the name of the corresponding IP in case of limited array aggregates.
38765         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
38766         in case of default initialized array components.
38767
38768         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
38769         types. Required to give support to limited aggregates in generic
38770         formals.
38771
38772 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
38773
38774         * sem_ch3.adb (Check_Initialization): For legality purposes, an
38775         inlined body functions like an instantiation.
38776         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
38777         until bounds are analyzed, to diagnose premature use of type.
38778
38779         * sem_util.adb (Wrong_Type): Improve error message when the type of
38780         the expression is used prematurely.
38781
38782 2003-12-08  GNAT Script  <nobody@gnat.com>
38783
38784         * Make-lang.in: Makefile automatically updated
38785
38786 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
38787
38788         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
38789         they are automatically generated by Make-lang.in and cause nothing but
38790         maintenance troubles.
38791
38792 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
38793
38794         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
38795         version of this unit).
38796
38797 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
38798
38799         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
38800         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
38801         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
38802         the body of System.Interrupt_Management common to several targets.
38803         Update copyright notice when appropriate.
38804
38805         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
38806         constant.
38807
38808         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
38809         to ensure that the kernel fills in the interrupted context structure
38810         before calling a signal handler, which is necessary to be able to
38811         unwind past it. Update the copyright notice.
38812
38813 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
38814
38815         * a-elchha.ads: New file.
38816
38817         * a-elchha.adb: New default last chance handler. Contents taken from
38818         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
38819
38820         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
38821         is moved to a-elchha.adb to provide a target-independent default last
38822         chance handler.
38823
38824         * Makefile.rtl: Add a-elchha.o
38825
38826         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
38827
38828 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
38829
38830         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
38831         declared in an instance, do not inline the call if the instance is not
38832         frozen yet, to prevent order of elaboration problems.
38833
38834         * sem_prag.adb: Add comments for previous fix.
38835
38836 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
38837
38838         * g-table.adb: Use the right variable in Set_Item.
38839         Update copyright notice.
38840
38841 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
38842
38843         * Makefile.in: Remove unused rules.
38844
38845 2003-12-05  Vincent Celier  <celier@gnat.com>
38846
38847         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
38848         -nostdlib. Not needed here after all.
38849
38850 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
38851
38852         PR ada/11724
38853         * adaint.h, adaint.c, g-os_lib.ads:
38854         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
38855         on some platforms (including FreeBSD), it is a 64 bit value.
38856         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
38857
38858 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
38859
38860         * gnatvsn.ads (Library_Version): Now contain only the relevant
38861         version info.
38862         (Verbose_Library_Version): New constant.
38863
38864         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
38865         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
38866         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
38867
38868         * gnatlbr.adb: Clean up: replace Library_Version by
38869         Verbose_Library_Version.
38870
38871         * make.adb, lib-writ.adb, exp_attr.adb:
38872         Clean up: replace Library_Version by Verbose_Library_Version.
38873
38874         * 5lintman.adb: Removed.
38875
38876         * Makefile.in:
38877         Update and simplify computation of LIBRARY_VERSION.
38878         Fix computation of GSMATCH_VERSION.
38879         5lintman.adb is no longer used: replaced by 7sintman.adb.
38880
38881 2003-12-03  Robert Dewar  <dewar@gnat.com>
38882
38883         * exp_ch5.adb:
38884         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
38885         name. Modified to consider small non-bit-packed arrays as troublesome
38886         and in need of component-by-component assigment expansion.
38887
38888 2003-12-03  Vincent Celier  <celier@gnat.com>
38889
38890         * lang-specs.h: Process nostdlib as nostdinc
38891
38892         * back_end.adb: Update Copyright notice
38893         (Scan_Compiler_Arguments): Process -nostdlib directly.
38894
38895 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
38896
38897         * Makefile.in:
38898         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
38899         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
38900         included in HIE_NONE_TARGET_PAIRS.
38901
38902 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
38903
38904         * sem_attr.adb:
38905         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
38906         is legal in an instance, because legality is cheched in the template.
38907
38908         * sem_prag.adb:
38909         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
38910         appplied to an unchecked conversion of a formal parameter.
38911
38912         * sem_warn.adb:
38913         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
38914         variables.
38915
38916 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
38917
38918         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
38919         routines. The second one is new functionality to deal with backtracing
38920         through signal handlers.
38921         (unwind): Split into the two separate subroutines above.
38922         Update the documentation, and deal properly with sizeof (REG) different
38923         from sizeof (void*).
38924
38925 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
38926
38927         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
38928         so that the debugger can reliably access the value of the parameter,
38929         and therefore is able to display the exception name when an exception
38930         breakpoint is reached.
38931
38932 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
38933
38934         * fmap.adb: Fix typo in warning message.
38935
38936         * g-socket.ads, g-socket.adb: Make Free a visible instance of
38937         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
38938
38939 2003-12-01  Vincent Celier  <celier@gnat.com>
38940
38941         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
38942         ther is no Afile.
38943         (Build_Library): Get the switches only if Default_Switches is declared
38944         in package Binder.
38945
38946 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
38947
38948         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
38949         actuals that are indexed components, reanalyze actual to ensure that
38950         packed array references are properly expanded.
38951
38952         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
38953         attempted assignment to a discriminant.
38954
38955 2003-12-01  Robert Dewar  <dewar@gnat.com>
38956
38957         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
38958         reformatting.
38959
38960         * switch-c.adb: Minor reformatting of comments
38961
38962 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
38963
38964         * Makefile.in: Clean ups.
38965
38966 2003-12-01  GNAT Script  <nobody@gnat.com>
38967
38968         * Make-lang.in: Makefile automatically updated
38969
38970 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
38971
38972         * 5wsystem.ads: Disable zero cost exception, not ready yet.
38973
38974 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
38975
38976         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
38977         to force serialization.
38978
38979 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
38980
38981         * g-socket.ads, g-socket.adb:
38982         Clarify documentation of function Stream. Introduce a Free procedure
38983         to release the returned Stream once it becomes unused.
38984
38985         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
38986
38987 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
38988
38989         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
38990         since NT 4 cannot handle timeout values that are too large,
38991         e.g. DWORD'Last - 1.
38992
38993 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
38994
38995         * exp_ch4.adb:
38996         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
38997         in procedure calls and whose expansion must be deferred.
38998
38999         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
39000         is in exp_ch4.
39001
39002         * sem_ch3.adb:
39003         (Build_Derived_Array_Type): Create operator for unconstrained type
39004         if ancestor is unconstrained.
39005
39006 2003-11-26  Vincent Celier  <celier@gnat.com>
39007
39008         * make.adb (Project_Object_Directory): New global variable
39009         (Change_To_Object_Directory): New procedure
39010         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
39011         of Change_Dir directly. Do not change working directory to object
39012         directory of main project after each compilation.
39013         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
39014         directly.
39015         Change to object directory of main project before binding step.
39016         (Initialize): Initialize Project_Object_Directory to No_Project
39017
39018         * mlib-prj.adb:
39019         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
39020         binding a Stand-Alone Library.
39021
39022         * output.adb: Update Copyright notice
39023         (Write_Char): Output buffer when full
39024
39025 2003-11-26  Robert Dewar  <dewar@gnat.com>
39026
39027         * sem_ch13.adb: (Check_Size): Reset size if size is too small
39028
39029         * sem_ch13.ads:
39030         (Check_Size): Fix documentation to include bit-packed array case
39031
39032         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
39033
39034         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
39035
39036         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
39037
39038 2003-11-24  Arnaud Charlet  <charlet@act-europe.fr>
39039
39040         PR ada/13142
39041         * utils.c (init_gigi_decls): Change name of built-in setjmp to
39042         __builtin_setjmp, since this is apparently needed by recent
39043         non Ada changes.
39044
39045 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39046
39047         * adadecode.c: Only include ctype.h if not IN_GCC.
39048         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
39049
39050 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
39051
39052         * Makefile.in:
39053         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
39054         signals and interrupts.
39055
39056         * 5zintman.ads: New File.
39057
39058         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
39059         add exception signals to the set of unmasked signals.
39060
39061         * 5ztaprop.adb:
39062         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
39063         between signals and interrupts.
39064         Add to Unblocked_Signal_Mask the set of signals that are in
39065         Keep_Unmasked.
39066
39067         * 7sinmaop.adb:
39068         Adding a check to see whether the Interrupt_ID we want to unmask is in
39069         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
39070         reason is that the index type of the Keep_Unmasked array is not always
39071         Interrupt_ID; it may be a subtype of Interrupt_ID.
39072
39073 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
39074
39075         * exp_util.adb:
39076         (Remove_Side_Effects): Condition constantness of object created for a
39077          an unchecked type conversion on the constantness of the expression
39078          to ensure the correct value for 'Constrained when passing components
39079          of view-converted class-wide objects.
39080
39081 2003-11-24  Robert Dewar  <dewar@gnat.com>
39082
39083         * par-load.adb (Load): Improve handling of misspelled and missing units
39084         Removes several cases of compilation abandoned messages
39085
39086         * lib.adb: (Remove_Unit): New procedure
39087
39088         * lib.ads: (Remove_Unit): New procedure
39089
39090         * lib-load.adb: Minor reformatting
39091
39092 2003-11-24  Vincent Celier  <celier@gnat.com>
39093
39094         * make.adb:
39095         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
39096         (Marking_Label): Label to mark processed source files. Incremented for
39097         each executable.
39098         (Gnatmake): Increase Marking_Labet for each executable
39099         (Is_Marked): Compare against marking label
39100         (Mark): Mark with marking label
39101
39102 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
39103
39104         * s-thread.ads:
39105         Move the declaration of the TSD for System.Threads to System.Soft_Links.
39106         Add some comments.
39107
39108         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
39109         (rts-cert): build a single relocatable object for the run-time lib.
39110         Fix perms.
39111
39112 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
39113
39114         * Make-lang.in:
39115         Use gnatls rather than gcc to obtain the location of GNAT RTL for
39116         crosstools build.
39117
39118 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
39119
39120         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
39121         can not use it as before (that is, as a variable) when dumping it into
39122         the tree file. Add a local variable to store the result of this
39123         function and to be used as the string to be written into the tree.
39124
39125         * scn.adb (Initialize_Scanner): Add comments explaining the recent
39126         changes.
39127
39128         * sinput.adb (Source_First, Source_Last): In case of
39129         Internal_Source_File, replace returning attributes of
39130         Internal_Source_Ptr (which is wrong) with returning attributes of
39131         Internal_Source.
39132
39133 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
39134
39135         * sem_ch3.adb:
39136         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
39137         used for implicit concatenation operators.
39138         Code cleanup.
39139
39140         * sem_elab.adb:
39141         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
39142         task bodies that are in the scope of a Suppress pragma.
39143         (Check_A Call): Use the flag to prevent spurious elaboration checks.
39144
39145         * sinfo.ads, sinfo.adb:
39146         New flag No_Elaboration_Check on function/procedure calls, to properly
39147         suppress checks on calls in task bodies that are within a local suppress
39148         pragma.
39149
39150         * exp_ch4.adb:
39151         (Expand_Concatenate_Other): Use the proper integer type for the
39152         expression for the upper bound, to avoid universal_integer computations
39153         when possible.
39154
39155 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
39156
39157         * .cvsignore: Delete.
39158
39159 2003-11-21  Andreas Schwab  <schwab@suse.de>
39160
39161         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
39162
39163 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
39164
39165         * 5wsystem.ads: Enable zero cost exception.
39166
39167 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
39168
39169         * 5ztiitho.adb: Remove an unreferenced variable.
39170
39171 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
39172
39173         * adaint.c: For FreeBSD, use mkstemp.
39174
39175 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
39176
39177         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
39178
39179 2003-11-21  Robert Dewar  <dewar@gnat.com>
39180
39181         * bld.adb: Remove useless USE of gnatvsn
39182
39183         * gnatchop.adb: Minor reformatting
39184         Clean up version handling to be more consistent
39185
39186         * gnatxref.adb: Minor reformatting
39187
39188         * gprcmd.adb: Minor reformatting
39189         Fix output of copyright to be more consistent with other tools
39190
39191 2003-11-21  Vincent Celier  <celier@gnat.com>
39192
39193         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
39194
39195 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
39196
39197         * atree.adb (Initialize): Add initializations for global variables
39198         used in New_Copy_Tree.
39199
39200         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
39201         Internal_Source_File as the actual).
39202         Put the set of statements creating Any_Character before the set of
39203         statements creating Any_Array to have Any_Character fully initialized
39204         when it is used in creating Any_Array.
39205
39206         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
39207         not call Scan in case if the actual is Internal_Source_File
39208         Add 2003 to copyright note.
39209
39210         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
39211         processing Internal_Source_File.
39212
39213         * types.ads: Add the constant Internal_Source_File representing the
39214         source buffer for artificial source-code-like strings created within
39215         the compiler (the definition of Source_File_Index is changed).
39216
39217 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
39218
39219         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
39220         56system.ads: New file, FreeBSD version.
39221
39222 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
39223
39224         * Make-lang.in (ada.extraclean): Delete.
39225
39226 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
39227
39228         * gnatmem.adb: Clean up verbose output.
39229
39230         * gprcmd.adb: Change copyright to FSF.
39231
39232 2003-11-19  Vincent Celier  <celier@gnat.com>
39233
39234         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
39235         and Version (ignored).
39236
39237         * symbols.ads: (Policy): New type
39238         (Initialize): New parameter Reference, Symbol_Policy and
39239         Library_Version.
39240         Remove parameter Force.
39241         Minor reformatting.
39242
39243         * snames.ads, snames.adbadb: New standard names
39244         Library_Reference_Symbol_File and Library_Symbol_Policy
39245
39246         * mlib-prj.adb:
39247         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
39248         project.
39249
39250         * mlib-tgt.adb:
39251         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
39252
39253         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
39254
39255         * prj.adb: (Project_Empty): New component Symbol_Data
39256
39257         * prj.ads: (Policy, Symbol_Record): New types
39258         (Project_Data): New component Symbol_Data
39259
39260         * prj-attr.adb:
39261         New attributes Library_Symbol_File, Library_Symbol_Policy and
39262         Library_Reference_Symbol_File.
39263
39264         * prj-nmsc.adb:
39265         (Ada_Check): When project is a Stand-Alone library project, process
39266         attribute Library_Symbol_File, Library_Symbol_Policy and
39267         Library_Reference_Symbol_File.
39268
39269         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
39270         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
39271         5sml-tgt.adb (Build_Dynamic_Library): New parameter
39272         Symbol_Data (ignored).
39273
39274         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
39275         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
39276         functions Option_File_Name and Version_String. Set new options of
39277         gnatsym related to symbol file, symbol policy and reference symbol
39278         file.
39279
39280         * 5vsymbol.adb:
39281         Extensive modifications to take into account the reference symbol file,
39282         the symbol policy, the library version and to put in the symbol file the
39283         minor and major IDs.
39284
39285         * bld.adb (Process_Declarative_Items): Put second argument of
39286         gprcmd to_absolute between single quotes, to avoid problems with
39287         Windows.
39288
39289         * bld-io.adb: Update Copyright notice.
39290         (Flush): Remove last character of a line, if it is a back slash, to
39291         avoid make problems.
39292
39293         * gnatsym.adb:
39294         Implement new scheme with reference symbol file and symbol policy.
39295
39296         * g-os_lib.ads: (Is_Directory): Clarify comment
39297
39298 2003-11-19  Robert Dewar  <dewar@gnat.com>
39299
39300         * atree.adb: Move New_Copy_Tree global variables to head of package
39301
39302         * errout.adb: Minor reformatting
39303
39304 2003-11-19  Javier Miranda  <miranda@gnat.com>
39305
39306         * sem_ch4.adb: (Diagnose_Call): Improve error message.
39307         Add reference to Ada0Y (AI-50217)
39308
39309         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
39310         sem_util.adb: Add reference to AI-50217
39311
39312         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
39313
39314         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
39315
39316         * sem_aggr.adb: Complete documentation of AI-287 changes
39317
39318         * par-ch4.adb: Document previous changes.
39319
39320         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
39321         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
39322         Ada0Y (AI-50217)
39323
39324         * exp_aggr.adb: Add references to AI-287 in previous changes
39325
39326 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
39327
39328         * exp_ch6.adb:
39329         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
39330         in the rewriting is the result of an inlined call.
39331
39332         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
39333         parameter is a type conversion, use original node to construct the
39334         post-call assignment, because expression may have been rewritten, e.g.
39335         if it is a packed array.
39336
39337         * sem_attr.adb:
39338         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
39339         body, just as it is in an instance.
39340         Categorization routines
39341
39342         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
39343         Instantiate_Object): Set proper sloc reference for message on missing
39344         actual.
39345
39346 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
39347
39348         * Makefile.in: Add FreeBSD libgnat pairs.
39349
39350         * usage.adb: Fix typo in usage message.
39351
39352 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
39353
39354         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
39355         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
39356         pragma Thread_Body.
39357         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
39358
39359         * s-thread.adb: This file is now a dummy implementation of
39360         System.Thread.
39361
39362 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
39363
39364         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
39365
39366 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
39367
39368         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
39369         instanciation references in the parent type description.
39370
39371 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39372
39373         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
39374
39375         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
39376         TYPE_PRECISION directly from esize.
39377
39378 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
39379
39380         * cstreams.c:
39381         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
39382
39383         * init.c: Initialization routines for FreeBSD
39384
39385         * link.c: Link info for FreeBSD
39386
39387         * sysdep.c: Add the case of FreeBSD
39388
39389 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
39390
39391         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
39392         already called in System.Threads.
39393
39394         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
39395         environment task, as it has been moved to System.Threads.Initialization.
39396
39397 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
39398
39399         * adaint.c (__gnatlib_install_locks): Only reference
39400         __gnat_install_locks on VMS, since other platforms can avoid using
39401         --enable-threads=gnat
39402
39403 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39404
39405         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
39406
39407         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
39408         TYPE_PACKED_ARRAY_TYPE_P.
39409         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
39410
39411         Part of PR ada/12806
39412         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
39413         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
39414
39415 2003-11-17  Vincent Celier  <celier@gnat.com>
39416
39417         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
39418         to False.
39419         Do not set exit status to Failure when Warning is True.
39420         (Gnatchop): Make errors "no compilation units found" and
39421         "no source files written" warnings only.
39422
39423         * make.adb (Gnatmake): When using a project file, set
39424         Look_In_Primary_Dir to False.
39425         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
39426         and Local_Configuration_Pragmas in the project where they are declared
39427         not an extending project which might have inherited them.
39428
39429         * osint.adb (Locate_File): If Name is already an absolute path, do not
39430         look for a directory.
39431
39432         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
39433         -gnats (Check_Syntax) is used, issue only a warning, not an error.
39434
39435         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
39436         in objects of type Variable_Value.
39437
39438         * prj.ads: (Variable_Value): New component Project
39439
39440         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
39441         is in a project extended by Project.
39442
39443         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
39444         Project of Variable_Values to this new parameter value.
39445         (Expression): Set component Project of Variable_Values.
39446         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
39447         Set the component Project in array elements.
39448
39449 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
39450
39451         * errout.adb: (Initialize): Add initialization for error nodes.
39452
39453         * sem_ch12.adb (Initialize): Add missing initializations for
39454         Exchanged_Views and Hidden_Entities.
39455
39456 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
39457
39458         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
39459         already instantiated tree for use in subsequent inlining.
39460         (Analyze_Associations, Instantiate_Formal_Subprogram,
39461         Instantiate_Object): improve error message for mismatch in
39462         instantiations.
39463
39464         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
39465         instantiations of subprograms declared in instances.
39466
39467 2003-11-17  Javier Miranda  <miranda@gnat.com>
39468
39469         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
39470         executed only under the Extensions_Allowed flag.
39471
39472 2003-11-17  Robert Dewar  <dewar@gnat.com>
39473
39474         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
39475         zeroes suppressed.
39476         (Address_Image): Fix bug of returning 0x instead of 0x0
39477         Minor reformatting (function specs).
39478
39479         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
39480         (missed case of 33-63)
39481
39482         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
39483
39484         * s-thread.adb: Add comments for pragma Restriction
39485
39486         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
39487         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
39488
39489 2003-11-17  Ed Falis  <falis@gnat.com>
39490
39491         * s-thread.adb: Added No_Tasking restriction for this implementation.
39492
39493 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
39494
39495         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
39496         instanciation references in the parent type description.
39497
39498 2003-11-17  GNAT Script  <nobody@gnat.com>
39499
39500         * Make-lang.in: Makefile automatically updated
39501
39502 2003-11-16  Jason Merrill  <jason@redhat.com>
39503
39504         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
39505         and TAGS files that include them for each front end.
39506
39507 2003-11-14  Andreas Jaeger  <aj@suse.de>
39508
39509         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
39510         is the canonical version.
39511         * misc.c (gnat_handle_option): Likewise.
39512
39513         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
39514
39515         * 5nsystem.ads: New file for x86_64-linux-gnu.
39516
39517 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
39518
39519         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
39520
39521         * comperr.adb: Fix logic in previous change.
39522
39523 2003-11-13  Vincent Celier  <celier@gnat.com>
39524
39525         * 5bml-tgt.adb (Build_Dynamic_Library): Use
39526         Osint.Include_Dir_Default_Prefix instead of
39527         Sdefault.Include_Dir_Default_Name.
39528
39529         * gnatlbr.adb: Update Copyright notice
39530         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
39531         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
39532         instead of Sdefault.Object_Dir_Default_Name
39533
39534         * gnatlink.adb:
39535         (Process_Binder_File): Never suppress the option following -Xlinker
39536
39537         * mdll-utl.adb:
39538         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
39539         Sdefault.Object_Dir_Default_Name.
39540
39541         * osint.ads, osint.adb:
39542         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
39543         Minor reformatting.
39544
39545         * vms_conv.ads: Minor reformating
39546         Remove GNAT STANDARD and GNAT PSTA
39547
39548         * vms_conv.adb:
39549         Allow GNAT MAKE to have several files on the command line.
39550         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
39551         Sdefault.Object_Dir_Default_Name.
39552         Minor Reformating
39553         Remove data for GNAT STANDARD
39554
39555         * vms_data.ads:
39556         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
39557         Remove data for GNAT STANDARD
39558         Remove options and documentation for -gnatwb/-gnatwB: these warning
39559         options no longer exist.
39560
39561 2003-11-13  Ed Falis  <falis@gnat.com>
39562
39563         * 5zthrini.adb: (Init_RTS): Made visible
39564
39565         * 5zthrini.adb:
39566         (Register): Removed unnecessary call to taskVarGet that checked whether
39567          an ATSD was already set as a task var for the argument thread.
39568
39569         * s-thread.adb:
39570         Updated comment to reflect that this is a VxWorks version
39571         Added context clause for System.Threads.Initialization
39572         Added call to System.Threads.Initialization.Init_RTS
39573
39574 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
39575
39576         * 5zthrini.adb:
39577         (Init_RTS): New procedure, for the initialization of the run-time lib.
39578
39579         * s-thread.adb:
39580         Remove dependancy on System.Init, so that this file can be used in the
39581         AE653 sequential run-time lib.
39582
39583 2003-11-13  Robert Dewar  <dewar@gnat.com>
39584
39585         * bindgen.adb: Minor reformatting
39586
39587 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
39588
39589         * checks.adb:
39590         (Apply_Discriminant_Check): Do no apply check if target type is derived
39591         from source type with no applicable constraint.
39592
39593         * lib-writ.adb:
39594         (Ensure_System_Dependency): Do not apply the style checks that may have
39595         been specified for the main unit.
39596
39597         * sem_ch8.adb:
39598         (Find_Selected_Component): Further improvement in error message, with
39599         RM reference.
39600
39601         * sem_res.adb:
39602         (Resolve): Handle properly the case of an illegal overloaded protected
39603         procedure.
39604
39605 2003-11-13  Javier Miranda  <miranda@gnat.com>
39606
39607         * exp_aggr.adb:
39608         (Has_Default_Init_Comps): New function to check the presence of
39609         default initialization in an aggregate.
39610         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
39611         extension aggregate of a limited record. In addition, a new formal
39612         was added to do not initialize the record controller (if any) during
39613         this recursive expansion of ancestors.
39614         (Init_Controller): Add support for limited record components.
39615         (Expand_Record_Aggregate): In case of default initialized components
39616         convert the aggregate into a set of assignments.
39617
39618         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
39619         describing the new syntax.
39620         Nothing else needed to be done because this subprogram delegates part of
39621         its work to P_Precord_Or_Array_Component_Association.
39622         (P_Record_Or_Array_Component_Association): Give support to the new
39623         syntax for default initialization of components.
39624
39625         * sem_aggr.adb:
39626         (Resolve_Aggregate): Relax the strictness of the frontend in case of
39627         limited aggregates.
39628         (Resolve_Record_Aggregate): Give support to default initialized
39629         components.
39630         (Get_Value): In case of default initialized components, duplicate
39631         the corresponding default expression (from the record type
39632         declaration). In case of default initialization in the *others*
39633         choice, do not check that all components have the same type.
39634         (Resolve_Extension_Aggregate): Give support to limited extension
39635         aggregates.
39636
39637         * sem_ch3.adb:
39638         (Check_Initialization): Relax the strictness of the front-end in case
39639         of aggregate and extension aggregates. This test is now done in
39640         Get_Value in a per-component manner.
39641
39642         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
39643         expression corresponds to a limited aggregate. This test is now done
39644         in Get_Value.
39645
39646         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
39647         Box_Present flag.
39648
39649         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
39650         present in an N_Component_Association node
39651
39652 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
39653
39654         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
39655         type-conformant entry only if they are homographs.
39656
39657 2003-11-13  GNAT Script  <nobody@gnat.com>
39658
39659         * Make-lang.in: Makefile automatically updated
39660
39661 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39662
39663         * adadecode.c: Use <> form of include for ctype.h.
39664         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
39665
39666 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39667
39668         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
39669         Works around PR middle-end/6552.
39670
39671 2003-11-10  Ed Falis  <falis@gnat.com>
39672
39673         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
39674
39675         * 5zinit.adb: (Install_Handler): Moved back to spec
39676         (Install_Signal_Handlers): Deleted
39677
39678         * 5zthrini.adb: Added context clause for System.Storage_Elements
39679         (Register): Only handles creation of taskVar; initialization moved to
39680         Thread_Body_Enter.
39681         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
39682         Added declaration of environment task secondary stack and
39683         initialization.
39684
39685         * s-thread.adb: Implement bodies for thread body processing
39686
39687         * s-thread.ads:
39688         Added comment identifying supported targets for pragma Thread_Body.
39689
39690 2003-11-10  Pascal Obry  <obry@gnat.com>
39691
39692         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
39693         GNAT_MAX_PATH_LEN.
39694
39695         * s-fileio.adb:
39696         (Open): Properly check for string length before copying into the buffer.
39697         Raises Name_Error if buffer is too small. Note that this was a potential
39698         buffer overflow.
39699
39700 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
39701
39702         * bindgen.adb, comperr.adb: Code clean ups.
39703         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
39704
39705 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
39706
39707         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
39708
39709 2003-11-10  Vincent Celier  <celier@gnat.com>
39710
39711         * gprcmd.adb:
39712         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
39713         installation.
39714
39715         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
39716
39717         * prj.adb: (Project_Empty): Add new boolean component Virtual
39718
39719         * prj.ads: (Virtual_Prefix): New constant string
39720         (Project_Data): New boolean component Virtual
39721
39722         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
39723         a library project is extended by a virtual extending project.
39724
39725         * prj-part.adb:
39726         Modifications throughout to implement extending-all project, including:
39727         (Virtual_Hash, Processed_Hash): New hash tables
39728         (Create_Virtual_Extending_Project): New procedure
39729         (Look_For_Virtual_Projects_For): New procedure
39730
39731         * prj-proc.adb:
39732         (Process): After checking the projects, if main project is an
39733         extending-all project, set the object directory of all virtual extending
39734         project to the object directory of the main project.
39735         Adjust error message when a virtual extending project has the same
39736         object directory as an project being extended.
39737         (Recursive_Process): If name starts with the virtual prefix, set Virtual
39738         to True in the project data.
39739
39740         * prj-tree.adb:
39741         (Default_Project_Node): Add new boolean component Extending_All
39742         (Is_Extending_All): New function
39743         (Set_Is_Extending_All): New procedure
39744
39745         * prj-tree.ads: (Is_Extending_All): New function
39746         (Set_Is_Extending_All): New procedure
39747         (Project_Node_Record): New boolean component Extending_All
39748
39749         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
39750
39751         * vms_data.ads:
39752         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
39753
39754         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
39755         "gprcmd prefix" to define it.
39756
39757 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
39758
39759         * einfo.ads: Fix a typo and remove an extraneous word in comments.
39760
39761         * lib-load.adb:
39762         (Create_Dummy_Package_Unit): Set the scope of the entity for the
39763         created dummy package to Standard_Standard, not to itself, to
39764         defend other parts of the front-end against encoutering a cycle in
39765         the scope chain.
39766
39767         * sem_ch10.adb:
39768         (Analyze_With_Clause): When setting the entities for the successive
39769         N_Expanded_Names that constitute the name of a child unit, do not
39770         attempt to go further than Standard_Standard in the chain of scopes.
39771         This case arises from the placeholder units created by
39772         Create_Dummy_Package_Unit in the case of a with_clause for a
39773         nonexistent child unit.
39774
39775 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
39776
39777         * exp_ch6.adb:
39778         (Expand_Thread_Body): Place subprogram on scope stack, so that new
39779         declarations are given the proper scope.
39780
39781         * sem_ch13.adb:
39782         (Check_Expr_Constants): Reject an expression that contains a constant
39783         created during expansion, and that appears after the object to which
39784         the address clause applies.
39785
39786         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
39787         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
39788         that uses 'Range of a function call with controlled components, so
39789         that the function result can be finalized before starting the loop.
39790
39791         * sem_ch8.adb:
39792         (Find_Selected_Component): Improve error message when prefix is
39793         an implicit dereference of an incomplete type.
39794
39795 2003-11-10  Robert Dewar  <dewar@gnat.com>
39796
39797         * opt.ads: New Print_Standard flag for -gnatS switch
39798
39799         * sem_ch13.adb: Remove some additional checks for unaligned arrays
39800
39801         * cstand.adb (Create_Standard): Print out package standard if -gnatS
39802         switch set
39803
39804         * debug.adb: Update doc for -gnatds to discuss relationship with new
39805         -gnatS flag
39806
39807         * sinfo.adb: Add new field Entity_Or_Associated_Node
39808
39809         * sinfo.ads: Add new field Entity_Or_Associated_Node
39810         Update documentation for Associated_Node and Entity fields to clarify
39811         relationship and usage.
39812
39813         * sprint.adb:
39814         (Write_Id): Properly process Associated_Node field in generic template
39815
39816         * switch-c.adb:
39817         Recognize new -gnatS switch for printing package Standard
39818         This replaces gnatpsta
39819
39820         * usage.adb:
39821         Add line for  new -gnatS switch for printing package Standard
39822         This replaces gnatpsta
39823
39824 2003-11-10  Andreas Jaeger  <aj@suse.de>
39825
39826         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
39827         integer.
39828
39829 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
39830
39831         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
39832         by gnat1.
39833
39834 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
39835
39836         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
39837         no longer needed.
39838
39839         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
39840
39841         * sysdep.c: Add handling of cygwin.
39842
39843 2003-11-10  GNAT Script  <nobody@gnat.com>
39844
39845         * Make-lang.in: Makefile automatically updated
39846
39847 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
39848
39849         PR 12950
39850         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
39851         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
39852         Replace GNAT_ROOT by GCC_ROOT.
39853
39854         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
39855
39856 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
39857
39858         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
39859         and update for changed meaning of GET_MODE_BITSIZE.
39860
39861 2003-11-04  Doug Rupp  <rupp@gnat.com>
39862
39863         * sysdep.c: Problem discovered during IA64 VMS port.
39864         [VMS] #include <unixio.h> to get proper prototypes.
39865
39866         * adaint.c:
39867         Issues discovered/problems fixed during IA64 VMS port.
39868         [VMS] #define _POSIX_EXIT for proper semantics.
39869         [VMS] #include <unixio.h> for proper prototypes.
39870         [VMS] (fork): #define IA64 version.
39871         (__gnat_os_exit): Remove unnecessary VMS specific code.
39872
39873 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39874
39875         Part of PR ada/12806
39876         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
39877         tree, not integer.
39878
39879         * decl.c:
39880         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
39881         not integer.
39882
39883         * targtyps.c, decl.c, misc.c,
39884         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
39885         routines to work around change in FP sizing semantics in GCC.
39886
39887         * utils.c:
39888         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
39889
39890         * gigi.h: (enumerate_modes): New function.
39891
39892         * Make-lang.in: (ada/misc.o): Add real.h.
39893
39894         * misc.c: (enumerate_modes): New function.
39895
39896 2003-11-04  Robert Dewar  <dewar@gnat.com>
39897
39898         * 3vtrasym.adb: Minor reformatting
39899         Use terminology encoded/decoded name, rather than C++ specific notion
39900         of mangling (this is the terminology used throughout GNAT).
39901
39902         * einfo.h: Regenerated
39903
39904         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
39905
39906         * exp_ch6.adb:
39907         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
39908
39909         * par-prag.adb: Add dummy entry for Thread_Body pragma
39910
39911         * rtsfind.ads:
39912         Add entries for System.Threads entities for thread body processing
39913
39914         * sem_attr.adb:
39915         (Analyze_Pragma, Access attributes): Check these are not applied to a
39916         thread body, since this is not permitted
39917
39918         * sem_prag.adb: Add processing for Thread_Body pragma.
39919         Minor comment fix.
39920
39921         * sem_res.adb:
39922         (Resolve_Call): Check for incorrect attempt to call a thread body
39923          procedure with a direct call.
39924
39925         * snames.ads, snames.adb: Add entry for Thread_Body pragma
39926         Add names associated with thread body expansion
39927
39928         * snames.h: Add entry for Thread_Body pragma
39929
39930         * s-thread.adb: Add entries for thread body processing
39931         These are dummy bodies so far
39932
39933         * s-thread.ads: Add documentation on thread body handling.
39934         Add entries for thread body processing.
39935
39936 2003-11-04  Javier Miranda  <miranda@gnat.com>
39937
39938         * sem_ch10.adb:
39939         (Build_Limited_Views): Return after posting an error in case of limited
39940         with_clause on subprograms, generics, instances or generic renamings
39941         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
39942         on subprograms, generics, instances or generic renamings
39943
39944 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
39945
39946         * raise.c (setup_to_install): Correct mistake in last revision; two
39947         arguments out of order.
39948
39949         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
39950         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
39951         notice, missed in previous change.
39952         Remove trailing blanks and other style errors introduced in previous
39953         change.
39954
39955 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
39956
39957         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
39958         rid of the wrapper for a LJM type, ensuring we don't do that if the
39959         field is addressable.  This avoids potential low level type view
39960         mismatches later on, for instance in a by-reference argument passing
39961         process.
39962
39963 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
39964
39965         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
39966         aligned at byte boundary.
39967
39968 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
39969
39970         * decl.c (components_to_record): Do not delete the empty variants from
39971         the end of the union type.
39972
39973 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
39974
39975         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
39976         operation for a derived type, an explicit declaration may use a local
39977         subtype of Boolean.
39978
39979 2003-11-04  Vincent Celier  <celier@gnat.com>
39980
39981         * make.adb (Gnatmake): Allow main sources on the command line with a
39982         library project when it is only for compilation (no binding or
39983         linking).
39984
39985 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
39986
39987         * Makefile.in: Remove many duplicate variables.
39988
39989 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
39990
39991         * Make-lang.in (dvi): Move targets to $(docobjdir).
39992         (gnat_ug_vms.dvi): Simplify rule and adjust target.
39993         (gnat_ug_wnt.dvi): Likewise.
39994         (gnat_ug_unx.dvi): Likewise.
39995         (gnat_ug_vxw.dvi): Likewise.
39996         (gnat_rm.dvi): Likewise.
39997         (gnat-style.dvi): Likewise.
39998
39999 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
40000
40001         * gigi.h: Missed commit from update for C90.
40002
40003 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
40004
40005         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
40006
40007 2003-10-31  Andreas Schwab  <schwab@suse.de>
40008
40009         * raise.c (get_action_description_for): Fix typo in last change.
40010
40011 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
40012
40013         PR ada/12761
40014         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
40015         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
40016
40017 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
40018
40019         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
40020         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
40021         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
40022         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
40023         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
40024
40025 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
40026
40027         * 3vtrasym.adb:
40028         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
40029         numbers when symbol name is too long.
40030
40031 2003-10-30  Ed Falis  <falis@gnat.com>
40032
40033         * g-signal.ads, g-signal.adb: New files
40034
40035         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
40036
40037         * Makefile.rtl: Introduce GNAT.Signals
40038
40039 2003-10-30  Robert Dewar  <dewar@gnat.com>
40040
40041         * freeze.adb: Minor reformatting
40042
40043         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
40044
40045         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
40046         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
40047         New handling of Id_Check parameter to improve recognition of keywords
40048         used as identifiers.
40049         Update copyright notice to include 2003
40050
40051 2003-10-29  Robert Dewar  <dewar@gnat.com>
40052
40053         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
40054         sem_ch10.adb: Minor reformatting
40055
40056         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
40057         (Expand_Assign_Record): Test right hand side for bit unaligned as well
40058
40059 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
40060
40061         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
40062         Support for TBK$SYMBOLIZE-based symbolic traceback.
40063
40064 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
40065
40066         * exp_disp.adb:
40067         Revert previous change, that did not work well when pragma No_Run_Time
40068         was used in conjunction with a run-time other than ZFP.
40069
40070 2003-10-29  Vincent Celier  <celier@gnat.com>
40071
40072         * make.adb:
40073         (Gnatmake): When there are no Ada mains in attribute Main, disable the
40074          bind and link steps only is switch -z is not used.
40075
40076 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
40077
40078         * Makefile.generic: Remove duplicated setting of CC.
40079
40080         * Makefile.prolog: Set CC to gcc by default, to override make's
40081         default (cc).
40082
40083         * einfo.h: Regenerated.
40084
40085 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
40086
40087         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
40088         current body, after compiling subunit.
40089
40090         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
40091         when in deleted code, because gigi needs properly ordered freeze
40092         actions to annotate types.
40093
40094         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
40095         prevent the premature freezing of record type that contains
40096         subcomponents with a private type that does not yet have a completion.
40097
40098 2003-10-29  Javier Miranda  <miranda@gnat.com>
40099
40100         * sem_ch12.adb:
40101         (Analyze_Package_Instantiation): Check that instances can not be used in
40102         limited with_clauses.
40103
40104         * sem_ch8.adb:
40105         (Analyze_Package_Renaming): Check that limited withed packages cannot
40106         be renamed. Improve text on error messages related to limited
40107         with_clauses.
40108
40109         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
40110
40111         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
40112         Update copyright notice.
40113
40114         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
40115         (Install_Limited_Context_Clauses): New subprogram that isolates all the
40116         checks required for limited context_clauses and installs the limited
40117         view.
40118         (Install_Limited_Withed_Unit): Complete its documentation.
40119         (Analyze_Context): Check that limited with_clauses are only allowed in
40120         package specs.
40121         (Install_Context): Call Install_Limited_Context_Clauses after the
40122         parents have been installed.
40123         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
40124         package as 'From_With_Type'; this mark indicates that the limited view
40125         is installed. Used to check bad usages of limited with_clauses.
40126         (Build_Limited_Views): Do not add shadow entities to the scope's list
40127         of entities. Do not add real entities to the Non_Limited_Views chain.
40128         Improve error notification.
40129         (Remove_Context_Clauses): Remove context clauses in two phases:
40130         limited views first and regular views later (to maintain the
40131         stack model).
40132         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
40133         its visible entities.
40134
40135 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
40136
40137         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
40138         with any type that Is_Fixed_Point_Type.
40139
40140         * sinfo.ads: Fix documentation for Associated_Node attribute.
40141
40142 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
40143
40144         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
40145         both '-gnatc' and '-gnatt' are specified.
40146
40147         * atree.adb (Initialize): Add initialization for Node_Count (set to
40148         zero).
40149
40150 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40151
40152         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
40153         do not consider as Pure.
40154
40155         Part of implementation of function-at-a-time:
40156
40157         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
40158         (tree_transform): Add new argument to build_component_ref.
40159         (tree_transform, case N_Assignment_Statement): Make and return an
40160         EXPR_STMT.
40161         (tree_transform): If result IS_STMT, set flags and return it.
40162         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
40163
40164         * utils2.c (build_simple_component_ref, build_component_ref): Add new
40165         arg, NO_FOLD_P.
40166         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
40167         (build_allocator): Likewise.
40168
40169         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
40170         Add new arg to build_component_ref.
40171         (maybe_unconstrained_array, unchecked_convert): Likewise.
40172
40173         * ada-tree.def (EXPR_STMT): New code.
40174
40175         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
40176
40177         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
40178         build_component_ref calls.
40179
40180         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
40181
40182         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
40183         (build_component_ref): Add new argument, NO_FOLD_P.
40184
40185 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
40186
40187         * Makefile.generic: Add missing substitution on object_deps handling.
40188
40189         PR ada/5909
40190         * Make-lang.in (check-ada): Enable ACATS test suite.
40191
40192 2003-10-27  Robert Dewar  <dewar@gnat.com>
40193
40194         * exp_ch3.adb:
40195         (Freeze_Array_Type): We do not need an initialization routine for types
40196         derived from String or Wide_String. They should be treated the same
40197         as String and Wide_String themselves. This caused problems with the
40198         use of Initialize_Scalars.
40199
40200         * exp_ch5.adb:
40201         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
40202         composites. This allows use of component clauses that are not byte
40203         aligned.
40204
40205         * sem_prag.adb:
40206         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
40207         is an attempt to pack an array of atomic objects.
40208
40209         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
40210
40211 2003-10-27  Pascal Obry  <obry@gnat.com>
40212
40213         * g-dirope.adb:
40214         (Basename): Check for drive letters in a pathname only on DOS based OS.
40215
40216 2003-10-27  Vincent Celier  <celier@gnat.com>
40217
40218         * make.adb:
40219         (Gnatmake): When unable to change dir to the object dir, display the
40220         content of the parent dir of the obj dir, to try to understand why this
40221         happens.
40222
40223 2003-10-27  GNAT Script  <nobody@gnat.com>
40224
40225         * Make-lang.in: Makefile automatically updated
40226
40227 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
40228
40229         * sem_ch12.adb:
40230         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
40231         should not be done in Save/Restore_Scope_Stack, because it is performed
40232         locally.
40233
40234         * sem_ch8.adb:
40235         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
40236         whether use clauses should be removed/restored.
40237
40238         * sem_ch8.ads:
40239         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
40240         whether use clauses should be removed/restored.
40241
40242 2003-10-26  Andreas Jaeger  <aj@suse.de>
40243
40244         * Makefile.in: Remove duplicated lines.
40245
40246 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
40247
40248         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
40249         minimize the differences with ACT tree.
40250
40251         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
40252         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
40253         Gnatvsn.Gnat_Static_Version_String to reduce differences between
40254         ACT and FSF trees.
40255
40256 2003-10-24  Pascal Obry  <obry@gnat.com>
40257
40258         PR ada/12014
40259         * adadecode.c (ostrcpy): New function.
40260         (__gnat_decode): Use ostrcpy of strcpy.
40261         (has_prefix): Set first parameter a const.
40262         (has_suffix): Set first parameter a const.
40263         Update copyright notice. Fix source name in header.
40264         Removes a trailing space.
40265
40266 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
40267
40268         * exp_disp.adb:
40269         Remove the test against being in No_Run_Time_Mode before generating a
40270         call to Register_Tag. It is redundant with the test against the
40271         availability of the function Register_Tag.
40272
40273 2003-10-24  Vincent Celier  <celier@gnat.com>
40274
40275         * g-catiio.adb: (Month_Name): Correct spelling of February
40276
40277         * make.adb: (Mains): New package
40278         (Initialize): Call Mains.Delete
40279         (Gnatmake): Check that each main on the command line is a source of a
40280         project file and, if there are several mains, each of them is a source
40281         of the same project file.
40282         (Gnatmake): When a foreign language is specified in attribute Languages,
40283         no main is specified on the command line and attribute Mains is not
40284         empty, only build the Ada main. If there is no Ada main, just compile
40285         the Ada sources and their closure.
40286         (Gnatmake): If a main is specified on the command line with directory
40287         information, check that the source exists and, if it does, that the path
40288         is the actual path of a source of a project.
40289
40290         * prj-env.adb:
40291         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
40292         Full_Path is True, return the full path instead of the simple file name.
40293         (Project_Of): New function
40294
40295         * prj-env.ads:
40296         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
40297         defaulted to False.
40298         (Project_Of): New function
40299
40300 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
40301
40302         * Makefile.generic:
40303         Ensure objects of main project are always checked and rebuilt if needed.
40304         Set CC to gcc by default.
40305         Prepare new handling of link by creating a global archive (not activated
40306         yet).
40307
40308         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
40309         stringt.h: Update copyright notice. Remove trailing blanks.
40310         Fix source name in header.
40311
40312 2003-10-24  Robert Dewar  <dewar@gnat.com>
40313
40314         * sem_ch12.adb: Minor reformatting
40315
40316         * sem_ch3.adb:
40317         Minor reformatting (including new function return style throughout)
40318
40319         * sem_ch3.ads:
40320         Minor reformatting (including new function return style throughout)
40321
40322 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
40323
40324         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
40325         stringt.h: Update copyright notice. Remove trailing blanks.
40326         Fix source name in header.
40327
40328 2003-10-24  GNAT Script  <nobody@gnat.com>
40329
40330         * Make-lang.in: Makefile automatically updated
40331
40332 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
40333
40334         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
40335         stringt.h: Convert to ISO C90 declarations and definitions.
40336
40337 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
40338
40339         PR ada/11978
40340         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
40341         External_Tag attribute definition clauses.
40342
40343 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
40344
40345         PR ada/7613
40346         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
40347         child unit, generate a fully qualified name to avoid spurious errors
40348         when the context contains renamings of different child units with
40349         the same simple name.
40350
40351         * exp_dbug.ads: Add documentation on name qualification for renamings
40352         of child units.
40353
40354 2003-10-23  Robert Dewar  <dewar@gnat.com>
40355
40356         * g-regpat.ads, g-regpat.adb: Minor reformatting
40357
40358 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
40359
40360         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
40361
40362 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
40363
40364         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
40365         Machine call.
40366
40367         * urealp.h: (Machine): Update to proper definition.
40368
40369 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
40370
40371         * init.c, adaint.c: Minor reformatting.
40372
40373 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
40374
40375         * adaint.c (w32_epoch_offset): Define static const at file level.
40376         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
40377         rather than t_create, t_access in call to GetFileTime. Use union
40378         to convert between FILETIME and  unsigned long long.
40379         (__gnat_file_time_name): Test for invalid file handle.
40380         (__gnat_set_filetime_name): Support win32 targets using
40381         w32api SetFileTime.
40382
40383 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
40384
40385         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
40386
40387         * ctrl_c.c (__gnat_int_handler): Remove declaration.
40388
40389         * decl.c (creat_concat_name):  Const-ify prefix.
40390
40391         * adaint.c: Include ctype.h if __MINGW32__.
40392         (__gnat_readlink): Mark arguments as possibly unused.
40393         (__gnat_symlink): Likewise.
40394         (__gnat_is_symbolic_link): Likewise.
40395         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
40396         declaration
40397         (__gnat_file_time_name): Don't declare struct stat statbuf when
40398         not needed.
40399         (__gnat_is_absolute_path): Add parenthesis around condition of
40400         'if' statement to avoid warning.
40401         (__gnat_plist_init): Specify void as parameter.
40402         (plist_enter): Likewise.
40403         (plist_leave): Likewise.
40404         (remove_handle): Make static. Initialize prev.
40405
40406 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
40407
40408         PR ada/10110
40409         * Makefile.in: Disable build of gnatpsta.
40410         * cstreams.c (__gnat_full_name): Minor improvements and clean up
40411         of previous change.
40412
40413 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
40414
40415         * tracebak.c (MAX): Avoid redefinition warning.
40416
40417         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
40418         Change msg to const char *.
40419         (__gnat_install_handler): Remove ss, unused.
40420         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
40421         to const char *.
40422         * cstreams.c (__gnat_full_name): Declare p only when used.
40423         (__gnat_full_name) [sgi] Return buffer.
40424
40425 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
40426
40427         * mingw32.h: New file.
40428         * gnat_wrapper.adb: New file.
40429
40430 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
40431
40432         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
40433         string match a pre compiled regular expression (the corresponding
40434         version of the function working on a raw regular expression)
40435         Fix typos in various comments
40436         Update copyright notice in spec
40437
40438 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
40439
40440         * exp_ch3.adb:
40441         (Component_Needs_Simple_Initialization): Return False when the type is a
40442         packed bit array. Revise spec comments to document this case.
40443
40444         * exp_prag.adb:
40445         (Expand_Pragma_Import): Set any expression on the imported object to
40446         empty to avoid initializing imported objects (in particular this
40447         covers the case of zero-initialization of bit arrays).
40448         Update copyright notice.
40449
40450 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
40451
40452         * sem_ch12.adb:
40453         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
40454         a subunit is missing.
40455         (Instantiate_Subprogram_Body): If body of function is missing, set type
40456         of return expression explicitly in dummy body, to prevent cascaded
40457         errors when a subunit is missing.
40458         Fixes PR 5677.
40459
40460         * sem_ch3.adb:
40461         (Access_Subprogram_Declaration): Verify that return type is valid.
40462         Fixes PR 8693.
40463
40464         * sem_elab.adb:
40465         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
40466         generic.
40467         Fixes PR 12318.
40468
40469         * sem_util.adb:
40470         (Corresponding_Discriminant): If the scope of the discriminant is a
40471         private type without discriminant, use its full view.
40472         Fixes PR 8247.
40473
40474 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
40475
40476         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
40477         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
40478         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
40479         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
40480         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
40481         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
40482         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
40483         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
40484         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
40485         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
40486         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
40487         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
40488         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
40489         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
40490         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
40491         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
40492         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
40493         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
40494         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
40495         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
40496         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
40497         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
40498         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
40499         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
40500         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
40501         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
40502         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
40503         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
40504         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
40505         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
40506         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
40507         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
40508         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
40509         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
40510         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
40511         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
40512         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
40513         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
40514         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
40515         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
40516         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
40517         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
40518         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
40519         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
40520         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
40521         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
40522         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
40523         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
40524         vms_conv.ads, vms_conv.adb, vms_data.ads,
40525         vxaddr2line.adb: Files added. Merge with ACT tree.
40526
40527         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
40528         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
40529         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
40530         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
40531         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
40532         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
40533         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
40534         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
40535         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
40536         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
40537
40538         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40539         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40540         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40541         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40542         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
40543         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
40544         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40545         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
40546         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
40547         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
40548         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
40549         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
40550         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
40551         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
40552         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
40553         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
40554         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
40555         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
40556         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
40557         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
40558         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
40559         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
40560         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
40561         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
40562         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
40563         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
40564         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
40565         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
40566         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
40567         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
40568         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
40569         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
40570         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
40571         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
40572         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
40573         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
40574         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
40575         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
40576         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
40577         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
40578         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
40579         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
40580         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
40581         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
40582         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
40583         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
40584         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
40585         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
40586         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
40587         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
40588         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
40589         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
40590         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
40591         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
40592         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
40593         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
40594         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
40595         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
40596         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
40597         checks.adb, checks.ads, cio.c, comperr.adb,
40598         comperr.ads, csets.adb, cstand.adb, cstreams.c,
40599         debug_a.adb, debug_a.ads, debug.adb, decl.c,
40600         einfo.adb, einfo.ads, errout.adb, errout.ads,
40601         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
40602         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
40603         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
40604         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
40605         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
40606         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
40607         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
40608         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
40609         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
40610         fe.h, fmap.adb, fmap.ads, fname.adb,
40611         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
40612         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
40613         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
40614         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
40615         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
40616         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
40617         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
40618         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
40619         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
40620         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
40621         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
40622         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
40623         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
40624         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
40625         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
40626         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
40627         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
40628         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
40629         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
40630         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
40631         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
40632         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
40633         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
40634         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
40635         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
40636         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
40637         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
40638         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
40639         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
40640         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
40641         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
40642         layout.adb, lib.adb, lib.ads, lib-list.adb,
40643         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
40644         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
40645         link.c, live.adb, make.adb, make.ads,
40646         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
40647         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
40648         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
40649         misc.c, mkdir.c, mlib.adb, mlib.ads,
40650         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
40651         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
40652         namet.adb, namet.ads, namet.h, nlists.ads,
40653         nlists.h, nmake.adt, opt.adb, opt.ads,
40654         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
40655         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
40656         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
40657         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
40658         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
40659         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
40660         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
40661         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
40662         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
40663         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
40664         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
40665         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
40666         prj-util.adb, prj-util.ads, raise.c, raise.h,
40667         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
40668         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
40669         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
40670         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
40671         scans.ads, scn.adb, scn.ads, s-crc32.adb,
40672         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
40673         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
40674         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
40675         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
40676         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
40677         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
40678         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
40679         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
40680         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
40681         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
40682         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
40683         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
40684         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
40685         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
40686         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
40687         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
40688         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
40689         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
40690         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
40691         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
40692         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
40693         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
40694         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
40695         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
40696         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
40697         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
40698         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
40699         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
40700         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
40701         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
40702         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
40703         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
40704         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
40705         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
40706         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
40707         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
40708         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
40709         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
40710         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
40711         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
40712         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
40713         stringt.adb, stringt.ads, stringt.h, style.ads,
40714         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
40715         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
40716         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
40717         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
40718         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
40719         table.adb, table.ads, targparm.adb, targparm.ads,
40720         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
40721         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
40722         ttypes.ads, types.ads, types.h, uintp.adb,
40723         uintp.ads, uintp.h, uname.adb, urealp.adb,
40724         urealp.ads, urealp.h, usage.adb, utils2.c,
40725         utils.c, validsw.adb, validsw.ads, widechar.adb,
40726         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
40727         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
40728         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
40729         gnatvsn.ads: Merge with ACT tree.
40730
40731         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
40732
40733 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
40734
40735         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
40736         (gnat_ug_vmx.info): Likewise.
40737         (gnat_ug_vxw.info): Likewise.
40738         (gnat_ug_wnt.info): Likewise.
40739         (gnat_rm.info): Likewise.
40740         (gnat-style.info): Likewise.
40741
40742         * Make-lang.in (ada.install-info): Remove target.
40743         (info): New target.
40744         (install-info): Likewise.
40745         (gnat_ug_unx.info): Simplify rule.
40746         (gnat_ug_vmx.info): Likewise.
40747         (gnat_ug_vxw.info): Likewise.
40748         (gnat_ug_wnt.info): Likewise.
40749         (gnat_rm.info): Likewise.
40750         (gnat-style.info): Likewise.
40751
40752 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
40753
40754         * Make-lang.in: Replace uses of $(target_alias) with
40755         $(target_noncanonical).
40756         * ada/Makefile.in: Remove unused mention of $(target_alias).
40757
40758 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
40759
40760         * Make-lang.in (ada.info): Replace with ...
40761         (info): ... this.
40762         (ada.dvi): Replace with ...
40763         (dvi): ... this.
40764
40765 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
40766
40767         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
40768         initialize dconstp5 and dconstmp5.
40769
40770 2003-09-28  Richard Henderson  <rth@redhat.com>
40771
40772         * trans.c (tree_transform): Update call to expand_asm_operands.
40773
40774 2003-09-21  Richard Henderson  <rth@redhat.com>
40775
40776         * trans.c, utils.c: Revert.
40777
40778 2003-09-21  Richard Henderson  <rth@redhat.com>
40779
40780         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
40781         change to const.
40782
40783 2003-09-04  Michael Matz  <matz@suse.de>
40784
40785         * misc.c: Include "target.h".
40786         * Make-lang.in (misc.o): Add dependency on target.h.
40787
40788 2003-09-03  DJ Delorie  <dj@redhat.com>
40789
40790         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
40791         hook.
40792
40793 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
40794
40795         * Makefile.in: Update substitutions to match changes to
40796         configure.  Use include directives instead of @-insertions
40797         to read in host and target fragments.  Add a rule to
40798         regenerate ada/Makefile.
40799
40800 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
40801
40802         * lang-options.h: Remove.
40803         * lang.opt: Add help text.
40804
40805 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
40806
40807         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
40808         calls.
40809
40810 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
40811
40812         * misc.c (gnat_handle_option): Don't handle filenames.
40813
40814 2003-07-04  H.J. Lu  <hongjiu.lu@intel.com>
40815
40816         * Make-lang.in: Replace PWD with PWD_COMMAND.
40817         * Makefile.adalib: Likewise.
40818         * Makefile.in: Likewise.
40819
40820 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
40821
40822         * misc.c (gnat_argv): Revert last change.
40823         (gnat_handle_option, gnat_init_options): Copy arguments.
40824
40825 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
40826
40827         * misc.c (gnat_argv): Make const.
40828
40829 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
40830
40831         * misc.c (save_argc, save_argv): Keep non-static!
40832
40833 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
40834
40835         * misc.c (save_argc, save_argv): Make static.
40836         (gnat_init_options): New prototype.
40837         (gnat_init_options): Update.
40838
40839 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
40840
40841         * gnat_ug.texi: Remove unlikely characters from @vars.
40842         * gnat_ug_vms.texi: Regenerate.
40843
40844 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
40845
40846         * misc.c (record_code_position): Adjust emit_note call.
40847
40848 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
40849
40850         * misc.c (gnat_handle_option): Don't check for missing arguments.
40851
40852 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
40853
40854         * utils.c (end_subprog_body): Adjust expand_function_end call.
40855
40856 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
40857
40858         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
40859         Bind_Main_Program.
40860
40861 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
40862
40863         * lang.opt: Declare Ada.
40864         * misc.c (gnat_init_options): Update.
40865
40866 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
40867
40868         * utils.c (begin_subprog_body): Adjust init_function_start call.
40869
40870 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
40871
40872         * Make-lang.in: Update to use options.c and options.h.
40873         * misc.c: Include options.h not aoptions.h.
40874         (gnat_handle_option): Abort on unrecognized switch.
40875         (gnat_init_options): Request Ada switches.
40876
40877 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
40878
40879         * lang.opt: Add -Wall.
40880         * misc.c (gnat_handle_option): Handle it.
40881
40882 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
40883
40884         * misc.c (gnat_handle_option): Fix warnings.
40885
40886 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
40887
40888         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
40889
40890 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
40891
40892         * Make-lang.in: Update to handle command-line options.
40893         * lang.opt: New file.
40894         * misc.c: Include aoptions.h.
40895         (cl_options_count, cl_options): Remove.
40896         (gnat_handle_option): New.
40897         (gnat_decode_option): Remove.
40898         (LANG_HOOKS_DECODE_OPTION): Remove.
40899         (LANG_HOOKS_HANDLE_OPTION): Override.
40900
40901 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
40902
40903         * init.c, misc.c, trans.c, utils.c: Remove dead code.
40904
40905 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
40906
40907         * Makefile.in: Replace "host_canonical" with "host" for autoconf
40908         substitution.
40909
40910 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
40911
40912         * Make-lang.in: Update.
40913         * misc.c: Include opts.h. Define cl_options_count and cl_options.
40914
40915 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
40916
40917         * misc.c (gnat_init_options): Update.
40918
40919 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
40920
40921         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
40922         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
40923         __attribute__ ((__unused__)).
40924
40925 2003-06-05  Jan Hubicka  <jh@suse.cz>
40926
40927         * Make-lang.in:  Add support for stageprofile and stagefeedback
40928
40929 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
40930
40931         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
40932         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
40933
40934 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
40935
40936         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
40937         Remove non-VMS directive.
40938         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
40939         alternatives.
40940         (Examples of gnatls Usage): Remove VMS alternative.
40941
40942 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
40943
40944         PR ada/9953
40945         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
40946         and turn ZCX_By_Default back to False since the underlying support
40947         is not quite there yet.
40948
40949 2003-06-01  Andreas Jaeger  <aj@suse.de>
40950
40951         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
40952         and ROUND_TYPE_SIZE_UNIT.
40953
40954 2003-05-22   Geert Bosch  <bosch@gnat.com>
40955
40956         * gnat_rm.texi : Remove reference to Ada Core Technologies.
40957
40958 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
40959
40960         * trans.c (tree_transform): Use location_t and input_location
40961         directly.
40962         (build_unit_elab): Likewise.
40963         * utils.c (create_label_decl): Likewise.
40964
40965 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
40966
40967         * trans.c (tree_transform, build_unit_elab,
40968         set_lineno): Rename lineno to input_line.
40969         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
40970         end_subprog_body): Likewise.
40971         * utils2.c (build_call_raise): Likewise.
40972
40973 2003-05-01  Laurent Guerby  <guerby@acm.org>
40974
40975         PR ada/10546
40976         * 5iosinte.ads: Increase pthread_cond_t size to match recent
40977         LinuxThread and NPTL version, merge from ACT.
40978
40979 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
40980
40981         * utils.c (convert): No need to clear TREE_CST_RTL.
40982
40983 2003-04-23   Geert Bosch  <bosch@gnat.com>
40984
40985         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
40986         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
40987         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
40988         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
40989         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
40990         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
40991         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
40992         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
40993         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
40994         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
40995         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
40996         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
40997         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
40998         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
40999         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
41000         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
41001         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
41002         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
41003         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
41004         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
41005         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
41006         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
41007         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
41008         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
41009         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
41010         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
41011         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
41012         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
41013         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
41014         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
41015         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
41016         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
41017         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
41018         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
41019         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
41020         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
41021         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
41022         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
41023         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
41024         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
41025         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
41026         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
41027         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
41028         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
41029         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
41030         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
41031         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
41032         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
41033         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
41034         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
41035         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
41036         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
41037         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
41038         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
41039         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
41040         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
41041         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
41042         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
41043         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
41044         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
41045         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
41046         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
41047         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
41048         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
41049         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
41050         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
41051         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
41052         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
41053         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
41054         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
41055         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
41056         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
41057         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
41058         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
41059         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
41060         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
41061         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
41062         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
41063         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
41064         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
41065         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
41066         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
41067         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
41068         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
41069         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
41070         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
41071         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
41072         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
41073         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
41074         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
41075         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
41076         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
41077         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
41078         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
41079         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
41080         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
41081         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
41082         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
41083         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
41084         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
41085         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
41086         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
41087         ali.adb, ali.ads, alloc.ads, argv.c,
41088         atree.adb, atree.ads, atree.h, aux-io.c,
41089         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
41090         binde.adb, binde.ads, binderr.adb, binderr.ads,
41091         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
41092         butil.adb, butil.ads, cal.c, calendar.ads,
41093         casing.adb, casing.ads, ceinfo.adb, checks.adb,
41094         checks.ads, cio.c, comperr.adb, comperr.ads,
41095         config-lang.in, csets.adb, csets.ads, csinfo.adb,
41096         cstand.adb, cstand.ads, cuintp.c, debug.adb,
41097         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
41098         dec-io.ads, dec.ads, deftarg.c, directio.ads,
41099         einfo.adb, einfo.ads, elists.adb, elists.ads,
41100         elists.h, errno.c, errout.adb, errout.ads,
41101         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
41102         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
41103         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
41104         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
41105         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
41106         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
41107         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
41108         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
41109         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
41110         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
41111         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
41112         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
41113         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
41114         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
41115         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
41116         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
41117         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
41118         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
41119         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
41120         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
41121         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
41122         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
41123         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
41124         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
41125         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
41126         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
41127         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
41128         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
41129         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
41130         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
41131         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
41132         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
41133         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
41134         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
41135         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
41136         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
41137         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
41138         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
41139         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
41140         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
41141         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
41142         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
41143         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
41144         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
41145         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
41146         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
41147         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
41148         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
41149         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
41150         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
41151         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
41152         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
41153         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
41154         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
41155         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
41156         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
41157         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
41158         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
41159         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
41160         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
41161         lib.adb, lib.ads, live.adb, live.ads,
41162         machcode.ads, make.adb, make.ads, makeusg.adb,
41163         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
41164         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
41165         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
41166         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
41167         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
41168         mlib.ads, namet.adb, namet.ads, nlists.adb,
41169         nlists.ads, opt.adb, opt.ads, osint-b.adb,
41170         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
41171         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
41172         osint.ads, output.adb, output.ads, par-ch10.adb,
41173         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
41174         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
41175         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
41176         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
41177         par-tchk.adb, par-util.adb, par.adb, par.ads,
41178         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
41179         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
41180         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
41181         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
41182         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
41183         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
41184         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
41185         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
41186         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
41187         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
41188         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
41189         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
41190         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
41191         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
41192         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
41193         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
41194         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
41195         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
41196         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
41197         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
41198         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
41199         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
41200         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
41201         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
41202         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
41203         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
41204         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
41205         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
41206         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
41207         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
41208         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
41209         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
41210         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
41211         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
41212         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
41213         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
41214         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
41215         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
41216         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
41217         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
41218         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
41219         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
41220         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
41221         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
41222         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
41223         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
41224         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
41225         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
41226         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
41227         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
41228         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
41229         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
41230         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
41231         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
41232         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
41233         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
41234         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
41235         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
41236         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
41237         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
41238         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
41239         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
41240         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
41241         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
41242         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
41243         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
41244         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
41245         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
41246         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
41247         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
41248         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
41249         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
41250         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
41251         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
41252         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
41253         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
41254         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
41255         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
41256         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
41257         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
41258         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
41259         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
41260         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
41261         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
41262         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
41263         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
41264         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
41265         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
41266         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
41267         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
41268         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
41269         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
41270         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
41271         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
41272         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
41273         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
41274         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
41275         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
41276         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
41277         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
41278         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
41279         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
41280         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
41281         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
41282         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
41283         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
41284         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
41285         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
41286         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
41287         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
41288         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
41289         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
41290         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
41291         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
41292         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
41293         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
41294         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
41295         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
41296         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
41297         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
41298         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
41299         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
41300         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
41301         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
41302         snames.ads, sprint.adb, sprint.ads, stand.adb,
41303         stand.ads, stringt.adb, stringt.ads, style.adb,
41304         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
41305         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
41306         switch-m.ads, switch.adb, switch.ads, system.ads,
41307         table.adb, table.ads, targparm.adb, targparm.ads,
41308         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
41309         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
41310         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
41311         ttypef.ads, ttypes.ads, types.adb, types.ads,
41312         uintp.adb, uintp.ads, uname.adb, uname.ads,
41313         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
41314         usage.adb, usage.ads, validsw.adb, validsw.ads,
41315         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
41316         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
41317         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
41318         formatting and other trivial changes from ACT.
41319
41320 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
41321
41322         * gigi.h, utils2.c (build_constructor):
41323         Rename gnat_build_constructor. Use build_constructor.
41324         * decl.c (gnat_to_gnu_entity)
41325         * trans.c (tree_transform, pos_to_constructor, extract_values)
41326         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
41327         (unchecked_convert)
41328         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
41329         (fill_vms_descriptor):
41330         Update to match.
41331
41332 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
41333
41334         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
41335         * misc.c (gnat_tree_size): New function.
41336         (LANG_HOOKS_TREE_SIZE): Override.
41337
41338 2003-04-03  Jason Merrill  <jason@redhat.com>
41339
41340         * misc.c (gnat_adjust_rli): #if 0.
41341
41342 2003-03-31   Geert Bosch  <bosch@gnat.com>
41343
41344         PR ada/10020
41345         * link.c : Fix misspelled "const" keyword
41346
41347 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
41348
41349         PR c++/7086
41350         * utils2.c: Adjust calls to put_var_into_stack.
41351
41352 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
41353
41354         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
41355
41356 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
41357
41358         * misc.c (gnat_init): Update for new prototype.
41359
41360 2003-03-05  Olivier Hainque  <hainque@gnat.com>
41361
41362         ada/9961
41363         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
41364         warning, and fix return type for the IN_RTS && !SJLJ case.
41365
41366 2003-03-04  Tom Tromey  <tromey@redhat.com>
41367
41368         * Make-lang.in (ada.tags): New target.
41369
41370 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
41371
41372         ada/9911
41373         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
41374         wrapper, which name remains constant whatever underlying GCC
41375         scheme.
41376
41377         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
41378         the stable interface needed for a-except.
41379
41380 2003-03-02  Andreas Jaeger  <aj@suse.de>
41381
41382         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41383         gnat_ug_wnt.texi: Regenerate.
41384
41385 2003-03-02  Laurent Guerby  <guerby@acm.org>
41386
41387         * Makefile.in (install-gnatlib): Match previous change there
41388         so it works.
41389
41390 2003-02-28  Andreas Schwab  <schwab@suse.de>
41391
41392         * Make-lang.in (install-gnatlib): Change to ada directory before
41393         running make instead of using ada/Makefile directly.
41394
41395 2003-02-18  Ben Elliston  <bje@redhat.com>
41396
41397         Part of PR ada/9406
41398         * gnat_ug.texi (Binder output file): Grammar fix.
41399
41400 2003-02-18  Ben Elliston  <bje@redhat.com>
41401
41402         PR other/7350
41403         * 5qtaprop.adb (Sleep): Fix typo in comment.
41404
41405 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
41406
41407         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
41408         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41409         gnat_ug_wnt.texi: Regenerate.
41410
41411 2003-02-03  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
41412
41413         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
41414         be created if necessary.
41415         (ada.install-common): Let $(DESTDIR)$(bindir) be created
41416         if necessary.  Remove erroneous and redundant gnatchop
41417         installation commands.  Test for gnatdll before attempting
41418         to install it.
41419         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
41420         and gnatdll from all plausible locations.
41421
41422 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
41423
41424         * utils2.c (build_unary_op): Don't check flag_volatile.
41425         * gnat_ug.texi: Remove -fvolatile from example.
41426         * gnat_ug_vxw.texi: Likewise.
41427
41428 2003-01-29  Laurent Guerby  <guerby@acm.org>
41429
41430         PR ada/8344
41431         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
41432         * Makefile.in: match previous change.
41433         * Make-lang.in: match previous change.
41434
41435 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
41436
41437         * 5rosinte.ads: Add SIGXCPU.
41438         * 5rtpopsp.adb: New file.
41439         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
41440         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
41441         specific file 5rtpopsp.adb.
41442         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
41443         is likely needed for all newlib targets.
41444         * init.c: Add RTEMS specific version of __gnat_initialize().
41445
41446 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41447
41448         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
41449
41450 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41451
41452         * init.c (__gnat_error_handler): Make msg const.
41453
41454         * gmem.c (convert_addresses): Move declaration ...
41455         * adaint.h: ... here.
41456         * adaint.c (convert_addresses): Adapt addrs type to match
41457         prototype.
41458
41459         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
41460
41461 2003-01-24  Andreas Schwab  <schwab@suse.de>
41462
41463         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
41464         size_t to avoid warning.
41465
41466 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
41467
41468         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
41469
41470 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
41471
41472         * gnat_rm.texi: Remove RCS version number.
41473
41474         * ada-tree.h (union lang_tree_node): Add chain_next option.
41475
41476 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
41477
41478         * Make-lang.in (ada.install-info, ada.install-common,
41479         ada.uninstall): Prepend $(DESTDIR) to the destination
41480         directory in all (un)installation commands.
41481         * Makefile.in (install-gnatlib, install-rts): Ditto.
41482
41483 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
41484
41485         * gnat_rm.texi, gnat_ug.texi: Use @copying.
41486         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41487         gnat_ug_wnt.texi: Regenerate.
41488
41489 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
41490
41491         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
41492         only.
41493         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
41494         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
41495         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
41496         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
41497         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
41498         $(srcdir)/doc/include/gcc-common.texi.
41499
41500 2002-12-15   Geert Bosch  <bosch@gnat.com>
41501
41502         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
41503
41504 2002-12-14   Geert Bosch  <bosch@gnat.com>
41505
41506         PR ada/5690
41507         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
41508         case of a body created for a Renaming_As_Body, on which
41509         conformance checks are not performed.
41510
41511 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
41512
41513         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
41514         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
41515         not already included.
41516         * Make-lang.in: Update dependencies.
41517
41518 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
41519         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
41520         solution to buffer overflow bug on GNU/Linux.
41521
41522 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
41523
41524         PR ada/5856
41525         PR ada/6919
41526         * bindgen.adb: Remove all references to Public_Version.
41527         * comperr.adb: Remove all references to Public_Version and
41528         GNATPRO_Version; correct bug reporting instructions.
41529         * comperr.ads: Change to match bug box.
41530         * gnatvsn.ads: Remove all references to Public version and
41531         GNATPRO version.
41532
41533 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
41534
41535         PR ada/6919
41536         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
41537         GNU/Linux.
41538
41539         PR ada/6558
41540         * config-lang.in: Remove diff_excludes.
41541
41542 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
41543
41544         PR ada/8358
41545         * trans.c (gnu_pending_elaboration_lists): New GC root.
41546         (build_unit_elab): Use..
41547
41548 2002-10-30   Geert Bosch  <bosch@gnat.com>
41549
41550         PR ada/6558
41551         * misc.c : Include optabs.h
41552
41553         * Make-lang.in (misc.o): Add dependency on optabs.h
41554
41555 2002-10-29   Geert Bosch  <bosch@gnat.com>
41556
41557         PR ada/6558
41558         * Make-lang.in (gnatbind): Depend on CONFIG_H
41559
41560 2002-10-29  Geert bosch  <bosch@gnat.com>
41561
41562         PR ada/6558
41563         * misc.c: Unrevert misc.c (1.13)
41564
41565 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
41566
41567         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
41568         maintainership comments.
41569
41570 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
41571
41572         PR ada/5904
41573         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
41574         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
41575         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
41576         7staprop.adb: Correct statements in comments about
41577         maintainership of GNAT.
41578
41579         PR ada/5904
41580         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
41581         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
41582         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
41583         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
41584         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
41585         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
41586         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
41587         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
41588         comments about maintainership of GNAT.
41589
41590         PR ada/6919 (forward port of patch for PR ada/5904)
41591         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
41592         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
41593         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
41594         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
41595         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
41596         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
41597         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
41598         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
41599         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
41600         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
41601         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
41602         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
41603         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
41604         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
41605         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
41606         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
41607         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
41608         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
41609         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
41610         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
41611         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
41612         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
41613         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
41614         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
41615         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
41616         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
41617         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
41618         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
41619         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
41620         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
41621         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
41622         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
41623         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
41624         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
41625         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
41626         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
41627         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
41628         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
41629         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
41630         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
41631         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
41632         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
41633         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
41634         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
41635         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
41636         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
41637         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
41638         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
41639         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
41640         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
41641         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
41642         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
41643         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
41644         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
41645         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
41646         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
41647         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
41648         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
41649         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
41650         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
41651         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
41652         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
41653         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
41654         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
41655         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
41656         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
41657         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
41658         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
41659         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
41660         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
41661         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
41662         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
41663         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
41664         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
41665         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
41666         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
41667         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
41668         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
41669         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
41670         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
41671         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
41672         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
41673         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
41674         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
41675         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
41676         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
41677         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
41678         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
41679         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
41680         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
41681         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
41682         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
41683         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
41684         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
41685         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
41686         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
41687         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
41688         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
41689         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
41690         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
41691         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
41692         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
41693         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
41694         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
41695         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
41696         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
41697         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
41698         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
41699         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
41700         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
41701         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
41702         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
41703         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
41704         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
41705         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
41706         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
41707         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
41708         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
41709         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
41710         par-endh.adb par-labl.adb par-load.adb par-prag.adb
41711         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
41712         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
41713         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
41714         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
41715         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
41716         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
41717         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
41718         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
41719         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
41720         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
41721         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
41722         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
41723         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
41724         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
41725         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
41726         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
41727         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
41728         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
41729         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
41730         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
41731         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
41732         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
41733         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
41734         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
41735         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
41736         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
41737         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
41738         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
41739         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
41740         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
41741         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
41742         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
41743         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
41744         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
41745         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
41746         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
41747         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
41748         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
41749         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
41750         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
41751         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
41752         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
41753         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
41754         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
41755         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
41756         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
41757         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
41758         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
41759         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
41760         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
41761         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
41762         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
41763         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
41764         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
41765         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
41766         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
41767         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
41768         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
41769         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
41770         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
41771         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
41772         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
41773         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
41774         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
41775         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
41776         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
41777         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
41778         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
41779         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
41780         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
41781         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
41782         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
41783         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
41784         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
41785         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
41786         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
41787         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
41788         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
41789         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
41790         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
41791         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
41792         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
41793         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
41794         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
41795         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
41796         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
41797         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
41798         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
41799         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
41800         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
41801         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
41802         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
41803         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
41804         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
41805         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
41806         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
41807         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
41808         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
41809         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
41810         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
41811         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
41812         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
41813         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
41814         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
41815         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
41816         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
41817         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
41818         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
41819         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
41820         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
41821         stringt.ads stringt.h style.adb style.ads stylesw.adb
41822         stylesw.ads switch.adb switch.ads sysdep.c system.ads
41823         table.adb table.ads targparm.adb targparm.ads targtyps.c
41824         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
41825         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
41826         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
41827         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
41828         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
41829         usage.ads utils.c utils2.c validsw.adb validsw.ads
41830         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
41831         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
41832         xtreeprs.adb: Correct statements in comments about maintainership
41833         of GNAT.
41834
41835 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
41836
41837         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
41838         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
41839         * gnatvsn.ads: Gnat_Version_String is now a function.
41840         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
41841         copy the C version_string into a String and return it.
41842         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
41843         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
41844         Remove pragma Ident (Gnat_Version_String).  If this was the
41845         sole use of package Gnatvsn, remove the with statement too.
41846         * gnat1drv.adb: Tweak -gnatv output.
41847
41848 2002-09-17  Richard Henderson  <rth@redhat.com>
41849
41850         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
41851         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
41852         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
41853         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
41854         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
41855         and real_2expN instead of a loop.
41856         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
41857         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
41858
41859 2002-08-25  Andre Leis  <a.leis@gmx.net>
41860             David Billinghurst  <David.Billinghurst@riotinto.com>
41861
41862         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
41863
41864 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
41865
41866         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
41867         Remove $(CONFIG_H) dependency.
41868
41869 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
41870
41871         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
41872
41873 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41874
41875         * adadecode.c (ada_demangle): Use xstrdup in lieu of
41876         xmalloc/strcpy.
41877         * misc.c (gnat_decode_option): Likewise.
41878
41879 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
41880
41881         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
41882         function approach did not work well because of a side effect (the
41883         function call could reallocate the table which was being indexed
41884         using its result). Fixes ada/4851. [RESURRECTED]
41885
41886 2002-07-01  Roger Sayle  <roger@eyesopen.com>
41887
41888         * ada/utils.c (builtin_function): Accept an additional parameter.
41889
41890 2002-06-28  Andreas Jaeger  <aj@suse.de>
41891
41892         PR ada/7144
41893         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
41894         <adi@thur.de>.
41895
41896 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41897
41898         * Makefile.in (SHELL): Set to @SHELL@.
41899
41900 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
41901
41902         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
41903         array size calculation.
41904
41905 2002-06-04  Andreas Jaeger  <aj@suse.de>
41906
41907         * Make-lang.in (gnatbind): Readd rule that has been lost in last
41908         patch.
41909
41910 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
41911
41912         Merge from pch-branch:
41913
41914         * config-lang.in (gtfiles): Add ada-tree.h.
41915         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
41916         (SET_TYPE_MODULUS): New.
41917         (SET_TYPE_INDEX): New.
41918         (SET_TYPE_DIGITS_VALUE): New.
41919         (SET_TYPE_RM_SIZE): New.
41920         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
41921         (SET_TYPE_ADA_SIZE): New.
41922         (SET_TYPE_ACTUAL_BOUNDS): New.
41923         (SET_DECL_CONST_CORRESPONDING_VAR): New.
41924         (SET_DECL_ORIGINAL_FIELD): New.
41925         (TREE_LOOP_ID): Correct typo.
41926         * decl.c: Use new macros.
41927         * utils.c: Include debug.h, use new macros.
41928         * utils2.c: Use new macros.
41929
41930         * ada-tree.h: Update all macros for new tree description.
41931         (struct tree_loop_id): New.
41932         (union lang_tree_node): New.
41933         (struct lang_decl): New.
41934         (struct lang_type): New.
41935         * misc.c (gnat_mark_tree): Delete.
41936         (LANG_HOOKS_MARK_TREE): Delete.
41937         * trans.c (tree_transform): No longer any need to cast
41938         for TREE_LOOP_ID.
41939
41940         * utils.c (struct language_function): New dummy structure.
41941
41942         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
41943         (misc.o): Likewise.
41944         (utils.o): Likewise; also gtype-ada.h.
41945         * Make-lang.in (gnat1): Add dependency on s-gtype.
41946         (gnatbind): Add dependency on $(CONFIG_H).
41947         * utils.c: Correct last #include.
41948         (stuct e_stack): Remove unnecessary 'static'.
41949         (mark_e_stack): Remove unused prototype.
41950
41951         * scn-nlit.adb: Remove whitespace after version number to
41952         keep lines under 80 chars.
41953         * snames.adb: Likewise.
41954         * treepr.ads: Likewise.
41955
41956         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
41957         (misc.o): Likewise.
41958         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
41959         * config-lang.in (gtfiles): New.
41960         * decl.c: Use gengtype for roots.
41961         * gigi.h: Use gengtype for roots.
41962         * trans.c: Use gengtype for roots.
41963         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
41964
41965 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
41966
41967         * misc.c (gnat_init): Adjust setting of internal_error_function.
41968
41969 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
41970
41971         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
41972         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
41973         gnat_ug_wnt.texi: Regenerate.
41974
41975 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
41976
41977         * 5ntaprop.adb (with System.OS_Primitives): Remove.
41978
41979         * cstreams.c (max_path_len): Move from here ...
41980         * adaint.c (__gnat_max_path_len): ... to here.
41981         * adaint.c (__gnat_max_path_len): Declare.
41982         * g-dirope.adb (Max_Path): Adjust.
41983         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
41984         * i-cstrea.ads (max_path_len): Adjust.
41985         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
41986         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
41987
41988         * Makefile.in, Make-lang.in: Documentation is now built in
41989         Make-lang.in.  Store Info and generated Texinfo files in the
41990         source directory.
41991         * gnat_ug.texi: Remove CVS keywords, correct version number.
41992         Set file name correctly.
41993
41994         * gnat_ug_*.texi: Add.
41995         * .cvsignore: Ignore generated Texinfo files.
41996
41997 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
41998
41999         * ada.h: Add MI guard macro.
42000         (SUBTYPE): Define constants with an anonymous enum, not static
42001         const variables.
42002         (IN): Cast constants to appropriate type before use.
42003
42004 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
42005
42006         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
42007         (experimental)".
42008
42009 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
42010
42011         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
42012         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
42013         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
42014         (ALL_ADA_CFLAGS): Likewise.
42015         (ADA_INCLUDES): Likewise.
42016         Adapt for new working dir.
42017         (GNATBIND): Use Makefile.in version.
42018         (.SUFFIXES): Copy from Makefile.in.
42019         (ada-warn): Define.
42020         (.adb.o, .ads.o): Copy from Makefile.in.
42021         Added $(OUTPUT_OPTION).
42022         (GNAT1_C_OBJS): Moved from Makefile.in.
42023         Prefix with ada subdir.
42024         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
42025         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
42026         Adapt for new working dir.
42027         (EXTRA_GNATBIND_OBJS): Likewise.
42028         (ADA_BACKEND): Moved from Makefile.in.
42029         Renamed to avoid conflict with global BACKEND.
42030         Use that one.
42031         (TARGET_ADA_SRCS): Moved from Makefile.in.
42032         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
42033         Use ADA_BACKEND.
42034         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
42035         (ada_extra_files): Moved from Makefile.in.
42036         Prefix with ada subdir.
42037         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
42038         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
42039         (ada/nmake.ads): Likewise.
42040         (update-sources): Moved from Makefile.in.
42041         Prefix with ada subdir.
42042         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
42043         (ADA_TREE_H): Likewise.
42044         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
42045         (ada/memtrack.o): Likewise.
42046         (ada/adadecode.o): Likewise.
42047         Update dependencies.
42048         (ada/adaint.o): New.
42049         (ada/argv.o): Moved from Makefile.in.
42050         Prefix with ada subdir.
42051         Update dependencies.
42052         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
42053         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
42054         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
42055         Prefix with ada subdir.
42056         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
42057         (GNAT DEPENDENCIES): Regenerate.
42058         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
42059         toplevel Makefile.in.
42060         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
42061         (TARGET_ADA_SRCS): Removed.
42062         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
42063         (GNATBIND_OBJS): Likewise.
42064         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
42065         (BACKEND): Removed.
42066         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
42067         (TREE_H): Likewise.
42068         (ada_extra_files): Likewise.
42069         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
42070         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
42071         (update-sources): Likewise.
42072         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
42073         (ADA_TREE_H): Likewise.
42074         (adadecoce.o): Likewise.
42075         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
42076         (GNAT DEPENDENCIES): Likewise.
42077
42078 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
42079
42080         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
42081         * Makefile.in: Likewise.
42082
42083 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
42084
42085         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
42086         Restore $(CONFIG_H) and prefix.o dependencies.
42087         (ada.stage[1-4]): Depend on stage?-start.
42088
42089         * Makefile.in (b_gnatb.c): Depend on interfac.o.
42090
42091 2002-05-02  Jim Wilson  <wilson@redhat.com>
42092
42093         * utils.c (finish_record_type): Change record_size to record_type.
42094
42095 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
42096
42097         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
42098         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
42099         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
42100
42101 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
42102
42103         * misc.c (gnat_parse_file): Update.
42104
42105 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
42106
42107         * misc.c (gnat_init): Don't set lang_attribute_common.
42108
42109 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
42110
42111         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
42112
42113 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
42114
42115         * gnat_ug.texi: New file.
42116
42117         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
42118         instead of gfdl.texi
42119
42120         * xgnatug.adb, ug_words: New files.
42121
42122         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
42123         gnat_rm and gnat-style manuals.
42124
42125 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
42126
42127         * gigi.h (incomplete_type_error): Remove.
42128         * utils.c (incomplete_type_error): Remove.
42129
42130 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
42131
42132         * trans.c (tree_transform): Add has_scope argument to
42133         expand_start_stmt_expr.
42134
42135 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
42136
42137         * gigi.h (truthvalue_conversion): Rename.
42138         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
42139         * trans.c (tree_transform): Update.
42140         * utils2.c (truthvalue_conversion): Rename, update.
42141         (build_binary_op, build_unary_op): Update.
42142
42143 2002-04-04  Laurent Guerby  <guerby@acm.org>
42144
42145         * make.adb: Implement -margs, remove restriction about file name placement.
42146         * makeusg.adb: Documentation update.
42147         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
42148         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
42149
42150 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
42151
42152         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
42153         (builtin_function): Similarly.
42154
42155 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
42156
42157         * decl.c (gnat_to_gnu_entity): Update.
42158         * gigi.h (mark_addressable): Rename.
42159         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
42160         * trans.c (tree_transform): Update.
42161         * utils.c (create_var_decl): Update.
42162         * util2.c (build_binary_op, build_unary_op,
42163         fill_vms_descriptor): Update.
42164         (mark_addressable): Rename, update.
42165
42166 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
42167
42168         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
42169         Rename.
42170         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
42171         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
42172         * trans.c (tree_transform, convert_with_check): Update.
42173         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
42174         Rename.
42175
42176 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
42177
42178         * gigi.h (finish_incomplete_decl): Rename.
42179         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
42180         * utils.c (gnat_init_decl_processing): Don't set hook.
42181         (finish_incomplete_decl): Rename.
42182
42183 2002-03-29  Andreas Schwab  <schwab@suse.de>
42184
42185         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
42186         directory.
42187
42188 2001-03-28  Robert Dewar  <dewar@gnat.com>
42189
42190         * checks.ads:
42191         (Remove_Checks): New procedure
42192
42193         * checks.adb:
42194         (Remove_Checks): New procedure
42195
42196         * exp_util.adb:
42197         Use new Duplicate_Subexpr functions
42198         (Duplicate_Subexpr_No_Checks): New procedure
42199         (Duplicate_Subexpr_No_Checks_Orig): New procedure
42200         (Duplicate_Subexpr): Restore original form (checks duplicated)
42201         (Duplicate_Subexpr): Call Remove_Checks
42202
42203         * exp_util.ads:
42204         (Duplicate_Subexpr_No_Checks): New procedure
42205         (Duplicate_Subexpr_No_Checks_Orig): New procedure
42206         Add 2002 to copyright notice
42207
42208         * sem_util.adb: Use new Duplicate_Subexpr functions
42209
42210         * sem_eval.adb:
42211         (Eval_Indexed_Component): This is the place to call
42212         Constant_Array_Ref and to replace the value. We simply merge
42213         the code of this function in here, since it is now no longer
42214         used elsewhere. This fixes the problem of the back end not
42215         realizing we were clever enough to see that this was
42216         constant.
42217         (Expr_Val): Remove call to Constant_Array_Ref
42218         (Expr_Rep_Val): Remove call to Constant_Array_Ref
42219         Minor reformatting
42220         (Constant_Array_Ref): Deal with string literals (patch
42221         suggested by Zack Weinberg on the gcc list)
42222
42223 2001-03-28  Ed Schonberg  <schonber@gnat.com>
42224
42225         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
42226         Duplicate_Subexpr_Move_Checks.
42227
42228         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
42229         Duplicate_Subexpr_Move_Checks.
42230
42231         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
42232         value of array exists before retrieving it (it may a private
42233         protected component in a function).
42234
42235 2002-03-28   Geert Bosch  <bosch@gnat.com>
42236
42237         * prj-pp.adb : New file.
42238
42239         * prj-pp.ads : New file.
42240
42241 2002-03-28  Andreas Jaeger  <aj@suse.de>
42242
42243         * Makefile.in (stamp-sdefault): Fix path for Makefile.
42244
42245 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
42246
42247         * misc.c (gnat_expand_expr): Move prototype.
42248
42249 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
42250
42251         * misc.c (insert_default_attributes): Remove.
42252
42253 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
42254
42255         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
42256         (gnat_init): Don't set hook.
42257         (gnat_expand_expr): Fix prototype.
42258
42259 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
42260
42261         * misc.c (ggc_p): Remove.
42262
42263 2002-03-27  Geert Bosch  <bosch@gnat.com>
42264
42265         * prj-makr.ads, prj-makr.adb : New files.
42266
42267 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
42268
42269         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
42270         (lang_mark_tree): Make static, rename.
42271
42272 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
42273
42274         * misc.c (maybe_build_cleanup): Remove.
42275
42276 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
42277
42278         * gigi.h (yyparse): Remove.
42279
42280 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
42281
42282         From Ben Brosgol  <brosgol@gnat.com>
42283         * gnat_rm.texi: Sync with ACT version.
42284
42285 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
42286
42287         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
42288         (gnat_init): Remove old hook.
42289
42290 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
42291
42292         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
42293         (yyparse): Rename gnat_parse_file.
42294
42295 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
42296
42297         Delete all lines containing "$Revision:".
42298         * xeinfo.adb: Don't look for revision numbers.
42299         * xnmake.adb: Likewise.
42300         * xsinfo.adb: Likewise.
42301         * xsnames.adb: Likewise.
42302         * xtreeprs.adb: Likewise.
42303
42304 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
42305
42306         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
42307         gnat_tree_code_name): Delete.
42308         (tree_code_type, tree_code_length, tree_code_name): Define.
42309         (gnat_init): Don't try to copy into the various tree_code
42310         arrays.
42311
42312 2002-03-11  Richard Henderson  <rth@redhat.com>
42313
42314         * Makefile.in (.NOTPARALLEL): Add fake tag.
42315
42316 2002-03-07  Geert Bosch  <bosch@gnat.com>
42317
42318         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
42319         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
42320         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
42321         switch-m.adb, switch-m.ads : New files.
42322
42323 2002-03-07  Geert Bosch  <bosch@gnat.com>
42324
42325         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
42326         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
42327         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
42328         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
42329         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
42330         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
42331         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
42332         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
42333         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
42334         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
42335         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
42336         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
42337         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
42338         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
42339         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
42340         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
42341         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
42342         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
42343         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
42344         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
42345         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
42346         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
42347         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
42348         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
42349         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
42350         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
42351         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
42352         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
42353         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
42354         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
42355         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
42356         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
42357         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
42358         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
42359         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
42360         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
42361         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
42362         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
42363         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
42364         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
42365         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
42366         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
42367         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
42368         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
42369         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
42370         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
42371         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
42372         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
42373         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
42374         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
42375         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
42376         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
42377         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
42378         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
42379         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
42380         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
42381         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
42382         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
42383         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
42384         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
42385         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
42386         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
42387         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
42388         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
42389         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
42390         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
42391         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
42392         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
42393         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
42394         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
42395         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
42396         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
42397         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
42398         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
42399         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
42400         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
42401         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
42402         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
42403         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
42404         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
42405         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
42406         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
42407         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
42408         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
42409         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
42410         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
42411         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
42412         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
42413         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
42414         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
42415         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
42416         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
42417         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
42418         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
42419         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
42420         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
42421         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
42422
42423         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
42424         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
42425         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
42426         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
42427
42428         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
42429         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
42430
42431         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
42432         to mdll-fil.ad[bs] and mdll-util.ad[bs]
42433
42434         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
42435         from mdllfile.ad[bs] and mdlltool.ad[bs]
42436
42437 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
42438
42439         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
42440         lieu of explicit sizeof/sizeof.
42441
42442 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
42443
42444         * misc.c (copy_lang_decl): Remove.
42445
42446 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
42447
42448         * misc.c: Delete traditional-mode-related code copied from the
42449         C front end but not used, or used only to permit the compiler
42450         to link.
42451
42452 2002-02-07  Richard Henderson  <rth@redhat.com>
42453
42454         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
42455         * adaint.h (__gnat_to_gm_time): Update prototype.
42456
42457 2002-01-30  Richard Henderson  <rth@redhat.com>
42458
42459         * trans.c (tree_transform) [N_Loop_Statement]: Use
42460         expand_exit_loop_top_cond.
42461
42462 2001-12-23  Richard Henderson  <rth@redhat.com>
42463
42464         * utils.c (end_subprog_body): Push GC context around
42465         rest_of_compilation for nested functions.
42466
42467 2001-12-23  Richard Henderson  <rth@redhat.com>
42468
42469         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
42470
42471 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
42472
42473         * gnat-style.texi (Declarations and Types): Remove ancient style
42474         rule which was mandated by code generation issues.
42475
42476         * gnat-style.texi (header): Add @dircategory, @direntry.
42477         (title page): Remove date.
42478         (general) Add @./@: where approriate, and two spaces after the
42479         full stop at the end of a sentence.  Use @samp markup when
42480         referring concrete lexical entities (keywords, attribute names
42481         etc.), and @syntax for ARM grammar elements. Use @r for English
42482         text in comments.  Use @emph for emphasis.  Change "if-statements"
42483         etc. to "if statements" (without @samp). Break long lines.  Make
42484         casing of section names consistent.
42485         (Identifiers): Use @samp markup for variable names.
42486         (Comments): Use @samp markup for comment characters. Line-end
42487         comments may follow any Ada code, not just statements.  Fix
42488         misspelling of "Integer" as "integer".
42489         (Loop statements): Do not use variable name "I", use "J".
42490         (Subprogram Declarations): Document alignment.
42491         (Subprogram Bodies, Block statements): Document empty line before
42492         "begin".
42493
42494 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
42495
42496         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
42497         function approach did not work well because of a side effect (the
42498         function call could reallocate the table which was being indexed
42499         using its result). Fixes ada/4851.
42500
42501 2001-12-19  Robert Dewar  <dewar@gnat.com>
42502
42503         * bindgen.adb: Minor reformatting
42504
42505         * cstand.adb: Minor reformatting
42506
42507         * fmap.adb: Minor reformatting
42508         Change name from Add for Add_To_File_Map (Add is much too generic)
42509         Change Path_Name_Of to Mapped_Path_Name
42510         Change File_Name_Of to Mapped_File_Name
42511         Fix copyright dates in header
42512
42513         * fmap.ads:
42514         Change name from Add for Add_To_File_Map (Add is much too generic)
42515         Change Path_Name_Of to Mapped_Path_Name
42516         Change File_Name_Of to Mapped_File_Name
42517         Fix copyright dates in header
42518
42519         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
42520         Add use clause for Fmap.
42521
42522         * make.adb: Minor reformatting
42523
42524         * osint.adb: Minor reformatting.  Change of names in Fmap.
42525         Add use clause for Fmap.
42526
42527         * prj-env.adb: Minor reformatting
42528
42529         * prj-env.ads: Minor reformatting
42530
42531         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
42532         error found (there were odd exceptions to this general rule in
42533         -gnatec/-gnatem processing)
42534
42535 2001-12-19  Olivier Hainque  <hainque@gnat.com>
42536
42537         * raise.c (__gnat_eh_personality): Exception handling personality
42538         routine for Ada.  Still in rough state, inspired from the C++ version
42539         and still containing a bunch of debugging artifacts.
42540         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
42541         inspired from the C++ library.
42542
42543         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
42544         exception handling integration.
42545
42546 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
42547
42548         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
42549         (HIE_SOURCES): Add s-secsta.ad{s,b}.
42550         (HIE_OBJS): Add s-fat*.o
42551         (RAVEN_SOURCES): Remove files that are no longer required. Add
42552         interrupt handling files.
42553         (RAVEN_MOD): Removed, no longer needed.
42554
42555 2001-12-19  Robert Dewar  <dewar@gnat.com>
42556
42557         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
42558         Add 2001 to copyright date
42559
42560         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
42561         need to force universal inlining for these cases.
42562
42563 2001-12-19  Arnaud Charlet  <charlet@gnat.com>
42564
42565         * s-taprob.adb: Minor clean ups so that this unit can be used in
42566         Ravenscar HI.
42567
42568         * exp_ch7.adb: Allow use of secondary stack in HI mode.
42569         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
42570
42571 2001-12-19  Vincent Celier  <celier@gnat.com>
42572
42573         * prj-tree.ads (Project_Node_Record): Add comments for components
42574         Pkg_Id and Case_Insensitive.
42575
42576 2001-12-19  Pascal Obry  <obry@gnat.com>
42577
42578         * g-socket.adb: Minor reformatting. Found while reading code.
42579
42580 2001-12-19  Robert Dewar  <dewar@gnat.com>
42581
42582         * prj-tree.ads: Minor reformatting
42583
42584 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
42585
42586         * config-lang.in (diff_excludes): Remove.
42587
42588 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42589
42590         * sem_res.adb (Resolve_Selected_Component): do not generate a
42591         discriminant check if the selected component is a component of
42592         the argument of an initialization procedure.
42593
42594         * trans.c (tree_transform, case of arithmetic operators): If result
42595         type is private, the gnu_type is the base type of the full view,
42596         given that the full view itself may be a subtype.
42597
42598 2001-12-17  Robert Dewar  <dewar@gnat.com>
42599
42600         * sem_res.adb: Minor reformatting
42601
42602         * trans.c (tree_transform, case N_Real_Literal): Add missing third
42603         parameter in call to Machine (unknown horrible effects from this
42604         omission).
42605
42606         * urealp.h: Add definition of Round_Even for call to Machine
42607         Add third parameter for Machine
42608
42609 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42610
42611         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
42612         predefined units in No_Run_Time mode.
42613
42614 2001-12-17  Richard Kenner  <kenner@gnat.com>
42615
42616         * misc.c (insn-codes.h): Now include.
42617
42618 2001-12-17  Olivier Hainque  <hainque@gnat.com>
42619
42620         * a-except.adb: Preparation work for future integration of the GCC 3
42621         exception handling mechanism
42622         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
42623         to factorize previous code sequences and make them externally callable,
42624         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
42625         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
42626         Use the new notification routines.
42627
42628 2001-12-17  Emmanuel Briot  <briot@gnat.com>
42629
42630         * prj-tree.ads (First_Choice_Of): Document the when others case
42631
42632 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
42633
42634         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
42635         HI-E mode, in order to support Ravenscar profile properly.
42636
42637         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
42638         mode on 32 bits targets.
42639
42640 2001-12-17  Vincent Celier  <celier@gnat.com>
42641
42642         * fmap.adb: Initial version.
42643
42644         * fmap.ads: Initial version.
42645
42646         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
42647         If search is successfully done, add to mapping.
42648
42649         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
42650
42651         * make.adb:
42652         (Gnatmake): Add new local variable Mapping_File_Name.
42653          Create mapping file when using project file(s).
42654          Delete mapping file before exiting.
42655
42656         * opt.ads (Mapping_File_Name): New variable
42657
42658         * osint.adb (Find_File): Use path name found in mapping, if any.
42659
42660         * prj-env.adb (Create_Mapping_File): New procedure
42661
42662         * prj-env.ads (Create_Mapping_File): New procedure.
42663
42664         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
42665         (Mapping_File)
42666
42667         * usage.adb: Add entry for new switch -gnatem.
42668
42669         * Makefile.in: Add dependencies for fmap.o.
42670
42671 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42672
42673         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
42674         is a package instantiation rewritten as a package body.
42675         (Install_Withed_Unit): Undo previous change, now redundant.
42676
42677 2001-12-17  Gary Dismuke  <dismukes@gnat.com>
42678
42679         * layout.adb:
42680         (Compute_Length): Move conversion to Unsigned to callers.
42681         (Get_Max_Size): Convert Len expression to Unsigned after calls to
42682         Compute_Length and Determine_Range.
42683         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
42684         Compute_Length and Determine_Range.
42685         Above changes fix problem with length computation for supernull arrays
42686         where Max (Len, 0) wasn't getting applied due to the Unsigned
42687         conversion used by Compute_Length.
42688
42689 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
42690
42691         * rtsfind.ads:
42692         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
42693          System.Secondary_Stack.
42694         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
42695          in HI-E mode.
42696         Remove unused entity RE_Exception_Data.
42697
42698         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
42699
42700         * rident.ads (No_Secondary_Stack): New restriction.
42701
42702 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
42703
42704         * gnat_rm.texi: Fix minor typos. Found while reading the section
42705         regarding "Bit_Order Clauses" that was sent to a customer.
42706         Very interesting documentation!
42707
42708 2001-12-17  Robert Dewar  <dewar@gnat.com>
42709
42710         * sem_case.adb (Choice_Image): Avoid creating improper character
42711         literal names by using the routine Set_Character_Literal_Name. This
42712         fixes bombs in certain error message cases.
42713
42714 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
42715
42716         * a-reatim.adb: Minor reformatting.
42717
42718 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42719
42720         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
42721         case where the formal is an extension of another formal in the current
42722         unit or in a parent generic unit.
42723
42724 2001-12-17  Arnaud Charlet  <charlet@gnat.com>
42725
42726         * s-tposen.adb: Update comments.  Minor reformatting.
42727         Minor code clean up.
42728
42729         * s-tarest.adb: Update comments.  Minor code reorganization.
42730
42731 2001-12-17  Gary Dismukes  <dismukes@gnat.com>
42732
42733         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
42734         when Java_VM.
42735
42736 2001-12-17  Robert Dewa  <dewar@gnat.com>
42737
42738         * exp_attr.adb: Minor reformatting
42739
42740 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42741
42742         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
42743         derivations nested within a child unit: verify that the parent
42744         type is declared in an outer scope.
42745
42746 2001-12-17  Robert Dewar  <dewar@gnat.com>
42747
42748         * sem_ch12.adb: Minor reformatting
42749
42750 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42751
42752         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
42753         warning if current unit is a predefined one, from which bodies may
42754         have been deleted.
42755
42756 2001-12-17  Robert Dewar  <dewar@gnat.com>
42757
42758         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
42759         Fix header format. Add 2001 to copyright date.
42760
42761         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
42762         which caused CE during compilation if checks were enabled.
42763
42764 2001-12-17  Vincent Celier  <celier@gnat.com>
42765
42766         * make.adb:
42767         (Switches_Of): New function
42768         (Test_If_Relative_Path): New procedure
42769         (Add_Switches): Use new function Switches_Of
42770         (Collect_Arguments_And_Compile): Use new function Switches_Of.
42771         When using a project file, test if there are any relative
42772         search path. Fail if there are any.
42773         (Gnatmake): Only add switches for the primary directory when not using
42774         a project file. When using a project file, change directory to the
42775         object directory of the main project file. When using a project file,
42776         test if there are any relative search path. Fail if there are any.
42777         When using a project file, fail if specified executable is relative
42778         path with directory information, and prepend executable, if not
42779         specified as an absolute path, with the exec directory.  Make sure
42780         that only one -o switch is transmitted to the linker.
42781
42782         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
42783
42784         * prj-nmsc.adb:
42785         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
42786         when using a non standard naming scheme.
42787         (Check_Ada_Naming_Scheme): Make sure that error messages
42788         do not raise exceptions.
42789         (Is_Illegal_Append): Return True if there is no dot in the suffix.
42790         (Language_Independent_Check): Check the exec directory.
42791
42792         * prj.adb (Project_Empty): Add new component Exec_Directory
42793
42794         * prj.ads:
42795         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
42796         (Project_Data): Add component Exec_Directory
42797
42798         * snames.adb: Updated to match snames.ads revision 1.215
42799
42800         * snames.ads: Added Exec_Dir
42801
42802 2001-12-17  Robert Dewar  <dewar@gnat.com>
42803
42804         * make.adb: Minor reformatting
42805
42806         * prj-nmsc.adb: Minor reformatting
42807
42808         * snames.adb: Updated to match snames.ads
42809
42810         * snames.ads: Alphebetize entries for project file
42811
42812 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42813
42814         * trans.c (process_freeze_entity): Do nothing if the entity is a
42815         subprogram that was already elaborated.
42816
42817 2001-12-17  Richard Kenner  <kenner@gnat.com>
42818
42819         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
42820         and Esize if object is referenced via pointer.
42821
42822 2001-12-17  Ed Schonberg  <schonber@gnat.com>
42823
42824         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
42825         is discrete before analyzing choices.
42826
42827 2001-12-17  Joel Brobecker  <brobecke@gnat.com>
42828
42829         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
42830         containing the name of the Ada Main Program. This string is mainly
42831         intended for the debugger.
42832         (Gen_Output_File_C): Do the equivalent change when generating a C file.
42833
42834 2001-12-17  Robert Dewar  <dewar@gnat.com>
42835
42836         * ali.adb: Set new Dummy_Entry field in dependency entry
42837
42838         * ali.ads: Add Dummy_Entry field to source dependency table
42839
42840         * bcheck.adb (Check_Consistency): Ignore dummy D lines
42841
42842         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
42843
42844         * lib-writ.ads: Document dummy D lines for missing files.
42845
42846         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
42847
42848 2001-12-17  Robert Dewar  <dewar@gnat.com>
42849
42850         * ali.adb: Type reference does not reset current file.
42851
42852         * ali.adb: Recognize and scan renaming reference
42853
42854         * ali.ads: Add spec for storing renaming references.
42855
42856         * lib-xref.ads: Add documentation for handling of renaming references
42857
42858         * lib-xref.adb: Implement output of renaming reference.
42859
42860         * checks.adb:
42861         (Determine_Range): Document local variables
42862         (Determine_Range): Make sure Hbound is initialized. It looks as though
42863          there could be a real problem here with an uninitialized reference
42864          to Hbound, but no actual example of failure has been found.
42865
42866 2001-12-17  Laurent Pautet  <pautet@gnat.com>
42867
42868         * g-socket.ads:
42869         Fix comment of Shutdown_Socket and Close_Socket. These functions
42870         should not fail silently because if they are called twice, this
42871         probably means that there is a race condition in the user program.
42872         Anyway, this behaviour is consistent with the rest of this unit.
42873         When an error occurs, an exception is raised with the error message
42874         as exception message.
42875
42876 2001-12-17  Robert Dewar  <dewar@gnat.com>
42877
42878         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
42879         that it happens before modification of Sloc values for -gnatD.
42880
42881         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
42882         so that it happens before modification of Sloc values for -gnatD.
42883
42884         * switch.adb: Minor reformatting
42885
42886 2001-12-15  Richard Henderson  <rth@redhat.com>
42887
42888         * sem_ch7.adb: Wrap comment.
42889
42890 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
42891
42892         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
42893         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
42894         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
42895         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
42896         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
42897         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
42898         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
42899         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
42900         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
42901         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
42902         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
42903         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
42904         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
42905         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
42906         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
42907         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
42908         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
42909         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
42910         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
42911         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
42912         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
42913         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
42914         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
42915         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
42916         spelling errors.
42917
42918 2001-12-14  Vincent Celier  <celier@gnat.com>
42919
42920         * osint.adb(Create_Debug_File): When an object file is specified,
42921         put the .dg file in the same directory as the object file.
42922
42923 2001-12-14  Robert Dewar  <dewar@gnat.com>
42924
42925         * osint.adb: Minor reformatting
42926
42927         * lib-xref.adb (Output_Instantiation): New procedure to generate
42928         instantiation references.
42929
42930         * lib-xref.ads: Add documentation of handling of generic references.
42931
42932         * ali.adb (Read_Instantiation_Ref): New procedure to read
42933         instantiation references
42934
42935         * ali.ads: Add spec for storing instantiation references
42936
42937         * bindusg.adb: Minor reformatting
42938
42939         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42940
42941         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42942
42943         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42944
42945         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
42946
42947         * csets.ads:
42948         Fix header format
42949         Add 2001 to copyright date
42950         Add entry for Latin-5 (Cyrillic ISO-8859-5)
42951
42952 2001-12-14  Matt Gingell  <gingell@gnat.com>
42953
42954         * adaint.c: mktemp is a macro on Lynx and can not be used as an
42955         expression.
42956
42957 2001-12-14  Richard Kenner  <kenner@gnat.com>
42958
42959         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
42960         if operand is CONSTRUCTOR.
42961
42962 2001-12-14  Ed Schonberg  <schonber@gnat.com>
42963
42964         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
42965         before emiting check on right-hand side, so that exception information
42966         is correct.
42967
42968 2001-12-14  Richard Kenner  <kenner@gnat.com>
42969
42970         * utils.c (create_var_decl): Throw away initializing expression
42971         if just annotating types and non-constant.
42972
42973 2001-12-14  Vincent Celier  <celier@gnat.com>
42974
42975         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
42976         Default_Ada_...
42977
42978         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42979         Remove functions.
42980         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
42981
42982         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
42983         Remove functions.
42984         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
42985
42986 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
42987
42988         * ChangeLog: Remove piece of diff output.
42989
42990 2001-12-14  Geert Bosch  <bosch@gnat.com>
42991
42992         * config-lang.in: Update copyright notice
42993
42994         * layout.adb: Remove commented out code.
42995
42996         * mdllfile.ads: Update copyright notice. Fix header format.
42997
42998         * sem_case.ads: Likewise.
42999
43000         * sem_ch3.adb: Minor reformatting.
43001
43002 2001-12-12  Geert Bosch  <bosch@gnat.com>
43003
43004         * freeze.ads: Update copyright date.
43005
43006         * g-comlin.ads: Minor reformatting.
43007
43008         * gnat-style.texi: Fix typo.
43009
43010 2001-12-12  Geert Bosch  <bosch@gnat.com>
43011
43012         *  einfo.h: Regenerate.
43013
43014 2001-12-12  Ed Schonberg  <schonber@gnat.com>
43015
43016         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
43017         on known node types, rather than untyped fields. Further cleanups.
43018
43019 2001-12-12  Robert Dewar  <dewar@gnat.com>
43020
43021         * sem_ch12.adb:
43022         (Save_Entity_Descendant): Minor comment update.
43023         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
43024          of an N_Attribute_Reference node. As per note below, this does not
43025         eliminate need for Associated_Node in attribute ref nodes.
43026         (Associated_Node): Documentation explicitly mentions attribute
43027         reference nodes, since this field is used in such nodes.
43028
43029         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
43030
43031 2001-12-12  Robert Dewar  <dewar@gnat.com>
43032
43033         * s-stalib.adb: Add more comments on with statements being needed
43034
43035         * par-ch12.adb: Minor reformatting
43036
43037         * prj-dect.ads: Fix copyright header
43038
43039         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
43040         inputs fit in 32 bits, but the result still overflows.
43041
43042         * s-fatgen.ads: Minor comment improvement
43043
43044 2001-12-12  Ed Schonberg  <schonber@gnat.com>
43045
43046         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
43047         formal derived type, look for an inherited component from the full
43048         view of the parent, if any.
43049
43050 2001-12-12  Robert Dewar  <dewar@gnat.com>
43051
43052         * checks.ads (Apply_Alignment_Check): New procedure.
43053
43054         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
43055         ensure that the alignment of objects with address clauses is
43056         appropriate, and raise PE if not.
43057
43058         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
43059         Exp_Pakd.Known_Aligned_Enough
43060
43061         * mdllfile.ads: Minor reformatting
43062
43063         * mlib-fil.ads: Minor reformatting
43064
43065 2001-12-12  Ed Schonberg  <schonber@gnat.com>
43066
43067         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
43068         fix to any component reference if enclosing record has non-standard
43069         representation.
43070
43071 2001-12-12  Vincent Celier  <celier@gnat.com>
43072
43073         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
43074         Iteration
43075
43076 2001-12-12  Ed Schonberg  <schonber@gnat.com>
43077
43078         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
43079         sem_attr.
43080
43081 2001-12-12  Robert Dewar  <dewar@gnat.com>
43082
43083         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
43084
43085 2001-12-12  Emmanuel Briot  <briot@gnat.com>
43086
43087         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
43088         and it adds dependencies to system.io.
43089
43090 2001-12-12  Pascal Obry  <obry@gnat.com>
43091
43092         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
43093         variable name.
43094
43095 2001-12-11  Ed Schonberg  <schonber@gnat.com>
43096
43097         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
43098         that is the parent of other generics, the instance body replaces the
43099         instance node.  Retrieve the instance of the spec, which is the one
43100         that is visible in clients and within the body.
43101
43102 2001-12-11  Vincent Celier  <celier@gnat.com>
43103
43104         * gnatmain.adb: Initial version.
43105
43106         * gnatmain.ads: Initial version.
43107
43108         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
43109
43110         * snames.adb: Updated to match snames.ads.
43111
43112         * snames.ads: Added Gnatstub.
43113
43114 2001-12-11  Vincent Celier  <celier@gnat.com>
43115
43116         * prj-attr.adb (Initialization_Data): Change name from
43117         Initialisation_Data.
43118
43119 2001-12-11  Emmanuel Briot  <briot@gnat.com>
43120
43121         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
43122         + and * applied to backslashed expressions like \r.
43123
43124 2001-12-11  Vasiliy Fofanov  <fofanov@gnat.com>
43125
43126         * g-os_lib.ads: String_List type added, Argument_List type is now
43127         subtype of String_List.
43128
43129 2001-12-11  Robert Dewar  <dewar@gnat.com>
43130
43131         * g-os_lib.ads: Change copyright to FSF
43132         Add comments for String_List type
43133
43134 2001-12-11  Vincent Celier  <celier@gnat.com>
43135
43136         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
43137         string to the buffer).
43138
43139 2001-12-11  Ed Schonberg  <schonber@gnat.com>
43140
43141         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
43142         sem_attr.
43143
43144         * sem_attr.adb: Simplify previous fix for Address.
43145         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
43146         to avoid anomalies where the bound of the type appears to raise
43147         constraint error.
43148
43149 2001-12-11  Robert Dewar  <dewar@gnat.com>
43150
43151         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
43152         handled.
43153
43154 2001-12-11  Ed Schonber   <schonber@gnat.com>
43155
43156         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
43157         renamed unit before checking for recursive instantiations.
43158
43159 2001-12-11  Emmanuel Briot  <briot@gnat.com>
43160
43161         * prj.ads: Add comments for some of the fields.
43162
43163 2001-12-11  Robert Dewar  <dewar@gnat.com>
43164
43165         * lib-xref.adb (Output_Refs): Don't output type references outside
43166         the main unit if they are not otherwise referenced.
43167
43168 2001-12-11  Ed Schonberg  <schonber@gnat.com>
43169
43170         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
43171         code and diagnose additional illegal uses
43172
43173         * sem_util.adb (Is_Object_Reference): An indexed component is an
43174         object only if the prefix is.
43175
43176 2001-12-11  Vincent Celier  <celier@gnat.com>
43177
43178         * g-diopit.adb: Initial version.
43179
43180         * g-diopit.ads: Initial version.
43181
43182         * g-dirope.adb:
43183         (Expand_Path): Avoid use of Unbounded_String
43184         (Find, Wildcard_Iterator): Moved to child package Iteration
43185
43186         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
43187
43188 2001-12-11  Robert Dewar  <dewar@gnat.com>
43189
43190         * sem_attr.adb: Minor reformatting
43191
43192 2001-12-11  Ed Schonberg  <schonber@gnat.com>
43193
43194         * sem_ch3.adb: Clarify some ???.
43195
43196 2001-12-11  Robert Dewar  <dewar@gnat.com>
43197
43198         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
43199         Exp_Pakd.Known_Aligned_Enough
43200
43201         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
43202         version is moved to Exp_Ch13.
43203
43204 2001-12-11  Robert Dewar  <dewar@gnat.com>
43205
43206         * einfo.ads: Minor reformatting
43207
43208         * exp_ch5.adb: Add comment for previous.change
43209
43210         * ali.adb: New interface for extended typeref stuff.
43211
43212         * ali.ads: New interface for typeref stuff.
43213
43214         * checks.adb (Apply_Alignment_Check): New procedure.
43215
43216         * debug.adb: Add -gnatdM for modified ALI output
43217
43218         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
43219
43220         * lib-xref.adb: Extend generation of <..> notation to cover
43221         subtype/object types. Note that this is a complete rewrite,
43222         getting rid of the very nasty quadratic algorithm previously
43223         used for derived type output.
43224
43225         * lib-xref.ads: Extend description of <..> notation to cover
43226         subtype/object types. Uses {..} for these other cases.
43227         Also use (..) for pointer types.
43228
43229         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
43230
43231         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
43232         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
43233
43234 2001-12-11  Vincent Celier  <celier@gnat.com>
43235
43236         * gnatcmd.adb:
43237         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
43238         Changed /BIND_ONLY to /ACTIONS=BIND
43239         Changed /LINK_ONLY to /ACTIONS=LINK
43240
43241 2001-12-11  Ed Schonberg  <schonber@gnat.com>
43242
43243         * sem_ch8.adb (Find_Selected_Component): improved search for a
43244         candidate package in case of error.
43245
43246         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
43247         chain back on scope stack before reinstalling use clauses.
43248
43249         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
43250         is enabled, do not kill the code for the condition, to preserve
43251         warning.
43252
43253 2001-12-11  Robert Dewar  <dewar@gnat.com>
43254
43255         * checks.adb (Insert_Valid_Check): Apply validity check to expression
43256         of conversion, not to result of conversion.
43257
43258 2001-12-11  Ed Schonberg  <schonber@gnat.com>
43259
43260         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
43261         before freezing parent. If the declarations are mutually recursive,
43262         an access to the current record type may be frozen before the
43263         derivation is complete.
43264
43265 2001-12-05  Vincent Celier  <celier@gnat.com>
43266
43267         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
43268         -c /COMPILE_ONLY, -l /LINK_ONLY
43269
43270         * opt.ads:
43271         (Bind_Only): New Flag
43272         (Link_Only): New flag
43273
43274         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
43275         and -l (Link_Only)
43276
43277         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
43278
43279         * make.adb:
43280         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
43281         (Gnatmake): Set the step flags. Only perform a step if the
43282         corresponding step flag is True.
43283         (Scan_Make_Arg): Reset the bind and link step flags when -u
43284         or -gnatc has been specified.
43285
43286 2001-12-05  Ed Schonberg  <schonber@gnat.com>
43287
43288         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
43289         get bounds from right operand.
43290
43291         * sem_eval.adb: Minor reformatting
43292
43293         * exp_util.adb (Make_Literal_Range): use bound of literal rather
43294         than Index'First, its lower bound may be different from 1.
43295
43296         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
43297         and C48009J
43298
43299 2001-12-05  Vincent Celier  <celier@gnat.com>
43300
43301         * prj-nmsc.adb Minor reformatting
43302
43303         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
43304         set and libraries are not supported.
43305
43306 2001-12-05  Ed Schonberg  <schonber@gnat.com>
43307
43308         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
43309         private view explicitly, so the back-end can treat as a global
43310         when appropriate.
43311
43312 2001-12-05  Ed Schonberg  <schonber@gnat.com>
43313
43314         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
43315          unit, always replace instance node with new body, for ASIS use.
43316
43317 2001-12-05  Vincent Celier  <celier@gnat.com>
43318
43319         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
43320         libraries are not supported and both attributes Library_Name and
43321         Library_Dir are specified.
43322
43323         * prj-proc.adb (Expression): Set location of Result to location of
43324         first term.
43325
43326         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
43327         (prj-nmsc is now importing MLib.Tgt)
43328
43329         * prj-proc.adb: Put the change indicated above that was forgotten.
43330
43331 2001-12-05  Robert Dewar  <dewar@gnat.com>
43332
43333         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
43334
43335 2001-12-05  Ed Schonberg  <schonber@gnat.com>
43336
43337         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
43338         constraint, introduce explicit subtype declaration and derive from it.
43339
43340         * sem_ch3.adb: Minor reformatting
43341
43342 2001-12-05  Robert Dewar  <dewar@gnat.com>
43343
43344         * checks.adb (Determine_Range): Increase cache size for checks.
43345         Minor reformatting
43346
43347         * exp_ch6.adb: Minor reformatting
43348         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
43349         a parameter whose root type is System.Address, since treating such
43350         subprograms as pure in the code generator is almost surely a mistake
43351         that will lead to unexpected results.
43352
43353         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
43354         change handling of conversions.
43355
43356         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
43357
43358 2001-12-05  Ed Schonberg  <schonber@gnat.com>
43359
43360         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
43361         aggregate with static wrong size, attach generated Raise node to
43362         declaration.
43363
43364 2001-12-05  Robert Dewar  <dewar@gnat.com>
43365
43366         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
43367         Fixes compilation abandoned bomb in B24009B.
43368
43369 2001-12-05  Ed Schonberg  <schonber@gnat.com>
43370
43371         * sem_ch12.adb:
43372         Document use of Associated_Node on Selected_Components.
43373         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
43374         to clarify use of untyped descendant fields.
43375
43376 2001-12-05  Robert Dewar  <dewar@gnat.com>
43377
43378         * prj-dect.ads: Add ??? comment
43379         Add 2001 to copyright notice (was not done in after all)
43380
43381         * prj-part.adb: Minor reformatting. Reword one awkward error message.
43382
43383         * prj.ads: Minor reformatting throughout, and add some ??? comments
43384
43385         * snames.ads: Minor reformatting
43386
43387 2001-12-05  Geert Bosch  <bosch@gnat.com>
43388
43389         * snames.adb: Autoupdate
43390
43391 2001-12-05  Vincent Celier  <celier@gnat.com>
43392
43393         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
43394
43395         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
43396
43397         * prj-env.adb: Minor comment changes (modifying -> extends).
43398
43399         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
43400
43401         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
43402         Tok_Extends.
43403
43404         * prj.adb (Initialize): Change Modifying to Extends.
43405
43406         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
43407
43408         * prj.ads: Minor comment change (Modifying -> extending).
43409
43410         * snames.ads: Change modifying to extends.
43411
43412 2001-12-05  Robert Dewar  <dewar@gnat.com>
43413
43414         * sem_warn.adb: Remove stuff for conditionals, we are not going to
43415         do this after all.
43416
43417         * sem_warn.ads: Remove stuff for conditionals, we are not going to
43418         do this after all.  Add 2001 to copyright notice
43419
43420 2001-12-04  Geert Bosch  <bosch@gnat.com>
43421
43422         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
43423
43424 2001-12-04  Robert Dewar  <dewar@gnat.com>
43425
43426         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
43427         location if we already have errors. Stops some cases of cascaded
43428         errors.
43429
43430         * errout.adb: Improve comment.
43431
43432 2001-12-04  Robert Dewar  <dewar@gnat.com>
43433
43434         * sem_ch12.adb:
43435         (Analyze_Formal_Type_Definition): Defend against Error.
43436         (Analyze_Formal_Subprogram): Defend against Error.
43437
43438         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
43439         remove following semicolon if present. Removes cascaded error.
43440
43441 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
43442
43443         * bindgen.adb:
43444         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
43445          exceptions equals 0.
43446         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
43447         Fixes PIWG E tests (which have to be run with -gnatL).
43448
43449 2001-12-04  Robert Dewar  <dewar@gnat.com>
43450
43451         * einfo.ads: Minor reformatting
43452
43453 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43454
43455         * einfo.ads: Block_Node points to the identifier of the block, not to
43456         the block node itself, to preserve the link when the block is
43457         rewritten, e.g. within an if-statement with a static condition.
43458
43459         * inline.adb (Cleanup_Scopes): recover block statement from block
43460         entity using new meaning of Block_Node.
43461
43462         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
43463         identifier of block node, rather than to node itself.
43464
43465 2001-12-04  Gary Dismukes  <dismukes@gnat.com>
43466
43467         * layout.adb:
43468         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
43469         (Discrimify): Go back to setting the Etypes of the selected component
43470         because the Vname component does not exist at this point and will
43471         fail name resolution. Also set Analyzed.
43472         Remove with and use of Sem_Res.
43473
43474 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
43475
43476         * Makefile.in: (HIE_SOURCES): add s-fat*.
43477
43478 2001-12-04  Robert Dewar  <dewar@gnat.com>
43479
43480         * sem_attr.adb:
43481         (Compile_Time_Known_Attribute): New procedure.
43482         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
43483          proper range check.
43484
43485 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43486
43487         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
43488         processing discriminants to diagnose illegal default values.
43489
43490 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43491
43492         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
43493         access discriminant within a type extension that constrains its
43494         parent discriminants.
43495
43496 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43497
43498         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
43499         is malformed, use instance of Any_Id to allow analysis to proceed.
43500
43501         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
43502         type definition is illegal.
43503         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
43504         misplaced.
43505
43506 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43507
43508         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
43509         constants.
43510
43511 2001-12-04  Robert Dewar  <dewar@gnat.com>
43512
43513         * errout.adb: Minor reformatting
43514
43515 2001-12-04  Robert Dewar  <dewar@gnat.com>
43516
43517         * exp_util.adb: Minor reformatting from last change
43518
43519         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
43520         which is a rewriting of an expression, traverse the original
43521         expression to remove warnings that may have been posted on it.
43522
43523 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43524
43525         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
43526         record that has other packed components.
43527
43528 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
43529
43530         * adaint.c: Minor cleanups.
43531
43532 2001-12-04  Douglass B. Rupp  <rupp@gnat.com>
43533
43534         * adaint.c: Do not use utime.h on vxworks.
43535
43536 2001-12-04  Arnaud Charlet  <charlet@gnat.com>
43537
43538         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
43539         more confusion than it solves.
43540
43541 2001-12-04  Geert bosch  <bosch@gnat.com>
43542
43543         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
43544
43545 2001-12-04  Geert Bosch  <bosch@gnat.com>
43546
43547         * Makefile.in (update-sources): New target.
43548         For use by gcc_release script.
43549
43550 2001-12-04  Ed Schonberg  <schonber@gnat.com>
43551
43552         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
43553         a configuration pragma, it is now legal wherever a pragma can appear.
43554
43555 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
43556
43557         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
43558         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
43559         is now @CROSS@ -DIN_GCC; update comment.
43560
43561 2001-12-04  Robert Dewar  <dewar@gnat.com>
43562
43563         * einfo.adb (Has_Pragma_Pure_Function): New flag.
43564         Fix problem that stopped ceinfo from working
43565
43566         * einfo.ads (Has_Pragma_Pure_Function): New flag.
43567
43568         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
43569
43570 2001-12-04  Douglas B. Rupp  <rupp@gnat.com>
43571
43572         * gnatchop.adb:
43573         (File_Time_Stamp): New procedure.
43574         (Preserve_Mode): New boolean.
43575         (Write_Unit): Pass time stamp.
43576         Implement -p switch (preserve time stamps).
43577
43578         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
43579
43580         * gnatchop.adb: Do usage info for -p switch
43581
43582         * adaint.h (__gnat_set_file_time_name): New function
43583
43584         * adaint.c (__gnat_set_file_time_name): Implement
43585
43586         * adaint.h: Fix typo
43587
43588 2001-12-03  Robert Dewar  <dewar@gnat.com>
43589
43590         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
43591         have Associated_Node.
43592
43593 2001-12-03  Robert Dewar  <dewar@gnat.com>
43594
43595         * prj-proc.adb: Minor reformatting
43596
43597         * make.adb: Minor reformatting
43598
43599 2001-12-03  Geert Bosch  <bosch@gnat.com>
43600
43601         * make.adb: Minor reformatting.
43602
43603 2001-12-03 Robert Dewar  <dewar@gnat.com>
43604
43605         * sem_ch12.adb: Minor reformatting
43606
43607 2001-12-03  Ed Schonberg  <schonber@gnat.com>
43608
43609         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
43610         push Standard on the stack before analyzing the instance body,
43611         in order to have a clean visibility environment.
43612
43613         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
43614
43615 2001-12-03  Ed Schonberg  <schonber@gnat.com>
43616
43617         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
43618         instantiation of a body that contains an inlined body.
43619
43620 2001-12-03  Ed Schonberg  <schonber@gnat.com>
43621
43622         * sem_ch12.adb:
43623         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
43624         to prevent freezing within formal packages.
43625         (Freeze_Subprogram_Body): If body comes from another instance that
43626         appeared before its own body, place freeze node at end of current
43627         declarative part, to prevent a back-end crash.
43628         (Inline_Instance_Body): Handle properly a package instance within
43629         a subprogram instance that is a child unit.
43630
43631 2001-12-01  Graham Stott  <grahams@redhat.com>
43632
43633         * Makefile.in (misc.o): Add missing $(srcdir) prefix
43634         and add optabs.h dependency.
43635
43636         * misc.c: Include optabs.h
43637         (gnat_tree_code_type): Make static and const.
43638         (gnat_tree_code_length): Likewise.
43639         (gnat_tree_code_name): Likewise.
43640         (update_setjmp_buf): Obtain operands mode from insn_data.
43641
43642 2001-11-29  Richard Henderson  <rth@redhat.com>
43643
43644         * init.c: Remove obsolete dwarf2 frame.h section.
43645
43646 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
43647
43648         * Make-lang.in (ada.generated-manpages): New dummy target.
43649
43650 2001-11-29  Ed Schonberg  <schonber@gnat.com>
43651
43652         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
43653         into Command, an array conversion is illegal here. Uncovered by
43654         ACATS B460005.
43655
43656 2001-11-28  Geert Bosch  <bosch@gnat.com>
43657
43658         * init.c: Minor whitespace changes.
43659
43660 2001-11-28  Doug Rupp  <rupp@gnat.com>
43661
43662         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
43663         signal stack.
43664
43665 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
43666
43667         * misc.c (gnat_expand_constant): Move declaration above
43668         definition of lang_hooks.
43669         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
43670         (gnat_init): lang_expand_constant no longer exists.
43671
43672         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
43673         always have vprintf.
43674         (gnat_init): Always call set_internal_error_function.
43675
43676 2001-11-27  Andreas Jaeger  <aj@suse.de>
43677
43678         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
43679
43680 2001-11-27  Laurent Guerby  <guerby@acm.org>
43681
43682         * Makefile.in: Regenerate Ada dependencies.
43683
43684 2001-11-26  Richard Henderson  <rth@redhat.com>
43685
43686         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
43687         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
43688         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
43689
43690 2001-11-25  Laurent Guerby  <guerby@acm.org>
43691
43692         * sysdep.c (rts_get_*): Fix style.
43693
43694 2001-11-19  Laurent Guerby  <guerby@acm.org>
43695
43696         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
43697         since it is of no apparent use and cause warnings.
43698
43699 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
43700
43701         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
43702         static too.
43703         (gnat_init): Don't return NULL.
43704         (finish_parse): Remove.
43705
43706 2001-11-17  Laurent Guerby  <guerby@acm.org>
43707
43708         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
43709         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
43710         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
43711         * lang-spec.h: Add missing struct field to silence warnings.
43712         * sysdep.c (rts_get_*): Provide K&R prototype.
43713         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
43714         * traceback.c (Unlock_Task, Lock_Task): Likewise.
43715         * tracebak.c (__gnat_backtrace): Remove unused variable.
43716         * utils.c (end_subprog_body): Move to K&R style.
43717
43718 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
43719
43720         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
43721
43722 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
43723
43724         * misc.c (gnat_init): Change prototype.  Include the
43725         functionality of the old init_parse and init_decl_processing.
43726         (gnat_init_decl_processing): New prototype.
43727         (init_parse): Remove.
43728         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
43729
43730 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
43731
43732         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
43733         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
43734         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
43735         set_yydebug): Remove.
43736
43737 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
43738
43739         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
43740         (struct lang_hooks): Constify.
43741         (language_string, lang_identify): Remove.
43742         * utils.c (init_decl_processing): Update.
43743
43744 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
43745
43746         * misc.c: Include langhooks-def.h.
43747         * Makefile.in: Update.
43748
43749 2001-10-30  Robert Dewar  <dewar@gnat.com>
43750
43751         * style.adb:
43752         (Check_Identifier): Rewrite circuit to be compatible with use of letters
43753         in the upper half of ASCII.
43754         (Check_Identifier): Minor reformatting
43755
43756 2001-10-30  Geert Bosch  <bosch@gnat.com>
43757
43758         * (Associated_Node, Set_Associated_Node): Do not check for
43759         Freeze_Entity.
43760
43761 2001-10-30  Robert Dewar  <dewar@gnat.com>
43762
43763         * a-reatim.ads: Minor reformatting
43764
43765 2001-10-30  Robert Dewar  <dewar@gnat.com>
43766
43767         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
43768         undocumented declarations.
43769
43770 2001-10-30  Pascal Obry  <obry@gnat.com>
43771
43772         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
43773         to the binder and linker.
43774         Minor style fix.
43775
43776         * mdll.ads: Fix layout.  Update copyright notice.
43777
43778         * mdll.adb: Fix layout.  Update copyright notice.
43779
43780 2001-10-30  Robert Dewar  <dewar@gnat.com>
43781
43782         * usage.adb: Minor fix to output for -gnaty.
43783
43784 2001-10-30  Ed Schonberg  <schonber@gnat.com>
43785
43786         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
43787         to accommodate all its possible values.
43788
43789         * a-reatim.adb (Split): Special-case handling of Time_Span_First
43790         and of small absolute values of T.
43791
43792 2001-10-30  Richard Kenner  <kenner@gnat.com>
43793
43794         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
43795         set_mem_attributes since not needed and wrong if RESULT if a REG;
43796         fixes ACATS failures.
43797
43798 2001-10-30  Geert Bosch  <bosch@gnat.com>
43799
43800         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
43801         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
43802
43803 2001-10-30  Robert Dewar  <dewar@gnat.com>
43804
43805         * bindusg.adb: Undocument -f switch.
43806
43807         * gnatcmd.adb: Remove /FULL_ELABORATION.
43808
43809         * opt.ads (Force_RM_Elaboration_Order): Document that this is
43810         obsolescent.
43811
43812         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
43813
43814         * gnatbind.adb: Minor update of warning msg.
43815
43816 2001-10-30  Vincent Celier  <celier@gnat.com>
43817
43818         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
43819         for project file switches (-P (/PROJECT_FILE=),
43820          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
43821         or MEDIUM or HIGH)
43822
43823 2001-10-30  Geert Bosch  <bosch@gnat.com>
43824
43825         * decl.c: Minor whitespace fixes.
43826
43827 2001-10-30  Richard Kenner  <kenner@gnat.com>
43828
43829         * utils2.c (build_allocator): Test for SIZE overflow in array case too
43830
43831 2001-10-30  Geert Bosch  <bosch@gnat.com>
43832
43833         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
43834         Found due to GCC 3.0 warning of using uninitialized value.
43835
43836         * layout.adb:
43837         (Get_Max_Size): Use variant record for tracking value/expression.
43838          Makes logic clearer and prevents warnings for uninitialized variables.
43839         (Layout_Array_Type): Use variant record for tracking value/expression.
43840          Makes logic clearer and prevents warnings for uninitialized variables.
43841
43842 2001-10-30  Robert Dewar  <dewar@gnat.com>
43843
43844         * lib.adb: Minor reformatting
43845
43846         * s-taprop.ads: Minor reformatting
43847
43848 2001-10-29  Laurent Guerby  <guerby@acm.org>
43849
43850         * init.c:
43851         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
43852         const.
43853         (_gnat_error_handler): Make MSG const.
43854
43855 2001-10-29  Richard Kenner  <kenner@gnat.com>
43856
43857         * sysdep.c: Fix localtime_r problem on LynxOS.
43858         Also remove #elif to avoid warnings.
43859
43860         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
43861         used by this.
43862
43863         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
43864
43865 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
43866
43867         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
43868         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
43869         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
43870         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
43871         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
43872         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
43873         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
43874         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
43875         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
43876         types.ads, urealp.adb: Fix spelling errors.
43877
43878 2001-10-27  Laurent Guerby  <guerby@acm.org>
43879
43880         * trans.c (gigi): Fix non determinism leading to bootstrap
43881         comparison failures for debugging information.
43882
43883 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
43884
43885         * gnat_rm.texi: Use @./@: where appropriate.
43886
43887 2001-10-26  Robert Dewar  <dewar@gnat.com>
43888
43889         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
43890
43891 2001-10-26  Richard Kenner  <kenner@gnat.com>
43892
43893         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
43894
43895 2001-10-26  Richard Kenner  <kenner@gnat.com>
43896
43897         * decl.c (validate_size): Modify message for bad size to avoid
43898         implication that compiler is modifying the size.
43899
43900 2001-10-26  Robert Dewar  <dewar@gnat.com>
43901
43902         * prj-util.adb: Minor reformatting. Fix bad header format.
43903
43904 2001-10-26  Robert Dewar  <dewar@gnat.com>
43905
43906         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
43907
43908         * sinfo.ads: Clarify use of Associated_Node (documentation only).
43909
43910         * sem_ch12.adb: Change Node4 to Associated_Node. Change
43911         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
43912         much more narrowly in places where needed. These are cleanups.
43913
43914 2001-10-26  Joel Brobecker  <brobecke@gnat.com>
43915
43916         * 5zosinte.ads (null_pthread): new constant.
43917
43918         * 5ztaprop.adb:
43919         (Initialize_TCB): Initialize thread ID to null, to be able to verify
43920          later that this field has been set.
43921         (Finalize_TCB): ditto.
43922         (Suspend_Task): Verify that the thread ID is not null before using it.
43923         (Resume_Task): ditto.
43924
43925         * s-tasdeb.adb:
43926         (Resume_All_Tasks): Lock the tasks list before using it.
43927         (Suspend_All_Tasks): ditto.
43928
43929 2001-10-26  Richard Kenner  <kenner@gnat.com>
43930
43931         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
43932         Make constant variant of designated type for Is_Access_Constant.
43933         Call update_pointer_to with main variant.
43934
43935         * trans.c (process_freeze_entity, process_type):
43936         Call update_pointer_to on main variant.
43937
43938         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
43939         If main variant, update all other variants.
43940
43941         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
43942         TREE_STATIC.
43943
43944 2001-10-26  Robert Dewar  <dewar@gnat.com>
43945
43946         * prj-util.adb: Minor reformatting
43947
43948 2001-10-26  Robert Dewar  <dewar@gnat.com>
43949
43950         * prj-util.adb: Minor reformatting
43951
43952 2001-10-26  Robert Dewar  <dewar@gnat.com>
43953
43954         * prj-attr.adb: Minor reformatting throughout
43955
43956 2001-10-26  Robert Dewar  <dewar@gnat.com>
43957
43958         * prj-attr.ads: Minor reformatting
43959         Add ??? comment (this whole spec has almost no comments)
43960
43961 2001-10-26  Vincent Celier  <celier@gnat.com>
43962
43963         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
43964         ("//") that precede the drive letter on Interix.
43965
43966 2001-10-26  Geert Bosch  <bosch@gnat.com>
43967
43968         * gnat_rm.texi: Add GNAT Reference Manual.
43969
43970 2001-10-25  Robert Dewar  <dewar@gnat.com>
43971
43972         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
43973         is Error. Similar change for other renaming cases.
43974
43975 2001-10-25  Robert Dewar  <dewar@gnat.com>
43976
43977         * s-atacco.ads: Add pragma Inline_Always for functions.
43978         Fix header format. Add copyright 2001
43979
43980 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43981
43982         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
43983         return Error rather than Empty so that analysis can proceed.
43984
43985 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43986
43987         * sem_util.adb (Enter_Name): better handling of cascaded error
43988         messages when a unit appears in its own context.
43989
43990 2001-10-25  Ed Schonberg  <schonber@gnat.com>
43991
43992         * sem_util.adb (Defining_Entity): in case of error, attach created
43993         entity to specification, so that semantic analysis can proceed.
43994
43995 2001-10-25  Robert Dewar  <dewar@gnat.com>
43996
43997         * sem_util.adb
43998         (Defining_Entity): Deal with Error.
43999         (Process_End_Label): Deal with bad end label for.
44000
44001 2001-10-25  Ed Schonberg  <schonber@gnat.com>
44002
44003         * sem_elab.adb (Check_A_Call): refine message when call is in an
44004         instance but callee is not declared in the generic unit.
44005
44006 2001-10-25  Ed Schonberg  <schonber@gnat.com>
44007
44008         * sem_elab.adb (Check_A_Call): check for renaming before finding the
44009         enclosing unit, which may already be different from the calling unit.
44010
44011 2001-10-25  Geert Bosch  <bosch@gnat.com>
44012
44013         * 4gintnam.ads: fix header format.
44014
44015 2001-10-25  Ed Schonberg  <schonber@gnat.com>
44016
44017         * sem_res.adb (Resolve_Call): if the call is actually an indexing
44018         operation on the result of a parameterless call, perform elaboration
44019         check after the node has been properly rewritten.
44020
44021         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
44022         inlined within the generic tree, the defining identifier is not a
44023         compilation_unit.
44024
44025 2001-10-25  Ed Schonberg  <schonber@gnat.com>
44026
44027         * sem_res.adb (Resolve): special-case resolution of Null in an
44028          instance or an inlined body to avoid view conflicts.
44029
44030         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
44031          compatibility by retrieving the access type of the generic copy.
44032
44033 2001-10-25  Robert Dewar  <dewar@gnat.com>
44034
44035         * sem_ch3.adb:
44036         (Analyze_Number_Declaration): Handle error expression.
44037         (Signed_Integer_Type_Declaration): Handle error bound.
44038         (Analyze_Subtype_Indication): Handle error range.
44039
44040         * sem_util.adb (Get_Index_Bounds): Check for Error.
44041
44042 2001-10-25  Robert Dewar  <dewar@gnat.com>
44043
44044         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
44045         in no run time mode.
44046
44047 2001-10-25  Pascal Obry  <obry@gnat.com>
44048
44049         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
44050         mode case for ALLOC case.
44051
44052         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
44053         all platforms. Improvement of last change.
44054
44055 2001-10-25  Robert Dewar  <dewar@gnat.com>
44056
44057         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
44058
44059 2001-10-25  Geert Bosch  <bosch@gnat.com>
44060
44061         * osint.adb (Is_Relative): Remove duplicate.
44062
44063 2001-10-25  Pascal Obry  <obry@gnat.com>
44064
44065         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
44066         pathnames in UNIX and DOS style with drive letter.
44067         (Is_Relative): new routine.
44068
44069         * osint.adb: Minor reformatting
44070
44071         * osint.adb (Is_Relative): implementation using
44072         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
44073
44074 2001-10-25  Pascal Obry  <obry@gnat.com>
44075
44076         * g-dirope.adb (Basename): correctly compute offset between the
44077         original Path and the translated one.
44078
44079         * g-dirope.adb: (Base_Name): add some comments.
44080
44081 2001-10-25  Robert Dewar  <dewar@gnat.com>
44082
44083         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
44084         in HIE mode, avoids compilation abandoned message
44085
44086         * exp_imgv.adb: Correct typo in previous change
44087
44088         * exp_imgv.adb: Correct typo in previous change (not my day!)
44089
44090 2001-10-25  Robert Dewar  <dewar@gnat.com>
44091
44092         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
44093
44094 2001-10-25  Pascal Obry  <obry@gnat.com>
44095
44096         * g-awk.ads: Move all pragma inlines next to the routine
44097          declarations. This is more uniform with other GNAT spec.
44098
44099 2001-10-22  Geert Bosch  <bosch@gnat.com>
44100
44101         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
44102
44103 2001-10-19  Geert Bosch  <bosch@gnat.com>
44104
44105         * Makefile.in (tools, gnattools): Remove gnatmem.
44106
44107 2001-10-17  Richard Henderson  <rth@redhat.com>
44108
44109         * Makefile.in (misc.o): Depend on langhooks.h.
44110         * misc.c: Include it.
44111         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
44112         (LANG_HOOKS_DECODE_OPTION): New.
44113         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
44114
44115 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
44116
44117         * trans.c (tree_transform): Adjust to recent change in
44118         expand_asm_operands to implement named asm operands.
44119
44120 2001-10-11  Ed Schonberg  <schonber@gnat.com>
44121
44122         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
44123         renaming of discriminant for mutable record type.
44124
44125 2001-10-11  Robert Dewar  <dewar@gnat.com>
44126
44127         * validsw.adb: Properly save -gnatVn status.
44128
44129 2001-10-11  Robert Dewar  <dewar@gnat.com>
44130
44131         * usage.adb: Add lines for V switch.
44132
44133         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
44134         (/VALIDITY_CHECKING).
44135
44136 2001-10-11  Ed Schonberg  <schonber@gnat.com>
44137
44138         * sem_type.adb (Add_One_Interp): an operator for a type declared in
44139         an extension of System is known to be visible.
44140
44141 2001-10-11  Ed Schonberg  <schonber@gnat.com>
44142
44143         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
44144         properly. Fixes regression on ACATS C34005G.
44145
44146 2001-10-11  Robert Dewar  <dewar@gnat.com>
44147
44148         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
44149         loop in generic instance, since this is likely not very useful.
44150
44151 2001-10-11  Robert Dewar  <dewar@gnat.com>
44152
44153         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
44154         the error message for high integrity mode.
44155
44156         * rtsfind.adb (RTE): Give message if we try to find an entity that
44157         is not available in high integrity mode.
44158
44159         * rtsfind.ads:
44160         (OK_To_Use_In_HIE_Mode): New array.
44161         (RTE): May return Empty in high integrity mode.
44162
44163         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
44164         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
44165
44166         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
44167         unit if not inlined always and in no runtime mode. Fixes problem
44168         caused by new Rtsfind changes.
44169
44170         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
44171         body is deleted.
44172
44173         * rtsfind.adb (RTE): Make sure we do not try to load unit after
44174         giving message for entity not available in high integrity mode.
44175
44176 2001-10-11  Pascal Obry  <obry@gnat.com>
44177
44178         * impunit.adb: Add GNAT.CRC32.
44179
44180 2001-10-11  Ed Schonberg  <schonber@gnat.com>
44181
44182         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
44183         properly the case where one universal operand in a non-static
44184         exponentiation of a real literal.
44185
44186 2001-10-11  Ed Schonberg  <schonber@gnat.com>
44187
44188         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
44189         clause, return the gobal finalization list, for lack of anthing else.
44190
44191 2001-10-11  Ed Schonberg  <schonber@gnat.com>
44192
44193         * exp_ch7.adb (Make_Transient_Block): if statement is within
44194         exception handler, always use new transient scope to place Clean
44195         procedure.
44196
44197 2001-10-11  Pascal Obry  <obry@gnat.com>
44198
44199         * Makefile.in:
44200         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
44201         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
44202         (GNATLS_RTL_OBJS): add g-crc32.o
44203         (GNATMAKE_RTL_OBJS): add g-crc32.o
44204
44205         * ali-util.adb:
44206         (CRC_Match): new function.
44207         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
44208         instead of the previous simple checksum algorithm.
44209         (Time_Stamp_Mismatch): use CRC_Match for comparison.
44210         (Set_Source_Table): idem.
44211
44212         * ali-util.ads:
44213         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
44214         instead of simple checksum.
44215         (CRC_Match): new function.
44216         (CRC_Error): new constant.
44217
44218         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
44219         a CRC now and not a simple checksum. A CRC uses lower-case hex
44220         letters, fixes ambiguity in parsing.
44221
44222         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
44223         is what this variable will store.
44224
44225         * bcheck.adb: Change reference to chechsum in comments by CRC.
44226         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
44227         rename All_Checksum_Match to All_CRC_Match. Change due to API
44228         renaming since now GNAT does not use a simple checksum but a
44229         CRC using GNAT.CRC32.
44230
44231         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
44232         now and not anymore a simple checksum.
44233
44234         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
44235         places.
44236
44237         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
44238
44239         * scans.adb:
44240         (Restore_Scan_State): rename Checksum to CRC.
44241         (Save_Scan_State): idem.
44242
44243         * scans.ads:
44244         With GNAT.CRC32.
44245         (Checksum): rename to CRC.
44246         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
44247
44248         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
44249         GNAT.CRC32).  Update copyright notice.
44250
44251         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
44252         GNAT.CRC32).  Update copyright notice.
44253
44254         * scn.adb:
44255         (Accumulate_Checksum): removed.
44256         (Update): new procedure. Add a wide-character into the CRC.
44257
44258         * sinput-l.adb:
44259         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
44260         (Load_File): fix initialization of S (change Source_Checksum to
44261         Source_CRC)
44262
44263         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
44264         Source_CRC in S initialization.
44265
44266         * sinput.adb (Source_Checksum): renamed to Source_CRC.
44267
44268         * sinput.ads (Source_Checksum): renamed to Source_CRC.
44269         Update comments for the CRC.
44270
44271         * types.adb (Hex): Use lowercase for the letter part.
44272
44273         * types.ads (Get_Hex_String): Returns the hexadecimal representation
44274         for a word. This is currently used only for CRC. In previous version,
44275         the checksum was using a representation with all letter being
44276         upper-case. With the new implementation (using CRC) we do not remove
44277         the 32th bit of the CRC, so we can have an upper-case starting letter
44278         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
44279         It is ambigous since the CRC was optional and could be followed by
44280         options like EB, EE. So now this routines uses lower-case letter for
44281         the hexadecimal representation. Strange enough only lower case letters
44282         where checked in Scan_ALI (even if this was not a possible case).
44283
44284         * gnatvsn.ads (Library_Version): changed to 3.15a.
44285
44286         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
44287         for the compiler.
44288
44289         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
44290         for the compiler.
44291
44292         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
44293         Add 2001 to copyright notice
44294         (Accumulate_Checksum): Modify to use System.CRC32.
44295
44296         * ali-util.ads: Redo changes of previous revision to continue to use
44297         the word Checksum. Add 2001 to copyright notice.
44298
44299         * ali.adb: Undo some of previous changes, not needed.
44300         Keep the change for lower case letters in the checksum.
44301
44302         * ali.ads: Undo previous change not needed.
44303
44304         * bcheck.adb: Undo most of previous change, not needed.
44305         But do use Checksums_Match for checksum comparison.
44306
44307         * gnatls.adb: Undo most of previous change, not needed.
44308         But do use Checksums_Match for comparing checksums.
44309
44310         * lib-load.adb: Undo previous change, not needed.
44311
44312         * lib-writ.adb: Undo previous change, not needed.
44313
44314         * lib-writ.ads: Document that checksums use lower case,
44315         not upper case letters.
44316
44317         * scans.adb: Undo previous change, not needed
44318
44319         * scans.ads: Undo previous change, not needed.
44320
44321         * scn-nlit.adb: Undo previous changes, not needed.
44322
44323         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
44324
44325         * scn.adb:
44326         (Accumulate_Checksum): Use System.CRC32.
44327         (Initialize_Checksum): New procedure.
44328         Remove other changes of previous revision.
44329
44330         * sinput-p.adb: Undo previous change, not needed.
44331
44332         * sinput.adb: Undo previous change, not needed.
44333
44334         * sinput-l.adb: Undo previous change, not needed.
44335
44336         * sinput.ads: Undo previous change, not needed.  Keep only comment
44337         on new checksum algorithm
44338
44339         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
44340         Also remove a-tags and a-stream from GNAT sources.
44341
44342         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
44343
44344         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
44345
44346 2001-10-11  Geert Bosch  <bosch@gnat.com>
44347
44348         * einfo.h: Regenerate.
44349
44350         * nmake.ads: Regenerate.
44351
44352         * nmake.adb: Regenerate.
44353
44354         * sinfo.h: Regenerate.
44355
44356         * treeprs.adb: Regenerate.
44357
44358 2001-10-10  Geert Bosch  <bosch@gnat.com>
44359
44360         * gnat-style.texi: New file describing coding guidelines for Ada.
44361
44362 2001-10-10  Ed Schonberg  <schonber@gnat.com>
44363
44364         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
44365         is Flag174.
44366
44367 2001-10-10  Geert Bosch  <bosch@gnat.com>
44368
44369         * snames.ads: Add new names for project facility.
44370
44371         * snames.adb: Update to reflect snames.ads changes.
44372
44373         * snames.h: Update to reflect snames.ads changes.
44374
44375 2001-10-10  Vincent Celier  <celier@gnat.com>
44376
44377         * make.adb:
44378         (Add_Switches): reflect the changes for the switches attributes
44379         Default_Switches indexed by the programming language,
44380         Switches indexed by the file name.
44381         (Collect_Arguments_And_Compile): Idem.
44382         Reflect the attribute name changes.
44383
44384         * prj-attr.adb:
44385         (Initialisation_Data): Change the names of some packages and
44386         attributes.
44387         (Initialize): process case insensitive associative arrays.
44388
44389         * prj-attr.ads:
44390         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
44391
44392         * prj-dect.adb:
44393         (Parse_Attribute_Declaration): For case insensitive associative
44394          arrays, set the index string to lower case.
44395
44396         * prj-env.adb:
44397         Reflect the changes of the project attributes.
44398
44399         * prj-nmsc.adb:
44400         Replace Check_Naming_Scheme by Ada_Check and
44401         Language_Independent_Check.
44402
44403         * prj-nmsc.ads:
44404         Replaced Check_Naming_Scheme by 2 procedures:
44405         Ada_Check and Language_Independent_Check.
44406
44407         * prj-proc.adb:
44408         (Process_Declarative_Items): For case-insensitive associative
44409         arrays, set the index string to lower case.
44410         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
44411         Prj.Nmsc.Check_Naming_Scheme.
44412
44413         * prj-tree.adb:
44414         (Case_Insensitive): New function
44415         (Set_Case_Insensitive): New procedure
44416
44417         * prj-tree.ads:
44418         (Case_Insensitive): New function
44419         (Set_Case_Insensitive): New procedure
44420         (Project_Node_Record): New flag Case_Insensitive.
44421
44422         * prj-util.adb:
44423         (Value_Of): new function to get the string value of a single
44424         string variable or attribute.
44425
44426         * prj-util.ads:
44427         (Value_Of): new function to get the string value of a single
44428         string variable or attribute.
44429
44430         * prj.adb:
44431         (Ada_Default_Spec_Suffix): New function
44432         (Ada_Default_Impl_Suffix): New function
44433         Change definitions of several constants to reflect
44434         new components of record types.
44435
44436         * prj.ads:
44437         (Naming_Data): Change several components to reflect new
44438         elements of naming schemes.
44439         (Project_Data): New flags Sources_Present and
44440         Language_Independent_Checked.
44441         (Ada_Default_Spec_Suffix): New function.
44442         (Ada_Default_Impl_Suffix): New function.
44443
44444         * snames.ads:
44445         Modification of predefined names for project manager: added
44446         Implementation, Specification_Exceptions, Implementation_Exceptions,
44447         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
44448         Default_Switches, _Languages, Builder, Cross_Reference,
44449         Finder. Removed Body_Part, Specification_Append, Body_Append,
44450         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
44451         Gnatlink.
44452
44453         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
44454         Add comments.
44455
44456         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
44457         not that it is Nil_Variable_Value.
44458
44459         * prj.ads: Add ??? for uncommented declarations
44460
44461 2001-10-10  Ed Schonberg  <schonber@gnat.com>
44462
44463         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
44464         constant, do not indicate possible modification, so that gigi can
44465         treat it as a bona fide constant.
44466
44467 2001-10-10  Robert Dewar  <dewar@gnat.com>
44468
44469         * sem_prag.adb: Add processing for pragma External.
44470
44471         * snames.ads: Add entry for pragma External.
44472
44473         * par-prag.adb: Add pragma External.
44474
44475         * snames.adb: Updated to match snames.ads.
44476
44477 2001-10-10  Ed Schonberg  <schonber@gnat.com>
44478
44479         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
44480         a dynamic task if the allocator appears in an indexed assignment
44481         or selected component assignment.
44482
44483         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
44484         For a dynamic task in an assignment statement, use target of
44485         assignment to generate meaningful name.
44486
44487 2001-10-10  Ed Schonberg  <schonber@gnat.com>
44488
44489         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
44490         a generic package.
44491
44492         * einfo.ads: Body_Entity is also defined for generic package.
44493         Documentation change only
44494
44495         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
44496         others_choice for a discriminated component initialization,
44497         convert discriminant references into the corresponding discriminals.
44498
44499         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
44500         only if original type is private and expression has to be wrapped
44501         in a conversion.
44502
44503         * checks.adb:
44504         (Apply_Constraint_Check): Do not perform length check
44505         if expression is an aggregate with only an others_choice.
44506         (Length_N_Cond): two references to the same in_parameter
44507         (typically the discriminal in an init_proc) denote the same value.
44508         Two useful optimization uncovered by bugfixes above.
44509
44510 2001-10-10  Robert Dewar  <dewar@gnat.com>
44511
44512         * xeinfo.adb: Change int to char in translation of enumeration types.
44513         This fixes a problem in the C representation of component alignment.
44514         Add 2001 to copyright notice
44515
44516 2001-10-10  Richard Kenner  <kenner@gnat.com>
44517
44518         * decl.c: (validate_size): Do check size of object of integral type
44519         if it is a packed array type.
44520
44521 2001-10-10  Richard Kenner  <kenner@gnat.com>
44522
44523         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
44524         VAR_DECL for constant if not Is_Public but -O0.
44525
44526 2001-10-10  Richard Kenner  <kenner@gnat.com>
44527
44528         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
44529
44530 2001-10-10  Geert Bosch  <bosch@gnat.com>
44531
44532         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
44533         use '/' as switch character, allowing for absolute file names.
44534
44535 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
44536
44537         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
44538         FSF address.
44539
44540 2001-10-08  Geert Bosch  <bosch@gnat.com>
44541
44542         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
44543         Automatically build utilities when files need to be regenerated.
44544
44545 2001-10-08  Geert Bosch  <bosch@gnat.com>
44546
44547         * xsnames.adb: New utility for updating snames.ads and snames.adb
44548
44549 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
44550
44551         * Make-lang.in (ADAFLAGS): Add -W -Wall.
44552         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
44553         (gnat1): Also depend on attribs.o.
44554         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
44555         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
44556         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
44557         (ADAFLAGS): Add -W -Wall.
44558         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
44559         take out CFLAGS.
44560
44561         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
44562         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
44563         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
44564         Use $(ADAC), not $(CC), as compilation command.
44565
44566         (gnattools): Depend directly on tools to build, don't use
44567         recursive make.
44568         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
44569
44570         * einfo.h, sinfo.h: New files (autogenerated).
44571
44572 2001-10-08  Richard Henderson  <rth@redhat.com>
44573
44574         * comperr.adb (Abort_In_Progress): New.
44575         (Compiler_Abort): Use it to prevent recursion.
44576
44577 2001-10-08  Robert Dewar  <dewar@gnat.com>
44578
44579         * atree.adb: Set Error_Posted in Error node, helps error recovery.
44580
44581         * par-endh.adb (Output_End_Expected): We should also not test
44582         Error_Posted on the Error node, since now it is always set.
44583
44584         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
44585         to help error recovery. Part of general work on 9407-004.
44586
44587         * par.adb: Add ??? for misuse of error
44588
44589         * sem_res.adb:
44590         (Resolve): Defend against Error, fixes 9407-003.
44591         (Resolve_Discrete_Subtype_Indication): Defend against Error.
44592
44593         * sinfo.ads (N_Error): Now has Etype field (which will be set
44594         to Any_Type to help error recovery).
44595
44596 2001-10-08  Richard Kenner  <kenner@gnat.com>
44597
44598         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
44599         Consistently set MEM attributes from expression; fixes
44600         bootstrap failure on x86.
44601
44602 2001-10-08  Geert Bosch  <bosch@gnat.com>
44603
44604         * 5oosinte.adb: Add 2001 to copyright notice.
44605
44606 2001-10-08  Geert Bosch  <bosch@gnat.com>
44607
44608         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
44609
44610         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
44611
44612 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
44613
44614         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
44615
44616 2001-10-05  Geert Bosch  <bosch@gnat.com>
44617
44618         * adaint.h: Small formatting fix.
44619
44620 2001-10-04  Geert Bosch  <bosch@gnat.com>
44621
44622         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
44623         Arg is int, not FILE *, in dummy version of functions.
44624
44625         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
44626         Arg is int, not FILE *.
44627
44628 2001-10-04  Geert Bosch  <bosch@gnat.com>
44629
44630         * 3lsoccon.ads: Added file, missed with initial check ins.
44631
44632         * 4lintnam.ads: Fix header format.
44633         Change Linux to GNU/Linux.
44634
44635         * 5iosinte.adb: Change Linux to GNU/Linux.
44636
44637         * 5iosinte.ads: Change Linux to GNU/Linux.
44638
44639         * 5itaprop.adb: Change Linux to GNU/Linux.
44640
44641         * 5itaspri.ads: Change Linux to GNU/Linux.
44642         Update copyright notice.
44643
44644         * 5lintman.adb: Change Linux to GNU/Linux.
44645
44646         * 5lml-tgt.adb: Change Linux to GNU/Linux.
44647
44648         * 5losinte.ads: Change Linux to GNU/Linux.
44649
44650         * 5lsystem.ads: Change Linux to GNU/Linux.
44651
44652         * 5qosinte.adb: Change Linux to GNU/Linux.
44653
44654         * 5qosinte.ads: Change Linux to GNU/Linux.
44655
44656         * 5qparame.ads: Change Linux to GNU/Linux.
44657
44658         * 5qtaprop.adb: Change Linux to GNU/Linux.
44659
44660         * 5qtaspri.ads: Change Linux to GNU/Linux.
44661         Add 2001 to copyright notice.
44662
44663         * 5vintman.ads: Change Linux to GNU/Linux.
44664         Fix header format.  Add 2001 to copyright notice.
44665
44666         * g-soccon.ads: Change Linux to GNU/Linux.
44667
44668         * g-trasym.ads: Change Linux to GNU/Linux.
44669         Add 2001 to copyright notice.
44670
44671         * memtrack.adb: Change Linux to GNU/Linux.
44672
44673         * s-intman.ads: Change Linux to GNU/Linux.
44674         Add 2001 to copyright notice.  Fix header format.
44675
44676         * s-stache.adb: Change Linux to GNU/Linux.
44677
44678         * adaint.c: Change Linux to GNU/Linux.
44679
44680         * cio.c: Change Linux to GNU/Linux.
44681
44682         * cstreams.c: Change Linux to GNU/Linux.
44683
44684         * init.c: Change Linux to GNU/Linux.
44685
44686         * gmem.c: Change Linux to GNU/Linux.
44687
44688         * tracebak.c: Change Linux to GNU/Linux.
44689
44690
44691 2001-10-02  Geert Bosch  <bosch@gnat.com>
44692
44693         * misc.c (insert_default_attributes): Add dummy version.