OSDN Git Service

ff700791b75d5aa61a0592a9feb019ad037b47fc
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2007-10-20  Danny Smith <dannysmith@users.sourceforge.net>
2
3         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
4         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
5         for win32 targets.
6         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
7
8 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
9
10         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
11         Set the protection status of the guard page based on the value of On.
12
13         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
14
15         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
16         (Exit_Task): Pass False to Hide_Yellow_Zone.
17
18 2007-10-15  Robert Dewar  <dewar@adacore.com>
19
20         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
21         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
22         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
23         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
24         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
25         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
26         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
27         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
28         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
29         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
30         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
31         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
32         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
33         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
34         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
35         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
36         Minor reformatting.
37         Add Unreferenced and Warnings (Off) pragmas for cases of
38         variables modified calls where they are IN OUT or OUT parameters and
39         the resulting values are not subsequently referenced. In a few cases,
40         we also remove redundant code found by the new warnings.
41
42         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
43         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
44         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
45         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
46         warning controlled by -gnatw.o that warns on cases of out parameter
47         values being ignored.
48
49 2007-10-15  Geert Bosch  <bosch@adacore.com>
50
51         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
52
53         * expect.c: Initial port to arm-mentor-nucleus.
54         Use kill for __gnat_kill() on VMS.
55
56 2007-10-15  Emmanuel Briot  <briot@adacore.com>
57
58         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
59         value.
60         (Xref_Record): Change type for Line, since in the case of a reference to
61         a predefined entity (as happens for array index types), the line is set
62         to 0.
63         Add support for parsing multiple array index types info, or
64         multiple inherited interfaces info. This information cannot be stored
65         in Xref_Entity_Record, which only supports a single instance of Tref_*,
66         and is therefore stored in the list of references instead. It has a
67         special treatement later on in tools that use this information.
68
69 2007-10-15  Tristan Gingold  <gingold@adacore.com>
70
71         * debug.adb: Document use of -gnatd.a and -gnatd.I
72
73         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
74
75 2007-10-15  Javier Miranda  <miranda@adacore.com>
76
77         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
78         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
79         care of access to class-wide interface types plus removal of bizarre
80         conversion of tagged object to access type (reported by Gary
81         Dismukes). After this patch there is no need to perform any
82         additional management on these nodes in Expand_Interface_Actuals.
83
84         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
85         that handles use of 'Access and 'Unchecked_Access applied to
86         actuals covering interface types. Such code is now
87         centralized in Expand_N_Attribute_Reference.
88
89 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
90
91         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
92         of tagged types whose ultimate ancestor is a CPP type.
93         (Freeze_Array_Type): For a packed array type, generate an initialization
94         procedure if the type is public, to handle properly a client that
95         specifies Normalize_Scalars.
96
97 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
98
99         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
100         inside a generic body, retrieve the full view of the entry family
101         discrete subtype if available.
102
103 2007-10-15  Thomas Quinot  <quinot@adacore.com>
104
105         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
106         attempt to generate stubs for hidden primitive operations.
107
108 2007-10-15  Vincent Celier  <celier@adacore.com>
109
110         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
111         returning None, used when there is no platform specific body for
112         MLib.Tgt.Specific.
113
114 2007-10-15  Bob Duff  <duff@adacore.com>
115
116         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
117         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
118         the generic Heap_Sort_G, in order to avoid trampolines.
119
120 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
121             Jose Ruiz  <ruiz@adacore.com>
122
123         * vx_stack_info.c: New file.
124
125         * i-forbla-unimplemented.ads: New file.
126
127         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
128         for unsupported configurations; use it on VMS targets instead of the
129         real one.
130         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
131         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
132         used by VxWorks targets to have access to task-specific data and be
133         able to extract the stack boundaries for stack checking.
134         Use system-vms-ia64.ads on ivms.
135
136         * Make-lang.in: Update dependencies.
137
138         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
139         (vx_stack_info.c).
140
141 2007-10-15  Vincent Celier  <celier@adacore.com>
142
143         * snames.adb, snames.ads: Add new standard name runtime_library_dir
144
145         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
146
147         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
148
149         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
150         the source is unknown.
151
152         * prj-ext.adb: Spelling error fix
153
154         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
155         95 reserved word in its name.
156         (Process_Project_Level_Array_Attributes): Process new attribute
157         Runtime_Library_Dir.
158
159         * prj-part.adb (Parse_Single_Project): Do not check the name of the
160         config project against the user project names.
161
162         * prj-proc.adb (Expression): In multi-language mode, indexes that do
163         not include a dot are always case insensitive.
164         (Process_Declarative_Items): Ditto
165         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
166         detected.
167
168         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
169         True, compare both indexes in lower case.
170
171 2007-10-15  Robert Dewar  <dewar@adacore.com>
172
173         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
174
175 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
176
177         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
178         association for an access component, add an association with null as
179         the expression. Remove testing for array subtypes and the setting in
180         that case of Ctyp to the array component type, which prevented proper
181         inclusion of an association for null-initialized arrays. Collapse
182         condition that tests for array subtypes into just a test of
183         Is_Partially_Initialized_Type (which already covers arrays anyway).
184
185 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
186
187         * sem_ch12.adb: Minor code reformatting.
188         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
189         find the parent package which may have been hidden by local
190         declarations.
191
192 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
193
194         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
195         flag of derived concurrent types, taking into account the flag setting
196         on the parent subtype and any new set of discriminants.
197
198 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
199
200         * sem_ch4.adb: Minor code and comment reformatting.
201         (Analyze_Allocator): When the designated type of an unconstrained
202         allocator is a record with unknown discriminants or an array with
203         unknown range bounds, emit a detailed error message depending on the
204         compilation mode and whether the designated type is limited.
205
206 2007-10-15  Tristan Gingold  <gingold@adacore.com>
207
208         * system-vms-ia64.ads: New file.
209
210         * system-vms_64.ads: Minor comment fix.
211
212 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
213
214         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
215         body generated for a function with a controlling result that is a null
216         extension, discard the generated body in favor of the current explicit
217         one.
218
219 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
220
221         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
222         examining its original form, to handle properly operator calls that
223         have been rewritten.
224
225 2007-10-15  Olivier Hainque  <hainque@adacore.com>
226
227         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
228         instead of a procedure value in each traceback entry.
229
230         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
231         instead of procedure value to TBK$SYMBOLIZE.
232
233         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
234         field.
235         (TB_Entry_For): Account for the PV/FP renaming.
236
237         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
238         add comment.
239         (Null_TB_Entry): Account for change of component name.
240         (PV_For): Rename as FP_For.
241
242 2007-10-15  Tristan Gingold  <gingold@adacore.com>
243
244         * trans.c (gnat_to_gnu): Remove the padding structure more often.
245         This optimize assignment to over-aligned record.
246
247 2007-10-15  Emmanuel Briot  <briot@adacore.com>
248
249         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
250         interfaces.
251
252         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
253         type, for dispatching calls.
254
255 2007-10-15  Vincent Celier  <celier@adacore.com>
256             Robert Dewar  <dewar@adacore.com>
257
258         * gnat_ugn.texi: Add documentation for switches --version and --help
259         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
260         gnatxref, gnatfind, gnatls, and gnatclean.
261         Document -gnatw.o.
262         Mention attribute Excluded_Source_Dirs
263         Replace obsolescent attribute Locally_Removed_Files with attribute
264         Excluded_Source_Files.
265         Improve documentation of -u (gnatbind)
266         Document how to do reliable stack checking for the environmental task
267         on iVMS.
268
269         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
270         Document attribute Excluded_Source_Files and indicate that attribute
271         Locally_Removed_Files is obsolescent.
272
273 2007-10-15  Thomas Quinot  <quinot@adacore.com>
274
275         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
276
277         * gen-soccon.c: 
278         Update documentation to note that OpenVMS 8.3 or later must be used
279         to generate g-soccon-vms.ads.
280
281         * atree.adb: Add ??? comment
282
283         * exp_util.adb: Minor reformatting.
284         Add ??? comment in Kill_Dead_Code.
285
286 2007-10-15  Robert Dewar  <dewar@adacore.com>
287
288         * errout.ads: Comment clarification
289
290         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
291         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
292
293         * lib.ads: Comment update
294
295         * init.c: Minor reformatting.
296
297         * sem_attr.adb: Minor formatting
298
299         * osint-b.ads: Minor reformatting
300
301         * sem_ch9.adb: Implement -gnatd.I switch
302
303         * g-comlin.adb: (Start): Fix handling of empty command line.
304
305         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
306         even when -rules follows the -cargs section.
307
308 2007-10-08  Ollie Wild  <aaw@google.com>
309
310         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
311         gnat_return_tree.
312         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
313         gnat_return_tree.
314         (gnat_eh_runtime_type): Removed.
315         (gnat_return_tree): New function.
316
317 2007-10-08  Ben Elliston  <bje@au.ibm.com>
318
319         PR ada/33454
320         Revert:
321         2007-08-31  Ben Elliston  <bje@au.ibm.com>
322
323         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
324         when compiling for powerpc64-*-linux.
325         * system-linux-ppc64.ads: New file.
326
327 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
328
329         Mapped location support
330         * back_end.adb (Call_Back_End): Pass information about source
331         files instead of units to gigi.
332         * gigi.h (struct File_Info_Type): New.
333         (gigi): Rename and change type of number_units parameter, change
334         type of file_info_ptr parameter.
335         * trans.c (number_files): New global variable.
336         (gigi): Rename and change type of number_units parameter, change
337         type of file_info_ptr parameter.
338         If mapped location support is enabled, create the isomorphic mapping
339         between source files and line maps.
340         (Sloc_to_locus): If mapped location support is enabled, translate
341         source location into mapped location.
342         (annotate_with_node): Rename into set_expr_location_from_node.
343         Call set_expr_location instead of annotate_with_locus.
344         (Pragma_to_gnu): Adjust for above change.
345         (Loop_Statement_to_gnu): Likewise.
346         (call_to_gnu): Likewise.
347         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
348         (gnat_to_gnu): Likewise.
349         (add_stmt_with_node): Likewise.
350         (add_cleanup): Likewise.
351         * utils.c (gnat_init_decl_processing): Do not set input_line.
352
353 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
354
355         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
356         (Applicable_Use): Emit a warning when a package tries to use itself.
357         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
358         is already in use or the package where it is declared is in use or is
359         declared in the current package.
360         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
361
362         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
363         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
364         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
365
366 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
367
368         * a-calend-vms.adb, a-calend.adb: 
369         Add a section on leap seconds control along with two entities used to
370         enable and disable leap seconds support. The array Leap_Second_Times is
371         now constant and contains hard time values pre-generated. Remove
372         all elaboration code used to populate the table of leap seconds.
373
374         * bindgen.adb: 
375         Add entity Leap_Seconds_Support to the list of global run-time variables
376         along with a comment on its usage and values.
377         (Gen_Adainit_Ada): Add code to generate the declaration and import of
378         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
379         or one (enabled) depending on the presence of binder switch "-y".
380         (Gen_Adainit_C): Add code to generate the declaration of external int
381         __gl_leap_seconds_support. Set is value to zero (disabled) or one
382         (enabled) depending on the presence of binder switch "-y".
383
384         * init.c: Add __gl_leap_seconds_support to the list of global values
385         computed by the binder.
386
387 2007-09-26  Jerome Guitton  <guitton@adacore.com>
388
389         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
390         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
391          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
392         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
393
394         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
395
396         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
397         function which can be called by the debugger to interrupt the tasks of
398         an Ada application asynchronously, as needed on VxWorks.
399         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
400
401         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
402         renamed from Stop_All_Tasks. Update comments.
403         (Stop_All_tasks): New function declaration.
404
405 2007-09-26  Olivier Hainque  <hainque@adacore.com>
406
407         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
408         #include <utime.h> and #define GCC_RESOURCE_H before
409         #include <sys/wait.h>.
410         Add more protections in __gnat_translate_vms.
411
412         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
413         #include <sys/wait.h>.
414
415 2007-09-26  Thomas Quinot  <quinot@adacore.com>
416             Sergey Rybin  <rybin@adacore.com>
417
418         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
419
420         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
421         where it belongs.
422
423         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
424
425         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
426         where it belongs.
427
428         * sem_dist.ads: Minor comment fix
429
430         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
431
432 2007-09-26  Javier Miranda  <miranda@adacore.com>
433             Eric Botcazou  <ebotcazou@adacore.com>
434
435         * a-tags.adb: 
436         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
437          indirection added to the HT_Link component of the TSD. This is required
438          to statically allocate the TSD.
439
440         * a-tags.ads: 
441         Minor reordering of the declarations in the private part. Required to
442         add a level of indirection to the contents of the TSD component HT_Link.
443         This is required to statically allocate the TSD.
444
445         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
446         Is_Statically_Allocated set from constant objects.
447         Do not make exported constants created by the compiler volatile.
448         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
449         as read-only.
450
451         * trans.c (Identifier_to_gnu): For constants, unshare initializers
452         before returning them.
453
454         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
455         public part of the package.
456         (Make_DT): Move HT_Link component out of the TSD record. For this
457         purpose Make_DT now declares a separate object that stores the
458         HT_Link value, and initializes the TSD component with the address
459         of this new object. The addition of this level of indirection is
460         required to statically allocate the TSD because the TSD cannot
461         have variable components.
462         (Expand_Interface_Conversion): Improve the expanded code.
463         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
464
465         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
466         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
467         if we are building static dispatch tables then we must not generate
468         extra code to register the primitive because the dispatch table will
469         be built at the end of the library package; otherwise we notify that
470         we cannot build the static dispatch table.
471
472 2007-09-26  Robert Dewar  <dewar@adacore.com>
473
474         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
475         overlays.
476
477         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
478         (Analyze_Record_Representation_Clause): Suppress junk warning for
479         missing component clause.
480         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
481         tests for controlled type overlay to composites with controlled
482         components.
483         (Analyze_Record_Representation_Clause): Add reference for component name
484
485 2007-09-26  Javier Miranda  <miranda@adacore.com>
486             Gary Dismukes  <dismukes@adacore.com>
487
488         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
489         for thunks associated with interface types.
490
491         * einfo.ads: Improve documentatation of Is_Internal
492         (Is_Thunk): New attribute applicable to subprograms. True for thunks
493         associated with interface types.
494         Extensive comment fixes regarding flags that appear in all entities. The
495         documentation is now consistent for all such flags (there were a number
496         of errors in the documentation in this regard).
497
498         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
499
500         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
501         of these procedures are passed a function call that already has
502         build-in-place actuals (testing new flag
503         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
504         the case where processing continues.
505         (Expand_Call): If the call is generated from a thunk body then we
506         propagate the extra actuals associated with the accessibility
507         level of the access type actuals.
508
509         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
510         of each extra formal of a protected operation to reference the
511         corresponding extra formal of the subprogram denoted by the
512         operation's Protected_Body_Subprogram.
513         
514         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
515         N_Function_Call nodes.
516
517 2007-09-26  Robert Dewar  <dewar@adacore.com>
518
519         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
520
521         * debug.adb: Add d.s flag.
522
523 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
524
525         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
526         debug variable so that it won't be initialized when pragma
527         Initialize_Scalars is in effect.
528
529 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
530
531         * freeze.adb (Freeze_Entity): Remove check for preelaborable
532         initialization of a full view. This is moved to
533         Analyze_Package_Specification.
534
535         * sem_ch7.adb (Analyze_Package_Specification): Add check for
536         preelaborable initialization of a full view in entity loop.
537         (Uninstall_Declarations): If entity is a use-visible compilation unit,
538         its child units are use-visible only if they are visible child units.
539
540         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
541         whether an expression can be used within a type declaration that
542         requires preelaborable init.
543         (Check_Components): Replace inline code that does partial checking for
544         preelaborable default expressions with call to
545         Is_Preelaborable_Expression.
546         (Has_Preelaborable_Initialization): In the case of a generic actual
547         subtype, (that is, Is_Generic_Actual is True), return the result of
548         applying Has_Preelaborable_Initialization to the generic actual's base
549         type.
550
551 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
552
553         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
554         call to Jan_1_Day _Of_Week to optimize its performance.
555         (Is_Leap): Move the routine to the scope of Week_In_Year.
556         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
557         weekday on which January 1 falls of Year - 1 and Year + 1. This function
558         avoids calling Time_Of and Split, thus making it more efficent.
559         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
560
561         * g-calend.ads (Week_In_Year): Change comment to reflect new
562         implementation.
563
564 2007-09-26  Emmanuel Briot  <briot@adacore.com>
565
566         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
567         Command_Line): New types
568         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
569         support for defining how switches can be grouped on a command line (as
570         is the case for -gnatw... for GNAT), and how simple switches can be
571         used as aliases for more complex switches (-gnatwa is same as
572         -gnatwbcef...)
573         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
574         (Start, Current_*): New subprograms
575         Added support for parsing an array of strings in addition to the real
576         command line.
577         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
578          be moved from the body to the private part of the spec.
579         (*): All subprograms now have an extra parameter with default value to
580         specify which parser should be used. For backward compatibility, it
581         defaults to parsing the command line of the application. They were also
582         modified to properly handle cases where each of the argument does not
583         start at index 1 (which is always true for Ada.Command_Line, but not
584         when processing any Argument_List).
585         (Free): New subprogram
586         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
587         Argument): New subprograms
588         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
589         special characters like ':', '=',... are now handled in a single place,
590         which makes the code more extensible eventually.
591         (Getopt, Full_Switch): When the switch was returned as part of the
592         special character '*', make sure it is prepended by the switch character
593         ('-' in general), so that the application knows whether "foo" or "-foo"
594         was specified on the command line.
595
596 2007-09-26  Florian Villoing  <villoing@adacore.com>
597
598         * g-dirope.adb (Remove_Dir): In case we are removing directories
599         recursively, make sure that if an exception is raised during the
600         processing, the current working directory is reset to its initial
601         value before propagating the exception.
602
603 2007-09-26  Vincent Celier  <celier@adacore.com>
604
605         * gnatbind.adb: If there are several ALI files specified and there is
606         a main program to bind, the first ALI is expected to contain the main
607         subprogram and the names of the binder generated files will be derived
608         from the first ALI file name.
609         (Gnatbind): Fix insertion character in invocation of Error_Msg
610
611 2007-09-26  Vincent Celier  <celier@adacore.com>
612
613         * gnatcmd.adb (Check_Files): Do not include sources that have been
614         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
615
616 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
617
618         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
619         information about each of its index types, following the type
620         reference for its component type.
621
622 2007-09-26  Vincent Celier  <celier@adacore.com>
623
624         * make.adb: (Kill): New procedure (__gnat_kill imported)
625         (Running_Compile, Outstanding_Compiles): Global variables that
626         were previously local to procedure Compile_Sources.
627         (Sigint_Intercepted): Send signal SIGINT to all outstanding
628         compilation processes.
629
630         (Gnatmake): If project files are used, create the mapping of all the
631         sources, so that the correct paths will be found.
632
633         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
634
635 2007-09-26  Vincent Celier  <celier@adacore.com>
636
637         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
638
639         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
640         Replace components Compiler_Min_Options and Binder_Min_Options with
641         Compiler_Required_Switches and Binder_Required_Switches in record
642         Language_Config.
643         Remove components Default_Language and Config in Project_Tree_Data,
644         no longer used.
645
646         * prj-attr.adb: New attributes Required_Switches (<language>) in
647         packages Compiler and Binder.
648
649         * prj-nmsc.adb: Major rewrite of the processing of configuration
650         attributes for gprbuild. No impact on GNAT tools.
651
652         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
653         process configuration attributes: this is done in Prj.Nmsc.Check.
654         (Recursive_Process): Make a full copy of packages inherited from project
655         being extended, instead of a shallow copy.
656         (Process_Project_Tree_Phase_1): New procedure
657         (Process_Project_Tree_Phase_1): New procedure
658         (Process): Implementation now uses the two new procedures
659
660         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
661         from the project config, not the tree config that no longer exists.
662
663 2007-09-26  Vincent Celier  <celier@adacore.com>
664
665         * Make-lang.in: Update dependencies..
666
667 2007-09-26  Vincent Celier  <celier@adacore.com>
668
669         * osint.adb, osint.ads: Minor reformatting
670
671         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
672
673 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
674
675         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
676         message to cite use of <> in aggregate component associations rather
677         than wrongly indicating use of limited aggregates.
678
679 2007-09-26  Robert Dewar  <dewar@adacore.com>
680
681         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
682         Address_Taken.
683
684 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
685
686         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
687         ancestor of the derived type, the operations are inherited from the
688         primary dispatch table of the parent.
689         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
690         when the context is an explicit type conversion.
691
692 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
693
694         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
695         rule for qualified expressions properly, to detect improper conversions
696         and resolve some cases of overloading.
697
698 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
699
700         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
701         proper kind of reference to the primitive operation, for better source
702         navigation.
703         (Valid_Conversion): A tagged conversion is legal if both operands are
704         tagged.
705
706 2007-09-26  Robert Dewar  <dewar@adacore.com>
707
708         * sem_warn.adb (Check_References): Catch more cases of unreferenced
709         packages.
710
711 2007-09-26  Vincent Celier  <celier@adacore.com>
712
713         * snames.adb, snames.ads: Change Include_Option to Include_Switches
714
715 2007-09-26  Robert Dewar  <dewar@adacore.com>
716
717         * s-wchstw.adb: provide messages for run time unit exceptions
718
719         * a-witeio.adb: Minor reformatting
720
721         * exp_ch13.adb: Minor reformatting
722
723 2007-09-26  Sergey Rybin  <rybin@adacore.com>
724
725         * vms_data.ads: Revise gnatmetric qualifiers.
726         Add qualified for the new gnatbind option '-y'
727
728         * gnat_ugn.texi: Revise the gnatmetric section.
729         Add entry for new gnatbind option '-y'.
730
731         * gnat_rm.texi: Minor spelling correction.
732         Document restriction on overlaying controlled types
733
734 2007-09-26  Vincent Celier  <celier@adacore.com>
735
736         * makegpr.adb (Link_Executables): Do not fail when the root project has
737         no sources, but is an extending project.
738
739 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
740
741         * trans.c: Fix misplaced #define.
742
743 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
744
745         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
746         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
747
748 2007-09-21  Olivier Hainque  <hainque@adacore.com>
749
750         * utils.c (type_for_nonaliased_component_p): Return false for
751         all AGGREGATE_TYPEs.
752
753 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
754
755         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
756         object covered by 13.3(19) volatile.
757
758 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
759
760         PR ada/26797
761         PR ada/32407
762         * utils.c (unchecked_convert): Use a subtype as the intermediate type
763         in the special VIEW_CONVERT_EXPR case.
764
765 2007-09-12  Robert Dewar  <dewar@adacore.com>
766
767         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
768
769         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
770         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
771         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
772         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
773         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
774         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
775         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
776         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
777         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
778         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
779         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
780         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
781         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
782         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
783         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
784         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
785         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
786         pragma Compiler_Unit and adds it to relevant library units.
787
788 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
789
790         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
791         a box need not correspond to any component.
792
793 2007-09-12  Robert Dewar  <dewar@adacore.com>
794
795         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
796         the tasking version of the Ada run time when foreign threads are
797         present and there are no explicit Ada tasks or tasking constructs.
798
799         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
800
801 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
802
803         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
804         the usage of switch -y.
805
806         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
807         when switch -y is present.
808
809         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
810         leap seconds in Ada.Calendar and its children.
811
812 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
813
814         * a-extiti.ads (Timer): The discriminant is a "not null access
815         constant" in the Reference Manual.
816         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
817
818 2007-09-12  Robert Dewar  <dewar@adacore.com>
819
820         * a-swuwha.adb: Remove junk RM header
821
822 2007-09-12  Vincent Celier  <celier@adacore.com>
823
824         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
825         indicator
826
827         * g-bytswa.ads: Minor reformatting
828
829 2007-09-12  Thomas Quinot  <quinot@adacore.com>
830
831         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
832         Add new constant Thread_Blocking_IO, always True by default, set False
833         on a per-runtime basis.
834         (Need_Netdb_Buffer): New constant.
835
836 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
837
838         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
839         Added renames for corresponding functions in System.Partition_Interface.
840
841 2007-09-12  Doug Rupp  <rupp@adacore.com>
842
843         * Makefile.in: Remove VMS specific System.CRTL packages which are no
844         longer needed.
845
846         * s-crtl-vms64.ads: Removed.
847
848 2007-09-12  Olivier Hainque  <hainque@adacore.com>
849
850         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
851         with discriminant constraints, generalize the code for BIT_FIELDs
852         to PACKED fields of constant size and propagate DECL_PACKED.
853
854 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
855
856         * decl.c (array_type_has_nonaliased_component): New predicate.
857         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
858         set the TYPE_NONALIASED_COMPONENT flag on the type.
859         <E_Array_Subtype>: Likewise.
860         * gigi.h (type_for_nonaliased_component_p): Declare.
861         * utils.c (type_for_nonaliased_component_p): New predicate.
862         (create_field_decl): Invoke the above predicate to set the
863         DECL_NONADDRESSABLE_P flag on the field.
864
865 2007-09-11  Javier Miranda  <miranda@adacore.com>
866
867         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
868         in library level record type entities if we are generating statically
869         allocated dispatch tables.
870
871         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
872         importing/exporting the _tag declaration by new code
873         importing/exporting the dispatch table wrapper. This change allows us
874         to statically allocate of the TSD.
875         (Make_DT.Export_DT): New procedure.
876         (Build_Static_DT): New function.
877         (Has_DT): New function.
878
879         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
880         True_Constant and Current_Value. Required to statically
881         allocate the dispatch tables.
882         (Check_Allocator): Make function iterative instead of recursive.
883         Also return inner allocator node, when present, so that we do not have
884         to look for that node again in the caller.
885
886 2007-09-11  Jan Hubicka <jh@suse.cz>
887
888         * misc.c (gnat_expand_body): Kill.
889         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
890
891 2007-09-10  Robert Dewar  <dewar@adacore.com>
892
893         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
894         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
895         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
896         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
897         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
898         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
899         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
900         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
901         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
902         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
903         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
904         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
905         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
906         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
907         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
908         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
909         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
910         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
911         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
912         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
913         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
914         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
915         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
916         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
917         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
918         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
919         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
920         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
921         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
922         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
923         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
924         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
925         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
926         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
927         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
928         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
929         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
930         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
931         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
932         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
933         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
934         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
935         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
936         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
937         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
938         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
939         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
940         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
941         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
942         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
943         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
944         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
945         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
946         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
947         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
948         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
949         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
950         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
951         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
952         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
953         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
954         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
955         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
956         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
957         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
958         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
959         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
960         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
961         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
962         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
963         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
964         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
965         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
966         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
967         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
968         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
969         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
970         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
971         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
972         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
973         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
974         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
975         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
976
977 2007-09-10  Emmanuel Briot  <briot@adacore.com>
978
979         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
980         classes ("[]").
981
982 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
983
984         * adaint.c (__gnat_translate_vms): new function.
985
986 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
987             Thomas Quinot  <quinot@adacore.com>
988
989         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
990         create an abstract subprogram in the case of 'Input. For 'Output we now
991         create a real spec/body when the type is abstract, since it can
992         potentially be called.
993         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
994         body for 'Output when the type is abstract (only the creation of the
995         body for 'Input is excluded when the type is abstract).
996         (Stream_Operation_OK): Add an additional condition in the return
997         statement, so that False will be returned for TTS_Stream_Input if the
998         associated tagged type is an abstract extension. Add comments for
999         return statement.
1000         (Expand_N_Object_Declaration): For the case of a shared passive
1001         variable, insert init proc call only after the shared variable
1002         procedures have been processed, because the IP call needs to undergo
1003         shared passive variable reference expansion, which requires these
1004         procedures to be available (and elaborated).
1005
1006 2007-09-10  Vincent Celier  <celier@adacore.com>
1007
1008         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
1009         parameter Runtime_Project.
1010
1011 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
1012
1013         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
1014         given a box association, the type of the component is discriminated,
1015         and the value of the discriminant is the discriminant of the enclosing
1016         type, retrieve its value from the aggregate itself, where it must have
1017         been supplied.
1018
1019         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
1020         to remove other spurious ambiguities on arithmetic operations involving
1021         literals and addresses, on systems where Address is a visible integer
1022         type, when the operator is called in functional notation.
1023         (Try_Primitive_Operation): Within an instance, a call in prefixed form
1024         is legal when the types match, even if the operation is currently
1025         hidden.
1026
1027 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
1028
1029         * sem_ch12.adb (Build_Local_Package): A formal package with no
1030         associations is legal if all formals have defaults. It is not
1031         equivalent to a formal declared with a box.
1032
1033 2007-09-10  Sergey Rybin  <rybin@adacore.com>
1034
1035         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
1036
1037 2007-09-10  Sergey Rybin  <rybin@adacore.com>
1038
1039         * gnat_ugn.texi: Add description of the new '-lratio' option
1040         Update 7.3.1 section about availability of the feature.
1041
1042 2007-09-10  Thomas Quinot  <quinot@adacore.com>
1043
1044         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
1045         inserted node.
1046
1047 2007-09-10  Olivier Hainque  <hainque@adacore.com>
1048
1049         * Makefile.in: (mips-irix section): Activate build of libgmem.
1050
1051 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
1052
1053         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
1054         x87 registers.
1055
1056 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
1057
1058         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
1059         a debug renaming declaration specially.
1060
1061 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
1062
1063         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
1064         which a constant renaming is treated as a normal object declaration.
1065         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
1066         the N_Indexed_Component case.
1067         <N_Indexed_Component>: Fall through to above case.
1068         <N_Object_Renaming_Declaration>: Return true for all composite types.
1069
1070 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
1071
1072         * decl.c (make_packable_type): If the new type has been given BLKmode,
1073         try again to get an integral mode for it.
1074
1075 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
1076
1077         Re-apply accidentally reverted change:
1078
1079         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
1080
1081         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
1082         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
1083         and _Unwind_SWord with _sleb128_t.
1084
1085 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
1086
1087         * trans.c (convert_with_check): Update call to real_2expN.
1088
1089 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
1090
1091         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
1092         * utils.c (end_subprog_body): Likewise.
1093
1094 2007-09-03  Nick Clifton  <nickc@redhat.com>
1095
1096         * Make-lang.in: Change copyright header to refer to version 3 of
1097         the GNU General Public License and to point readers at the
1098         COPYING3 file and the FSF's license web page.
1099         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
1100         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
1101         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
1102         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
1103         Likewise.
1104
1105 2007-08-31  Vincent Celier  <celier@adacore.com>
1106
1107         PR ada/4720
1108
1109         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
1110         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
1111         (Check_Version_And_Help): New procedure in package Switch to process
1112         switches --version and --help.
1113         Use Check_Version_And_Help in GNAT tools
1114
1115         * make.adb:  Ditto.
1116         (Compile_Sources): Make sure that sources that are "excluded" are not
1117         compiled.
1118         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
1119         project file is used.
1120         (Version_Switch): Remove, moved to Switch
1121         (Help_Switch): Remove, moved to Switch
1122         (Display_Version): Remove, moved to Switch
1123
1124         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
1125         package Switch to process switches --version and --help.
1126         (Display_Version): New procedure
1127
1128         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
1129
1130 2007-08-31  Javier Miranda  <miranda@adacore.com>
1131
1132         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
1133         internal tags.
1134
1135 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1136
1137         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
1138         (Mark_Non_Null): If the node for which we just generated an access check
1139         is a reference to an *in* parameter and the reference appears in the
1140         declarative part of a subprogram body, mark the node as known non null.
1141
1142 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1143
1144         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
1145         structure of E_Exception to reflect the new flag.
1146         (Is_Raised, Set_Is_Raised): New inlined routines.
1147         Update the usage of available flag to reflect the addition of Is_Raised.
1148         (Is_Raised, Set_Is_Raised): Bodies of new routines.
1149         (Write_Entity_Flags): Write the status of flag Is_Raised.
1150         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
1151         spurious ambiguities when integer literals appear in the context of an
1152         address type that is a visible integer type.
1153
1154         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
1155         exceptions never being raised.
1156         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
1157         explicitly raised.
1158
1159 2007-08-31  Javier Miranda  <miranda@adacore.com>
1160
1161         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
1162         statement when compiling under restriction No_Exceptions_Proparation.
1163
1164 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1165
1166         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
1167         initialization aggregate for the type, generate itype references for
1168         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
1169
1170 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
1171
1172         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
1173         library-level package renaming, pass the declaration associated with
1174         the renaming's special debug variable to Qualify_Entity_Names to ensure
1175         that its encoded name is properly qualified.
1176
1177         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
1178         occurring in the list of entities to qualify, and do not attempt to
1179         traverse an entity list in that case. Variables associated with
1180 `       library-level package renamings can now occur in the table.
1181
1182         * exp_dbug.ads: Revise documentation of the encoding for renaming
1183         declarations.
1184
1185 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1186
1187         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
1188         access type points to an unconstrained array.
1189
1190 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1191
1192         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
1193         conversion.
1194
1195         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
1196         simple redundant qualifications. The check is performed whenever the
1197         expression is a non-overloaded identifier.
1198         (Resolve_Type_Conversion): Enchance the redundant type conversion check
1199         to include loop parameters.
1200         (Valid_Conversion): Avoid generation of spurious error message.
1201
1202 2007-08-31  Bob Duff  <duff@adacore.com>
1203
1204         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
1205         concatenations of string literals into a single literal, in order to
1206         avoid very deep recursion in the front end, which was causing stack
1207         overflow.
1208
1209         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
1210         string, and the right operand is a string literal (the case of "" &
1211         "..."), optimize by avoiding copying the right operand -- just use the
1212         value of the right operand directly.
1213
1214         * stringt.adb (Store_String_Chars): Optimize by growing the
1215         String_Chars table all at once, rather than appending characters one by
1216         one.
1217         (Write_String_Table_Entry): If the string to be printed is very long,
1218         just print the first few characters, followed by the length. Otherwise,
1219         doing "pn(n)" in the debugger can take an extremely long time.
1220
1221         * sem_prag.adb (Process_Interface_Name): Replace loop doing
1222         Store_String_Char with Store_String_Chars.
1223
1224 2007-08-31  Vincent Celier  <celier@adacore.com>
1225
1226         * prj-attr.adb: Add new attribute Excluded_Source_Files
1227
1228         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
1229         Locally_Removed_Files.
1230
1231         * snames.ads, snames.adb: New standard name Excluded_Source_Files
1232
1233 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1234
1235         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
1236         clauses of subunits, ignore limited_with_clauses that are illegal and
1237         have not been fully analyzed.
1238
1239 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1240
1241         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
1242         flag, for effiency. It is called when analyzing arithmetic operators
1243         and also for actuals in calls that are universal_integers. The flag is
1244         set for the predefined type address, and for any type or subtype
1245         derived from it.
1246
1247         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
1248         Universal_Integer, when the formal is a descendent of address and the
1249         call appears in user code.
1250         (Analyze_Selected_Component): if the prefix is a private extension, the
1251         tag component is visible.
1252
1253         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
1254         entity flag.
1255
1256 2007-08-31  Robert Dewar  <dewar@adacore.com>
1257
1258         * s-fileio.adb (Open): Normalize file name to lower case in non-case
1259         sensitive file name systems to avoid unexpected mismatch in Vista.
1260
1261 2007-08-31  Vincent Celier  <celier@adacore.com>
1262
1263         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
1264
1265 2007-08-31  Vincent Celier  <celier@adacore.com>
1266
1267         * symbols-vms.adb (Initialize): Read symbol files with continuation
1268         lines
1269         (Finalize): If symbol is long, split the line
1270
1271 2007-08-31  Vincent Celier  <celier@adacore.com>
1272
1273         * fmap.ads: Minor comment updates
1274
1275 2007-08-31  GNAT Script  <nobody@adacore.com>
1276
1277         * Make-lang.in: Makefile automatically updated
1278
1279 2007-08-31  Bob Duff  <duff@adacore.com>
1280
1281         * sinfo.ads: Minor comment fix.
1282
1283 2007-08-31  Thomas Quinot  <quinot@adacore.com>
1284
1285         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
1286         with implementation.
1287         Documentation cleanup only.
1288
1289 2007-08-31  Sergey Rybin  <rybin@adacore.com>
1290
1291         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
1292         gnatpp '--separate-stmt-name' option.
1293         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
1294         option.
1295
1296         * gnat_ugn.texi: Add description for the new gnatpp
1297         '--separate-stmt-name' and '--use-on-new-line' options.
1298
1299 2007-08-31  Ben Elliston  <bje@au.ibm.com>
1300
1301         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
1302         when compiling for powerpc64-*-linux.
1303         * system-linux-ppc64.ads: New file.
1304
1305 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
1306
1307         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
1308         NetBSD.
1309
1310 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1311
1312         * misc.c (gnat_type_max_size): Constify.
1313
1314 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1315
1316         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
1317         associated with Standard_Debug_Renaming_Type, to be used as the type of
1318         the special variables whose names provide debugger encodings for
1319         renaming declarations.
1320
1321         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
1322         (Set_Debug_Renaming_Link): Change to set Node25.
1323         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
1324         (Write_Field25_Name): Add case for E_Variable to output
1325         "Debug_Renaming_Link".
1326         (Write_Field23_Name): Correct the output string for "Limited_View".
1327
1328         * exp_dbug.adb: Add with and use of Tbuild.
1329         (Debug_Renaming_Declaration): Replace creation of an enumeration type
1330         and literal with creation of a variable of type
1331         Standard_Debug_Renaming_Type whose name encodes both the renamed object
1332         and the entity of the renaming declaration.
1333         (Qualify_Entity_Name): Add the delayed qualification of the entity name
1334         part of the name of a variable that has a Debug_Renaming_Link.
1335
1336         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
1337         special type to be associated with variables that provide debugger
1338         encodings for renaming declarations.
1339
1340 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1341             Ed Schonberg  <schonberg@adacore.com>
1342             Javier Miranda  <miranda@adacore.com>
1343
1344         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
1345         ancestor part given by an aggregate to test for an unchecked conversion,
1346         since this can occur in some cases when the ancestor part is a function
1347         call, and we don't want to fall into the recursive call to this
1348         procedure in that case.
1349
1350         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
1351         stream attributes on limited types to account for user-specified
1352         attributes as well as whether Input (resp. Output) becomes available
1353         due to Read (resp. Write) being available for the type. Change Boolean
1354         variable to the more accurate name
1355         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
1356         double-"not" predicate at beginning of return statement to more
1357         understandable form.
1358
1359         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
1360         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
1361         in a block statement and use that as the first statement of the
1362         expanded return rather than incorrectly using the handled sequence as
1363         the first statement.
1364
1365         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
1366         operation, generate an explicit freeze node for it rather than
1367         generating extra formals, to ensure that gigi has the proper order of
1368         elaboration for anonymous subtypes in the signature of the subprograms.
1369         (Build_In_Place_Formal): Move assertion to beginning of loop.
1370         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
1371         applied to a function call (occurs for some cases of 'Input).
1372         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
1373         applied to a function call (occurs for some cases of 'Input).
1374
1375         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
1376         2005, generate an extended return statement enclosing the result object
1377         and 'Read call.
1378
1379         * freeze.adb (Freeze_Record_Type): Extend the current management of
1380         components that are access type with an allocator as default value: add
1381         missing support to the use of qualified expressions of the
1382         allocator (which also cause freezing of the designated type!)
1383         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
1384         dispatching operation, since extra formals may be needed by calls to
1385         build-in-place functions (such as stream 'Input).
1386
1387         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
1388         formals for 'Constrained and accessibility level in the case of a
1389         predefined dispatching operation.
1390
1391         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
1392         point, no need to find the parent node.
1393
1394 2007-08-16  Javier Miranda  <miranda@adacore.com>
1395
1396         * exp_attr.adb (Attribute_Priority): Add missing support for entries
1397         and entry barriers.
1398
1399 2007-08-16  Javier Miranda  <miranda@adacore.com>
1400
1401         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
1402         is not really required and can introduce regression with the debugger.
1403         The original problem is fixed with the patch written for checks.adb.
1404
1405 2007-08-16  Thomas Quinot  <quinot@adacore.com>
1406
1407         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
1408         Range_Check on Allocated_Table.
1409
1410 2007-08-16  Vincent Celier  <celier@adacore.com>
1411
1412         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
1413         Including_Non_Switch set to False.
1414         (Gnatmake): For the compiler, call Test_If_Relative_Path with
1415         Including_Non_Switch set to False.
1416
1417         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
1418         parameter Including_Non_Switch, defaulted to True. When
1419         Including_Non_Switch is False, options that are not switches and
1420         appear as relative path are not converted to absolute paths.
1421
1422 2007-08-16  Nicolas Roche  <roche@adacore.com>
1423
1424         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
1425         makefiles
1426
1427         * Make-lang.in: Update dependencies
1428
1429 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
1430
1431         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
1432         currently inspected is a selected component, retrieve the entity of
1433         its selector.
1434         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
1435         from the immediate ancestor of Main_Unit_Entity.
1436         (Install_Limited_Withed_Unit): Do not install the limited view of
1437         package P if P is reachable through an ancestor chain from package C
1438         and C also has a with clause for P in its body.
1439         (Has_Limited_With_Clause): New routine.
1440         (Has_With_Clause): New routine.
1441
1442 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
1443
1444         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
1445         generic for an enclosing instance is a global reference, even though
1446         its scope is the enclosing instance.
1447
1448 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1449             Javier Miranda  <miranda@adacore.com>
1450
1451         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
1452         initialize a limited object.
1453         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
1454         13/2 and 14/2.
1455         Make sure Has_Complex_Representation is inherited by derived type.
1456
1457 2007-08-16  Robert Dewar  <dewar@adacore.com>
1458
1459         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
1460         exception case
1461
1462 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
1463
1464         * sem_disp.adb (Check_Dispatching_Operation): If the operation
1465         implements an operation inherited from a progenitor interface, verify
1466         that they are subtype-conformant.
1467
1468 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
1469             Bob Duff  <duff@adacore.com>
1470             Nicolas Setton  <setton@adacore.com>
1471
1472         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
1473         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
1474         the statement which is being resolved comes from a predefined library
1475         unit, all non-predefined library interpretations are skipped.
1476         (Resolve_Op_Concat): If string concatenation was folded in the parser,
1477         but the "&" is user defined, give an error, because the folding would
1478         be wrong.
1479
1480         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
1481         the parser has folded a long sequence of concatenations of string
1482         literals.
1483
1484         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
1485         and "JMP_BUF" variables as artificial.
1486         (N_String_Literal): Do not use alloca for very long string literals. Use
1487         xmalloc/free instead. Otherwise the stack might overflow.
1488
1489         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
1490         compiler.
1491
1492 2007-08-16  Vincent Celier  <celier@adacore.com>
1493
1494         * vms_conv.adb (Process_Argument): Ensure that project related options
1495         are not put in the -cargs section when using GNAT COMPILE.
1496
1497 2007-08-16  Robert Dewar  <dewar@adacore.com>
1498
1499         * gnat_ugn.texi: Add note on preprocessing (output file not written)
1500
1501 2007-08-16  Thomas Quinot  <quinot@adacore.com>
1502
1503         * a-tags.adb: Minor reformatting.
1504
1505 2007-08-16  Bob Duff  <duff@adacore.com>
1506
1507         * sem_type.ads, sem_ch4.adb: Minor reformatting.
1508
1509 2007-08-14  Thomas Quinot  <quinot@adacore.com>
1510
1511         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
1512         s-osinte-interix.ads, system-interix.ads: Removed.
1513
1514 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
1515
1516         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
1517         calls to Check_Within_Time_Bounds.
1518         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
1519         (Difference): Account for possible rounding of the resulting difference
1520
1521 2007-08-14  Robert Dewar  <dewar@adacore.com>
1522
1523         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
1524         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
1525         s-osinte-solaris.adb, s-osinte-solaris.ads,
1526         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
1527
1528         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
1529         switch -gnatyS. Enable -gnatyS in GNAT style check mode
1530
1531 2007-08-14  Robert Dewar  <dewar@adacore.com>
1532             Ed Schonberg  <schonberg@adacore.com>
1533
1534         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
1535         Suppress unmodified in-out parameter warning in some cases
1536         This patch is a also fairly significant change to the way suppressible
1537         checks are handled.
1538
1539         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
1540         needed for access to concurrent record types generated by the expander.
1541         (Generate_Range_Check): When generating a temporary to capture the
1542         value of a conversion that requires a range check, set the type of the
1543         temporary before rewriting the node, so that the type is always
1544         properly placed for back-end use.
1545         (Apply_Float_Conversion_Check): Handle case where the conversion is
1546         truncating.
1547         (Get_Discriminal): Code reformatting. Climb the scope stack looking
1548         for a protected type in order to examine its discriminants.
1549
1550 2007-08-14  Robert Dewar  <dewar@adacore.com>
1551             Gary Dismukes  <dismukes@adacore.com>
1552             Ed Schonberg  <schonberg@adacore.com>
1553             Thomas Quinot  <quinot@adacore.com>
1554
1555         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
1556         a-stwisu.adb, a-strsup.adb: Fix warnings for range
1557         tests optimized out.
1558
1559         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
1560         (Get_Allocator_Final_List): For the case of an anonymous access type
1561         that has a specified Associated_Final_Chain, do not go up to the
1562         enclosing scope.
1563         (Expand_N_Type_Conversion): Test for the case of renamings of access
1564         parameters when deciding whether to apply a run-time accessibility
1565         check.
1566         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
1567         aggregate code before allocator, and ahead of declaration for
1568         temporary, to prevent access before elaboration when the allocator is
1569         an actual for an access parameter.
1570         (Expand_N_Type_Conversion): On an access type conversion involving an
1571         access parameter, do not apply an accessibility check when the
1572         operand's original node was an attribute other than 'Access. We now
1573         create access conversions for the expansion of 'Unchecked_Access and
1574         'Unrestricted_Access in certain cases and clearly accessibility should
1575         not be checked for those.
1576
1577         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
1578         includes a type conversion of a packed component that has been expanded,
1579         recover the original expression for the object, and use this expression
1580         in the post-call assignment statement, so that the assignment is made
1581         to the object and not to a back-end temporary.
1582         (Freeze_Subprogram): In case of primitives of tagged types not defined
1583         at the library level force generation of code to register the primitive
1584         in the dispatch table. In addition some code reorganization has been
1585         done to leave the implementation clear.
1586         (Expand_Call): When expanding an inherited implicit conversion,
1587         preserve the type of the inherited function after the intrinsic
1588         operation has been expanded.
1589
1590         * exp_ch2.ads, exp_ch2.adb
1591         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
1592         of an entry formal appearing in an assignment statement does not assign
1593         to the formal.
1594         (Expand_Current_Value): Instead of calling a routine to determine
1595         whether the prefix of an attribute reference should be optimized or
1596         not, prevent the optimization of such prefixes all together.
1597
1598         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
1599         component whose prefix is known to be of an access type is an implicit
1600         dereference and does not assign to the prefix.
1601
1602 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1603             Robert Dewar  <dewar@adacore.com>
1604
1605         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
1606         itype is visited, make an entry into table to link associated node and
1607         new itype.
1608         Add comments and correct harmless error in Build_NCT_Hash_Tables
1609         (Array_Aggr_Subtype): Associate each itype created for an index type to
1610         the corresponding range construct, and not to the aggregate itself. to
1611         maintain a one-to-one correspondence between itype and its associated
1612         node, to prevent errors when complex expression is copied.
1613         Fix mishandling of multiple levels of parens
1614
1615         * sem_aggr.adb: Create a limited view of an incomplete type, to make
1616         treatment of limited views uniform for all visible declarations in a
1617         limited_withed package.
1618         (New_Copy_Tree): If hash table is being used and itype is visited,
1619         make an entry into table to link associated node and new itype.
1620         (Resolve_Record_Aggregate): Do not add an others box association for a
1621         discriminated record component that has only discriminants, when there
1622         is a box association for the component itself.
1623
1624         * par-ch4.adb: Fix mishandling of multiple levels of parens
1625
1626 2007-08-14  Robert Dewar  <dewar@adacore.com>
1627
1628         * comperr.adb: Fix problem with suppressing warning messages from gigi
1629
1630         * erroutc.ads, erroutc.adb, errout.ads, 
1631         errout.adb (Write_Eol): Remove trailing spaces before writing the line
1632         (Write_Eol_Keep_Blanks): New procedure to write a line, including
1633         possible trailing spaces.
1634         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
1635         Fix problem with suppressing warning messages from back end
1636         Improve handling of deleted warnings
1637
1638         * gnat1drv.adb: 
1639         Fix problem with suppressing warning messages from back end
1640         Handle setting of Static_Dispatch_Tables flag.
1641
1642         * prepcomp.adb: 
1643         Fix problem with suppressing warning messages from back end
1644
1645         * exp_intr.adb: Improve handling of deleted warnings
1646
1647 2007-08-14  Robert Dewar  <dewar@adacore.com>
1648
1649         * debug.adb: Improve -gnatdI to cover all cases of serialization
1650         Add documentation of dZ, d.t
1651
1652         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
1653         serialization.
1654         (Sprint_Node_Actual): Generate new output associated with implicit
1655         importation and implicit exportation of object declarations.
1656
1657 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1658             Robert Dewar  <dewar@adacore.com>
1659             Javier Miranda  <miranda@adacore.com>
1660             Gary Dismukes  <dismukes@adacore.com>
1661
1662         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
1663         to make treatment of limited views uniform for all visible declarations
1664         in a limited_withed package.
1665         Improve warnings for in out parameters
1666         (Set_Related_Interaface/Related_Interface): Allow the use of this
1667         attribute with constants.
1668         (Write_Field26_Name): Handle attribute Related_Interface in constants.
1669         Warn on duplicate pragma Preelaborable_Initialialization
1670
1671         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
1672         generation of a freezing node to ensure proper management of null
1673         excluding access types in the backend.
1674         (Create_Extra_Formals): Test base type of the formal when checking for
1675         the need to add an extra accessibility-level formal. Pass the entity E
1676         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
1677         originally being done in a couple of cases), to ensure that the
1678         Extra_Formals list gets set on the entity E when the first entity is
1679         added.
1680         (Conforming_Types): Add missing calls to Base_Type to the code that
1681         handles anonymous access types. This is required to handle the
1682         general case because Process_Formals builds internal subtype entities
1683         to handle null-excluding access types.
1684         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1685         functions that need it, even when not marked Requires_Overriding.
1686         Improve warnings for in out parameters
1687         (Analyze_Function_Return): Warn for disallowed null return
1688         Warn on return from procedure with unset out parameter
1689         Ensure consistent use of # in error messages
1690         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
1691         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
1692         the implicit conversion of the expression done for anonymous access
1693         types. This is required to generate the code of the null excluding
1694         check (if required).
1695
1696         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
1697         A formal parameter is never publicly referenceable outside of its body.
1698         (Check_References): For an unreferenced formal parameter in an accept
1699         statement, use the same warning circuitry as for subprogram formal
1700         parameters.
1701         (Warn_On_Unreferenced_Entity): New subprogram, taken from
1702         Output_Unreferenced_Messages, containing the part of that routine that
1703         is now reused for entry formals as described above.
1704         (Goto_Spec_Entity): New function
1705         (Check_References): Do not give IN OUT warning for dispatching operation
1706         Improve warnings for in out parameters
1707         (Test_Ref): Check that the entity is not undefinite before calling
1708         Scope_Within, in order to avoid infinite loops.
1709         Warn on return from procedure with unset out parameter
1710         Improved warnings for unused variables
1711
1712 2007-08-14  Robert Dewar  <dewar@adacore.com>
1713             Javier Miranda  <miranda@adacore.com>
1714             Gary Dismukes  <dismukes@adacore.com>
1715
1716         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
1717         (Expand_N_Attribute_Reference): Further unify the handling of the
1718         three forms of access attributes, using common code now for all three
1719         cases. Add a test for the case of applying an access attribute to
1720         an explicit dereference when the context is an access-to-interface
1721         type. In that case we need to apply the conversion to the prefix
1722         of the explicit dereference rather than the prefix of the attribute.
1723         (Attribute_Version, UET_Address): Set entity as internal to ensure
1724         proper dg output of implicit importation.
1725         (Expand_Access_To_Type): Removed.
1726         (Expand_N_Attribute_Reference): Merge the code from the three cases
1727         of access attributes, since the processing is largely identical for
1728         these cases. The substantive fix here is to process the case of a
1729         type name prefix (current instance case) before handling the case
1730         of interface prefixes.
1731
1732 2007-08-14  Thomas Quinot  <quinot@adacore.com>
1733             Ed Schonberg  <schonberg@adacore.com>
1734             Javier Miranda  <miranda@adacore.com>
1735             Robert Dewar  <dewar@adacore.com>
1736
1737         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
1738         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
1739         type that is an anonymous access to controlled object, establish
1740         an associated finalization chain to avoid corrupting the global
1741         finalization list when a dynamically allocated object designated
1742         by such a component is deallocated.
1743         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1744         functions that need it, even when not marked Requires_Overriding.
1745         (Initialize_Tag): Replace call to has_discriminants by call to
1746         Is_Variable_Size_Record in the circuitry that handles the
1747         initialization of secondary tags.
1748         (Is_Variable_Size_Record): New implementation.
1749         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
1750         Suppress_Initialization pragma for a derived type.
1751         (Is_Variable_Size_Record): New subprogram.
1752         (Build_Offset_To_Top_Functions): New implementation that simplifies the
1753         initial version of this routine and also fixes problems causing
1754         incomplete initialization of the table of interfaces.
1755         (Build_Init_Procedure): Improve the generation of code to initialize the
1756         the tag components of secondary dispatch tables.
1757         (Init_Secondary_Tags): New implementation that simplifies the previous
1758         version of this routine.
1759         (Make_DT): Add parameter to indicate when type has been frozen by an
1760         object declaration, for diagnostic purposes.
1761         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
1762         diagnose attemps to freeze a subprogram when some untagged type of its
1763         profile is a private type whose full view has not been analyzed yet.
1764         (Freeze_Array_Type): Generate init proc for packed array if either
1765         Initialize or Normalize_Scalars is set.
1766         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
1767         constructing the new profile, copy the null_exclusion indicator for each
1768         parameter, to ensure full conformance of the new body with the spec.
1769
1770         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
1771         Create wrappers for constructor functions that need it, even when not
1772         marked Requires_Overriding.
1773         (Covers): Handle properly designated types of anonymous access types,
1774         whose non-limited views are themselves incomplete types.
1775         (Add_Entry): Use an entity to store the abstract operation which hides
1776         an interpretation.
1777         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
1778         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
1779         initialization aggregate.
1780         (Function_Interp_May_Be_Hidden): Rename to
1781         Function_Interp_Has_Abstract_Op.
1782         (Has_Compatible_Type): Remove machinery that skips interpretations if
1783         they are labeled as potentially hidden by an abstract operator.
1784         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
1785         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
1786         (Write_Overloads): Output the abstract operator if present.
1787         (Add_Entry): Before inserting a new entry into the interpretation table
1788         for a node, determine whether the entry will be disabled by an abstract
1789         operator.
1790         (Binary_Op_Interp_May_Be_Hidden): New routine.
1791         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
1792         aggregate.
1793         (Function_Interp_May_Be_Hidden): New routine.
1794         (Has_Compatible_Type): Do not consider interpretations hidden by
1795         abstract operators when trying to determine whether two types are
1796         compatible.
1797         (Has_Hidden_Interp): New routine.
1798         (Set_May_Be_Hidden_Interp): New routine.
1799         (Write_Overloads): Write the status of flag May_Be_Hidden.
1800
1801 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1802             Javier Miranda  <miranda@adacore.com>
1803
1804         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
1805         types declared in the declarative part of a nested package body or in
1806         the proper body of a stub.
1807         (Set_All_DT_Position): Add missing check to avoid wrong assignation
1808         of the same dispatch table slot to renamed primitives.
1809         (Make_Select_Specific_Data_Table): Handle private types.
1810         (Tagged_Kind): Handle private types.
1811         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
1812         output of implicit importation and exportation.
1813         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
1814         first formal of the thunk is always associated with the controlling
1815         type. In addition perform the following code cleanup: remove formal
1816         Thunk_Alias which is no longer required, cleanup evaluation of the
1817         the controlling type, and update the documentation.
1818         Replace occurrence of Default_Prim_Op_Count by
1819         Max_Predef_Prims. Addition of compile-time check to verify
1820         that the value of Max_Predef_Prims is correct.
1821         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
1822         (Make_DT): Add parameter to indicate when type has been frozen by an
1823         object declaration, for diagnostic purposes.
1824         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
1825         construction of statically allocated dispatch tables.
1826         (Make_DT): In case of library-level tagged types export the declaration
1827         of the primary tag. Remove generation of tags (now done by Make_Tags).
1828         Additional modifications to handle non-static generation of dispatch
1829         tables. Take care of building tables for asynchronous interface types
1830         (Make_Tags): New subprogram that generates the entities associated with
1831         the primary and secondary tags of Typ and fills the contents of Access_
1832         Disp_Table. In case of library-level tagged types imports the forward
1833         declaration of the primary tag that will be declared later by Make_DT.
1834         (Expand_Interface_Conversion): In case of access types to interfaces
1835         replace an itype declaration by an explicit type declaration to avoid
1836         problems associated with the scope of such itype in transient blocks.
1837
1838 2007-08-14  Robert Dewar  <dewar@adacore.com>
1839             Ed Schonberg  <schonberg@adacore.com>
1840             Javier Miranda  <miranda@adacore.com>
1841
1842         * exp_util.ads, exp_util.adb: 
1843         This patch replaces a number of occurrences of explicit tests for N_Null
1844         with calls to Known_Null. This improves tracking of null values, since
1845         Known_Null also catches null constants, and variables currently known to
1846         be null, so we get better tracking.
1847         (Ensure_Defined): create an itype reference only in the scope of the
1848         itype.
1849         (Side_Effect_Free): A selected component of an access type that
1850         denotes a component with a rep clause must be treated as not
1851         side-effect free, because if it is part of a linked structure its
1852         value may be affected by a renaming.
1853         (Expand_Subtype_From_Expr): For limited objects initialized with build
1854         in place function calls, do nothing; otherwise we prematurely introduce
1855         an N_Reference node in the expression initializing the object, which
1856         breaks the circuitry that detects and adds the additional arguments to
1857         the called function. Bug found working in the new patch for statically
1858         allocated dispatch tables.
1859         (Is_Library_Level_Tagged_Type): New subprogram.
1860         (Remove_Side_Effects): If the expression of an elementary type is an
1861         operator treat as a function call.
1862         (Make_Literal_Range): If the index type of the array is not integer, use
1863         attributes properly to compute the constraint on the resulting aggregate
1864         which is a string.
1865
1866         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
1867         class-wide type whose base type is an incomplete private type, leave
1868         class-wide type unfrozen so that freeze nodes can be generated
1869         properly at a later point.
1870         (Freeze_Entity, array case): Handle case of pragma Pack and component
1871         size attributre clause for same array.
1872
1873 2007-08-14  Vincent Celier  <celier@adacore.com>
1874
1875         * prj.ads, prj.adb: Update Project Manager to new attribute names for
1876         gprbuild.
1877         Allow all valid declarations in configuration project files
1878         (Reset): Initialize all tables and hash tables in the project tree data
1879         Major update of the Project Manager and of the project aware tools,
1880         including gprmake, so that the same sources in the GNAT repository
1881         can be used by gprbuild.
1882         (Slash_Id): Change type to be Path_Name_Type
1883         (Slash): Return a Path_Name_Type instead of a File_Name_Type
1884
1885         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
1886         gprbuild.
1887         Update Project Manager to new attribute names for ghprbuild
1888         Allow all valid declarations in configuration project files
1889         Major update of the Project Manager and of the project aware tools,
1890         including gprmake, so that the same sources in the GNAT repository
1891         can be used by gprbuild.
1892
1893         * prj-com.ads: 
1894         Major update of the Project Manager and of the project aware tools,
1895         including gprmake, so that the same sources in the GNAT repository
1896         can be used by gprbuild.
1897
1898         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
1899         insensitive flag for attributes with optional index.
1900         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
1901         array attribute, put the index in lower case.
1902         Update Project Manager to new attribute names for ghprbuild
1903         Allow all valid declarations in configuration project files
1904         Major update of the Project Manager and of the project aware tools,
1905         including gprmake, so that the same sources in the GNAT repository
1906         can be used by gprbuild.
1907
1908         * prj-env.ads, prj-env.adb: 
1909         Major update of the Project Manager and of the project aware tools,
1910         including gprmake, so that the same sources in the GNAT repository
1911         can be used by gprbuild.
1912         (Get_Reference): Change type of parameter Path to Path_Name_Type
1913
1914         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
1915         removing '-' from the path to start with the first character of the
1916         next directory.
1917         Major update of the Project Manager and of the project aware tools,
1918         including gprmake, so that the same sources in the GNAT repository
1919         can be used by gprbuild.
1920         Major update of the Project Manager and of the project aware tools,
1921         including gprmake, so that the same sources in the GNAT repository
1922         can be used by gprbuild.
1923
1924         * prj-nmsc.ads, prj-nmsc.adb: 
1925         Update Project Manager to new attribute names for ghprbuild
1926         Allow all valid declarations in configuration project files
1927         (Search_Directories): Detect subunits that are specified with an
1928         attribute Body in package Naming. Do not replace a source/unit in the
1929         same project when the order of the source dirs are known. Detect
1930         duplicate sources/units in the same project when the order of the
1931         source dirs are not known.
1932         (Check_Ada_Name): Allow all identifiers that are not reserved words
1933         in Ada 95.
1934         Major update of the Project Manager and of the project aware tools,
1935         including gprmake, so that the same sources in the GNAT repository
1936         can be used by gprbuild.
1937         (Look_For_Sources): If the list of sources is empty, set the object
1938         directory of non extending project to nil.
1939         Change type of path name variables to be Path_Name_Type
1940         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
1941         otherwise creating missing directories will fail.
1942
1943         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
1944         prj-part.ads, prj-part.adb:
1945         Major update of the Project Manager and of the project aware tools,
1946         including gprmake, so that the same sources in the GNAT repository
1947         can be used by gprbuild.
1948
1949         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
1950         insensitive flag for attributes with optional index.
1951         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
1952         array attribute, put the index in lower case.
1953         (Parse_Variable_Reference): Allow the current project name to be used in
1954         the prefix of an attribute reference.
1955
1956         * prj-util.ads, prj-util.adb
1957         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
1958         defaulted to False. When True, always check against indexes in lower
1959         case.
1960
1961         * snames.ads, snames.h, snames.adb: 
1962         Update Project Manager to new attribute names for gprbuild
1963         Allow all valid declarations in configuration project files
1964
1965 2007-08-14  Robert Dewar  <dewar@adacore.com>
1966             Ed Schonberg  <schonberg@adacore.com>
1967
1968         * opt.ads: Warning for non-local exception propagation now off by
1969         default
1970         New switch -gnatI to disable representation clauses
1971         Implement new pragma Implicit_Packing
1972
1973         * usage.adb: 
1974         Warning for non-local exception propagation now off by default
1975         Add warning for unchecked conversion of pointers wi different
1976         conventions.
1977         New switch -gnatI to disable representation clauses
1978
1979         * usage.adb: new switch -gnatyS
1980
1981         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
1982         note that aggregates of anonymous array types are not flagged.
1983         -gnatwc now includes membership tests optimized away
1984         -gnatw.x warnings are now off by default
1985         Added conditional compilation Appendix
1986         Add documentation of -gnatI
1987         Add documentation for new -gnatyS style check
1988         Update documentation about SAL and auto-init on Windows.
1989
1990         * gnat_rm.texi: 
1991         Add documentation for pragma Check_Name and 'Enabled attribute
1992         Document that Eliminate on dispatching operation is ignored
1993         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
1994         Document pragma Main
1995         Document pragma Implicit_Packing
1996
1997         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
1998         different conventions
1999         New switch -gnatI to disable representation clauses
2000
2001         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
2002         recognized, report the invalid characters including "-gnat" instead of
2003         just the first character in the switch.
2004         New switch -gnatI to disable representation clauses
2005         Set Warn_On_Object_Renames_Function true for -gnatg
2006
2007         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
2008         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
2009         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
2010         to switch -aP (add directory to project search dir).
2011
2012         * par-prag.adb: Implement new pragma Implicit_Packing
2013
2014         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
2015         type as having a non-standard representation, to force expansion on
2016         conversion to related types.
2017         (Analyze_Pragma): Warn on misspelled pragma
2018         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
2019         Ensure consistent use of # in error messages
2020         Implement pragma Implicit_Packing
2021
2022 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2023             Eric Botcazou  <ebotcazou@adacore.com>
2024
2025         * targtyps.c (get_target_maximum_default_alignment): New function.
2026         Maximum alignment
2027         that the compiler might choose by default for a type or object.
2028         (get_target_default_allocator_alignment): New function. Alignment known
2029         to be honored by the target default allocator.
2030         (get_target_maximum_allowed_alignment): New function. Maximum alignment
2031         we might accept for any type or object on the target.
2032         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
2033
2034         * gigi.h (get_target_maximum_default_alignment): Declare new function.
2035         (get_target_default_allocator_alignment): Likewise.
2036         (get_target_maximum_allowed_alignment): Likewise.
2037
2038         PR ada/19037
2039         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
2040         result of a function call, first try to use a stabilized reference for
2041         a constant renaming too.
2042         (validate_alignment): Use target_maximum_allowed_alignment instead of
2043         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
2044         (gnat_to_gnu_entity): Use common nodes directly.
2045         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
2046         alignment and size for the object.
2047         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
2048         and N_Procedure_Call_Statement.
2049         (takes_address): Rename to lvalue_required_p, add third parameter
2050         'aliased' and adjust recursive calls.
2051         <N_Indexed_Component>: Update 'aliased' from the array type.
2052         <N_Selected_Component>: New case.
2053         <N_Object_Renaming_Declaration>: New Likewise.
2054         (Identifier_to_gnu): Adjust for above changes.
2055         (maybe_stabilize_reference) <CONST_DECL>: New case.
2056
2057         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
2058         between type variants.
2059         (build_simple_component_ref): Likewise.
2060         (build_call_alloc_dealloc): Use target_default_allocator_alignment
2061         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
2062         aligning type circuitry for allocations from the default storage pool.
2063         (build_allocator): Likewise.
2064         (build_simple_component_ref): Manually fold the reference for a
2065         constructor if the record type contains a template.
2066
2067         * utils.c (value_zerop): Delete.
2068         (gnat_init_decl_processing): Emit debug info for common types.
2069         (rest_of_record_type_compilation): If a union contains a field
2070         with a non-constant qualifier, treat it as variable-sized.
2071         (finish_record_type): Give the stub TYPE_DECL a name.
2072         (rest_of_record_type_compilation): Likewise.
2073         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
2074         types are equivalent array types.
2075         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
2076         even if the type is not passed by reference.
2077         (static_ctors, static_dtors): Delete.
2078         (end_subprog_body): Do not record constructors and destructors.
2079         (build_global_cdtor): Delete.
2080         (gnat_write_global_declarations): Do not call build_global_cdtor.
2081
2082         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
2083         -fRTS=rtp is specified.
2084         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
2085         specified.
2086
2087         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
2088         of the personality function with SJLJ exceptions.
2089
2090         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
2091         the name of the personality function with SJLJ exceptions.
2092
2093 2007-08-14  Robert Dewar  <dewar@adacore.com>
2094             Ed Schonberg  <schonberg@adacore.com>
2095
2096         * par.ads, par.adb: Improve handling of extra right parens.
2097         (Par): Remove flag From_Limited_With_Clause.
2098
2099         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
2100         Improve handling of extra right parens.
2101
2102 2007-08-14  Robert Dewar  <dewar@adacore.com>
2103
2104         * par-tchk.adb (TF_Semicolon): Improve error recovery
2105
2106 2007-08-14  Robert Dewar  <dewar@adacore.com>
2107             Ed Schonberg  <schonberg@adacore.com>
2108
2109         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
2110         enumeration type, mark all literals as referenced.
2111         (Eval_Attribute, case 'Image): If the argument is an enumeration
2112         literal and names are available, constant-fold but mark nevertheless as
2113         non-static.
2114         Clean up function names.
2115         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
2116         comment.
2117         (Requires_Simple_Name_Prefix): Removed.
2118
2119 2007-08-14  Robert Dewar  <dewar@adacore.com>
2120             Ed Schonberg  <schonberg@adacore.com>
2121
2122         * sem_ch11.adb: Improved warnings for unused variables
2123
2124         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
2125         is a synchronized interface, the derived type is limited.
2126         (Analyze_Object_Declaration): Mark the potential coextensions in the
2127         definition and expression of an object declaration node.
2128         (Build_Derived_Type): For the completion of a private type declaration
2129         with a derived type declaration, chain the parent type's representation
2130         items to the last representation item of the derived type (not the
2131         first one) if they are not present already.
2132         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
2133         object declaration of forward references to tags.
2134         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
2135         subprogram types can appear as access discriminants of synchronized
2136         types.
2137         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
2138         given in prefixed form as a selected component.
2139         (Process_Discriminants): If not all discriminants have defaults, place
2140         error message on a default that is present.
2141         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
2142         extend a synchronized tagged type.
2143         Improved warnings for unused variables
2144         (Is_Visible_Component): Fix a visibility hole on a component inherited
2145         by a private extension when parent is itself declared as a private
2146         extension, and the derivation is in a child unit.
2147         (Find_Hidden_Interface): Move spec from the package body.
2148
2149 2007-08-14  Robert Dewar  <dewar@adacore.com>
2150             Ed Schonberg  <schonberg@adacore.com>
2151
2152         * sem_ch5.adb: Improve warnings on redundant assignments
2153
2154         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
2155         parameter
2156         (Is_Synchronized_Tagged_Type): New subprogram that returns true
2157         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
2158         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
2159         is set to False. Improves handling of Known_[Not_]Null.
2160         (Wrong_Type): Special case address arithmetic attempt
2161         (Collect_Abstract_Interfaces): Add new formal to allow collecting
2162         abstract interfaces just using the partial view of private types.
2163         (Has_Abstract_Interfaces): Add new formal to allow checking types
2164         covering interfaces using the partial view of private types.
2165         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
2166         component still needs to be defined in this case, but is never
2167         initialized as VMs are using other dispatching mechanisms.
2168         (Abstract_Interface_List): For a protected type, use base type to get
2169         proper declaration.
2170         Improve warnings on redundant assignments
2171         (Is_Variable): Handle properly an implicit dereference of a prefixed
2172         function call.
2173         (Build_Actual_Subtype): If this is an actual subtype for an
2174         unconstrained formal parameter, use the sloc of the body for the new
2175         declaration, to prevent anomalises in the debugger.
2176
2177 2007-08-14  Robert Dewar  <dewar@adacore.com>
2178
2179         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
2180         dispatching operation
2181
2182 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2183             Gary Dismukes  <dismukes@adacore.com>
2184
2185         * exp_aggr.ads, 
2186         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
2187         expanded aggregate code before allocator, and ahead of declaration for
2188         temporary, to prevent access before elaboration when the allocator is
2189         an actual for an access parameter.
2190         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
2191         the TSD and the table of interfaces.
2192         (Convert_To_Assignments): Augment the test for delaying aggregate
2193         expansion for limited return statements to include the case of extended
2194         returns, to prevent creation of an unwanted transient scope.
2195         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
2196         (Expand_Array_Aggregate): Handle aggregates associated with
2197         statically allocated dispatch tables.
2198         (Expand_Record_Aggregate): Handle aggregates associated with
2199         statically allocated dispatch tables.
2200         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
2201         of anonymous access type.
2202
2203 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2204
2205         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
2206         is a variable that renames a slice, use the variable itself in the
2207         expannsion when the renamed expression itself may be modified between
2208         the declaration of the renaming and the array assignment.
2209
2210 2007-08-14  Jerome Guitton  <guitton@adacore.com>
2211
2212         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
2213         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
2214         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
2215         New functions; dummy implementations.
2216
2217         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
2218         functions, used to implement the multi-tasks mode routines on VxWorks.
2219
2220         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
2221         New functions, thin
2222         binding to the VxWorks routines which have changed between VxWorks 5
2223         and 6.
2224         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
2225         which are not callable from a RTP.
2226
2227         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
2228         implemented for the multi-tasks mode on VxWorks 5 and 6.
2229
2230         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
2231
2232         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
2233         functions.
2234
2235 2007-08-14  Vincent Celier  <celier@adacore.com>
2236
2237         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
2238         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
2239         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
2240         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
2241         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
2242         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
2243         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
2244         procedure.
2245         (Major_Id_Name): New function.
2246         mlib-tgt.ads/mlib.tgt.adb:
2247         (Library_Major_Minor_Id_Supported): New function, default returns True
2248         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
2249         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
2250         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
2251         Implementation of Library_Major_Minor_Id_Supported returns False
2252         clean.adb:
2253         (Clean_Library_Directory): If major/minor ids are supported, clean all
2254         library files.
2255         Major update of the Project Manager and of the project aware tools,
2256         including gprmake, so that the same sources in the GNAT repository
2257         can be used by gprbuild.
2258
2259 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2260
2261         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
2262         (GCC_ZCX_Support): Switch to True.
2263         
2264         * s-intman-solaris.adb (Notify_Exception): Call
2265         Adjust_Context_For_Raise before raising, as expected for signal
2266         handlers in general.
2267         
2268         * s-intman-posix.adb (Notify_Exception): Remove declaration of
2269         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
2270         to other implementation bodies.
2271         
2272         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
2273         be visible by multiple implementation bodies.
2274         
2275         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
2276         only for conditions coming from hardware.
2277         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
2278         adjustments to signal context prior to exception raise from signal
2279         handler.
2280         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
2281         mode.
2282         Solaris section: (__gnat_adjust_context_for_raise): New function.
2283         Implementation of the machine context adjustments to perform prior to
2284         raise from a signal handler. Version for both sparc and x86.
2285         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
2286         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
2287         prior to raising as expected for any handler, before possible nested
2288         faults to make sure all the contexts in a chain have been adjusted by
2289         the time we propagate.
2290
2291 2007-08-14  Pascal Obry  <obry@adacore.com>
2292
2293         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
2294         (SYSTEM_INFO): New record.
2295         (SetThreadIdealProcessor): New imported routine needed for supporting
2296         task_info pragma on Windows.
2297
2298         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
2299         info can be applied to the current host.
2300         (Create_Task): Set the ideal processor if information is present.
2301
2302         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
2303         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
2304
2305 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2306
2307         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
2308         stack size and initial stack pointer value for a given task.
2309         (Enter_Task): Get the stack attributes of the task we are entering and
2310         let the stack checking engine know about them.
2311
2312         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
2313         Let the stack-checking engine know about the initial sp value and stack
2314         size associated with the current task.
2315         (Set_Stack_Info): If a stack base has been notified for the current
2316         task, honor it. Fallback to the previous less accurate method otherwise.
2317
2318         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
2319
2320 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2321
2322         * sem_ch10.adb: Create a limited view of an incomplete type, to make
2323         treatment of limited views uniform for all visible declarations in a
2324         limited_withed package.
2325         Set flag indicating that a subprogram body for a child unit has a
2326         generated spec.
2327         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
2328         separate declaration, remove the unit name from visibility after
2329         compilation, so that environment is clean for subsequent compilations.
2330         (Install_Limited_Context_Clauses): Do not install a
2331         limited_private_with_clause unless the current unit is a body or a
2332         private child unit.
2333         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
2334         in the same fashion.
2335         (Install_Limited_Withed_Unit): Do not install a limited with clause if
2336         it applies to the declaration of the current package body.
2337         (Remove_Private_With_Clauses): If there is a regular with_clause for
2338         the unit, delete Private_With_Clause from context, to prevent improper
2339         hiding when processing subsequent nested packages and instantiations.
2340
2341 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
2342
2343         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
2344         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
2345         representing absolute path names.
2346         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
2347
2348         * cstreams.c (__gnat_full_name for VxWorks): Use
2349         __gnat_is_absolute_path to detect whether we need to add the current
2350         directory to normalize the path.
2351
2352 2007-08-14  Javier Miranda  <miranda@adacore.com>
2353
2354         * a-tags.ads, 
2355         a-tags.adb (Displace): Associate a message with the raised CE
2356         exception.
2357         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
2358         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
2359         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
2360         spec.
2361         (Default_Prim_Op_Count): Removed.
2362         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
2363         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
2364         Remove pragma Inline_Always.
2365
2366         * rtsfind.ads (Default_Prim_Op_Count): Removed
2367         (Max_Predef_Prims): New entity
2368         (RE_Expanded_Name): Removed
2369         (RE_HT_Link): Removed
2370         (RE_Iface_Tag): Remmoved
2371         (RE_Ifaces_Table): Removed
2372         (RE_Interfaces_Array): Removed
2373         (RE_Interface_Data_Element): Removed
2374         (RE_Nb_Ifaces): Removed
2375         (RE_RC_Offset): Removed
2376         (RE_Static_Offset_To_Top): Removed
2377
2378         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
2379         formal.
2380         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
2381         Prim_Op_Count by Max_Predef_Prims.
2382
2383 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2384             Vincent Celier  <celier@adacore.com>
2385
2386         * binde.adb (Elab_All_Links): Remove unnecessary call to
2387         Generic_Separately_Compiled (if a unit satisfies this predicate, there
2388         won't be an associated Afile).
2389         (Elab_All_Links): Fail if a referenced unit cannot be found
2390
2391         * bindgen.adb: 
2392         Fix comments in bindgen regarding consistency checks done in Bcheck:
2393         the checks are made across units within a partition, not across several
2394         partitions.
2395         Fix generation of C binder file for VxWorks.
2396
2397         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
2398         Generic_May_Lack_ALI, more descriptive of the current use of the
2399         predicate, and update documentation.
2400
2401         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
2402         reorganization and documentation update for the case of predefined
2403         library generics (for which we do not reference an Afile).
2404
2405 2007-08-14  Robert Dewar  <dewar@adacore.com>
2406
2407         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
2408         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
2409         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
2410         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
2411         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
2412         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
2413         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
2414         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
2415         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
2416         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
2417         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
2418         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
2419         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
2420         g-altcon.adb: Minor reformatting
2421
2422         ada-tree.h: Delete empty line.
2423
2424         ali.ads: Minor reformatting
2425         Clarification of comments.
2426         Minor spelling correction
2427
2428         * exp_dbug.adb: Add Warnings Off to suppress new warning
2429
2430         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2431         formal
2432
2433         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
2434         value
2435
2436         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
2437
2438         * a-textio.ads: Reorder the standard input/output/error declarations
2439         for consistency.
2440
2441         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
2442
2443         * par-ch2.adb: Recognize RM specially in errout
2444         Change 'R'M to RM in all error messages
2445
2446         * scng.adb: Recognize RM specially in errout
2447
2448         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
2449         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
2450
2451         * s-direio.adb: Add missing routine header box.
2452
2453         * sem_attr.ads: Add ??? comments
2454
2455         * sem_eval.adb: Recognize RM specially in errout
2456         Change 'R'M to RM in all error messages
2457
2458         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
2459
2460         * s-tasinf.ads: Fix minor comment typo.
2461
2462         * a-cihama.adb: Minor comment addition
2463
2464         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2465         formal
2466
2467         * s-tasinf-tru64.ads: Fix minor comment typo.
2468
2469         * itypes.ads: Comment update.
2470
2471         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
2472         anymore.
2473
2474         * argv.c: Added protection against null gnat_argv and gnat_envp.
2475
2476         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
2477         warning message when Tolerate_Consistency_Errors is True.
2478
2479         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
2480         Any_Id, as this subprogram is only applicable to *type* entities (it
2481         sets RM_Size). Instead initialize just Esize and Alignment.
2482
2483 2007-08-14  Bob Duff  <duff@adacore.com>
2484
2485         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
2486         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
2487         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
2488         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
2489         a-coorse.ads (Next): Applied pragma Inline.
2490         Make all Containers packages Remote_Types (unless they are already
2491         Pure).
2492         (Previous): applied pragma Inline
2493         (Elements_Type): is now a record instead of an array
2494
2495 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2496
2497         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
2498         of Set_Item.
2499         (Set_Item): When the new item is an element of the currently allocated
2500         table passed by reference, save a copy on the stack if we're going
2501         to reallocate. Also, in Table.Set_Item, make sure we test the proper
2502         variable to determine whether to call Set_Last.
2503
2504         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
2505         symbols-vms.adb, symbols-processing-vms-alpha.adb,
2506         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
2507         some occurrences of the pattern
2508            T.Increment_Last;
2509            T.Table (T.Last) := Value;
2510         with a cleaner call to
2511            T.Append (Value);
2512
2513 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2514             Gary Dismukes  <dismukes@adacore.com>
2515             Thomas Quinot  <quinot@adacore.com>
2516
2517         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
2518         derived type with interface progenitors use the analyzed formal as the
2519         parent of the actual, to create renamings for all the inherited
2520         operations in Derive_Subprograms.
2521         (Collect_Previous_Instances): new procedure within of
2522         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
2523         unit being loaded, to ensure that the generation of global symbols is
2524         consistent in different compilation modes.
2525         (Is_Tagged_Ancestor): New function testing the ancestor relation that
2526         takes progenitor types into account.
2527         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
2528         traversing over the primitives of the formal and actual types to locate
2529         any abstract subprograms of the actual type that correspond to a
2530         nonabstract subprogram of the formal type's ancestor type(s), and issue
2531         an error if such is found.
2532         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
2533         Instantiate_Package_Body, Instantiate_Subprogram_Body):
2534         Remove bogus guard around calls to Inherit_Context.
2535         (Reset_Entity): If the entity is the selector of a selected component
2536         that denotes a named number, propagate constant-folding to the generic
2537         template only if the named number is global to the generic unit.
2538         (Set_Instance_Env): Only reset the compilation switches when compiling
2539         a predefined or internal unit.
2540
2541 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2542
2543         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
2544         parameter to determine whether operation applies to the prefix.
2545         (Complete_Object_Operation): If actual has an access type and
2546         controlling formal is not an in_parameter, reject the actual if it is
2547         an access_to_constant type.
2548         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
2549         type, the candidate operations are found in the scope of declaration of
2550         the type, because the type has no primitive subprograms.
2551         (Analyze_Selected_Component): If prefix is class-wide, and root type is
2552         a private extension, only examine visible components before trying to
2553         analyze as a prefixed call.
2554         Change Entity_List to Type_To_Use, for better readability.
2555         (Has_Fixed_Op): Use base type when checking whether the type of an
2556         operator has a user-defined multiplication/division
2557         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
2558         user-defined operators are available for fixed-point types.
2559
2560 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2561             Ed Schonberg  <schonberg@adacore.com>
2562
2563         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
2564         formal At_Any_Place indicating, when True, that we want to test for
2565         availability of the stream attribute at any place (as opposed to the
2566         current visibility context only).
2567         (Missing_Read_Write_Attributes): A stream attribute is missing for the
2568         purpose of enforcing E.2.2(8) only if it is not available at any place.
2569         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
2570         when checking the legality of an extension aggregate in a preelaborable
2571         package. Treat the literal null as a valid default expression in a
2572         component declaration for a type with preelaborable initialization.
2573         A limited interface is a legal progenitor for the designated type of a
2574         remote access to class-wide type.
2575
2576 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2577             Ed Schonberg  <schonberg@adacore.com>
2578
2579         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
2580         reference): Use correct entity as denoted entity for the selector of
2581         the rewritten node.
2582         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
2583         setting the Referenced_As_LHS flag for entities that are implicitly
2584         dereferenced.
2585         (Find_Type): If the type is an internally generated incomplete type,
2586         mark the full view as referenced, to prevent spurious warnings.
2587         (Find_Selected_Component, Has_Components): Handle properly non-limited
2588         views that are themselves incomplete types.
2589         Handle interfaces visible through limited-with clauses.
2590         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
2591         subprogram generic actual for which we have generated a renaming.
2592         Warn when the renaming introduces a homonym of
2593         the renamed entity, and the renamed entity is directly visible.
2594
2595 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2596             Hristian Kirtchev  <kirtchev@adacore.com>
2597
2598         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
2599         appear in the subtree to the current allocator if it is not a static
2600         coextension.
2601         (Resolve_Allocator): Perform cleanup if resolution has determined that
2602         the allocator is not a coextension.
2603         (Resolve): Skip an interpretation hidden by an abstract operator only
2604         when the type of the interpretation matches that of the context.
2605         (Resolve): When looping through all possible interpretations of a node,
2606         do not consider those that are hidden by abstract operators.
2607         (Resolve_Actuals): When verifying that an access to class-wide object
2608         is an actual  for a controlling formal, ignore anonymous access to
2609         subprograms whose return type is an access to class_wide type.
2610         (Resolve_Slice): If the prefix of the slice is a selected component
2611         whose type depends on discriminants, build its actual subtype before
2612         applying range checks on the bounds of the slice.
2613         (Valid_Conversion): In an instance or inlined body, compare root types,
2614         to prevent anomalies between private and public views.
2615         (Resolve): Improve error message for ambiguous fixed multiplication
2616         expressions that involve universal_fixed multiplying operations.
2617
2618 2007-08-14  Javier Miranda  <miranda@adacore.com>
2619             Hristian Kirtchev  <kirtchev@adacore.com>
2620
2621         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
2622         location to allow the correct generation of errors in case of
2623         restrictions applied to the expanded code.
2624         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
2625         function if the condition does not reference them.
2626         (Expand_Entry_Body_Declarations): Mark the index constant as having a
2627         valid value.
2628
2629 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2630
2631         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
2632         typecode parameters for a union (in a variant record), remove
2633         extraneous layer of Any wrapping for member label.
2634         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
2635         elabration statements, register the package with the name server
2636         at the beginning, not at the end, of the elaboration statements so
2637         that they can create remote access to subprogram values that designate
2638         remote subprograms from the package.
2639
2640 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
2641
2642         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
2643         values to compute the number of seconds since the Unix Epoc in order to
2644         account for Daylight Savings Time. Perform special processing for dates
2645         that are earlier than the Unix Epoc to obtain a negative number.
2646
2647 2007-08-14  Emmanuel Briot  <briot@adacore.com>
2648
2649         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
2650         switches.
2651
2652 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
2653
2654         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
2655         binder-generated file is not in Ada.
2656         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
2657         recorded in the ALI file.
2658         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
2659
2660 2007-08-14  Vincent Celier  <celier@adacore.com>
2661
2662         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
2663         (Output_Source): Do nothing if parameter is No_Sdep_Id
2664
2665         * make.adb (Gnatmake): Do not rebuild an archive simply because a
2666         shared library it imports has a later time stamp.
2667         (Check): Resolve the symbolic links in the path name of the object
2668         directory.
2669         Check that the ALI file is in the correct object directory
2670         Check if a file name does not correspond to the mapping of units
2671         to file names.
2672         (Display_Version): New procedure
2673         (Initialize): Process switches --version and --help
2674         Use type Path_Name_Type for path name
2675
2676 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
2677
2678         * impunit.adb: Re-organize System.Random_Numbers and
2679         GNAT.Random_Numbers and add to builds.
2680
2681         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
2682
2683         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
2684
2685         * a-assert.ads, a-assert.adb: New files.
2686
2687 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
2688
2689         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
2690         if AAMP_On_Target is True, then the size of the type encompasses two
2691         addresses (a static link and a subprogram address), except in the case
2692         of library-level access types.
2693
2694 2007-08-14  Vincent Celier  <celier@adacore.com>
2695
2696         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
2697         writing the line.
2698         (Write_Eol_Keep_Blanks): New procedure to write a line, including
2699         possible trailing spaces.
2700         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
2701
2702 2007-08-14  Javier Miranda  <miranda@adacore.com>
2703
2704         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
2705         null-excluding access types.
2706
2707 2007-08-14  Javier Miranda  <miranda@adacore.com>
2708
2709         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
2710         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
2711         of private types add missing check on matching interfaces in the
2712         partial and full declarations.
2713         (Analyze_Protected_Type): Code cleanup.
2714         (Analyze_Task_Type): Code cleanup.
2715
2716 2007-08-14  Javier Miranda  <miranda@adacore.com>
2717
2718         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
2719         generated interface thunk.
2720
2721 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2722
2723         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
2724         obsolescent warning on application of 'Class to an incomplete type.
2725
2726         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
2727         prevent obsolescent warning on application of 'Class to an incomplete
2728         type.
2729
2730 2007-08-14  Pascal Obry  <obry@adacore.com>
2731
2732         * s-fileio.adb (Is_Open): Add check for usability of the underlying
2733         file stream.
2734
2735 2007-08-14  Cyrille Comar  <comar@adacore.com>
2736
2737         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
2738         since it is potentially used in cases implying double finalization of
2739         the same object.
2740
2741 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
2742
2743         * s-tasini.adb (Get_Stack_Info): Move this function to
2744         System.Soft_Links.Tasking because it is common to the full and the
2745         restricted run times.
2746         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
2747         in SSL.Tasking.Init_Tasking_Soft_Links.
2748
2749         * s-solita.adb (Get_Stack_Info): Function moved from
2750         System.Tasking.Initialization because it is common to the full and the
2751         restricted run times.
2752         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
2753
2754 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
2755
2756         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
2757         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
2758         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
2759         parameter.
2760
2761         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
2762         guard to 12K.
2763
2764 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
2765
2766         * s-veboop.adb (SU): New named number initialized to
2767         System.Storage_Unit.
2768         (True_Val): The initialization expression is revised to use SU (=
2769         Storage_Unit) rather than assuming 8 for the component size of an
2770         unpacked Boolean array.
2771
2772 2007-08-14  Tristan Gingold  <gingold@adacore.com>
2773
2774         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
2775
2776         * tb-ivms.c: New file.
2777
2778         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
2779
2780 2007-08-14  Geert Bosch  <bosch@adacore.com>
2781
2782         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
2783         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
2784         Add required linker pragmas for automatically linking with the gnalasup
2785         linear algebra support library, and the systems math library.
2786         Rename cdot to cdotu and zdot to zdotu.
2787         Update header comment to describe purpose of package.
2788
2789 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2790
2791         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
2792         an explicitly specified Associated_Final_Chain, use that list.
2793         (Expand_N_Package_Body): Build dispatch tables of library level tagged
2794         types.
2795         (Expand_N_Package_Declaration): Build dispatch tables of library level
2796         tagged types. Minor code cleanup.
2797
2798 2007-08-14  Vincent Celier  <celier@adacore.com>
2799
2800         * gnatchop.adb (Terminate_Program): Remove exception and use
2801         Types.Terminate_Program instead.
2802
2803         * osint.ads, osint.adb (Current_Exit_Status): New global variable
2804         (Find_Program_Name): Added protection against empty name.
2805         (OS_Exit_Through_Exception): New procedure
2806
2807         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
2808         (OS_Exit_Default): New procedure that contains the previous
2809         implementation of procedure OS_Exit.
2810         (Final_Value): Remove obsolete Interix stuff.
2811
2812 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2813
2814         * g-socket.ads: Reorganize example code so that it also works on
2815         Windows XP.
2816
2817 2007-08-14  Tristan Gingold  <gingold@adacore.com>
2818
2819         * g-trasym.ads: AIX now supports symbolic backtraces.
2820
2821 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2822
2823         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
2824         units being loaded to detect circularities. A circularity may be
2825         present even if the current chain of pending units to load starts from
2826         a limited_with_clause.
2827
2828         * lib-load.ads: Change profile of Load_Unit to use a with_clause
2829         rather than a boolean flag, in order to detect circularities in
2830         with_clauses.
2831
2832         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
2833         than propagating the From_Limited_With flag, in order to handle
2834         properly circularities involving with_clauses.
2835
2836 2007-08-14  Nicolas Setton  <setton@adacore.com>
2837
2838         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
2839         warnings.
2840
2841 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
2842
2843         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
2844         to build for libgnala.
2845         libgnat: Add rules to build libgnala.a
2846         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
2847         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
2848         Add s-osinte-vxworks-kernel.adb to the target pairs of the
2849         kernel run-time lib for VxWorks 6, which would provide a different
2850         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
2851         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
2852         running ZCX by default.
2853         Add g-sttsne-locking to LynxOS version.
2854         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
2855         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
2856
2857         * system-darwin-x86.ads: New file.
2858
2859         * Make-lang.in: Delete files before copying onto them, so if they are
2860         read-only, the copy won't fail.
2861         Update dependencies
2862
2863 2007-08-14  Pascal Obry  <obry@adacore.com>
2864
2865         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
2866         naming scheme.
2867
2868 2007-08-14  Vincent Celier  <celier@adacore.com>
2869
2870         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
2871         (Gcc): Initialize Gcc_Name at the first call
2872
2873 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2874
2875         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
2876         with_clauses of the enclosing unit when analyzing the package
2877         specification of a nested instance.
2878
2879 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
2880
2881         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
2882         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
2883         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
2884         layout of N_Allocator.
2885
2886 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2887
2888         * rtsfind.adb (Check_RPC): Add PCS version check.
2889
2890         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
2891         (Gnat_Free_Software): New function.
2892
2893         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
2894         the PCS_Version value from s-parint, used to check that it is consistent
2895         with what exp_dist expects.
2896
2897         * s-parint.ads (PCS_Version): New entity for checking consistency
2898         between exp_dist and PCS.
2899
2900         * gen-soccon.c: (SO_REUSEPORT): New constant.
2901
2902 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
2903
2904         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
2905         variable Sub_Second to Duration in order to accomodate a larger range
2906         of arithmetic operations.
2907
2908 2007-08-14  Bob Duff  <duff@adacore.com>
2909
2910         * g-sttsne-locking.ads: Move comments from spec to body.
2911         * g-sttsne-locking.adb: Move comments from spec to body.
2912         * g-sttsne-vxworks.ads: Removed.
2913         * g-sttsne-vxworks.adb: Removed.
2914
2915 2007-08-11  Ian Lance Taylor  <iant@google.com>
2916
2917         * misc.c (gnat_get_alias_set): Change return type to
2918         alias_set_type.
2919
2920 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2921
2922         * decl.c, utils2.c: Fix whitespace in last change.
2923
2924 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2925
2926         * decl.c (compare_field_bitpos): Constify.
2927         * utils2.c (compare_elmt_bitpos): Likewise.
2928
2929 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
2930
2931         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
2932         anonymous access type.
2933         (pthread_sigmask): Now take an access sigset_t.
2934
2935 2007-07-05  Joel Sherrill <joel.sherrill@oarcorp.com>
2936
2937         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
2938         
2939 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
2940
2941         PR tree-optimization/25737
2942         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
2943
2944 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
2945
2946         * trans.c (Attribute_to_gnu): When subtracting an
2947         offset from a pointer, use POINTER_PLUS_EXPR with
2948         NEGATE_EXPR instead of MINUS_EXPR.
2949         (gnat_to_gnu): Likewise.
2950         * utils.c (convert): When converting between
2951         thin pointers, use POINTER_PLUS_EXPR and sizetype
2952         for the offset.
2953         * utils2.c (known_alignment): POINTER_PLUS_EXPR
2954         have the same semantics as PLUS_EXPR for alignment.
2955         (build_binary_op): Add support for the semantics of
2956         POINTER_PLUS_EXPR's operands.
2957         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
2958
2959 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
2960
2961         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
2962         of get_signed_or_unsigned_type.
2963         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
2964
2965 2007-06-11  Bob Duff  <duff@adacore.com>
2966             Thomas Quinot  <quinot@adacore.com>
2967
2968         * g-stsifd-sockets.adb (Create): Work around strange behavior of
2969         'bind' on windows that causes 'connect' to fail intermittently, by
2970         retrying the 'bind'.
2971         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
2972
2973 2007-06-10  Duncan Sands  <baldrick@free.fr>
2974
2975         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
2976         than to void, for the fields when making a new fat pointer type.
2977         (gnat_substitute_in_type): Now substitute_in_type.
2978         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
2979         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
2980         * utils.c (update_pointer_to): Update fat pointers by updating the
2981         dummy node pointers used for the fields.
2982
2983 2007-06-06  Thomas Quinot  <quinot@adacore.com>
2984             Bob Duff  <duff@adacore.com>
2985
2986         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
2987         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
2988         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
2989         constant Thread_Blocking_IO, always True by default, set False
2990         on a per-runtime basis.
2991         (Need_Netdb_Buffer): New constant.
2992
2993         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
2994         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
2995         files.
2996
2997         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
2998         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
2999         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
3000         child package Task_Safe_NetDB
3001         (Host_Error_Messages): Add stub body.
3002         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3003
3004         * g-soccon-mingw.ads: Add Windows-specific constants.
3005         (Need_Netdb_Buffer): New constant.
3006         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
3007         wrapper and import inet_addr(3) from the standard sockets library
3008         directly instead.
3009         (In_Addr): Add alignment clause.
3010         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3011
3012 2007-06-06  Robert Dewar  <dewar@adacore.com>
3013
3014         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3015         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
3016         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
3017         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
3018         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
3019         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
3020         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
3021         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
3022         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
3023         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
3024         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
3025         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
3026         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
3027         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
3028         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
3029         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
3030         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
3031         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
3032         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
3033         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
3034         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
3035         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
3036         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
3037         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
3038         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
3039         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
3040         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
3041         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
3042         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
3043         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
3044         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
3045         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
3046         Unchecked_* by Ada.Unchecked_*
3047
3048 2007-06-06  Robert Dewar  <dewar@adacore.com>
3049
3050         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
3051         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
3052         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
3053         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
3054         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
3055         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
3056
3057         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
3058         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
3059         s-tasloc.adb, s-tasloc.ads: New files.
3060
3061 2007-06-06  Bob Duff  <duff@adacore.com>
3062
3063         * g-expect-vms.adb: 
3064         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
3065         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
3066         (Send_Signal, Close): Raise Invalid_Process if the process id is
3067         invalid.
3068         (Pattern_Matcher_Access): Is now a general access type to be able to
3069         use aliased string.
3070
3071 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3072             Arnaud Charlet  <charlet@adacore.com>
3073
3074         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
3075         (SIGEMT is now used instead of SIGTERM on AIX).
3076
3077         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
3078         (Time_Slice_Supported): Set to True.
3079         Use SIGEMT instead of SIGTERM as SIGADAABORT.
3080
3081 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
3082
3083         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
3084         (Time, Time)): Use To_Relative_Time rather than manual calculation to
3085         express the bounds of Duration as Time. Raise Time_Error when the
3086         result is greater or equal to the higher bound of Duration (on the
3087         margin case).
3088         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
3089         Ada_High_And_Leaps.
3090         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
3091         Ada_High_And_Leaps.
3092         ("-" (Time, Time)): Reorder code.
3093         (All_Leap_Seconds): Removed.
3094         (Arithmetic_Operations.Add): Remove sign related kludge.
3095         (Arithmetic_Operations.Difference): Control the leaps seconds processing
3096         with flag Leap_Support.
3097         (Arithmetic_Operations.Subtract): Remove sign related kludge.
3098         (Check_Within_Time_Bounds): New procedure.
3099         (Clock): Control the leap seconds processing with flag Leap_Support.
3100         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
3101         (Formatting_Operations.Split): Control the leap seconds processing with
3102         flag Leap_Support.
3103         (Formatting_Operations.Time_Of): Control the leaps seconds processing
3104         with flag Leap_Support. Adjust the year, month and day (if applicable)
3105         when the value of day seconds designates a new day.
3106         (Split): Use parameter associations for better readability. Integrate
3107         flag Is_Ada_05.
3108         (Time_Of): Use parameter associations for better readability. Integrate
3109         flag Is_Ada_05.
3110
3111         * a-calfor.adb (Split): Use parameter associations for better
3112         readability. Integrate flag Is_Ada_05.
3113         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
3114         better readability. Integrate flag Is_Ada_05.
3115
3116 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3117
3118         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
3119         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
3120         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
3121         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
3122         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
3123         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
3124         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
3125         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
3126         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
3127         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
3128         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
3129         time when entering this routine to detect a backward clock setting
3130         (manual setting or DST adjustment), to avoid waiting for a longer delay
3131         than needed.
3132         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
3133         Remove handling of deferred priority change, and replace by setting the
3134         task priority directly, as required by AI-188.
3135         Update comments.
3136         (Max_Task_Image_Length): New constant.
3137         Replace Warnings (Off) by Unreferenced pragma, cleaner.
3138         (Dynamic_Priority_Support): Removed, no longer needed.
3139         (Poll_Base_Priority_Change): Ditto.
3140         (Set_Ceiling): Add this procedure to change the ceiling priority
3141         associated to a lock. This is a dummy implementation because dynamic
3142         priority ceilings are not supported by the underlying system.
3143
3144         * a-dynpri.adb (Set_Priority): Take into account case where Target is
3145         accepting a RV with its priority boosted.
3146         Remove handling of deferred priority change, and replace by setting the
3147         task priority directly, as required by AI-188.
3148
3149         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
3150         Succeeded = True.
3151         Remove handling of deferred priority change, and replace by setting the
3152         task priority directly, as required by AI-188.
3153         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
3154         of Self_Id earlier.
3155
3156         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
3157         (Poll_Base_Priority_Change): Removed.
3158         Code clean up: use SSL.Current_Target_Exception.
3159
3160         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
3161         to run as this is a potentially dispatching point.
3162         (Call_Synchronous): Use Local_Defer_Abort.
3163         (Callable): Relax assertion.
3164         (Selective_Wait): Relax assertion in case abort is not allowed.
3165         Remove handling of deferred priority change, and replace by setting the
3166         task priority directly, as required by AI-188.
3167
3168         * s-tasuti.adb (Make_Passive): Adjust assertions.
3169         Remove handling of deferred priority change, and replace by setting the
3170         task priority directly, as required by AI-188.
3171
3172 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3173
3174         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
3175         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
3176         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
3177         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
3178         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
3179         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
3180         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
3181         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
3182         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
3183         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
3184         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
3185         This patch changes the largest non-binary modulus from 2**31-1 to
3186         2**32-1.
3187         (Compiler_System_Version): Removed, no longer used.
3188         Clean up system files by removing flags only used on a single target.
3189         Also remove obsolete flags, only used during bootstrap from system.ads
3190         (Address): Add a pragma Preelaborable_Initialization.
3191
3192         * system-aix.ads:  Ditto.
3193         (GCC_ZCX_Support): Set to true.
3194         Update priority range on AIX and map Ada priorities to target
3195         priorities appropriately for different scheduling policies.
3196
3197         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
3198
3199 2007-06-06  Vincent Celier  <celier@adacore.com>
3200
3201         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
3202         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
3203
3204         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
3205         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
3206         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
3207         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
3208         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
3209         MLib.Tgt, containing the default versions of the exported subprograms.
3210         For each platform, create a specific version of the body of new child
3211         package MLib.Tgt.Specific that contains only the body of subprograms
3212         that are different from the default.
3213         (Archive_Builder_Append_Options): New function.
3214
3215 2007-06-06  Matthew Gingell  <gingell@adacore.com>
3216
3217         * s-osinte-aix.adb: Map Ada priorities to target priorities
3218         appropriately for different scheduling policies.
3219
3220 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3221
3222         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
3223         its C counterpart.
3224         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
3225         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
3226
3227 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
3228
3229         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
3230         Noop on VMS, added for interface commonality.
3231
3232 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
3233             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3234             Olivier Hainque  <hainque@adacore.com>
3235
3236         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
3237         renamed expression of a full renaming at toplevel.
3238         (gnat_to_gnu_entity, case object): If not defining, do not look inside
3239         the values the constant is initialized to if it is an N_Allocator.
3240         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
3241         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
3242         (make_aligning_type): Accept an extra ROOM argument for storage to be
3243         made available before the aligned field, and an extra BASE_ALIGN
3244         argument for callers to pass the alignment guaranteed to be honored for
3245         the whole aligning object. Avoid call to finish_record_type, which only
3246         interferes with the sizes we want to set.
3247         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
3248         make_aligning_type for super-aligned objects on stack.
3249         (components_to_record): Pass the adjusted size of the type when creating
3250         fields in the qualified union for the variant part.
3251         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
3252         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
3253         packed array type.
3254         (maybe_pad_type): Set TYPE_USER_ALIGN.
3255         (make_aligning_type): Likewise.
3256         ALIGN argument is unsigned int.
3257         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
3258         (gnat_to_gnu_param): Likewise, for parameters.
3259         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
3260         if it is constant and stems from a function call.
3261         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
3262         of the record is specified.  Adjust accordingly.
3263         (adjust_packed): New static function.
3264         (gnat_to_gnu_field): Use it to adjust the packedness setting.
3265         (components_to_record): Likewise.
3266         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
3267         side-effects if the object is deemed constant.
3268         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
3269         type instead of merely finalizing it.  Tidy.
3270         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
3271         <E_Access_Type>: Likewise.
3272         (defer_debug_incomplete_list): Rename to defer_finalize_list.
3273         (defer_debug_level): Delete.
3274         (gnat_to_gnu_entity) <debug_deferred>: Likewise
3275         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
3276         type.
3277         <E_Record_Type>: Do not explicitly defer finalizing the type.
3278         Adjust for write_record_type_debug_info renaming.
3279         <E_Subprogram_Type>: Likewise.
3280         Finalize deferred types right after deferred incomplete types are
3281         expanded.
3282         (rest_of_type_decl_compilation): New global function.
3283         (components_to_record): Rename defer_debug parameter to do_not_finalize.
3284         (components_to_record): Propagate the packedness to the fields of the
3285         qualified union type if there is a variant part.
3286         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
3287         instead of inline code to adjust the XUT field offsets.
3288         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
3289         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
3290         and write the debug info if the type derives from a discriminated one.
3291         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
3292         <E_Array_Subtype>: Likewise.
3293         <E_String_Literal_Subtype>: Likewise.
3294         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
3295         an alignment clause.
3296         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
3297         before giving warning.
3298         (prepend_one_attribute_to): New function, helper to prepend an attribute
3299         to an attribute list.
3300         (gnat_to_gnu_entity) <E_Procedure>: Use it.
3301         (prepend_attributes): Likewise.
3302         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
3303         <E_Array_Type>: Declare the padding type for the element type, if any.
3304         <E_Array_Subtype>: Likewise.
3305         (defer_limited_with): New variable.
3306         (Gigi_Equivalent_Type): New function.
3307         (gnat_to_gnu_entity): Use it at start and use result throughout.
3308         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
3309         Gigi_Equivalent_Type, support Limited_With, allow two levels of
3310         indirection, precompute if unconstrained array to simplify logic, and
3311         use defer_limited_with to defer elaboration of some types from limited
3312         with.
3313         (finalize_from_with_types): New function.
3314
3315 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
3316             Eric Botcazou  <ebotcazou@adacore.com>
3317             Tristan Gingold  <gingold@adacore.com>
3318             Olivier Hainque  <hainque@adacore.com>
3319
3320         * trans.c (Identifier_to_gnu): Change test for deferred constant by
3321         adding guard that the entity is an E_Constant before testing presence
3322         of Full_view (and remove unnecessary test that entity is not a type).
3323         For a CONST_DECL used by reference, manually retrieve
3324         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
3325         (struct language_function): Move from utils.c to here.
3326         (struct parm_attr): New structure.
3327         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
3328         (f_parm_attr_cache): New macro.
3329         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
3330         expressions for the 'First, 'Last and 'Length attributes of the
3331         unconstrained array IN parameters.
3332         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
3333         Allocate the information structure for the function earlier, as well
3334         as the language-specific part.
3335         If the parameter attributes cache has been populated, evaluate the
3336         cached expressions on entry.
3337         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
3338         N_Procedure_Call_Statement and N_Indexed_Component.
3339         (Pragma_to_gnu): Translate inspection_point to an asm statement
3340         containaing a comment and a reference to the object (either its address
3341         for BLKmode or its value).
3342         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
3343         to go to DECL_INITIAL. Together with the size constraint relaxation
3344         in create_var_decl, enlarges the set of situations in which an
3345         identifier may be used as an initializer without implying elaboration
3346         code.
3347         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
3348         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
3349         node.
3350         (maybe_stabilize_reference): Remove lvalues_only parameter.
3351         (gnat_stabilize_reference): Adjust for above change.
3352         (gnat_to_gnu): Do not set location information on the result
3353         if it is a reference.
3354         (add_cleanup): Add gnat_node parameter and set the location of the
3355         cleanup to it.
3356         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
3357         (Exception_Handler_to_gnu_zcx): Likewise.
3358         (gigi): Remove the cgraph node if the elaboration procedure is empty.
3359         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
3360         the former right after the latter.
3361         (start_stmt_group): Make global.
3362         (end_stmt_group): Likewise.
3363         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
3364         vars.
3365         (gnu_program_error_label_stack): Likewise.
3366         (gigi): Initialize them.
3367         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
3368         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
3369         New cases.
3370         (push_exception_label_stack): New function.
3371         (takes_address): New function.
3372
3373         * utils.c (struct language_function): Move to trans.c from here.
3374         (unchecked_convert): Do not wrap up integer constants in
3375         VIEW_CONVERT_EXPRs.
3376         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
3377         the latter for aggregate types, unexpected by later passes, and relax an
3378         arbitrary size constraint on the former.
3379         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
3380         to compare the sizes.
3381         (convert_vms_descriptor): When converting to a fat pointer type, be
3382         prepared for a S descriptor at runtime in spite of a SB specification.
3383         (shift_unc_components_for_thin_pointers): New function.
3384         (write_record_type_debug_info): For variable-sized fields, cap the
3385         alignment of the pointer to the computed alignment.
3386         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
3387         If REP_LEVEL is 2, do not compute the sizes.
3388         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
3389         (build_unc_object_type): Likewise.
3390         (declare_debug_type): New function.
3391
3392         * ada-tree.def: USE_STMT: removed (not emitted anymore).
3393
3394         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
3395         no statement is expandable anymore.
3396         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
3397         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
3398         when the user requested it explicitely.
3399         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
3400         to 0 for Ada.
3401         (get_alias_set): Return alias set 0 for a type if
3402         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
3403
3404         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
3405         (DECL_FUNCTION_STUB): New accessor macro.
3406         (SET_DECL_FUNCTION_STUB): New setter macro.
3407
3408         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
3409
3410         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
3411         declarations.
3412
3413 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
3414
3415         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
3416         Rename to Abort_Task_Interrupt to be able to keep the same interface
3417         as the rest of the targets.
3418
3419         * s-osinte-vxworks.ads s-osinte-vxworks.adb
3420         (To_VxWorks_Priority): Remove explicit "in" mode indicator
3421
3422         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
3423         New files.
3424
3425 2007-06-06  Robert Dewar  <dewar@adacore.com>
3426
3427         * a-chahan.ads: Remove obsolescent pragmas
3428
3429         * a-chlat1.ads: Minor reformatting
3430
3431 2007-06-06  Robert Dewar  <dewar@adacore.com>
3432
3433         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
3434         for Errout
3435
3436         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
3437         implementation
3438
3439         * errout.ads (Finalize): Changed interface
3440         (Output_Messages): New procedure
3441         (Compilation_Errors): New Interface
3442
3443         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
3444         Finalize/Output_Messages interface for Errout
3445         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
3446         Errout.
3447
3448 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3449             Olivier Hainque  <hainque@adacore.com>
3450             Robert Dewar  <dewar@adacore.com>
3451
3452         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
3453         check.
3454         (Raise_Current_Excep): Call Debug_Raise_Exception just before
3455         propagation starts, to let debuggers know about the event in a reliable
3456         fashion.
3457         (Local_Raise): Moved to System.Exceptions
3458         More convenient to have this as a separate unit
3459
3460         * s-except.adb, s-except.ads: New files.
3461
3462         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
3463         Debug_Unhandled_Exception in System.Exceptions where it belongs
3464         together with a couple of other debug helpers.
3465         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
3466         the former Unhandled_Exception.
3467
3468         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
3469         (Warn_No_Exception_Propagation): New procedure
3470         (Warn_If_No_Propagation): Rewritten for new warning generation
3471         (Expand_Exception_Handlers): New warning generation
3472         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
3473         (Add_Exception_Label): Use Special_Exception_Package_Used for test
3474         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
3475         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
3476         even if restriction is set (makes life easier in Check_Returns)
3477         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
3478         checking exception identities.
3479         (Expand_Local_Exception_Handlers): Do not optimize when all others case
3480         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
3481         block for handler (used by Check_Returns)
3482         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
3483         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
3484         remove all exception handlers when optimizing local raise statements.
3485         (Find_Local_Handler): Use Get_Renamed_Entity
3486         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
3487         marked analyzed after expanding exception handlers, do not generate
3488         redundant cleanup actions, because they have been constructed already.
3489
3490 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3491
3492         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
3493         presence of this categorization pragma is mandated by the language.
3494         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
3495         for this type.
3496
3497 2007-06-06  Vincent Celier  <celier@adacore.com>
3498             Robert Dewar  <dewar@adacore.com>
3499
3500         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
3501         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
3502         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
3503         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
3504         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
3505         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
3506         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
3507         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
3508         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
3509         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
3510         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
3511         ali.ads, ali.adb: 
3512         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
3513         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
3514         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
3515         Use variables of types File_Name_Type and Unit_Name_Type in error
3516         messages.
3517         (Get_Name): Add parameter Ignore_Special, and set it reading file name
3518         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
3519         here.
3520         Define flags Flag217-Flag230 with associated subprograms
3521         (Flag_Word5): New record type.
3522         (Flag_Word5_Ptr): New access type.
3523         (To_Flag_Word5): New unchecked conversion.
3524         (To_Flag_Word5_Ptr): Likewise.
3525         (Flag216): New function.
3526         (Set_Flag216): New procedure.
3527
3528 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3529
3530         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
3531         instead of 'Size.
3532
3533         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
3534
3535 2007-06-06  Javier Miranda  <miranda@adacore.com>
3536
3537         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
3538         the package.
3539         (Object_Specific_Data_Array): This is now internal to the package.
3540         (Object_Specific_Data): This is now internal to the package.
3541         (Select_Specific_Data_Element): This is now internal to the package.
3542         (Select_Specific_Data_Array): This is now internal to the package.
3543         (Select_Specific_Data): This is now internal to the package.
3544         (Offset_To_Top_Function_Ptr): This is now public.
3545         (To_Offset_To_Top_Function_Ptr): Removed.
3546         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
3547          local to subprogram Offset_To_Top.
3548         (Predefined_DT): Removed.
3549         (Typeinfo_Ptr): Removed.
3550         (OSD): This function is now internal to this package.
3551         (SSD): This function is now internal to this package.
3552         (DT): New function that displaces the pointer to the table of primitives
3553          to get access to the enclosing wrapper record.
3554         (IW_Membership): Code cleanup.
3555         (Offset_To_Top): Code cleanup.
3556         (Predefined_DT): Removed.
3557         (Register_Interface_Tag): Removed.
3558         (Set_Interface_Table): Removed.
3559         (Set_Offset_Index): Removed.
3560         (Set_Offset_To_Top): Code cleanup.
3561         (Set_OSD): Removed.
3562         (Set_Signature): Removed.
3563         (Set_SSD): Removed.
3564         (Set_Tagged_Kind): Removed.
3565         (Typeinfo_Ptr): Removed.
3566         (TSD): Removed.
3567         (Displace): Add missing check on null actual.
3568
3569         * exp_disp.ads, exp_disp.adb
3570         (Select_Expansion_Utilities): Removed.
3571         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
3572         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
3573         the interface requires a new parameter.
3574         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
3575         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
3576         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
3577         Done to remove package Select_Expansion_Utilities.
3578         (Make_DT): New implementation for statically allocated dispatch tables.
3579         (Make_Secondary_DT): Moved to the scope of Make_DT.
3580         (Register_Primitive): Code cleanup plus incoporate the use of the new
3581         function DT_Address_Attribute.
3582         (Expand_Interface_Thunk): The profile of this subprogram has been
3583         changed to return the Thunk_Id and the corresponding code.
3584         (Fill_DT_Entry): Removed. Its functionality is now provided by
3585         subprogram Register_Primitive.
3586         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
3587         subprogram Register_Primitive.
3588         (Register_Primitive): New subprogram that incorporates the previous
3589         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
3590         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
3591         was only required to call Make_DT_Access_Action, which is now removed.
3592         (Ada_Actions): Removed
3593         (Action_Is_Proc): Removed
3594         (Action_Nb_Arg): Removed
3595         Replace all the calls to Make_DT_Access_Action by direct calls to
3596         Make_Procedure_Call_Statement or Make_Function_Call.
3597         (Set_DTC_Entity_Value): New subprogram.
3598         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
3599         (Expand_Interface_Thunk): Add missing support for primitives that are
3600         functions with a controlling result (case in which there is no need
3601         to generate the thunk).
3602
3603         * exp_atag.ads, exp_atag.adb
3604         (Build_DT): New subprogram that displaces the pointer to reference the
3605         base of the wrapper record.
3606         (Build_Typeinfo_Offset): Removed.
3607         (RTE_Tag_Node): Removed.
3608         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
3609         (Build_Get_RC_Offset): Removed.
3610         (Build_Inherit_Predefined_Prims): Removed.
3611         (Build_Inherit_TSD: Removed.
3612         (Build_New_TSD): Removed.
3613         (Build_Set_External_Tag): Removed.
3614         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
3615         (Build_Set_Prim_Op_Address): Add documentation.
3616         (Build_Set_TSD): Removed.
3617
3618         * rtsfind.ads, rtsfind.adb
3619         (Load_Fail): If load fails and we are not in configurable run-time
3620         mode, then raise Unrecoverable_Error.
3621         (Text_IO_Kludge): Generate an error message if a run-time library is
3622         not available in a given run-time (ie. zfp run-time).
3623         (RTE_Record_Component): Add code to check that the component we search
3624         for is not found in two records in the given run-time package.
3625         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
3626         (RE_DT_Predef_Prims_Offset): New entity
3627         (RE_Static_Offset_To_Top): New entity
3628         (RE_HT_Link): New entity.
3629         (System_Address_Image): Addition of this run-time package.
3630         (RE_Address_Image): New entity.
3631         (RE_Abstract_Interface): Removed.
3632         (RE_Default_Prim_Op_Count): Removed.
3633         (RE_DT_Entry_Size): Removed.
3634         (RE_DT_Min_Prologue_Size): Removed.
3635         (RE_DT_Prologue_Size): Removed.
3636         (RE_Ifaces_Table_Ptr): Removed.
3637         (RE_Interface_Data_Ptr): Removed.
3638         (RE_Type_Specific_Data): Removed.
3639         (RE_Primary_DT): Removed.
3640         (RE_Register_Interface_Tag): Removed.
3641         (RE_Set_Offset_Index): Removed.
3642         (RE_Set_OSD): Removed.
3643         (RE_Set_SSD): Removed.
3644         (RE_Set_Signature): Removed.
3645         (RE_Set_Tagged_Kind): Removed.
3646         (RE_Address_Array): New entity.
3647         (RE_DT): New entity.
3648         (RE_Iface_Tag): New entity.
3649         (RE_Interfaces_Table): New entity.
3650         (RE_No_Dispatch_Table): New entity.
3651         (RE_NDT_Prims_Ptr): New entity.
3652         (RE_NDT_TSD): New entity.
3653         (RE_Num_Prims): New entity.
3654         (RE_Offset_To_Top_Function_Ptr): New entity.
3655         (RE_OSD_Table): New entity.
3656         (RE_OSD_Num_Prims): New entity.
3657         (RE_Predef_Prims): New entity
3658         (RE_Predef_Prims_Table_Ptr): New entity.
3659         (RE_Primary_DT): New entity.
3660         (RE_Signature): New entity.
3661         (RE_SSD): New entity.
3662         (RE_TSD): New entity.
3663         (RE_Type_Specific_Data): New entity.
3664         (RE_Tag_Kind): New entity.
3665
3666 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3667
3668         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
3669         C imported variable.
3670         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
3671         on entry.
3672
3673 2007-06-06  Robert Dewar  <dewar@adacore.com>
3674
3675         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
3676         character
3677
3678 2007-06-06  Vincent Celier  <celier@adacore.com>
3679
3680         * a-tifiio.adb (Put, internal): For negative numbers, check that there
3681         is room for at least one digit and the minus sign.
3682         (Put.Put_Character): Never put a character outside of the range of
3683         string To.
3684
3685 2007-06-06  Olivier Hainque  <hainque@adacore.com>
3686             Eric Botcazou  <ebotcazou@adacore.com>
3687
3688         * utils2.c (build_allocator): Provide the extra arguments to
3689         make_aligning_type for super-aligned objects allocated from the default
3690         pool. Leave enough room for a pointer before the aligning field, and
3691         store the system's allocator return value there.
3692         (build_call_alloc_dealloc): When releasing a super-aligned object,
3693         retrieve the system's allocator return value from where build_allocator
3694         has stored it, just ahead of the adjusted address we are passed.
3695         (build_call_raise): Handle properly the generation of line numbers when
3696         the node is marked No_Location.
3697         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
3698         by using DECL_UID on ties.
3699         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
3700         main variant.
3701         (build_call_raise): Handle converting exception into goto; support new
3702         argument KIND.
3703         (build_component_ref): Add new arg to build_call_raise.
3704
3705 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
3706
3707         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
3708         "." in the case of nnn.xxx when nnn terminates with an underscore.
3709         Parse the remaining "#" or ":" in the case of nnn#.xxx#
3710
3711 2007-06-06  Robert Dewar  <dewar@adacore.com>
3712
3713         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
3714
3715 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3716             Vincent Celier  <celier@adacore.com>
3717             Robert Dewar  <dewar@adacore.com>
3718
3719         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
3720         needed.
3721         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
3722         ((destructor)) for adafinal, even when switch -a is used.
3723         Do not issue pragma Linker_Destructor for adafinal when switch -a is
3724         used.
3725         (Gen_Object_Files_Options): Add formatting of Linker Options, when
3726         Output_Linker_Option_List is set. Suppress this formatting when
3727         Zero_Formatting is set.
3728         Add case for CLI_Target.
3729         (System_Restrictions_Used): New flag, used to avoid generating with of
3730         System_Restrictions and initialization of the data unless there is
3731         some use of System.Restrictions in the partition.
3732         (Check_System_Restrictions_Used): New procedure
3733
3734         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
3735         since we only with this unit in the binder file if it is used elsewhere
3736         in the partition.
3737
3738 2007-06-06  Vincent Celier  <celier@adacore.com>
3739
3740         * bindusg.adb: Add line for @<response file>
3741         Add lines for new switches -R and -Z
3742
3743         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
3744         hierarchy in the list of files of the closure when -R is used
3745         (Gnatbind): Accept arguments starting with '@' to indicate response
3746         files and take the arguments from the response files.
3747         If List_Closure is set, display the referenced files
3748
3749 2007-06-06  Javier Miranda  <miranda@adacore.com>
3750             Robert Dewar  <dewar@adacore.com>
3751             Ed Schonberg  <schonberg@adacore.com>
3752
3753         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
3754         which the address-clause is applied to in-mode actuals (allowed by
3755         13.1(22)).
3756         (Apply_Discriminant_Check): Do not generate a check if the type is
3757         constrained by a current instance.
3758         (Activate_Division_Check): New procedure
3759         (Activate_Overflow_Check): New procedure
3760         (Activate_Range_Check): New procedure
3761         Call these new Activate procedures instead of setting flags directly
3762         (Apply_Array_Size_Check): Removed, no longer needed.
3763         Code clean up: remove obsolete code related to GCC 2.
3764         (Get_E_Length): Protect against bomb in case scope is standard
3765         (Selected_Range_Checks): If the node to be checked is a conversion to
3766         an unconstrained array type, and the expression is a slice, use the
3767         bounds of the slice to construct the required constraint checks.
3768         Improve NOT NULL error messages
3769         (Apply_Constraint_Check): If the context is a null-excluding access
3770         type, diagnose properly the literal null.
3771
3772 2007-06-06  Pascal Obry  <obry@adacore.com>
3773
3774         * clean.adb (Clean_Archive): Use untouched casing for the archive name
3775         and the corresponding .deps file.
3776         (Clean_Interface_Copy_Directory): Use untouched casing for the library
3777         src directory. Minor code-clean-up. Use untouched casing for files
3778         read into the library src dir.
3779         (Clean_Library_Directory): Idem.
3780         (Parse_Cmd_Line): Accept new switch -aP
3781
3782 2007-06-06  Javier Miranda  <miranda@adacore.com>
3783             Ed Schonberg  <schonberg@adacore.com>
3784             Robert Dewar  <dewar@adacore.com>
3785             Eric Botcazou  <ebotcazou@adacore.com>
3786             Arnaud Charlet  <charlet@adacore.com>
3787
3788         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
3789         applicable to types that have the With_Type flag set. Returns the
3790         non-limited view of the type, if available, otherwise the type itself.
3791         For class-wide types, there is no direct link in the tree, so we have
3792         to retrieve the class-wide type of the non-limited view of the Etype.
3793         New attributes Static_Initialization and Static_Elaboration_Desired.
3794         Remove the pragma Thread_Body, and the associated flag
3795         Is_Thread_Body in entities, and all related code.
3796         (Suppress_Value_Tracking_On_Call): New flag
3797         E_Exception has Esize and Alignment fields
3798         (Universal_Aliasing): New function.
3799         (Set_Universal_Aliasing): New procedure.
3800         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
3801         (Check_Nested_Access): New procedure.
3802         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
3803         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
3804         (Related_Interface): New attribute. Present in dispatch table pointer
3805         components of records. Set to point to the entity of the corresponding
3806         interface type.
3807         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
3808         (Original_Access_Type): Remove, not needed.
3809         (Root_Type): Handle properly subtypes of class-wide-types.
3810         Update comments.
3811
3812         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
3813         class-wide types visible through limited-with clauses.
3814         (Try_Primitive_Operation): When examining all primitive operations of a
3815         tagged type, do not consider subprograms labeled as hidden unless they
3816         belong to a private generic type with a tagged parent.
3817         (Try_Object_Operation): Extensive rewriting, to handle properly various
3818         overloading cases, when several ancestors may have class-wide operations
3819         that are possible candidates, and when the overloaded functions return
3820         array types and have defaulted parameters so that the call may be
3821         interpreted as an indexing.
3822         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
3823         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
3824         successive actuals before analyzing the call itself.
3825         (Try_Primitive_Operation): A primitive operation is compatible with the
3826         prefix if the prefix has a synchronized type and the type of the formal
3827         is its corresponding record, as can be the case when the primitive
3828         operation is declared outside of the body of the type.
3829         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
3830         perform homonym traversal, looking for class-wide operation matches
3831         (formerly done in statements of Try_Class_Wide_Operation). Matches on
3832         access parameters are now restricted to anonymous access types.
3833         (Mark_Allocator): An allocator with a discriminant association parent is
3834         a coextension.
3835         (Try_One_Prefix_Interpretation): If the type of the object is
3836         incomplete, as can be happen when it is a limited view obtained through
3837         a limited_with_clause, the selected component is not part of a prefixed
3838         call.
3839         (Complete_Object_Operation): Diagnose properly an object that is not
3840         aliased when the corresponding controlling formal is an access
3841         parameter.
3842         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
3843         ambiguous calls in prefixed notation, where two primitives differ only
3844         in that the controlling argument of one is an access parameter.
3845
3846         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
3847         whether a function that returns an unconstrained type can be inlined.
3848         (Process_Formals): Diagnose properly the illegal use of an incomplete
3849         type in the profile of an access_to_subprogram declaration.
3850         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
3851         operations are attached to the corresponding record.
3852         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
3853         When processing a primitive of a concurrent type which implements an
3854         interface change the type of all controlling formals to that of the
3855         corresponding record type.
3856         (Check_Synchronized_Overriding): Relax the conditional logic when trying
3857         to determine the tagged type to which a primitive belongs.
3858         (Check_Conventions): Capture condition to ignore a primitive operation
3859         (which is shared between the loop in Check_Conventions and the one in
3860         Check_Convention) in a new local function Skip_Check.
3861         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
3862         confusion with Check_Conventions' own Prim_Op local variable.
3863         (Create_Extra_Formals): Test for a tagged result type rather than a
3864         controlling result when determining whether to add a BIP_Alloc_Form
3865         formal and a BIP_Final_List formal to the function.
3866         (Check_Conformance); For parameters that are anonymous access types,
3867         subtype conformance requires that the not null and the constant
3868         indicators must match
3869         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
3870         to retrieve the appropriate type when processing a concurrent type
3871         declared within a generic. Minor comment reformatting. Change invocation
3872         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
3873         mitive.
3874         (Analyze_Subprogram_Body): If the return type of a function is an
3875         anonymous access to the limited view of a class-wide type, and the
3876         non-limited view of the type is available, update the type of the
3877         function so that code can be generated.
3878         (Process_Formals): In case of access-subtype itype whose designated
3879         type is also an itype (situation that happens now with access to
3880         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
3881         attribute to avoid backend problems.
3882         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
3883         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
3884         anonymous types' designated types are same before testing
3885         Subtypes_Statically_Match.
3886         (Create_Extra_Formals): Test for a named access parameter that is a
3887         controlling formal as an additional condition for adding an
3888         accessibility level formal. This can occur in the subp type created for
3889         dispatching calls in Expand_Dispatching_Call, and allows calling
3890         Create_Extra_Formals from that procedure rather than special-casing the
3891         extra formals there.
3892         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
3893         when the function has a controlling result.
3894         (Check_Returns): Add much more knowledge of the optimization of local
3895         raise statements to gotos, to retain proper warnings in this case.
3896         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
3897         nodes when looking for last statement.
3898
3899         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
3900         class-wide types visible through limited with clauses.
3901         (Add_One_Interp): If the operands are anonymous access types, the
3902         predefined operator on universal_access is immediately visibles
3903         (Find_Unique_Type): Handle anonymous access to subprogram types just as
3904         other anonymous access types.
3905         (Disambiguate): Take into account CIL convention.
3906         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
3907
3908 2007-06-06  Robert Dewar  <dewar@adacore.com>
3909
3910         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
3911         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
3912         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
3913         Fix lower bound of tables.
3914         Add rep clauses.
3915
3916         * nlists.adb: Ditto.
3917         (Prev_Node, Next_Node): Change index type to Int so that it properly
3918         covers the range First_Node_Id - 1 up.
3919
3920 2007-06-06  Javier Miranda  <miranda@adacore.com>
3921             Ed Schonberg  <schonberg@adacore.com>
3922             Bob Duff  <duff@adacore.com>
3923             Hristian Kirtchev  <kirtchev@adacore.com>
3924
3925         * exp_aggr.ads, exp_aggr.adb: 
3926         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
3927         in extension aggregates.
3928         (Flatten): Other conditions being met, an aggregate is static if the
3929         low bound given by component associations is different from the low
3930         bound of the base index type.
3931         (Packed_Array_Aggregate_Handled): If the component type is itself a
3932         packed array or record, the front-end must expand into assignments.
3933         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
3934         Init_Pr, instead of Ancestor_Is_Expression.
3935         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
3936         coextension chain root, either generate a list controller or use the
3937         already existing one.
3938         (Static_Array_Aggregate): New procedure to construct a positional
3939         aggregate that can be handled by the backend, when all bounds and
3940         components are compile-time known constants.
3941         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
3942         types covering interface types into assignments.
3943         (Replace_Type): move to Build_Record_Aggr_Code.
3944         (Expand_Record_Aggr_Code): if the target of the aggregate is an
3945         interface type, convert to the definite type of the aggregate itself,
3946         so that needed components are visible.
3947         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
3948         components and the context is an extended return statement do not
3949         create a transient block for it, to prevent premature finalization
3950         before the return is executed.
3951         (Gen_Assign): Do not generate a call to deep adjust routine if the
3952         component type is itself an array of controlled (sub)-components
3953         initialized with an inner aggregate.
3954         (Component_Check): New name for Static_Check. This name is now more
3955         appropriate, and documentation is added which was missing.
3956         (Component_Check): Add test for bit aligned component value
3957         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
3958         Tagged_Comps, name is more appropriate given added function below.
3959         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
3960
3961 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
3962             Javier Miranda  <miranda@adacore.com>
3963             Robert Dewar  <dewar@adacore.com>
3964
3965         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
3966         Terminated: Add unchecked type conversion from System.Address to
3967         System.Tasking.Task_Id when calling the predefined primitive
3968         _disp_get_task_id.
3969         Disable new Ada 05 accessibility check for JVM.NET targets, which
3970         cannot be implemented in a practical way.
3971         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
3972         the sources always references the tag of the actual object. Therefore,
3973         if 'Tag is applied in the sources to class-wide interface objects we
3974         generate code that displaces "this" to reference the base of the object.
3975         (Expand_N_Attribute_Reference, case Size): Return specified size if
3976         known to front end.
3977         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
3978         has code that displaces the pointer of the object to manage interface
3979         types. However this code must not be executed when the prefix is a
3980         subprogram. This bug caused the wrong expansion of the internally
3981         generated assignment that fills the dispatch table when the primitive
3982         is a function returning a class-wide interface type.
3983         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
3984         Set_Attribute_Name for Name_Unaligned_Valid.
3985
3986 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
3987             Gary Dismukes  <dismukes@adacore.com>
3988
3989         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
3990         If the initialization is the equivalent aggregate of the initialization
3991         procedure of the type, do not remove it.
3992         (Expand_N_Attribute_Definition_Clause): Exclude access variables
3993         initialized to null from having their expression reset to empty and
3994         note this exception in the comment.
3995
3996 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
3997             Robert Dewar  <dewar@adacore.com>
3998             Ed Schonberg  <schonberg@adacore.com>
3999             Gary Dismukes  <dismukes@adacore.com>
4000
4001         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
4002         Add "with" and "use" clauses for Sem_Attr.
4003         (Expand_Current_Value): Do not replace occurences of attribute
4004         references where the prefix must be a simple name.
4005
4006         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
4007         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
4008         Attribute_Requires_Simple_Name_Prefix.
4009         (Name_Modifies_Prefix): Body of new function.
4010         (Requires_Simple_Name_Prefix): Body of new function.
4011         (Resolve_Attribute, case Access): Improve error message for case of
4012         mismatched conventions.
4013         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
4014         incomplete type.
4015         (Analyze_Attribute, case 'Access): If the type of the prefix is a
4016         constrained subtype for a nominal unconstrained type, use its base type
4017         to check for conformance with the context.
4018         (Resolve_Attribute): Remove test of the access type being associated
4019         with a return statement from condition for performing accessibility
4020         checks on access attributes, since this case is now captured by
4021         Is_Local_Anonymous_Access.
4022         (Analyze_Access_Attribute): Set Address_Taken on entity
4023         (Analyze_Attribute, case Address): Set Address_Taken on entity
4024         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
4025         validating an access attribute whose prefix is a current instance.
4026         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
4027         applied to dispatching operations, if freezing is required then we set
4028         the attribute Has_Delayed_Freeze in the prefix's entity.
4029         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
4030         current scope if access of local subprogram taken
4031         (Analyze_Access_Attribute): Check legality of self-reference even if the
4032         expression comes from source, as when a single component association in
4033         an aggregate has a box association.
4034         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
4035         the prefix if it is a protected operation and the attribute is
4036         Unrestricted_Access.
4037         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
4038         reference to the base type of the context, to force a constraint check
4039         when the context is an access subtype with an explicit constraint.
4040         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
4041         node is rewritten as an interface conversion. leave unanalyzed after
4042         resolution, to ensure that type checking against the context will take
4043         place.
4044
4045 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4046             Javier Miranda  <miranda@adacore.com>
4047             Robert Dewar  <dewar@adacore.com>
4048
4049         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
4050         wrapper when the full view of the controlling type of an inherited
4051         function that dispatches on result implements interfaces.
4052         (Expand_N_Object_Declaration): In cases where the type of the
4053         declaration is anonymous access, create finalization list for it.
4054         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
4055         if the object has no explicit initialization, to match description of
4056         functionality of pragam Persistent_BSS.
4057         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
4058         new function to build static aggregates, to replace initialization call
4059         when static initialization is desired.
4060         (Freeze_Type): Generate a list controller for an access type whenever
4061         its designated type has controlled anonymous access discriminants.
4062         (Build_Equivalent_Aggregate): New procedure to compute a static
4063         aggregate to be used as default initialization for composite types,
4064         instead of a generating a call to the initialization procedure for the
4065         type.
4066         (Build_Initialization_Call): When available, replace a call to the
4067         initialization procedure with a copy of the equivalent static aggregate
4068         for the type.
4069         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
4070         declarations for objects of a class-wide interface type, rather than
4071         just identifiers, to prevent visibility problems.
4072         (Expand_N_Object_Declaration): When expanding the declaration for an
4073         object of a class-wide interface type, preserve the homonym chain of
4074         the original entity before exchanging it with that of the generated
4075         renaming declaration.
4076         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
4077         active, because there is no way to handle the exception.
4078         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
4079         to do a minimum decoration of the Access_Disp_Table list.
4080         (Expand_Record_Controller): Avoid the addition of the controller between
4081         the component containing the tag of a secondary dispatch table and its
4082         adjacent component that stores the offset to the base of the object.
4083         This latter component is only generated when the parent type has
4084         discriminants ---documented in Add_Interface_Tag_Components).
4085         (Apply_Array_Size_Check): Removed, no longer needed.
4086         (Expand_N_Full_Type_Declaration): If the type has anonymous access
4087         components, create a Master_Entity for it only if it contains tasks.
4088         (Build_Init_Procedure): Suppress the tag assignment compiling under
4089         no run-time mode.
4090         (Freeze_Record_Type): Remove code associated with creation of dispatch
4091         table.
4092         (Init_Secondary_Tags): Update type of actuals when generating calls to
4093         Ada.Tags.Set_Offset_To_Top
4094         (Stream_Operation_OK): Disable use of streams compiling under no
4095         run-time mode
4096         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
4097         if Has_Init_Expression set.
4098         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
4099         Register_Primitive, which provides the same functionality.
4100         (Requires_Init_Proc): Return false in case of interface types.
4101         (Add_Secondary_Tables): Use the new attribute Related_Interface to
4102         cleanup the code.
4103         (Predefined_Primitive_Freeze): Do not assume that an internal entity
4104         is always associated with a predefined primitive because the internal
4105         entities associated with interface types are not predefined primitives.
4106         Therefore, the call to Is_Internal is replaced by a call to the
4107         function Is_Predefined_Dispatching_Operation.
4108         (Make_Eq_If): When generating the list of comparisons for the
4109         components of a given variant, omit the controller component that is
4110         present if the variant has controlled components.
4111
4112 2007-06-06  Javier Miranda  <miranda@adacore.com>
4113             Hristian Kirtchev  <kirtchev@adacore.com>
4114             Bob Duff  <duff@adacore.com>
4115
4116         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
4117         handle the creation of finalization lists and calls for nested
4118         coextensions when the root of the chains is part of a return statement.
4119         (Inside_A_Return_Statement): New function inside Complete_Coextension_
4120         Finalization.
4121         (Expand_Record_Equality): Skip components that are interface types.
4122         (Displace_Allocator_Pointer): Add missing support for interface subtypes
4123         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
4124         with Rewrite_Coextension. Change the condition for detecting coextension
4125         root nodes.
4126         (Is_Local_Access_Discriminant): Removed.
4127         (Rewrite_Coextension): New routine which rewrites a static coextension
4128         as a temporary and uses its unrestricted access in the construction of
4129         the outer object.
4130         (Complete_Coextension_Finalization): New routine. Generate finalization
4131         attachment calls to all delayed coextensions.
4132         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
4133         the allocator is not a coextension itself and has delayed coextensions.
4134         If the current allocator is controlled, but also a coextension, delay
4135         the generation of the finalization attachment call.
4136         Rename local variable "Node" to "Nod" in order to avoid confusion with
4137         "Elists.Node".
4138         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
4139         limited types that are not inherently limited. Such an allocator is
4140         illegal, but is generated by the expander for a return statement, to
4141         copy the result onto the secondary stack. This is the only case where a
4142         limited object can be copied. Generate code to displace the pointer
4143         to the object if the qualified expression is a class-wide interface
4144         object. Such displacement was missing and hence the copy of the object
4145         was wrong.
4146         (Apply_Accessibility_Check): Handle allocated objects initialized in
4147         place.
4148         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
4149         and Expand_Allocator_Expression. Allocating class-wide interface objects
4150         this routine displaces the pointer to the allocated object to reference
4151         the component referencing the corresponding secondary dispatch table.
4152         Expand_Allocator_Expression): Add missing support to allocate class-wide
4153         interface objects initialized with a qualified expression.
4154         (Get_Allocator_Final_List): Test for an anonymous access type that is a
4155         function result type, and use the finalization list associated with the
4156         function scope in that case (such an anonymous type should not be
4157         treated like an access parameter's type).
4158
4159 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4160             Gary Dismukes  <dismukes@adacore.com>
4161             Javier Miranda  <miranda@adacore.com>
4162
4163         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
4164         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
4165         required exception handler.
4166         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
4167         properly the case of a function whose return type is a limited
4168         class-wide interface type. Modify the code of the accessibility
4169         check to handle class-wide interface objects. In this case we need to
4170         displace "this" to reference the primary dispatch table to get access
4171         to the TSD of the object (to evaluate its accessibility level).
4172         (Expand_N_Extended_Return_Statement): Test for a tagged result type
4173         rather than a controlling result as one of the conditions for
4174         generating tests of the implicit BIP_Alloc_Form formal. The
4175         initialization assignment is also handled according to whether the
4176         result is tagged instead of controlling.
4177         In the case where the init assignment is inserted in the "then" part of
4178         the allocation conditional, rewrite the target to be a dereference of
4179         the implicit BIP_Object_Access formal.
4180         If the returned value is unconstrained and created on the secondary
4181         stack, mark the enclosing block and function so that the secondary
4182         stack is not reclaimed on return.
4183         Treat returns from functions with controlling results similarly to
4184         returns from functions with unconstrained result subtypes.
4185         If the object returned is unconstrained, and an allocator must be
4186         created for it, analyze the allocator once the block for the extended
4187         return is installed, to ensure that finalizable components
4188         of the expression use the proper finalization list. Guard the call to
4189         Move_Final_List with a check that there is something to finalize.
4190         (Make_Tag_Ctrl_Assignment): Use "old" handling
4191         of controlled type assignment for virtual machines, since new code uses
4192         unsupported features (such as direct access to bytes in memory).
4193
4194 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
4195             Ed Schonberg  <schonberg@adacore.com>
4196
4197         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
4198         accessibility actual, check for the case of an aliased object that has
4199         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
4200         we fall into processing for the attribute rather than the name of the
4201         object.
4202         (Expand_Inline_Call): If an actual is a literal, and the corresponding
4203         formal has its address taken in the body, create a temporary to capture
4204         value.  If the return type is a limited interface, do not treat the
4205         return value as Controlled.
4206         (Is_In_Place_Function):  If the return type is a limited interface,
4207         treat as returning in place. The actual returned object may not always
4208         be limited, but the caller has to assume that it is returned in place.
4209         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
4210         context of an allocator, use the correct finalization chain (that is,
4211         the chain belonging to the access type, rather than the chain belonging
4212         to the current scope).
4213         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
4214         result type rather than a controlling result as a precondition for
4215         adding an allocation form actual to a build-in-place call.
4216         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
4217         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
4218         primitive in the dispatch tables. This work is now done by Make_DT when
4219         the type is frozen.
4220         (Register_Predefined_DT_Entry): Removed.
4221         (Add_Return): If end label is not present, use sloc of last statement
4222         for generated return statement in procedure, for better gdb behavior
4223         on expanded code.
4224         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
4225         object address nodes to ensure proper processing by routines like
4226         Insert_After*.
4227         (Expand_Call): Fix generation of validity check for parameter
4228         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
4229         the allocation form parameter if the result subtype is constrained,
4230         except when the function has a controlling result.
4231         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
4232         rather than Is_Controlled and Has_Controlled_Component, since we want to
4233         include class-wide result types in this treatment. Also test for a
4234         controlling result, since that also requires passing a finalization
4235         list.
4236         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
4237         even when the result subtype is constrained, to handle calls involving
4238         controlling results.
4239         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
4240         is now called even when the result subtype is constrained, to handle
4241         calls involving controlling results.
4242         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
4243         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
4244         now performs the test).
4245         (Make_Build_In_Place_Call_In_Object_Declaration):
4246         Add_Alloc_Form_Actual_* is now called even when the result subtype is
4247         constrained, to handle calls involving controlling results.
4248         (Add_Return): Accomodate rewritten pattern from local raise to goto
4249         transformation, so that we still recognize an transfer statement
4250         and do the right thing here in that case.
4251         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
4252         and end of subprogram code.
4253         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
4254         support for primitives that are functions (without formals) with a
4255         controlling result.
4256         (Inherited_From_Formal): If the actual subtype has not generic parent
4257         type, it is not an actual for a formal derived type, and there is no
4258         operation to inherit from the formal.
4259
4260 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4261             Thomas Quinot  <quinot@adacore.com>
4262
4263         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
4264         inserted cleanup code appropriately for GDB use.
4265         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
4266         exception handler for Deep_Adjust or Deep_Finalize.
4267         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
4268         Raise_From_Controlled_Operation is available, use a call to that
4269         subprogram instead of a plain "raise Program_Error" node to raise
4270         Program_Error if an exception is propagated from an Adjust or Finalize
4271         operation.
4272         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
4273         appears in the optional statement list of a triggering alternative, the
4274         scope actions can be inserted directly there, and not in the list that
4275         includes the asynchronous select itself.
4276
4277 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4278             Robert Dewar  <dewar@adacore.com>
4279             Hristian Kirtchev  <kirtchev@adacore.com>
4280
4281         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
4282         generated exception handler appropriately when debugging generated code.
4283         Deal properly with No_Exception_Propagation restriction mode.
4284         (Expand_N_Abort_Statement): Add an unchecked type conversion from
4285         System.Address to System.Tasking.Task_Id when processing the result of
4286         the predefined primitive _disp_get_task_id.
4287         (Expand_N_Asynchronous_Select): Clarify comment.
4288         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
4289         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
4290         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
4291         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
4292         privals and for generated call to Complete_Entry_Body, for better gdb
4293         behavior.
4294         (Copy_Result_Type): Utility to construct a parameter and result profile
4295         for protected functions whose return type is an anonymous access to
4296         subprogram.
4297         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
4298         call the above.
4299         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
4300         point when the local-raise-to-goto transformation has taken place.
4301
4302 2007-06-06  Javier Miranda  <miranda@adacore.com>
4303             Nicolas Setton  <setton@adacore.com>
4304
4305         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
4306         functionality when the backend is generating code.
4307         Otherwise any serious error
4308         reported by the backend calling the frontend routine Error_Msg
4309         changes the Compilation_Mode to Check_Semantics, disables the
4310         functionality of this routine and causes the generation of
4311         spureous additional errors.
4312
4313         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
4314         debugging information now generated by the compiler for fat-pointer
4315         types.
4316         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
4317         DWARF2/3.
4318         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
4319
4320 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4321
4322         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
4323         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
4324         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
4325         For a remote call to a function with a classwide return type, apply an
4326         E.4(18) check to the returned value.
4327         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
4328         stream attributes of the designated type of an RACW, as they are not
4329         dispatching primitive operations.
4330
4331 2007-06-06  Geert Bosch  <bosch@adacore.com>
4332
4333         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
4334         negative literal
4335         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
4336         positive
4337         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
4338         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
4339         positive
4340         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
4341
4342 2007-06-06  Javier Miranda  <miranda@adacore.com>
4343
4344         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
4345         attribute compiling package Ada.Tags under No_Run_Time_Mode.
4346
4347 2007-06-06  Javier Miranda  <miranda@adacore.com>
4348
4349         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
4350         deallocation of class-wide interface objects.
4351         (Expand_Dispatching_Constructor_Call): Take into account that if the
4352         result of the dispatching constructor is an interface type, the
4353         function returns a class-wide interface type; otherwise the returned
4354         object would be actual. The frontend previously accepted returning
4355         interface types because Expand_Interface_Actuals silently performed
4356         the management of the returned type "as if" it were a class-wide
4357         interface type.
4358         (Expand_Dispatching_Constructor_Call): Replace call to
4359         Make_DT_Access_Action by direct call to Make_Function_Call.
4360
4361 2007-06-06  Robert Dewar  <dewar@adacore.com>
4362             Ed Schonberg  <schonberg@adacore.com>
4363
4364         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
4365         compute masking constant, since we now set Esize properly to the
4366         underlying size.
4367         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
4368         to match the alignment.
4369         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
4370         packed arrays of 8 bits or less.
4371
4372         * freeze.adb (Freeze_Entity): When freezing the formals of a
4373         subprogram, freeze the designated type of a parameter of an access type
4374         only if it is an access parameter.
4375         Increase size of C convention enumeration object
4376         (Freeze_Entity, array type case): Make sure Esize value is properly
4377         adjusted for the alignment if it is known.
4378         (Freeze_Entity, array type case): When checking bit packed arrays for
4379         the size being incorrect, check RM_Size, not Esize.
4380         (Freeze_Record_Type): Check for bad discriminated record convention
4381         (In_Exp_Body): Return true if the body is generated for a subprogram
4382         renaming, either an attribute renaming or a renaming as body.
4383         (Check_Itype): If the designated type of an anonymous access component
4384         is a non-protected subprogram type, indicate that it is frozen, to
4385         prevent out-of-scope freeze node at some subsequent call.
4386         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
4387         only if the subprogram is neither imported nor exported, as well as the
4388         NCA descriptor class if the subprogram is exported.
4389
4390 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4391             Arnaud Charlet  <charlet@adacore.com>
4392             Robert Dewar  <dewar@adacore.com>
4393             Gary Dismukes  <dismukes@adacore.com>
4394
4395         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
4396         default initialization on an imported object, when there is no
4397         initialization call generated for it.
4398         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
4399         restriction
4400
4401         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
4402         Static_Elaboration_Desired.
4403         Remove pragma Thread_Body.
4404         Implement a new pragma No_Body
4405         Removes the Explicit_Overriding pragma
4406         Remove Optional_Overriding pragma
4407         (Prag): Deal with Universal_Aliasing.
4408         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
4409         Pragma_CIL_Constructor): New names.
4410
4411         * sem_cat.adb (Validate_Object_Declaration): An initialization that
4412         uses the equivalent aggregate of a type must be treated as an implicit
4413         initialization.
4414         (Get_Categorization): Check a unit for pragma Preelaborate only if it
4415         has none of the other categories.
4416         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
4417         to apply Import to an object renaming declaration.
4418
4419         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
4420         from a C++ class should be declared as limited and that it will be
4421         considererd limited.
4422         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
4423         should be declared as limited and that it will be considererd limited.
4424         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
4425         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
4426         (Analyze_Pragma): Deal with Universal_Aliasing.
4427         (Sig_Flags): Likewise.
4428         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
4429         (Overflow_Checks_Unsuppressed): New flag.
4430         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
4431         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
4432         case of JVM or .NET targets, and compiling user code.
4433         Add debugging convenience routine rv
4434
4435 2007-06-06  Robert Dewar  <dewar@adacore.com>
4436
4437         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
4438         are interface type.
4439         (Build_Elementary_Input_Call): For floating-point use right type in the
4440         absence of strange size or stream size clauses.
4441         (Build_Elementary_Write_Call): Same fix
4442         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
4443         set to value that does not match base type size.
4444
4445 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4446
4447         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
4448         object of a limited type can be initialized with a call to a function
4449         that returns in place. If the limited type has unknown discriminants,
4450         and the underlying type is a constrained composite type, build an actual
4451         subtype from the function call, as is done for private types.
4452         (Side_Effect_Free): An expression that is the renaming of an object or
4453         whose prefix is the renaming of a object, is not side-effect free
4454         because it may be assigned through the renaming and its value must be
4455         captured in a temporary.
4456         (Has_Controlled_Coextensions): New routine.
4457         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
4458         as is done for other limited types.
4459         (Non_Limited_Designated_Type): new predicate.
4460         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
4461         objects.
4462         Remove all handling of with_type clauses.
4463
4464         * par-ch10.adb: Remove all handling of with_type clauses.
4465
4466         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
4467         checksum if the main source could not be parsed.
4468         (Loat_Unit): When processing a child unit, determine properly whether
4469         the parent unit is a renaming when the parent is itself a child unit.
4470         Remove handling of with_type clauses.
4471
4472         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
4473         (Set_Is_Static_Coextension): New procedure.
4474         (Has_Local_Raise): New function
4475         (Set_Has_Local_Raise): New procedure
4476         (Renaming_Exception): New field
4477         (Has_Init_Expression): New flag
4478         (Delay_Finalize_Attach): Remove because flag is obsolete.
4479         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
4480         Remove all handling of with_type clauses.
4481         (Exception_Junk): Can now be set in N_Block_Statement
4482
4483 2007-06-06  Vincent Celier  <celier@adacore.com>
4484             Robert Dewar  <dewar@adacore.com>
4485
4486         * frontend.adb (Frontend): Return immediately if the main source could
4487         not be parsed, because of preprocessing errors.
4488
4489         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
4490         (Gnat1drv): Exit with errors if the main source could not be parsed,
4491         because of preprocessing errors.
4492         (Check_Rep_Info): New procedure
4493
4494 2007-06-06  Robert Dewar  <dewar@adacore.com>
4495
4496         * g-hesorg.ads, g-heasor.ads,
4497         g-busorg.ads, g-bubsor.ads: Update documentation
4498         GNAT.Heap/Bubble_Sort_G is now pure
4499
4500 2007-06-06  Robert Dewar  <dewar@adacore.com>
4501
4502         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
4503
4504 2007-06-06  Robert Dewar  <dewar@adacore.com>
4505             Ed Schonberg  <schonberg@adacore.com>
4506
4507         * g-comlin.ads, g-comlin.adb: 
4508         Add new warning for renaming of function return objects
4509
4510         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
4511         (Tree_Read): Use size of object instead of type'object_size, since the
4512         latter is incorrect for packed array types.
4513         (Tree_Write): Same fix
4514
4515         * opt.ads: Add new warning for renaming of function return objects
4516         (Generating_Code): New boolean variable used to indicate that the
4517         frontend as finished its work and has called the backend to process
4518         the tree and generate the object file.
4519         (GCC_Version): Is now private
4520         (Static_Dispatch_Tables): New constant declaration.
4521         (Overflow_Checks_Unsuppressed): New flag.
4522         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
4523         (List_Closure): New flag for gnatbind (-R)
4524         Zero_Formatting: New flag for gnatbind (-Z)
4525         (Special_Exception_Package_Used): New flag.
4526         (Warn_On_Unrepped_Components): New flag.
4527
4528         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
4529         unit is a compilation unit, rather than relying on its scope, so that
4530         Standard can be renamed.
4531         (Analyze_Object_Renaming): Add new warning for renaming of function
4532         return objects.
4533         Also reject attempt to rename function return object in Ada 83 mode.
4534         (Attribute_Renaming): In case of tagged types, add the body of the
4535         generated function to the freezing actions of the type.
4536         (Find_Type): A protected type is visible right after the reserved word
4537         "is" is encountered in its type declaration. Set the entity and type
4538         rather than emitting an error message.
4539         (New_Scope): Properly propagate Discard_Names to inner scopes
4540         (Check_Nested_Access): New procedure.
4541         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
4542         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
4543
4544         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
4545         Add new warning for renaming of function return objects
4546         (Check_References): Suppress warnings for objects whose type or
4547         base type has Warnings suppressed.
4548         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
4549         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
4550
4551 2007-06-06  Vincent Celier  <celier@adacore.com>
4552             Emmanuel Briot  <briot@adacore.com>
4553             Olivier Hainque  <hainque@adacore.com>
4554
4555         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
4556         absolute value of Header.Block_Size when displaying the freed physical
4557         memory in traces.
4558         (Allocate): Compute Storage_Address using Integer_Address, not
4559         Storage_Offset, because the range of Storage_Offset may not be large
4560         enough.
4561         (Configure): New parameter Low_Level_Traces
4562         (Allocate, Deallocation, Free_Physically): Added low-level traces
4563         (Configure): new parameter Errors_To_Stdout.
4564         (Output_File): new subprogram
4565         (Deallocate, Dereference): Send error messages to the proper stream
4566         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
4567         documented. Previous code would send it to the current output file
4568         defined in GNAT.IO, which might not be stdout
4569         (Is_Valid): Adjust comment to mention that a positive reply means that
4570         Header_Of may be used to retrieve the allocation header associated with
4571         the subprogram Storage address argument. Return False early if this
4572         address argument is misaligned.
4573
4574 2007-06-06  Vincent Celier  <celier@adacore.com>
4575
4576         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
4577         switch -P
4578         (ASIS_Main): New global variable
4579         (Get_Closure): New procedure
4580         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
4581         check, metric or pretty. Call Get_Closure in this case.
4582         (Check_Files): For GNAT LIST, check all sources of all projects when
4583         All_Projects is True.
4584         (GNATCmd): Accept -U for GNAT LIST
4585
4586 2007-06-06  Vincent Celier  <celier@adacore.com>
4587
4588         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
4589         has been specified
4590         Correct error message when invocation of the linker fails
4591         Add explicit size clause for the C imported variables
4592         Object_List_File_Supported and Using_GNU_Linker to emphasize that
4593         we expect char size.
4594         Read target parameters earlier, since this is needed to set
4595         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
4596         targets.
4597
4598 2007-06-06  Vincent Celier  <celier@adacore.com>
4599
4600         * gnatls.adb: 
4601         Add 3 spaces before the default project directory when displaying
4602         the project search path.
4603         Add new command line switch '-l' to display license information.
4604
4605 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
4606
4607         * gmem.c: Add support for timestamps on memory operations.
4608
4609         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
4610         operations (not used currently, just foundation for future
4611         enhancements). Add possibility to perform full dump of gmem.out file.
4612         (Print_Back_Traces): Declare accesses to root arrays constants since
4613         they aren't modified.
4614         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
4615
4616 2007-06-06  Vincent Celier  <celier@adacore.com>
4617
4618         * gnatsym.adb: Update Copyright notice
4619         (Parse_Cmd_Line): Accept new switch -D
4620         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
4621          file.
4622
4623         * prj.ads (Policy): New policy Direct
4624         (Yes_No_Unknown): New enumeration type
4625         (Project_Data): New component Libgnarl_Needed
4626
4627         * prj-nmsc.adb (Check_For_Source): When recording a source file make
4628         use the untouched pathname casing.
4629         (Get_Directories): Ensure that the Display_Exec_Directory is using the
4630         proper casing on non case-sensitive platforms like Windows.
4631         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
4632         on all platforms, as it is not possible to know which one is allowed
4633         before processing the project files.
4634         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
4635         specified when symbol policy is Direct. Check that when there is a
4636         symbol file defined (either by default or with attribute
4637         Library_Symbol_File) it is not the same as the reference symbol file.
4638         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
4639         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
4640         extending projects.
4641         (Record_Ada_Source): Record a source that has been locally removed in an
4642         imported project.
4643
4644         * symbols.ads (Policy): New policy Direct
4645
4646         * symbols-vms.adb (Initialize): Take new policy Direct in case
4647         statement
4648
4649 2007-06-06  Vincent Celier  <celier@adacore.com>
4650
4651         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
4652         Correct obvious bug (return Dir; instead of return Directory;).
4653         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
4654
4655 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4656
4657         * g-pehage.adb (Produce): Open output files in Binary mode, so that
4658         they have UNIX line endings (LF only) even on Windows, and thus pass
4659         all GNAT style checks.
4660
4661 2007-06-06  Emmanuel Briot  <briot@adacore.com>
4662
4663         * g-regpat.adb (Quote): Fix improper quoting of '.'
4664
4665 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4666
4667         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
4668         default, set False on a per-runtime basis.
4669         (Need_Netdb_Buffer): New constant.
4670
4671         * g-socket.ads, g-socket.adb: Import new package
4672         GNAT.Sockets.Thin.Task_Safe_NetDB.
4673         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
4674         binding to obtain proper message.
4675         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
4676         Replace various occurrences of Arry (Arry'First)'Address with the
4677         equivalent Arry'Address (GNAT always follows implementation advice from
4678         13.3(14)).
4679         (Get_Host_By_Address, Get_Host_By_Name,
4680         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
4681         instead, rely on platform-specific task safe netdb operations provided
4682         by g-socthi.
4683
4684         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
4685         parameter Process_Blocking_IO.
4686         (Host_Error_Messages): Add stub body.
4687         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4688         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
4689         Safe_Getservbyport): Move functions into new child package
4690         Task_Safe_NetDB.
4691         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
4692         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
4693         (In_Addr): Add alignment clause.
4694
4695 2007-06-06  Robert Dewar  <dewar@adacore.com>
4696
4697         * g-trasym.ads, g-traceb.ads: Update list of supported targets
4698         Add note about symbolic traceback
4699
4700 2007-06-06  Pascal Obry  <obry@adacore.com>
4701
4702         * hostparm.ads (Normalized_CWD): Use the host directory separator
4703         instead of the hardcoded forward slash which is not the proper
4704         character on Windows for example.
4705         (Java_VM): Removed.
4706
4707 2007-06-06  Vincent Celier  <celier@adacore.com>
4708             Arnaud Charlet  <charlet@adacore.com>
4709
4710         * a-clrefi.adb, a-clrefi.ads: New files
4711
4712         * impunit.adb: Add s-os_lib in the list of user visible units.
4713         (Non_Imp_File_Names_95): Add a-clrefi to this list
4714         Remove obsolete run-time entries.
4715         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
4716          "a-exetim" -- Ada.Execution_Time
4717          "a-extiti" -- Ada.Execution_Time.Timers
4718
4719         * mlib-prj.ads, mlib-prj.adb
4720         (Build_Library): Use untouched object dir and library dir. At the
4721         same time makes sure that the checks are done using the canonical
4722         form. Removes hard-coded directory separator and use the proper host
4723         one instead.
4724         (Process_Project): Do not look in object directory to check if libgnarl
4725         is needed for a library, if there is no object directory.
4726         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
4727         linking.
4728         (Build_Library): When invoking gnatbind, use a response file if the
4729         total size of the arguments is too large.
4730
4731         * Makefile.rtl: (g-sttsne): New object file.
4732         Add entry for a-clrefi, s-utf_32, System.Exceptions
4733
4734         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
4735         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
4736         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
4737         Change g-string to s-string, g-os_lib to s-os_lib
4738         Change all g-utf_32 references to s-utf_32
4739
4740 2007-06-06  Tristan Gingold  <gingold@adacore.com>
4741             Olivier Hainque  <hainque@adacore.com>
4742
4743         * init.c: Do not adjust IP of an imported VMS exception of ia64.
4744         LIB$STOP is called to raise an exception and the IP of the exception
4745         is the instruction right after the call.
4746         (__gnat_adjust_context_for_raise, AIX): Implement.
4747         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
4748          adjust_context_for_raise before Raise_From_Signal_Hanler.
4749         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
4750         siginfo is passed to the handler, necessary to let the zcx propagation
4751         engine unwind past it.
4752
4753 2007-06-06  Olivier Hainque  <hainque@adacore.com>
4754
4755         * initialize.c (__gnat_initialize for vxworks):  Update documentation
4756         on the ZCX support, using different sets of crtstuff objects than with
4757         GCC 3.4.
4758
4759 2007-06-06  Robert Dewar  <dewar@adacore.com>
4760
4761         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
4762         spec from body
4763         (Layout_Type): Fix recomputation of size from alignment.
4764
4765 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4766             Javier Miranda  <miranda@adacore.com>
4767
4768         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
4769         association in an instance.
4770         (Copy_Generic_Node): If the node is a string literal, no need to copy
4771         its descendants.
4772         (Is_Generic_Formal): For a formal subprogram, the declaration is the
4773         grandparent of the entity.
4774         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
4775         to simplify handling of formal interfaces that derive from other formal
4776         interfaces.
4777         (Instantiate_Subprogram_Body): The defining unit name of the body of
4778         the instance should be a defining identifier.
4779         (Install_Formal_Packages): make global to the package, for use in
4780         instantiations of child units.
4781         (Analyze_Package_Instantiation): Do not attempt to set information on an
4782         enclosing master of an entry when expansion is disabled.
4783         (Instantiate_Type): If the actual is a tagged synchronized type and the
4784         generic ancestor is an interface, create a generic actual for the
4785         corresponding record.
4786         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
4787         declaration, to ensure that the interface list is processed correctly.
4788         (Inline_Instance_Body): If enclosing scope is an instance body, remove
4789         its entities from visibiility as well.
4790         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
4791         given with a named association, analyze the expression only, not the
4792         discriminant association itself.
4793         (Reset_Entity): If the analysis of a selected component is transformed
4794         into an expanded name in the prefix of a call with parameters, do not
4795         transform the original node into an expanded name, to prevent visibility
4796         errors in the case of nested generics.
4797         (Check_Private_View): For an array type, check whether the index types
4798         may need exchanging.
4799
4800 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
4801             Vincent Celier  <celier@adacore.com>
4802
4803         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
4804         since both are separated.
4805         Add support for imported CIL packages.
4806         Add further special handling of "value_type" for CIL.
4807         Add special handling of pragma Import for CIL.
4808
4809         * make.ads, make.adb: When switch -eS is used, direct all outputs to
4810         standard output instead of standard error, except errors.
4811         (Absolute_Path): Use untouched casing for the parent directory.
4812         (Add_Library_Search_Dir): Use the untouched directory name.
4813         (Add_Source_Search_Dir): Idem.
4814         (Change_To_Object_Directory): Update output to use proper casing.
4815         (Create_Binder_Mapping_File): Use the untouched filename to set
4816         ALI_Name.
4817         (Gnatmake): Use untouched library and executable directory names.
4818         (Insert_Project_Sources): Use untouched filename for spec and body.
4819         (Is_In_Object_Directory): Use untouched object directory.
4820         (Mark_Directory): Idem.
4821         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
4822         contains the non-canonical filename in all cases.
4823         (Change_To_Object_Directory): In verbose mode, display the name of the
4824         object directory we're changing to.
4825         (Compile_Sources): Make sure, when a project file is used, to compile
4826         the body of the unit, when there is one, even when only the spec is
4827         recorded in an ALI file.
4828         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
4829         spec to the body.
4830         (Report_Compilation_Failed): New procedure
4831         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
4832         procedures moved from the spec to the body.
4833         (Extract_Failure): Removed, not used
4834         Replace explicit raises of exception Bind_Failed and Link_Failed with
4835         calls to Make_Failed with the proper message.
4836         Replace explicit raises of exception Compilation_Failed with calls to
4837         procedure Report_Compilation_Failed.
4838         (Initialize): Create mapping files unconditionally when using project
4839         files.
4840
4841         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
4842         Pragma_CIL_Constructor): New names.
4843
4844         * targparm.ads, targparm.adb
4845         (Compiler_System_Version): Removed, no longer used.
4846         (Get_Target_Parameters): Relax checks on system.ads validity. Add
4847         handling of two new system flags: JVM and CLI.
4848
4849 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
4850             Arnaud Charlet  <charlet@adacore.com>
4851
4852         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
4853         time, use the default s-interr body that provides interrupt support
4854         based on signals.
4855         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
4856         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
4857         g-soccon.ads, and s-taprop.adb for the marte run time.
4858         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
4859         timers are supported on marte.
4860         (EH_MECHANISM for marte): Do not use ZCX.
4861         (THREADSLIB for marte): Use -lmarte.
4862         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
4863         Add mlib-tgt-specific.o to gnatmake objects
4864         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
4865         longer of MLib.Tgt.
4866         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
4867         6, either kernel or rtp, use a specialized version of s-osinte.ads.
4868
4869 2007-06-06  Pascal Obry  <obry@adacore.com>
4870
4871         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
4872
4873 2007-06-06  Vincent Celier  <celier@adacore.com>
4874
4875         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
4876         separator, use instead the proper host directory separator.
4877         (Copy_ALI_Files): Make sure that an already existing ALI file in the
4878         ALI copy dir is writable, before doing the copy.
4879
4880         * mlib-utl.ads, mlib-utl.adb: 
4881         (Gcc): If length of command line is too long, put the list of object
4882         files in a response file, if this is supported by the platform.
4883         (Ar): If invocation of the archive builder is allowed to be done in
4884         chunks and building it in one shot would go above an OS dependent
4885         limit on the number of characters on the command line, build the archive
4886         in chunks.
4887
4888 2007-06-06  Vincent Celier  <celier@adacore.com>
4889
4890         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
4891         of specified object file is not equal to base name of source.
4892
4893 2007-06-06  Javier Miranda  <miranda@adacore.com>
4894             Hristian Kirtchev  <kirtchev@adacore.com>
4895             Ed Schonberg  <schonberg@adacore.com>
4896
4897         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
4898         the full type declaration.
4899         (Analyze_Component_Declaration): Add local variable E to capture the
4900         initialization expression of the declaration. Replace the occurences of
4901         Expression (N) with E.
4902         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
4903         limited interface object with a function call.
4904         (Array_Type_Declaration): If the declaration lacks subtype marks for
4905         indices, create a simple index list to prevent cascaded errors.
4906         (Is_Null_Extension): Ignore internal components created for secondary
4907         tags when checking whether a record extension is a null extension.
4908         (Check_Abstract_Interfaces): Add missing support for interface subtypes
4909         and generic formals.
4910         (Derived_Type_Declaration): Add missing support for interface subtypes
4911         and generic formals.
4912         (Analyze_Object_Declaration): If an initialization expression is
4913         present, traverse its subtree and mark all allocators as static
4914         coextensions.
4915         (Add_Interface_Tag_Component): When looking for components that may be
4916         secondary tags, ignore pragmas that can appear within a record
4917         declaration.
4918         (Check_Abstract_Overriding): an inherited function that dispatches on
4919         result does not need to be overriden if the controlling type is a null
4920         extension.
4921         (Mentions_T): Handle properly a 'class attribute in an anonymous access
4922         component declaration, when the prefix is an expanded name.
4923         (Inherit_Component): If the derivation is for a private extension,
4924         inherited components remain visible and their ekind should not be set
4925         to Void.
4926         (Find_Type_Of_Object): In the case of an access definition, always set
4927         Is_Local_Anonymous_Access. We were previously not marking the anonymous
4928         access type of a return object as a local anonymous type.
4929         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
4930         range with character literal bounds.
4931         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
4932         (Access_Subprogram_Declaration): Indicate that the type declaration
4933         depends on an incomplete type only if the incomplete type is declared
4934         in an open scope.
4935         (Analyze_Subtype_Declaration): Handle properly subtypes of
4936         synchronized types that are tagged, and that may appear as generic
4937         actuals.
4938         (Access_Subprogram_Declaration): An anonymous access to subprogram can
4939         appear as an access discriminant in a private type declaration.
4940         (Add_Interface_Tag_Components): Complete decoration of the component
4941         containing the tag of a secondary dispatch table and the component
4942         containing the offset to the base of the object (this latter component
4943         is only generated when the parent type has discriminants --as documented
4944         in this routine).
4945         (Inherit_Components): Use the new decoration of the tag components to
4946         improve the condition that avoids inheriting the components associated
4947         with secondary tags of the parent.
4948         (Build_Discriminanted_Subtype): Indicate to the backend that the
4949         size of record types associated with dispatch tables is known at
4950         compile time.
4951         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
4952         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
4953         to include task, protected, and synchronized interfaces as limited
4954         interfaces.
4955         (Process_Discriminants): Remove the setting of
4956         Is_Local_Anonymous_Access on the type of (anonymous) access
4957         discriminants of nonlimited types.
4958         (Analyze_Interface_Type_Declaration): Complete the decoration of the
4959         class-wide entity it is is already present. This situation occurs if
4960         the limited-view has been previously built.
4961         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
4962         field.
4963         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
4964         Related_Interface.
4965
4966 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4967
4968         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
4969         of the type that specify the position of interface tags when the type
4970         inherits discriminated array components from the parent type.
4971         If a component is initialized with a box, check for the presence of a
4972         default expression in its declaration before using its default
4973         initialization procedure.
4974         (Resolve_Record_Aggregate): If a component is box-initialized, and the
4975         component type has a discriminants, create a partial aggregate for it
4976         by copying the discriminants of the component subtype.
4977         Reject attempt to initialize a discriminant with a box.
4978         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
4979         associated with dispatch tables is known at compile time.
4980         (Get_Value): If an association in a record aggregate has a box
4981         association, and the corresponding record component has a default
4982         expression, always copy the default expression, even when the
4983         association has a single choice, in order to create a proper
4984         association for the expanded aggregate.
4985
4986 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4987             Robert Dewar  <dewar@adacore.com>
4988
4989         * par-ch12.adb (P_Generic_Associations): The source position of an
4990         Others association is that of the others keyword, not that of the token
4991         that follows the box.
4992         (P_Formal_Type_Definition): Handle formal access types that carry a
4993         not null indicator.
4994
4995         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
4996         multiple identifier are present, save Scan_State before scanning the
4997         colon, to ensure that separate trees are constructed for each
4998         declaration.
4999         (P_Identifier_Declarations): For object declaration, set new flag
5000         Has_Init_Expression if initialization expression present.
5001         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
5002         Improve NOT NULL error messages
5003
5004 2007-06-06  Robert Dewar  <dewar@adacore.com>
5005
5006         * par-ch4.adb: (P_Name): Recover from literal used as name
5007
5008 2007-06-06  Vincent Celier  <celier@adacore.com>
5009
5010         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
5011         defaulted to False.
5012         In the "not" case, recursive call with Complemented set to True.
5013         Do not allow "or" or "and" operators when Complemented is True.
5014
5015 2007-06-06  Vincent Celier  <celier@adacore.com>
5016
5017         * prj.adb (Project_Empty): Gives default value for new component
5018         Libgnarl_Needed
5019
5020         * prj-attr.ads: Minor reformatting
5021
5022         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
5023         directory using the untouched casing.
5024         (For_All_Source_Dirs): Idem.
5025
5026         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
5027         directories specified with switches -aP.
5028         (Add_Search_Project_Directory): New procedure
5029         (Initialize_Project_Path): Put the directories in table
5030         Search_Directories in the project search path.
5031         (Initialize_Project_Path): For VMS, transform into canonical form the
5032         project path.
5033
5034 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5035
5036         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
5037         true if configurable run-time or No_Run_Time is set.
5038         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
5039         processing an unit which is not the one being compiled.
5040
5041 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5042
5043         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
5044         Replace UC by Ada.UC
5045
5046         * s-bitops.adb: Get rid of System.Pure_Exceptions.
5047         Replace UC by Ada.UC
5048
5049 2007-06-06  Robert Dewar  <dewar@adacore.com>
5050
5051         * scng.adb: (Check_End_Of_Line): Deal with very long lines
5052
5053 2007-06-06  Robert Dewar  <dewar@adacore.com>
5054
5055         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
5056         Remove no longer used nodes.
5057
5058 2007-06-06  Javier Miranda  <miranda@adacore.com>
5059             Ed Schonberg  <schonberg@adacore.com>
5060             Robert Dewar  <dewar@adacore.com>
5061
5062         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
5063         on obsolescent withed unit in case of limited-withed units.
5064         (Analyze_Compilation_Unit): Add guard to code that removed an
5065         instantiation from visibility, to prevent compiler aborts when
5066         instantiation is abandoned early on.
5067         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
5068         current unit being analyzed, and Distinguish local incomplete types
5069         from limited views of types declared elsewhere.
5070         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
5071         to state that the class-wide entity is shared by the limited-view
5072         and the full-view.
5073         (Analyze_With_Clause): Improve placement of flag for case of
5074         unimplemented unit.
5075         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
5076         manner similar to GNAT.Current_Exception. This is a violation of
5077         restriction (No_Exception_Propagation), and also inhibits the
5078         optimization of local raise to goto.
5079         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
5080         and if so set Most_Recent_Exception_Used flag in Opt, and also check
5081         for violation of restriction No_Exception_Propagation.
5082
5083 2007-06-06  Javier Miranda  <miranda@adacore.com>
5084             Hristian Kirtchev  <kirtchev@adacore.com>
5085             Gary Dismukes  <dismukes@adacore.com>
5086
5087         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
5088         use of entity Exception_Occurrence if it is not available in the
5089         target run-time.
5090
5091         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
5092         concurrent types are declared within an Ada 2005 generic, build their
5093         corresponding record types since they are needed for overriding-related
5094         semantic checks.
5095         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
5096         protected type does not implement a task interface or a nonlimited
5097         interface.
5098         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
5099         type does not implement a protected interface or a nonlimited interface.
5100         (Single_Task_Declaration, Single_Protected_Declaration): use original
5101         entity for variable declaration, to ensure that debugging information
5102         is correcty generated.
5103         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
5104         routines if the expander is not active.
5105         (Analyze_Task_Body): Mark all handlers to stop optimization of local
5106         raise, since special things happen for task exception handlers.
5107
5108         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
5109         concurrent types declared within a generic.
5110         (Check_Dispatching_Operation): Do not emit warning about late interface
5111         operations in the context of an instance.
5112         (Check_Dispatching_Call): Remove restriction against calling a
5113         dispatching operation with a limited controlling result.
5114         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
5115         Register_Interface_DT_Entry by calls to Register_Primitive.
5116         (Check_Dispatching_Formals): Handle properly a function with a
5117         controlling access result.
5118
5119 2007-06-06  Robert Dewar  <dewar@adacore.com>
5120             Arnaud Charlet  <charlet@adacore.com>
5121
5122         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
5123         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
5124         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
5125         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
5126         message when using a VM, since this attribute is not supported.
5127         (Analyze_Record_Representation_Clause): Give unrepped component warnings
5128
5129         * usage.adb: Add new warning for renaming of function return objects
5130         Indicate that -gnatwp and -gnatwP concern front-end inlining
5131         Add line for -gnatyg
5132         Add usage information for -gnatw.c/C
5133
5134 2007-06-06  Robert Dewar  <dewar@adacore.com>
5135             Ed Schonberg  <schonberg@adacore.com>
5136
5137         * sem_ch5.adb
5138         (Find_Var): Do not consider function call in test for infinite loop
5139         warning if warnings set off for function entity.
5140         (One_Bound): Do not create a temporary for a loop bound if it is a
5141         character literal.
5142         (Analyze_Assignment): Traverse the right hand side of an assignment and
5143         mark all allocators as static coextensions.
5144         (Analyze_Assignment): Exempt assignments involving a dispatching call
5145         to a function with a controlling access result from the check requiring
5146         the target to be class-wide.
5147
5148 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5149             Ed Schonberg  <schonberg@adacore.com>
5150             Robert Dewar  <dewar@adacore.com>
5151             Javier Miranda  <miranda@adacore.com>
5152
5153         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
5154         chain of coextensions when an allocator serves as the root of such a
5155         chain.
5156         (Propagate_Coextensions): Remove the test for the root being an
5157         allocator.
5158         (Resolve_Allocator): Add condition to ensure that all future decoration
5159         occurs on an allocator node. Add processing and cleanup for static
5160         coextensions.
5161         (Valid_Conversion): If the operand type is the limited view of a
5162         class-wide type, use the non-limited view is available to determine
5163         legality of operation.
5164         (Ambiguous_Character): move to spec, for use elsewhere.
5165         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
5166         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
5167         character literals.
5168         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
5169         Do_Division_Check flag explicitly.
5170         (Resolve_Actuals): If the actual is of a synchronized type, and the
5171         formal is of the corresponding record type, this is a call to a
5172         primitive operation of the type, that is declared outside of the type;
5173         the actual must be unchecked-converted to the type of the actual
5174         (Resolve_Call): Kill all current values for any subprogram call if
5175         flag Suppress_Value_Tracking_On_Call is set.
5176         (Resolve_Type_Conversion): Generate error message the the operand
5177         or target of interface conversions come from a limited view.
5178         (Check_Infinite_Recursion): Ignore generated calls
5179         (Check_Allocator_Discrim_Accessibility): New procedure for checking
5180         that an expression that constrains an access discriminant in an
5181         allocator does not denote an object with a deeper level than the
5182         allocator's access type.
5183         (Resolve_Allocator): In the case of an allocator initialized by an
5184         aggregate of a discriminated type, check that associations for any
5185         access discriminants satisfy accessibility requirements by calling
5186         Check_Allocator_Discrim_Accessibility.
5187         (Resolve_Equality_Op): Handle comparisons of anonymous access to
5188         subprogram types in the same fashion as other anonymous access types.
5189         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
5190         message that is not a continuation message.
5191         (Resolve_Type_Conversion): Add missing support for conversion to
5192         interface type.
5193         (Resolve_Actuals): Introduce a transient scope around the call if an
5194         actual is a call to a function returning a limited type, because the
5195         resulting value must be finalized after the call.
5196         (Resolve_Actuals): If the call was given in prefix notations, check
5197         whether an implicit 'Access reference or implicit dereference must be
5198         added to make the actual conform to the controlling formal.
5199
5200 2007-06-06  Robert Dewar  <dewar@adacore.com>
5201             Javier Miranda  <miranda@adacore.com>
5202
5203         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
5204         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
5205         overriding of an inherited private subprogram now there is no need to
5206         inherit its dispatching slot and reduce the size of the dispatch table.
5207         Set_All_DT_Position now ensures that the same slot is now assigned to
5208         both entities. This is required to statically build the dispatch table.
5209         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
5210         of calling Set_All_DT_Position to re-evaluate the position of the
5211         entries in the dispatch table. Such reevaluation is not desired if
5212         the tagged type is already frozen.
5213
5214 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5215             Gary Dismukes  <dismukes@adacore.com>
5216             Robert Dewar  <dewar@adacore.com>
5217             Javier Miranda  <miranda@adacore.com>
5218
5219         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
5220         reference acts as an lvalue when the attribute name modifies the prefix
5221         (Is_Coextension_Root): New routine.
5222         (Mark_Static_Coextensions): New routine.
5223         (Type_Access_Level): Revise code for checking the level of the
5224         anonymous access type of a return object.
5225         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
5226         (Matches_Prefixed_View_Profile): Remove the no longer necessary
5227         retrieval of the corresponding controlling record type.
5228         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
5229         concurrent types declared within a generic as well as class wide types.
5230         Emit a mode incompatibility error whenever a protected entry or routine
5231         override an interface routine whose first parameter is not of mode
5232         "out", "in out" or access to variable.
5233         (Overrides_Synchronized_Primitive): Rename to
5234         Find_Overridden_Synchronized_Primitive.
5235         (Collect_Interface_Components): New subprogram that collects all the
5236         components of a tagged record containing tags of secondary dispatch
5237         tables.
5238         (Add_Global_Declaration): New procedure
5239         (Abstract_Interface_List): Handle properly the case of a subtype of a
5240         private extension.
5241         (Type_Access_Level): In the case of a type whose parent scope is a
5242         return statement, call Type_Access_Level recursively on the enclosing
5243         function's result type to determine the level of the return object's
5244         type.
5245         (Build_Elaboration_Entity): Build name of elaboration entity from the
5246         scope chain of the entity, rather than the unit name of the file name.
5247         (Check_Nested_Access): New procedure.
5248         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
5249         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
5250         (Get_Renamed_Entity): Utility routine for performing common operation
5251         of chasing the Renamed_Entity field of an entity.
5252
5253 2007-06-06  Robert Dewar  <dewar@adacore.com>
5254
5255         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
5256         elaboration model
5257         (Check_A_Call): Add check for entry call which was causing blowup
5258
5259 2007-06-06  Olivier Hainque  <hainque@adacore.com>
5260
5261         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
5262         special code on ia64-vms to handle major incompatibilities between the
5263         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
5264         this routine with a very different set of arguments and expectations on
5265         the return value.
5266
5267 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5268
5269         * socket.c (__gnat_close_signalling_fd): New function.
5270         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
5271         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
5272         New supporting functions for task safe Netdb operations.
5273
5274 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5275             Olivier Hainque  <hainque@adacore.com>
5276
5277         * a-except-2005.ads, a-except-2005.adb
5278         (Raise_From_Controlled_Operation): New procedure in
5279         (private part of) Ada.Exceptions (standard runtime version). Used to
5280         provide informational exception message when Program_Error is raised as
5281         a result of an Adjust or Finalize operation propagating an exception.
5282         (Rmsg_28): Fix description for E.4(18) check.
5283         (Raise_Current_Excep): Call Debug_Raise_Exception just before
5284         propagation starts, to let debuggers know about the event in a reliable
5285         fashion.
5286         Take the address of E and dereference to make sure it is homed on stack
5287         and prevent the stores from being deleted, necessary for proper
5288         debugger behavior on "break exception" hits.
5289         (Local_Raise): Moved to System.Exceptions
5290
5291         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
5292         exception message from the current occurrence and raise Program_Error
5293         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
5294
5295 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
5296             Arnaud Charlet  <charlet@adacore.com>
5297
5298         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
5299         lock, if needed.
5300
5301         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
5302         priority associated to a lock.
5303
5304         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
5305         assertion to take into account case of no abort restriction.
5306         (Initialize_Protection_Entries): Add initialization for the field
5307         New_Ceiling associated to the protected object.
5308         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
5309         needed.
5310
5311         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
5312         since this function needs to be set consistently with Update_Exception.
5313
5314         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
5315         since this function needs to be set consistently with Update_Exception.
5316
5317         * s-taskin.ads: Update comments on
5318         Interrupt_Server_Blocked_On_Event_Flag.
5319         (Unbind_Handler): Fix handling of server_task wakeup
5320         (Server_Task): Set self's state so that Unbind_Handler can take
5321         appropriate actions.
5322         (Common_ATCB): Now use a constant from System.Parameters to determine
5323         the max size of the Task_Image field.
5324
5325         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
5326         Initialize_Analyzer function.
5327         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
5328         take into account case of no abort restriction.
5329         ([Vulnerable_]Complete_Master): Modify assertion.
5330
5331         * s-tataat.adb (Finalize): Use the nestable versions of
5332         Defer/Undefer_Abort.
5333
5334         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
5335
5336         * s-tpobop.ads: Update comments.
5337
5338         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
5339         of locking the object manually, to avoid inconsistencies between
5340         Lock/Unlock_Entry assertions.
5341
5342         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
5343         terminating
5344         application and System.Parameters.No_Abort is True.
5345         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
5346         (Unbind_Handler): Fix handling of server_task wakeup
5347         (Server_Task): Set self's state so that Unbind_Handler can take
5348         appropriate actions.
5349
5350 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5351
5352         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
5353         declarations instead of an explicit null body, for conciseness.
5354
5355 2007-06-06  Robert Dewar  <dewar@adacore.com>
5356
5357         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
5358         illegal aggregate and the type is still Any_Composite.
5359         (Subtypes_Statically_Match): Fix problem of empty discriminant list
5360
5361 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5362
5363         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
5364         to prevent subsequent expansion.
5365
5366 2007-06-06  Robert Dewar  <dewar@adacore.com>
5367
5368         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
5369
5370 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5371             Robert Dewar  <dewar@adacore.com>
5372
5373         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
5374         exceptions.
5375         (Write_Itype): Handle case of string literal subtype, which
5376         comes up in this context.
5377         (Update_Itype): when debugging expanded code, update sloc of itypes
5378         associated with defining_identifiers and ranges, for gdb use.
5379         (Sprint_Node_Actual): Add static keyword to object or exception
5380         declaration output if Is_Statically_Allocated is True.
5381         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
5382         or task body, so that the tree carries the proper Sloc information for
5383         debugging use.
5384         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
5385
5386 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5387
5388         * s-secsta.adb (Chunk): Ensure this object has a static size known at
5389         compile time, to avoid dynamic memory allocation
5390         (Elaboration code): Only use dynamic memory allocation when needed.
5391
5392 2007-06-06  Quentin Ochem  <ochem@adacore.com>
5393
5394         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
5395         "Overflow_Guard".
5396         (Stack_Analyzer): Added field "Overflow_Guard"
5397         (Task_Result): Added field "Overflow_Guard".
5398         (Index_Str): New constant.
5399         (Task_Name_Str): New constant.
5400         (Actual_Size_Str): New constant.
5401         (Pattern_Array_Element_Size): New constant.
5402         (Get_Usage_Range): New subprogram.
5403         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
5404         Now align the output.
5405         Added comments.
5406         (Initialize): Added value for Overflow_Guard.
5407         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
5408         Update the value of the overflow guard according to the actual
5409         beginning of the pattern array.
5410         (Initialize_Analyzer): Added parameter Overflow_Guard.
5411         Take this parameter into accound when computing the max size.
5412         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
5413         (Report_Result): Removed extra useless procedure.
5414         Updated call to Output_Result.
5415         Moved full computation of the Task_Result here.
5416
5417 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5418
5419         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
5420         Thread_Blocking_IO, always True by default, set False on a per-runtime
5421         basis.
5422         Add Windows-specific constants
5423         Add new constant Need_Netdb_Buffer.
5424         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
5425         not, whether to use getXXXbyYYY_r.
5426
5427         * gsocket.h: Add new constant Need_Netdb_Buffer.
5428         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
5429         not, whether to use getXXXbyYYY_r.
5430
5431 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5432
5433         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
5434         than their first call.
5435         Add type Dummy_Communication_Block used in the generation of the pre-
5436         defined dispatching primitive _disp_asynchronous_select.
5437         (Storage_Element): Put Pragma Universal_Aliasing on it.
5438
5439 2007-06-06  Vincent Celier  <celier@adacore.com>
5440
5441         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
5442         function.
5443
5444         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
5445         letter if it is not followed by a '/' or a '\'.
5446         (Windows): New Boolean function
5447
5448         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
5449         Ada 2005.
5450         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
5451         drive letter.
5452         (Containing_Directory): Raise Use_Error when the directory is a root
5453         directory.
5454         (Extension): When returning the result, use a conversion to Result_Type,
5455         not a qualification.
5456
5457 2007-06-06  Robert Dewar  <dewar@adacore.com>
5458
5459         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
5460         (Set_Style_Check_Options): Recognize new -gnatyg style switch
5461
5462         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
5463         Warn_On_Non_Local_Exception to False, to turn off warnings for
5464         No_Exception_Propagation in ZFP runtime.
5465         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
5466         back-ends.
5467         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
5468
5469 2007-06-06  Vincent Celier  <celier@adacore.com>
5470
5471         * switch-b.adb (Scan_Binder_Switches): Add processing for new
5472         switches -R and -Z
5473
5474         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
5475         (Scan_Make_Switches): Recognize new switch -aP
5476
5477 2007-06-06  Matthew Gingell  <gingell@adacore.com>
5478             Jose Ruiz  <ruiz@adacore.com>
5479
5480         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
5481         VxWorks task descriptor in the Ada run time, call a C subprogram
5482         (__gnat_get_stack_info) that extracts the required information.
5483
5484         * sysdep.c: Back out temporary lynxos workaround.
5485         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
5486         time the stack information associated to the currently executing task.
5487         Only VxWorks systems require this function.
5488
5489 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5490
5491         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
5492         add the stack bias if the offset is computed from a frame address.
5493         (__gnat_backtrace): Adjust for above change.
5494
5495 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5496
5497         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
5498         PE_Non_Transportable_Actual.
5499         (By_Descriptor_Last): New constant.
5500         (By_Copy_Return): Likewise.
5501
5502 2007-06-06  Vincent Celier  <celier@adacore.com>
5503
5504         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
5505         is.
5506
5507         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
5508         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
5509         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
5510         Add missing comment for /OPTIMIZE=SPACE
5511         Add entry for OPTIMIZE=SPACE
5512         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
5513         Add documentation for new qualifiers corresponding to -gnatw.c/.C
5514
5515 2007-06-06  Vincent Celier  <celier@adacore.com>
5516             Robert Dewar  <dewar@adacore.com>
5517
5518         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
5519         -gnatw.C)
5520
5521         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
5522         Document gnatbind switch -a
5523         (case Constructions): Document that variables declarations are allowed
5524         for previously declared variables.
5525         Fix external lib project example
5526         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
5527         Indicate that "#if not X or Y then" is not allowed in input files to
5528         gnatprep.
5529         Document gnatw.x and gnatw.X warning flags
5530         Mention -Winline switch to activate warnings when back-end inlining is
5531         ineffective.
5532         Add gnatcheck rule descriptions
5533         Describe how to use the GNAT driver to call a tool on a closure.
5534         Describe how to run project-wide checks or metrics.
5535         Document gnatbind's -R option
5536         Updated to account for Ada 2005 support
5537
5538         * gnat_rm.texi (Case Construction): Allow variable declarations for
5539         previously declared variables.
5540         (Representation Clauses and Pragmas): Lift restriction on alignment
5541         clauses for record types.
5542         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
5543         Document No_Exception_Propagation restriction
5544         Document No_Body pragma
5545         Updated to account for Ada 2005 support; corrected some typos
5546         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
5547
5548         * gnat-style.texi: Make it clear that we never use mode IN for
5549         procedures or functions
5550
5551         * ug_words: Add entries for -gnatw.x and -gnatw.X
5552         Add entries for -gnatw.c/.C
5553
5554 2007-06-06  Pascal Obry  <obry@adacore.com>
5555             Vincent Celier  <celier@adacore.com>
5556
5557         * makegpr.adb (Add_Archive_Path): Use untouched object and library
5558         dirs and library name.
5559         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
5560         comments.
5561         (Build_Library): Idem.
5562         (Compile_Individual_Sources): Idem.
5563         (Compile_Link_With_Gnatmake): Idem.
5564         (Compile_Sources): Idem.
5565         (Get_Imported_Directories): Idem.
5566         (Link_Executables): Idem. Same change for the executable dir.
5567         (Check_Compilation_Needed): C_Source_Path new variable containing
5568         the canonical form of Source_Path to check against the source names
5569         in the dependency file.
5570         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
5571         verbose mode, display the name of the object directory we're changing
5572         to.
5573         (Saved_Switches): New name of table X_Switches
5574         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
5575         (Usage): New line for switch -aP
5576         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
5577         testing if a directory should be added to the search path.
5578
5579 2007-06-06  Javier Miranda  <miranda@adacore.com>
5580
5581         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
5582         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
5583         declaration after freezing point of all its associated tagged types;
5584         otherwise such types are frozen too early.
5585
5586 2007-06-06  Robert Dewar  <dewar@adacore.com>
5587
5588         * a-reatim.adb: Documentation addition
5589
5590         * g-cgideb.adb: Minor code reorganization
5591
5592         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
5593         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
5594         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
5595
5596         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
5597         function.  Change name New_Scope to Push_Scope
5598         (Get_Debug_Flag_K): Remove unused obsolete function.
5599
5600         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
5601         Push_Scope.
5602
5603         * makeusg.adb: Update Copyright notice
5604         Add line for switch -aP
5605
5606         * makeusg.adb: Fix wording of some usage messages
5607
5608         * s-assert.adb (Raise_Assert_Failure): Add call to
5609         Debug_Raise_Assert_Failure.
5610
5611         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
5612         (2, Standard'Alignment) for compatibility with AAMP (where alignment
5613         is restricted to 1).
5614
5615         * s-wchjis.adb: Remove use of System.Pure_Exceptions
5616
5617         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
5618         node location to No_Location when we're not debugging the expanded
5619         code.
5620
5621 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
5622
5623         * misc.c (enumerate_modes): Consider log2_b to always be one.
5624
5625 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
5626
5627         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
5628
5629 2007-05-02  Pascal Obry  <obry@adacore.com>
5630
5631         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
5632         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
5633         encoding support of Stream_IO.
5634         (Write_Unit): Idem.
5635
5636         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
5637         filename and corresponding encoding to match the OS requirement.
5638         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
5639         routine will fail on specific devices like CON: AUX: ...
5640
5641         PR ada/29856: Add missing braces
5642
5643 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5644
5645         PR ada/31660
5646         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
5647
5648 2007-04-21  Jan Hubicka  <jh@suse.cz>
5649
5650         * misc.c (gnat_expand_body): Don't call target for destructors,
5651         avoid redundant check on syntax errors.
5652
5653 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5654
5655         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
5656         instead of checking GIMPLE_STMT_P in chain_next.
5657
5658 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
5659
5660         PR ada/31576
5661         * system-linux-alpha.ads: Disable constant condition warning for the
5662         Default_Bit_Order variable.
5663         * system-linux-s390.ads: Likewise.
5664         * system-linux-s390x.ads: Likewise.
5665         * system-linux-sparc.ads: Likewise.
5666
5667 2007-04-06  Javier Miranda  <miranda@adacore.com>
5668             Matt Heaney  <heaney@adacore.com>
5669             Robert Dewar  <dewar@adacore.com>
5670
5671         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
5672         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
5673         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
5674         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
5675         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
5676         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
5677         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
5678         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
5679         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
5680         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
5681         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
5682         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
5683         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
5684         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
5685         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
5686         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
5687         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
5688         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
5689         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
5690         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
5691         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
5692         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
5693         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
5694         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
5695         s-taprop-tru64.adb, s-taprop-irix.adb,
5696         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
5697         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
5698         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
5699         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
5700         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
5701         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
5702         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
5703         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
5704         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
5705         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
5706         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
5707         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
5708         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
5709         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
5710         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
5711         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
5712         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
5713         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
5714         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
5715         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
5716         access types.
5717         Update documentation.
5718         Minor rewording.
5719
5720 2007-04-06  Robert Dewar  <dewar@adacore.com>
5721
5722         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
5723         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
5724         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
5725         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
5726         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
5727         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
5728         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
5729         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
5730         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
5731         system-hpux-ia64.ads, targparm.adb,
5732         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
5733
5734         * system.ads: Move Functions_Return_By_DSP to obsolete section,
5735         kept for bootstrap purposes only.
5736
5737 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
5738
5739         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
5740         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
5741         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
5742         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
5743
5744 2007-04-06  Robert Dewar  <dewar@adacore.com>
5745
5746         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
5747         (Local_Raise): New dummy procedure called when a raise is converted
5748         to a local goto. Used for debugger to detect that the exception
5749         is raised.
5750
5751         * debug.adb: Document new d.g flag (expand local raise statements to
5752         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
5753
5754         * exp_sel.adb: Use Make_Implicit_Exception_Handler
5755
5756         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
5757         suppress warnings for unused handlers.
5758         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
5759         warnings for raise statements not handled locally.
5760         (Get_RT_Exception_Entity): New function
5761         (Get_Local_Call_Entity): New function
5762         (Find_Local_Handler): New function
5763         (Warn_If_No_Propagation): New procedure
5764         (Expand_At_End_Handler): Call Make_Implicit_Handler
5765         (Expand_Exception_Handlers): Major additions to deal with local handlers
5766         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
5767         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
5768         for local raise
5769
5770         * exp_ch11.ads (Get_RT_Exception_Entity): New function
5771         (Get_Local_Call_Entity): New function
5772
5773         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
5774         of restrictions that the binder will never suggest adding.
5775
5776         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
5777         to No_Elist.
5778
5779         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
5780         be with'ed in the presence of pragma Restriction
5781         (No_Exception_Propagation).
5782
5783         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
5784
5785         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
5786         parameter, then the handler is not a suitable target for a local raise,
5787         and this is a violation of restriction No_Exception_Propagation.
5788         (Analyze_Handled_Statements): Analyze choice parameters in exception
5789         handlers before analyzing statement sequence (needed for proper
5790         detection of local raise statements).
5791         (Analyze_Raise_Statement): Reraise statement is a violation of the
5792         No_Exception_Propagation restriction.
5793
5794         * s-rident.ads: Add new restriction No_Exception_Propagation
5795
5796         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
5797         function, like Make_Exception_Handler but sets Local_Raise_Statements
5798         to No_List.
5799         (Add_Unique_Serial_Number): Deal with case where this is called during
5800         processing of configuration pragmas.
5801
5802 2007-04-06  Thomas Quinot  <quinot@adacore.com>
5803             Pat Rogers  <rogers@adacore.com>
5804             Pascal Obry  <obry@adacore.com>
5805
5806         * g-stsifd-sockets.adb: New file.
5807
5808         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
5809         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
5810         g-socthi-vms.adb: Move signalling
5811         fd management to a nested package, so that they can conveniently be
5812         moved to a subunit that is shared across Windows, VMS, and VxWorks
5813         (Ada implementation) or completed with imported bodies from socket.c
5814         (UNIX case).
5815         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
5816         subprograms.
5817         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
5818         the signalling file descriptor.
5819         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
5820         signalling file descriptor.
5821         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
5822         instead of creating a pair of sockets for signalling here.
5823
5824         * g-socthi.adb: Ditto.
5825         Set the runtime process to ignore SIGPIPEs on platforms that support
5826         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
5827
5828         * g-socthi-mingw.adb: Ditto.
5829         (WS_Version): Use Windows 2.2.
5830         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
5831
5832         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
5833         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
5834
5835         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
5836         added GNAT byte swapping facility
5837         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
5838
5839         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
5840
5841         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
5842         New subprograms.
5843         (__gnat_create_signalling_fds): New subprogram.
5844         Set the runtime process to ignore SIGPIPEs on platforms that support
5845         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
5846
5847 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
5848             Vincent Celier  <celier@adacore.com>
5849
5850         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
5851         New version of Ada.Calendar which supports the new upper bound of Ada
5852         time (2399-12-31 86_399.999999999).
5853         The following modifications have been made to the package:
5854          - New representation of time as count of nanoseconds since the start of
5855            Ada time (1901-1-1 0.0).
5856          - Target independent Split and Time_Of routines which service both
5857            Ada 95 and Ada 2005 code.
5858          - Target independent interface to the Ada 2005 children of Calendar.
5859          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
5860          - Handling of non-leap centenial years.
5861          - Updated clock function.
5862          - Updated arithmetic and comparison operators.
5863
5864         * a-caldel.adb (To_Duration): Add call to target independent routine in
5865         Ada.Calendar to handle the conversion of time to duration.
5866
5867         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
5868         (UTC Offset).
5869         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
5870         set off to 0.
5871         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
5872         targets do not have a natural time zone, GMT is used as a default.
5873         (__gnat_get_task_options): New.
5874
5875         * a-direct.adb (Modification_Time): Add with and use clauses for
5876         Ada.Calendar and Ada.
5877         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
5878         since it is no longer needed.
5879         (Duration_To_Time): Removed.
5880         (OS_Time_To_Long_Integer): Removed.
5881         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
5882         Formatting Time_Of routines which automatically handle time zones,
5883         buffer periods and leap seconds.
5884
5885         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
5886         target independent routines in Ada.Calendar.
5887
5888         * a-calfor.ads, a-calfor.adb: 
5889         Code cleanup and addition of validity checks in various routines.
5890         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
5891         Ada.Calendar.
5892
5893         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
5894         independent routine in Ada.Calendar.
5895
5896 2007-04-06  Olivier Hainque  <hainque@adacore.com>
5897
5898         * adaint.c: 
5899         (convert_addresses): Adjust prototype and dummy definition to expect an
5900          extra file_name argument.
5901
5902         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
5903         filling the now expected file_name argument with the appropriate
5904         argv[0] expansion.
5905         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
5906         (tracebk): Array of void * instead of char *, corresponding to what
5907          convert_addresses expects.
5908         (exename): New static global, to hold the executable file name to be
5909         used in all convert_addresses invocations.
5910         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
5911         change.
5912         (__gnat_gmem_a2l_initialize): Resolve exename.
5913         (__gnat_convert_addresses): Use exename as the convert_addresses
5914         file_name argument.
5915
5916         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
5917         "convert_addresses", now expecting a filename argument. Import the
5918         necessary entities to compute the filename to use and pass it to
5919         convert_addresses.
5920
5921 2007-04-06  Matt Gingell  <gingell@adacore.com>
5922
5923         * system-aix.ads: Back out previous change.
5924         (Functions_Return_By_DSP): Removed
5925
5926 2007-04-06  Pascal Obry  <obry@adacore.com>
5927
5928         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
5929         or the monotonic used by Ada.Real_Time) to compute the sleep duration
5930         on Windows.
5931
5932 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
5933
5934         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
5935         function. Its value changes in different VxWorks versions, and it is
5936         now handled by the function __gnat_get_task_options.
5937
5938         * s-taprop-vxworks.adb (Create_Task): Call the function
5939         __gnat_get_task_options to get the required options for creating a task.
5940
5941 2007-04-06  Pascal Obry  <obry@adacore.com>
5942             Thomas Quinot  <quinot@adacore.com>
5943
5944         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
5945         dealing with filename.
5946         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
5947         filename from a standard string to a wide-string depending on the
5948         encoding value.
5949         (__gnat_freopen): Idem.
5950         (__gnat_current_time): New function (wrapper for time(3) standard C
5951         function).
5952
5953         * g-os_lib.ads (Current_Time): New function. Returns the current
5954         system time as an OS_Time value.
5955
5956         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
5957         (Monotonic_Clock): Same.
5958
5959 2007-04-06  Quentin Ochem  <ochem@adacore.com>
5960
5961         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
5962         not on a natural.
5963         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
5964
5965 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
5966
5967         * a-retide.adb: Add elaboration code to ensure that the tasking run
5968         time is initialized when using delay operations even when no task is
5969         created.
5970
5971 2007-04-06  Javier Miranda  <miranda@adacore.com>
5972
5973         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
5974         component Num_Prim_Ops.
5975         (Set_Num_Prim_Ops): Removed.
5976         Remove all the assertions because all the routines of this
5977         package are inline always.
5978         (Get_Offset_Index): Add support to primary dispatch tables.
5979         Move the documentation about the dispatch table to a-tags.ads
5980         (Set_External_Tag): Removed
5981         (Inherit_TSD): Removed.
5982         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
5983         moved to a-tags.ads
5984         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
5985         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
5986         of the TSD field "Table" because this field has been renamed to
5987         "Ifaces_Table".
5988         (Inherit_CPP_DT): Removed.
5989         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
5990         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
5991         declarations have been moved to a-tags.ads
5992         (Check_Size): Removed.
5993         (Expanded_Name): Updated to get access to the new field of TSD
5994         containing the address of the expanded name.
5995         (Get_Access_Level/Set_Access_Level): Removed.
5996         (Get_Predefined_Prim_Op_Address): Removed.
5997         (Set_Predefined_Prim_Op_Address): Removed.
5998         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
5999         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
6000         (Set_Expanded_Name): Removed.
6001         (Inherit_DT): Removed.
6002         (Inherit_CPP_DT): Removed.
6003         (Set_RC_Offset): Removed.
6004         (Set_TSD): Removed.
6005         (Base_Address): New function that displaces "this" to point to the base
6006         of the object (that is, to point to the primary tag of the object).
6007
6008 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6009             Javier Miranda  <miranda@adacore.com>
6010
6011         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
6012         anonymous access component, do not create a master_id if type already
6013         has one, as may happen if the type is a subcomponent of a packed array
6014         type.
6015         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
6016         Initialize_Tag): Remove code associated with the old CPP pragmas.
6017         CPP_Virtual and CPP_Vtable are no longer supported.
6018         (Build_Offset_To_Top_Internal): Add support for concurrent record types
6019         (Build_Offset_To_Top_Functions): Add support for concurrent record types
6020         (Freeze_Record_Type): Remove call to
6021         Init_Predefined_Interface_Primitives.
6022         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
6023         code required to initialize the tags of the secondary dispatch tables.
6024         This leaves the algoritm more clear.
6025         (Init_Secondary_Tags): Add support for concurrent record types
6026         (Make_Predefined_Primitive_Specs): Code cleanup.
6027         (Predefined_Primitive_Bodies): Code cleanup.
6028         (Build_Master_Renaming): New local subprogram.
6029         (Expand_N_Full_Type_Declaration): Build the master_id associated with
6030         anonymous access to task type components.
6031         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
6032         subtype indication are resolved during analysis, and must not be done
6033         here.
6034         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
6035
6036 2007-04-06  Geert Bosch  <bosch@adacore.com>
6037             Ed Schonberg  <schonberg@adacore.com>
6038             Javier Miranda  <miranda@adacore.com>
6039             Bob Duff  <duff@adacore.com>
6040
6041         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
6042         for conversion of a Float_Type'Truncation to integer.
6043
6044         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
6045         check if a node is an attribute that can be handled directly by the
6046         back end.
6047         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
6048         attributes that can be handled directly by the back end.
6049         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
6050         use new predicate Is_Access_Protected_Subprogram_Type.
6051         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
6052         and Unchecked_Union if it is generated as part of the default  Output
6053         procedure for a type with default discriminants.
6054         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
6055         if we are compiling under restriction No_Dispatching_Calls.
6056         (Constrained): Use Underlying_Type, in case the type is private without
6057         discriminants, but the full type has discriminants.
6058         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
6059         call to Build_Get_Access_Level.
6060         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
6061         interface objects requires a call to the run-time subprogram that
6062         returns the base address of the object.
6063         (Valid_Conversion): Improve error message on illegal attempt to store
6064         an anonymous access to subprogram value into a record component.
6065
6066         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
6067         null".
6068         (Simplify_Type_Conversion): New procedure that performs simplification
6069         of Int_Type (Float_Type'Truncation (X)).
6070         (Resolve_Type_Conversion): Call above procedure after resolving operand
6071         and before performing checks. This replaces the existing ineffective
6072         code in Exp_Ch4.
6073         (Set_String_Literal_Subtype): When creating the internal static lower
6074         bound subtype for a string literal, use a newly created copy of the
6075         subtree representing the lower bound.
6076         (Resolve_Call): Exclude build-in-place function calls from transient
6077         scope treatment. Update comments to describe this exception.
6078         (Resolve_Equality_Op): In case of dispatching call check violation of
6079         restriction No_Dispatching_Calls.
6080         (Resolve_Call): If the call returns an array, the context imposes the
6081         component type of the array, and the function has one non-defaulted
6082         parameter, rewrite the call as the indexing of a call with a single
6083         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
6084         in prefix form.
6085         (Resolve_Actuals): If an actual is an allocator for an access parameter,
6086         the master of the created object is the innermost enclosing statement.
6087         (Remove_Conversions): For a binary operator, check if type of second
6088         formal is numeric, to check if an abstract interpretation is present
6089         in the case of exponentiation as well.
6090
6091 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6092             Bob Duff  <duff@adacore.com>
6093
6094         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
6095         copying a parameter list in a call, set properly the First_Named_Formal
6096         and Next_Named_Formal fields in the new list and in the enclosing call.
6097         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
6098         names, to ease typing in the debugger. Improve comments.
6099         (Watch_Node): New variable, intended to be set in the debugger.
6100         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
6101         called when the watched node is created.
6102         (New_Node_Debugging_Output): Combined version of local procedures
6103         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
6104         with a parameter so that conditional breakpoints like "if Node = 12345"
6105         work.
6106         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
6107         Add Elist1 function
6108
6109 2007-04-06  Thomas Quinot  <quinot@adacore.com>
6110             Ed Schonberg  <schonberg@adacore.com>
6111             Gary Dismukes  <dismukes@adacore.com>
6112
6113         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
6114         required for a conversion between two access-to-unconstrained-array
6115         types.
6116         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
6117         to discriminant constraints on discriminant objects. This rule must
6118         apply as well to discriminants of protected types in private components.
6119         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
6120         object of a null-excluding access type then don't require the
6121         the object declaration to have an expression and don't emit a
6122         run-time check.
6123
6124 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
6125             Eric Botcazou <botcazou@adacore.com>
6126
6127         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
6128         and made constant.
6129
6130         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
6131         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
6132         carry any.
6133
6134         * fe.h (Compiler_Abort): Add third parameter.
6135
6136         * misc.c (internal_error_function): Build third argument from current
6137         input location and pass it to Compiler_Abort.
6138
6139 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
6140
6141         * cstand.adb (Create_Standard): When the target's storage unit size is
6142         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
6143         Standard_String.
6144
6145 2007-04-06  Nicolas Roche  <roche@adacore.com>
6146
6147         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
6148         absolute path can have the following form: device:/a/b. In this case
6149         '/' should be inserted between the path and the filename.
6150
6151 2007-04-06  Olivier Hainque  <hainque@adacore.com>
6152             Eric Botcazou <botcazou@adacore.com>
6153
6154         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
6155         VAR_DECL to a CONST_DECL we make for a public constant when we know the
6156         corresponding definition has created the so made visible variable.
6157         Handle anonymous access to protected subprogram.
6158         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
6159         object with an address clause volatile.  Re-enable original fix.
6160         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
6161         too.
6162         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
6163         associated with either the Equivalent or Root type, instead of the
6164         naked type node.
6165         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
6166         subtree for every field of a global record type.
6167         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
6168         discriminants, invoke again variable_size on its newly computed sizes.
6169
6170 2007-04-06  Robert Dewar  <dewar@adacore.com>
6171             Thomas Quinot  <quinot@adacore.com>
6172             Ed Schonberg  <schonberg@adacore.com>
6173             Bob Duff  <duff@adacore.com>
6174
6175         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
6176         (Next_Component_Or_Discriminant): New function and procedure
6177         (First_Index, First_Literal, Master_Id,
6178         Set_First_Index, Set_First_Literal, Set_Master_Id):
6179         Add missing Ekind assertions.
6180         (Is_Access_Protected_Subprogram_Type): New predicate.
6181         (Has_RACW): New entity flag, set on package entities to indicate that
6182         the package contains the declaration of a remote accecss-to-classwide
6183         type.
6184         (E_Return_Statement): This node type has the Finalization_Chain_Entity
6185         attribute, in case the result type has controlled parts.
6186         (Requires_Overriding): Add this new flag, because "requires
6187         overriding" is subtly different from "is abstract" (see AI-228).
6188         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
6189         Is_Abstract_Type. Make sure these are called only when appropriate.
6190         (Has_Pragma_Unreferenced_Objects): New flag
6191
6192         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
6193         class-wide, the tag of the right-hand side must be an exact match, not
6194         an ancestor of that of the object on left-hand side.
6195         (Move_Activation_Chain): New procedure to create the call to
6196         System.Tasking.Stages.Move_Activation_Chain.
6197         (Expand_N_Extended_Return_Statement): Generate code to call
6198         System.Finalization_Implementation.Move_Final_List at the end of a
6199         return statement if the function's result type has controlled parts.
6200         Move asserts to Build_In_Place_Formal.
6201         (Move_Final_List): New function to create the call statement.
6202         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
6203         tagged type, replace generation of call to the run-time subprogram
6204         CW_Membership by call to Build_CW_Membership.
6205         (Expand_N_Return_Statement): Replace generation of call to the run-time
6206         subprogram Get_Access_Level by call to Build_Get_Access_Level.
6207         (Expand_N_Simple_Function_Return): Replace generation of call to the
6208         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
6209
6210         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
6211         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
6212         access to protected operations.
6213         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
6214         master and chain actual parameters to a build-in-place function call
6215         involving tasks.
6216         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
6217         statement.
6218         (Make_Build_In_Place_Call_In_Allocator,
6219         Make_Build_In_Place_Call_In_Anonymous_Context,
6220         Make_Build_In_Place_Call_In_Assignment,
6221         Make_Build_In_Place_Call_In_Object_Declaration): Call
6222         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
6223         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
6224         stubbed procedure with a null body, replace the call with a null
6225         statement without using the full inlining machinery, for efficiency
6226         and to avoid invalid values in source file table entries.
6227
6228         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
6229         renamings of calls to build-in-place functions.
6230
6231         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
6232         provides the functionality of RTE_Available to record components.
6233         (RTU_Entity): The function Entity has been renamed to RTU_Entity
6234         to avoid undesired overloading.
6235         (Entity): New subprogram that returns the entity for the referened
6236         unit. If this unit has not been loaded, it returns Empty.
6237         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
6238         Remove no longer used entities.
6239         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
6240         (RE_Type_Specific_Data): New entity.
6241         (RE_Move_Any_Value): New entity.
6242         (RE_TA_A, RE_Get_Any_Type): New entities.
6243         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
6244          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
6245          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
6246         (Entity): New subprogram that returns the entity for the referened
6247         unit. If this unit has not been loaded, it returns Empty.
6248         (RTE): Addition of a new formal that extends the search to the scopes
6249         of the record types found in the chain of the package.
6250
6251         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
6252         "abstract subprograms must be visible" message, whether or not the type
6253         is an interface; that is, remove the special case for interface types.
6254         (Analyze_Function_Return): Remove error message "return of task objects
6255         is not yet implemented" because this is now implemented.
6256         (Create_Extra_Formals): Add the extra master and activation chain
6257         formals in case the result type has tasks.
6258         Remove error message "return of limited controlled objects is not yet
6259         implemented".
6260         (Create_Extra_Formals): Add the extra caller's finalization list formal
6261         in case the result type has controlled parts.
6262         (Process_Formals): In case of access formal types there is no need
6263         to continue with the analysis of the formals if we already notified
6264         errors.
6265         (Check_Overriding_Indicator): Add code to check overriding of predefined
6266         operators.
6267         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
6268         flags for formals that do not require them,.
6269         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
6270         hidden entity is use visible or directly visible.
6271         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
6272         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
6273         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
6274         New_Overloaded_Entity): Split Is_Abstract flag into
6275         Is_Abstract_Subprogram and Is_Abstract_Type.
6276
6277         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
6278         a return statement's finalization list to the caller's list, used for
6279         build-in-place functions with result type with controlled parts.
6280         Remove no longer used entities.
6281
6282         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
6283         longer needed, because the full type is now limited, and therefore a
6284         pass-by-reference type.
6285         (Foreign_Task_Level): New constant.
6286
6287         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
6288         move tasks from the activation chain belonging to a return statement to
6289         the one passed in by the caller, and update the master to the one
6290         passed in by the caller.
6291         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
6292         of unactivated tasks, so we don't kill the ones that are being returned
6293         by a build-in-place function.
6294         (Create_Task): Ignore AI-280 for foreign threads.
6295
6296 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6297             Robert Dewar  <dewar@adacore.com>
6298             Bob Duff  <duff@adacore.com>
6299             Gary Dismukes  <dismukes@adacore.com>
6300
6301         * errout.adb (Unwind_Internal_Type): Use predicate
6302         Is_Access__Protected_Subprogram_Type.
6303
6304         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
6305         (Freeze_Entity, packed array case): Do not override explicitly set
6306         alignment and size clauses.
6307         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
6308         the enclosing subprogram is a child unit body that acts as a spec.
6309         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
6310         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
6311         Remove all code for DSP option
6312
6313         * layout.adb (Layout_Record_Type): Use First/
6314         Next_Component_Or_Discriminant
6315         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
6316         to handle properly the anonymous access case.
6317
6318         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
6319         for all access attributes, because overload resolution should work the
6320         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
6321         causes the error message for the ambiguous "X'Access = Y'Access" and
6322         "X'Unrestricted_Access = Y'Access" and so forth to match.
6323         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
6324         now that anonymous access to protected operations have their own kind.
6325         (Resolve_Attribute): In case of dispatching call check the violation of
6326         restriction No_Dispatching_Calls.
6327         (Check_Array_Type): Check new -gnatyA array index style option
6328
6329         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
6330         attempt to derive from a synchronized tagged type.
6331         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
6332         type, inherit the class-wide type already created, because it may
6333         already have been used in a self-referential anonymous access component.
6334         (Mentions_T): Recognize self-referential anonymous access components
6335         that use (a subtype of) the class-wide type of the enclosing type.
6336         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
6337         Derived_Type for Prev formal on call to
6338         Check_Anonymous_Access_Components rather than Empty.
6339         (Make_Incomplete_Type_Declaration): Add test for case where the type has
6340         a record extension in deciding whether to create a class-wide type,
6341         rather than just checking Tagged_Present.
6342         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
6343         to stand-alone object declarations as well as component declarations.
6344         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
6345         prevent accidental overwriting when enclosing package appears in
6346         a limited_with_clause.
6347         (Array_Type_Declaration): If the component type is an anonymous access,
6348         the associated_node for the itype is the type declaration itself.
6349         (Add_Interface_Tag_Components): Modified to support concurrent
6350         types with abstract interfaces.
6351         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
6352         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
6353         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
6354         to complete the decoration of synchronized interface types. Add also
6355         a call to Check_Abstract_Interfaces to verify the ARM rules.
6356         (Derive_Interface_Subprograms): Modified to support concurrent types
6357         with abstract interfaces.
6358         (Analyze_Subtype_Indication): Resolve the range with the given subtype
6359         mark, rather than delaying the full resolution depending on context.
6360         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
6361         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
6362         Array_Type_Declaration,Build_Derived_Record_Type,
6363         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
6364         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
6365         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
6366         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
6367         called only when appropriate.
6368         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
6369         to private type.
6370         (Analyze_Subtype_Declaration): For an access subtype declaration, create
6371         an itype reference for the anonymous designated subtype, to prevent
6372         scope anonmalies in gigi.
6373         (Build_Itype_Reference): New utility, to simplify construction of such
6374         references.
6375
6376 2007-04-06  Vincent Celier  <celier@adacore.com>
6377
6378         * errutil.adb (Initialize): Initialize warnings table, if all warnings
6379         are suppressed, supply an initial dummy entry covering all possible
6380         source locations.
6381
6382         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
6383         and start with only one, such as "-RTS=none".
6384         (Collect_Arguments): Do not check for sources outside of projects.
6385         Do not collect arguments if project is externally built.
6386         (Compile_Sources): Do nothing, not even check if the source is up to
6387         date, if its project is externally built.
6388         (Compile): When compiling a predefined source, add -gnatpg
6389         as the second switch, after -c.
6390         (Compile_Sources): Allow compilation of Annex J renames without -a
6391         (Is_In_Object_Directory): Check if the ALI file is in the object
6392         even if there is no project extension.
6393         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
6394         gnatbind if the ALI file effectively exists.
6395         (Initialize): Add the directory where gnatmake is invoked in front of
6396         the path if it is invoked from a bin directory, even without directory
6397         information, so that the correct GNAT tools will be used when spawned
6398         without directory information.
6399
6400         * makeusg.adb: Change switch -S to -eS
6401         Add lines for new switches -we, -wn and -ws
6402         Add line for new switch -p
6403
6404         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
6405         Treat_As_Error and there are warnings.
6406
6407         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
6408         -gnatww Change gnatmake switch -S to -eS
6409         (Scan_Make_Switches): Code reorganisation. Process separately multi
6410         character switches and single character switches.
6411         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
6412         False when switch is not recognized by gnatmake.
6413         (Scan_Make_Switches): Set Setup_Projects True when -p or
6414         --create-missing-dirs is specified.
6415
6416         * fname.adb (Is_Predefined_File_Name): Return True for annex J
6417         renamings Calendar, Machine_Code, Unchecked_Conversion and
6418         Unchecked_Deallocation only when Renamings_Included is True.
6419
6420         * par.adb: Allow library units Calendar, Machine_Code,
6421         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
6422         when -gnatg is not specified.
6423         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
6424         there is no need to generate always a record_definition_node in case
6425         of synchronized interface types.
6426         (SIS_Entry_Active): Initialize global variable to False
6427         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
6428         indicate cases where AI-447 says "not null" is legal.
6429
6430         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
6431
6432         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
6433         files with with several lines starting with the object fileb name.
6434         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
6435         is specified.
6436         (Initialize): Add the directory where gprmake is invoked in front of the
6437         path, if it is invoked from a bin directory or with directory
6438         information, so that the correct GNAT tools will be used when invoked
6439         directly.
6440         (Check_Compilation_Needed): Process correctly backslashes on Windows.
6441
6442         * vms_data.ads: Update switches/qualifiers
6443
6444 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6445             Thomas Quinot  <quinot@adacore.com>
6446
6447         * exp_aggr.adb:
6448         If the array component is a discriminated record, the array aggregate
6449         is non-static even if the component is given by an aggregate with
6450         static components.
6451         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
6452         (Convert_Aggr_In_Allocator): If the allocator is for an access
6453         discriminant and the type is controlled. do not place on a finalization
6454         list at this point. The proper list will be determined from the
6455         enclosing object.
6456         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
6457         initialize record controller if needed, before the components, to ensure
6458         that they are properly finalized.
6459         (Build_Record_Aggr_Code): For the case of an array component that has a
6460         corresponding array aggregate in the record aggregate, perform sliding
6461         if required.
6462
6463 2007-04-06  Javier Miranda  <miranda@adacore.com>
6464             Gary Dismukes  <dismukes@adacore.com>
6465             Ed Schonberg  <schonberg@adacore.com>
6466
6467         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
6468         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
6469
6470         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
6471         accessibility on class-wide allocators if the allocator occurs at the
6472         same scope level as the allocator's type. The check is guaranteed to
6473         succeed in that case, even when the expression originates from a
6474         parameter of the containing subprogram.
6475         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
6476         under No_Dispatching_Calls restriction. During the semantic analysis
6477         we already notified such violation.
6478         (Tagged_Membership): Constant folding. There is no need to check
6479         the tag at run-time if the type of the right operand is non
6480         class-wide abstract.
6481         Replace call to Is_Ancestor by call to Is_Parent
6482         to support concurrent types with interface types.
6483         (Expand_N_Allocator): Add an assertion associated with the generation
6484         of the master_id.
6485         (Expand_N_Slice): Do not enable range check to nodes associated
6486         with the frontend expansion of the dispatch table.
6487         (Is_Local_Access_Discriminant): Subsidiary function to
6488         Expand_N_Allocator.
6489         (Tagged_Membership): Replace generation of call to the run-time
6490         subprogram CW_Membership by call to Build_CW_Membership.
6491         (Expand_Allocator_Expression): Replace generation of call to the
6492         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
6493
6494         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
6495         initialize most the TSD components by means of an aggregate.
6496         Modify the declaration of the object containing the TSD
6497         because we now expand code that has a higher level of abstraction.
6498         The TSD has a discriminant containing the Inheritance Depth Level,
6499         value that is used in the membership test but also to fix the size
6500         of the table of ancestors.
6501         (Expand_Interface_Conversion): Insert function body at the closest place
6502         to the conversion expression, to prevent access-before-elaboration
6503         errors in the backend.
6504         Code improved to reduce the size of the dispatch table if
6505         compiling under restriction No_Dispatching_Calls plus code cleanup.
6506         Code reorganization plus removal of calls to Set_Num_Prim_Ops
6507         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
6508         (Expand_Dispatching_Call): Minor code reorganization plus addition of
6509         code to return immediately if compiling under No_Dispatching_Calls
6510         restriction.
6511         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
6512         CPP_Virtual and CPP_Vtable are no longer supported.
6513         (Expand_Interface_Conversion): Add missing support for interface type
6514         derivations.
6515         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
6516         Is_Parent to support concurrent types with interfaces.
6517         (Init_Predefined_Interface_Primitives): Removed.
6518         (Make_Secondary_DT): Modified to support concurrent record types.
6519         (Set_All_DT_Position): Modified to support concurrent record types.
6520         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
6521         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
6522         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
6523         with CW_Membership.
6524         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
6525         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
6526         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
6527         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
6528         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
6529         (Expand_Dispatching_Call): Replace generation of call to the run-time
6530         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
6531         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
6532         Address.
6533         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
6534         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
6535         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
6536         Build_Set_Prim_Op_Address.
6537         (Get_Remotely_Callable): Subprogram removed.
6538         (Init_Predefined_Interface_Primitives): Replace generation of call to
6539         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
6540         Prims.
6541
6542         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
6543         First (Parameter_Associations ()) with the call to First_Actual that
6544         returns an actual parameter expression for both named and positional
6545         associations.
6546
6547         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
6548         check violation of restriction No_Dispatching_Calls.
6549         (Check_Controlling_Type): A formal of a tagged incomplete type is a
6550         controlling argument.
6551
6552         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
6553         First/Next_Component_Or_Discriminant
6554         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
6555         (Find_Implemented_Interface): Removed. All the calls to this subprogram
6556         specify Any_Limited_Interface, and this functionality is already
6557         provided by the function Has_Abstract_Interfaces.
6558         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
6559         support concurrent types implementing interfaces.
6560         (Find_Implemented_Interface): Removed. All the calls to this subprogram
6561         specify kind Any_Limited_Interface, and this functionality is already
6562         provided by the function Has_Abstract_Interfaces.
6563         (Remove_Side_Effects): replace Controlled_Type by
6564         CW_Or_Controlled_Type whenever the issue is related to
6565         using or not the secondary stack.
6566
6567         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
6568         P_Interface_Type_Definition to fulfill the new interface (the formal
6569         Is_Synchronized is no longer required).
6570
6571         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
6572         Update dependencies.
6573
6574         * exp_atag.ads, exp_atag.adb: New file
6575
6576 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6577             Bob Duff  <duff@adacore.com>
6578             Cyrille Comar  <comar@adacore.com>
6579
6580         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
6581         anonymous, use finalization list of enclosing dynamic scope.
6582         (Expand_N_Package_Declaration): For a library package declaration
6583         without a corresponding body, generate RACW subprogram bodies in the
6584         spec (just as we do for the task activation call).
6585         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
6586         Is_Abstract_Type. Make sure these are called only when appropriate.
6587         Remove all code for DSP option
6588         (CW_Or_Controlled_Type): new subprogram.
6589
6590 2007-04-06  Eric Botcazou <botcazou@adacore.com>
6591             Ed Schonberg  <schonberg@adacore.com>
6592             Gary Dismukes  <dismukes@adacore.com>
6593
6594         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
6595         parameter. If it is set to true, return a result capped according to
6596         the global upper bound for the index of an entry family.
6597         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
6598         (Build_Find_Body_Index): Adjust for above change.
6599         (Entry_Index_Expression): Likewise.
6600         (Is_Potentially_Large_Family): New function extracted from...
6601         (Collect_Entry_Families): ...here. Call it to detect whether the family
6602         is potentially large.
6603         (Build_Entry_Count_Expression): If the family is potentially large, call
6604         Family_Size with 'Cap' set to true.
6605         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
6606         a protected version of an operation declared in the private part of
6607         a protected object, because they may be invoked through a callback.
6608         (Set_Privals): If the type of a private component is an anonymous access
6609         type, do not create a new itype for each protected body.
6610         If the body of a protected operation creates
6611         controlled types (including allocators for class-widetypes), the
6612         body of the corresponding protected subprogram must include a
6613         finalization list.
6614         (Build_Activation_Chain_Entity): Build the chain entity for extended
6615         return statements.
6616         (Type_Conformant_Parameters): Use common predicate Conforming_Types
6617         to determine whether operation overrides an inherited primitive.
6618         (Build_Wrapper_Spec): Add code to examine the parents while looking
6619         for a possible overriding candidate.
6620         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
6621         hold an actual parameter value since its initialization is separated
6622         from the the declaration. Prevents errors on null-excluding access
6623         formals.
6624
6625 2007-04-06  Thomas Quinot  <quinot@adacore.com>
6626
6627         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
6628         Do an Unchecked_Conversion to handle the passage from the Underlying
6629         Type to the Base Type when calling Build_To_Any_Call and
6630         Build_From_Any_Call.
6631         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
6632         E_Constant, depending upon Variable formal.
6633         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6634         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
6635         parameter that requires an extra constrained parameter, declare
6636         temporary for actual as a variable, not a constant.
6637         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
6638         the unit being compiled is the one that contains the stub type.
6639         Change primitive operation name for the RACW associated with a RAS
6640         from Call to _Call so it cannot clash with any legal identifier.
6641         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
6642         Is_RAS.
6643         (Append_RACW_Bodies): New subprogram.
6644         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
6645         Add_Receiving_Stubs_To_Declarations functions.
6646         When expanding a package body, this list correspond to the
6647         statements in the HSS at the end of the pacakge.
6648         When expanding a package spec, this list correspond to the
6649         spec declarations.
6650         (Add_Receiving_Stubs_To_Declarations): Append the function
6651         registering the receiving stubs at the end of the 'Stmts' list.
6652         (RCI_Package_Locator): Pass the new Version generic formal when
6653         instantiating a RCI_Locator package.
6654         (Build_From_Any_Function): To compute the High bound for an
6655         unconstrained array actual, we add the Low bound with the length.
6656         Thus we must convert the low bound and the length to an appropriate
6657         type before doing the sum.
6658         (Build_Subprogram_Receiving_Stubs, PolyORB):
6659          * Retrieve the extra formals parameters at the
6660            end of the parameter stream.
6661          * Use Move_Any_Value to write back out parameters
6662            after executing the request as it is more efficient
6663            than Copy_Any_Value.
6664          * Build the any containing Extra Formals with the
6665            appropriate typecode.
6666         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
6667         empty Component_List.
6668         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
6669         the tree the declaration for an object that serves as actual parameter
6670         in server-side stubs.
6671         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6672         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
6673         Use Build_Actual_Object_Declaration to prepare the actuals.
6674         (Add_Parameter_To_NVList): Set the parameter mode to In for
6675         Extra Constrained Parameters.
6676         (Build_General_Calling_Stubs): Set the parameter type to boolean for
6677         Extra Constrained parameters.
6678         (Build_To_Any_Function, Build_From_Any_Function,
6679         Built_TypeCode_Function): When Typ is implicit, call the correct
6680         function with the first not implicit parent type.
6681         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
6682         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
6683         typecode from the Etype. Therefore we retrieve the correct typecode
6684         with a call to Get_Any_Type.
6685         (Copy_Specification): Do controlling formal type substitution based on
6686         Is_Controlling_Formal flag, instead of caller-provided object type.
6687         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
6688         a RACW primitive operation, we might get a subprogram declaration for an
6689         ancestor of the RACW designated type (not for the designated type
6690         itself), in the case where this operation is inherited. In this case we
6691         have no easy means of determining the original tagged type for which
6692         the primitive was declared, so instead we now rely on
6693         Copy_Specification to use the Is_Controlling_Formal flag to determine
6694         which formals require type substitution.
6695
6696 2007-04-06  Robert Dewar  <dewar@adacore.com>
6697             Ed Schonberg  <schonberg@adacore.com>
6698
6699         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
6700         GNAT.Current_Exception are not allowed if pragma Restrictions
6701         (No_Exception_Propagation) is set and in any case make the associated
6702         handler unsuitable as a target for a local raise statement.
6703         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
6704         run-time subprogram CW_Membership by call to Build_CW_Membership.
6705         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
6706         by a function call, a temporary must be created before expanding the
6707         Constructor_Call itself, to prevent out-of-order elaboration in the
6708         back-end when stack checking is enabled..
6709
6710 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6711
6712         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
6713         result are the bounds of the left operand, not the right.
6714
6715 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6716
6717         * exp_strm.adb
6718         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
6719          discriminant defaults.
6720         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
6721         (Make_Component_List_Attributes): Ditto.
6722
6723 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6724             Bob Duff  <duff@adacore.com>
6725
6726         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
6727         an association with a box as providing a value even though the
6728         initialization procedure for the type is not available.
6729         (Resolve_Record_Aggregate): Check that a choice of an association with a
6730         box corresponds to a component of the type.
6731         (Resolve_Record_Aggregate): Split Is_Abstract flag into
6732         Is_Abstract_Subprogram and Is_Abstract_Type.
6733
6734         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
6735         assert.
6736
6737         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
6738         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
6739         called only when appropriate.
6740
6741 2007-04-06  Olivier Hainque  <hainque@adacore.com>
6742
6743         * g-alleve.ads (Low Level Vector type definitions): Map each to the
6744         associated vector view instead of all to the unsigned char view.
6745
6746         * g-altcon.adb (Generic_Conversions): New internal generic package,
6747         offering facilities for all the Vector/View conversion routines
6748         implemented by this unit.
6749         (To_View/To_Vector - all versions): Reimplemented in a systematic
6750         manner, using the internal Generic_Conversions facilities.
6751
6752 2007-04-06  Pascal Obry  <obry@adacore.com>
6753
6754         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
6755         string.
6756         (Create): Free the source string before storing the new one.
6757
6758 2007-04-06  Vincent Celier  <celier@adacore.com>
6759
6760         * g-debpoo.adb (Validity): New package with a complete new
6761         implementation of subprograms Is_Valid and Set_Valid.
6762         (Is_Valid): Move to local package Validity
6763         (Set_Valid): Move to local package Validity
6764
6765 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
6766
6767         * g-expect.adb (Get_Command_Output): When expanding the output buffer
6768         we must ensure that there is enough place for the new data we are going
6769         to copy in.
6770
6771 2007-04-06  Thomas Quinot  <quinot@adacore.com>
6772
6773         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
6774         computation.
6775
6776 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
6777             Vincent Celier  <celier@adacore.com>
6778
6779         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
6780         (Stack_String): Add this String that contains the name of the Stack
6781         package in the project file.
6782         (Packages_To_Check_By_Stack): Add this list that contains the packages
6783         to be checked by gnatstack, which are the naming and the stack packages.
6784         (Check_Files): If no .ci files were specified for gnatstack we add all
6785         the .ci files belonging to the projects, including binder generated
6786         files.
6787         (Non_VMS_Usage): Document that gnatstack accept project file switches.
6788         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
6789         Add gnatstack to the list of commands that use project file related
6790         switches, and get the single attribute Switches from the stack package
6791         in a project file when calling gnatstack. Parse the -U flag for
6792         processing files belonging to all projects in the project tree.
6793         Remove all processing for command Setup
6794
6795         * prj-attr.adb: Add new package Stack with single attribute Switches
6796
6797         * vms_conv.ads (Command_Type): Add command Stack.
6798         Move to body declarations that are only used in the body: types Item_Id,
6799         Translation_Type, Item_Ptr, Item and its subtypes.
6800
6801         * vms_conv.adb: (Initialize): Add data for new command Stack.
6802         Add declarations moved from the spec: types Item_Id, Translation_Type,
6803         Item_Ptr, Item and its subtypes.
6804         (Cargs_Buffer): New table
6805         (Cargs): New Boolean global variable
6806         (Process_Buffer): New procedure to create arguments
6807         (Place): Put character in table Buffer or Cargs_Buffer depending on the
6808          value of Cargs.
6809         (Process_Argument): Set Cargs when processing qualifiers for GNAT
6810         COMPILE
6811         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
6812         empty, for table Cargs_Buffer.
6813         (Initialize): Remove component Setup in Command_List
6814
6815 2007-04-06  Vincent Celier  <celier@adacore.com>
6816
6817         * gprep.adb (Process_Files.Process_One_File): Use full file name when
6818         issuing pragma Source_Reference.
6819
6820 2007-04-06  Emmanuel Briot  <briot@adacore.com>
6821
6822         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
6823         [[:xdigit:]] character class.
6824         Also raise an exception when an invalid character class is used.
6825
6826 2007-04-06  Pascal Obry  <obry@adacore.com>
6827
6828         * i-cstrea.ads: (fopen): Add encoding parameter.
6829         (freopen): Idem.
6830         Change reference from a-sysdep.c to sysdep.c in comment.
6831         Update copyright notice.
6832         This set of patch add support for the encoding form parameter.
6833
6834         * mingw32.h (S2WSU): New macro to convert from a string to a
6835         wide-string using the UTF-8 encoding. The S2WS macro supports now only
6836         standard 8bits encoding.
6837         (WS2SU): As above but converting from wide-sring to string.
6838         This is needed as it is necessary to have access to both versions in the
6839         runtime for the form parameter encoding support.
6840         This set of patch add support for the encoding form parameter.
6841         (S2WS): Improve implementation to handle cases where the filename is not
6842         UTF-8 encoded. In this case we default to using the current code page
6843         for the conversion.
6844
6845         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
6846         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
6847         the constants defined in adaint.h.
6848         (fopen): Add encoding parameter.
6849         (freopen): Idem.
6850
6851         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
6852         encoding. This is needed for the Reset routine (freopen low level-call).
6853
6854         * s-fileio.adb (Open): Decode encoding form parameter and set the
6855         corresponding encoding value into AFCB structure.
6856         (Reset): Pass the encoding value to freopen.
6857         (Close): Move the call to Lock_Task to the beginning of the procedure.
6858
6859 2007-04-06  Geert Bosch  <bosch@adacore.com>
6860             Robert Dewar  <dewar@adacore.com>
6861
6862         * i-fortra.ads: Add Double_Complex type.
6863
6864         * impunit.adb: (Is_Known_Unit): New function
6865         Add Gnat.Byte_Swapping
6866         Add GNAT.SHA1
6867         Add new Ada 2005 units
6868         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
6869         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
6870         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
6871         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
6872
6873         * impunit.ads (Is_Known_Unit): New function
6874
6875         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
6876         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
6877         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
6878         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
6879         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
6880         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
6881         New files.
6882
6883         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
6884
6885         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
6886
6887 2007-04-06  Eric Botcazou <botcazou@adacore.com>
6888             Arnaud Charlet  <charlet@adacore.com>
6889
6890         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
6891         __gnat_adjust_context_for_raise.
6892         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
6893         implementation of floating point operations as native x86 targets.
6894         So the FPU should be initialized in the same way using finit. Fix
6895         floating point operations accuracy issues.
6896         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
6897         member in struct sigaction, so as to avoid warning for incompatible
6898         pointer types.
6899
6900 2007-04-06 Serguei Rybin <rybin@adacore.com>
6901
6902         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
6903         switches from previously loaded tree
6904
6905 2007-04-06  Thomas Quinot  <quinot@adacore.com>
6906
6907         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
6908         cases where a given dependency has a body or not.
6909         (Write_With_File_Names): New subprogram, common code for the two cases
6910         above.
6911
6912 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6913             Javier Miranda  <miranda@adacore.com>
6914
6915         * lib-xref.ads, lib-xref.adb: 
6916         Modify the loop that collects type references, to include interface
6917         types that the type implements. List each of these interfaces when
6918         building the entry for the type.
6919         (Generate_Definition): Initialize component Def and Typ of new entry
6920         in table Xrefs, to avoid to have these components unitialized.
6921         (Output_References): Split Is_Abstract flag into
6922         Is_Abstract_Subprogram and Is_Abstract_Type.
6923         (Generate_Reference): Add barrier to do not generate the warning
6924         associated with Ada 2005 entities with entities generated by the
6925         expander.
6926
6927 2007-04-06  Robert Dewar  <dewar@adacore.com>
6928             Arnaud Charlet  <charlet@adacore.com>
6929             Vincent Celier  <celier@adacore.com>
6930
6931         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
6932         Update 'Exception Handling Control' chapter which was outdated.
6933         Minor fix to documentation of -gnatwq
6934         Remove section "Adapting the Run Time to a New C++ Compiler" because
6935         it is now obsolete.
6936         Add passage on need of -nostart-files in some non-ada-main cases.
6937         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
6938         Update documentation about Interfacing with C++
6939         Add documentation for new gnatmake switch -p
6940         Add missing protocol part in URLs.
6941         Document -gnatyA
6942         Document pragma Compile_Time_Error
6943         Add documentation for Object_Size indicating that stand alone
6944         objects can have a larger size in some cases.
6945         Add node for GNAT.Byte_Swapping, GNAT.SHA1
6946         Update reference to the Ravenscar profile.
6947         Document pragma Unreferenced_Objects
6948
6949         * gnat-style.texi: Fix typo
6950
6951 2007-04-06  Vincent Celier  <celier@adacore.com>
6952
6953         * mlib.adb (Building_Library): Only output "building a library..." in
6954         verbose mode
6955
6956         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
6957         files in verbose mode.
6958
6959         * mlib-utl.adb (Ar): Only output the first object files when not in
6960         verbose mode.
6961         (Gcc): Do not display all the object files if not in verbose mode, only
6962         the first one.
6963
6964 2007-04-06  Robert Dewar  <dewar@adacore.com>
6965
6966         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
6967         it no longer destroys the contents of Name_Buffer or Name_Len and
6968         non-standard and invalid names are handled better.
6969         (Get_Decoded_Name_String): Improve performance by using
6970         Name_Has_No_Encodings flag in the name table.
6971         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
6972         Used for debugging printouts.
6973
6974 2007-04-06  Robert Dewar  <dewar@adacore.com>
6975             Javier Miranda  <miranda@adacore.com>
6976             Bob Duff  <duff@adacore.com>
6977
6978         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
6979         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
6980         there is no need to generate always a record_definition_node in case
6981         of synchronized interface types.
6982         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
6983         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
6984         illegal in Ada 95, in cases where it is legal. Change the warnings to
6985         errors in other cases. Don't give the error unless the "not null"
6986         parses properly. Correct the source position at which the error occurs.
6987         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
6988         P_Null_Exclusion, to suppress "not null" warnings.
6989         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
6990         associated goto statements.
6991
6992         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
6993         of END RECORD
6994
6995         * scans.ads (Type_Token_Location): New flag
6996
6997         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
6998         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
6999         P_Null_Exclusion, to suppress "not null" warnings.
7000
7001 2007-04-06  Robert Dewar  <dewar@adacore.com>
7002             Javier Miranda  <miranda@adacore.com>
7003             Bob Duff  <duff@adacore.com>
7004             Vincent Celier  <celier@adacore.com>
7005
7006         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
7007         (Extensions_Allowed): No longer sets Ada_Version
7008         Entry for pragma Unreferenced_Objects
7009
7010         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
7011         system.tasking if pragma priority used in a procedure
7012         (Analyze_Pragma, case Warning): Handle dot warning switches
7013         (Process_Compile_Time_Warning_Or_Error): New procedure
7014         (Analyze_Pragma): Add processing for Compile_Time_Error
7015         Add support for extra arguments External_Name and Link_Name.
7016         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
7017         (Process_Import_Or_Interface): Add support for the use of pragma Import
7018         with tagged types.
7019         (Extensions_Allowed): No longer affects Ada_Version
7020         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
7021         Is_Abstract_Type. Make sure these are called only when appropriate.
7022         Add processing for pragma Unreferenced_Objects
7023
7024         * snames.h, snames.ads, snames.adb: Add entry for pragma
7025         Compile_Time_Error
7026         Add new standard name Minimum_Binder_Options for new gprmake
7027         Add new standard names for gprmake: Archive_Suffix,
7028         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
7029         Library_Support, Library_Version_Options,
7030         Shared_Library_Minimum_Options,
7031         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
7032         Change Name_Call to Name_uCall so that it cannot clash with a legal
7033         subprogram name.
7034         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
7035         Append C_Plus_Plus to convention identifiers as synonym for CPP
7036         Add new standard names Stack and Builder_Switches
7037         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
7038         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
7039         Run_Path_Option, Toolchain_Version.
7040         Entry for pragma Unreferenced_Objects
7041
7042         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
7043         switches, without repetition of "eD". Make sure that last character of
7044         -gnatep= switch is not taken as -gnat switch character.
7045         Complete rewrite of circuit for handling saving compilation options
7046         Occasioned by need to support dot switchs for -gnatw, but cleans up
7047         things in general.
7048         -gnatX does not affect Ada_Version
7049         Include -gnatyA in -gnatg style switches
7050
7051         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
7052         warnings on return objects.
7053         (Warn_On_Useless_Assignment): Exclude warnings on return objects
7054         (Set_Dot_Warning_Switch): New procedure
7055         (Check_References): Add missing case of test for
7056         Has_Pragma_Unreferenced_Objects
7057         (Output_Unreferenced_Messages): Implement effect of new pragma
7058         Unreferenced_Objects, remove special casing of limited controlled
7059         variables.
7060
7061 2007-04-06  Vincent Celier  <celier@adacore.com>
7062
7063         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
7064         the default project path, initially done during elaboration of the
7065         package.
7066         If the prefix returned by Sdefault is null, get the prefix from a call
7067         to Executable_Prefix_Path.
7068         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
7069         null.
7070
7071         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
7072         canonical directory name to open the directory from which files are
7073         retrieved.
7074         (Record_Other_Sources): Idem.
7075         (Locate_Directory): Add the possibility to create automatically missing
7076         directories when Setup_Projects is True.
7077         Call Locate_Directory so that the directory will be created when
7078         Setup_Projects is True, for object dir, library dir, library ALI dir,
7079         library source copy dir and exec dir.
7080
7081         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
7082         versions of GNAT.
7083
7084 2007-04-06  Robert Dewar  <dewar@adacore.com>
7085
7086         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
7087         Use First/Next_Component_Or_Discriminant
7088         (Analyze_Record_Representation_Clause):
7089         Use First/Next_Component_Or_Discriminant
7090         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
7091         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
7092         definition if type is unconstrained.
7093         (Adjust_Record_For_Reverse_Bit_Order): New procedure
7094         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
7095         Is_Abstract_Subprogram and Is_Abstract_Type.
7096         (Adjust_Record_For_Reverse_Bit_Order): New procedure
7097
7098         * repinfo.adb (List_Record_Info): Use First/
7099         Next_Component_Or_Discriminant.
7100
7101         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
7102         New procedure.
7103
7104         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
7105         Include -gnatyA in default switches
7106
7107         * opt.ads: (Warn_On_Non_Local_Exception): New flag
7108         (Warn_On_Reverse_Bit_Order): New flag
7109         (Extensions_Allowed): Update the documentation.
7110         (Warn_On_Questionable_Missing_Parens): Now on by default
7111
7112         * usage.adb: Add documentation of -gnatw.x/X switches
7113         Document new -gnatyA style switch
7114         -gnatq warnings are on by default
7115
7116 2007-04-06  Ed Falis  <falis@adacore.com>
7117
7118         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
7119         full word is no longer compared twice.
7120
7121 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7122
7123         * sem_ch10.adb (Install_Limited_Context_Clauses.
7124         Expand_Limited_With_Clause): Use a new copy of selector name in the
7125         call to Make_With_Clause. This fixes the tree structure for ASIS
7126         purposes. Nothing is changed in the compiler behaviour.
7127         (Process_Body_Clauses): Handle properly use clauses whose prefix is
7128         a package renaming.
7129         (Install_Limited_With_Clauses): Do not install non-limited view when it
7130         is still incomplete.
7131
7132 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7133             Gary Dismukes  <dismukes@adacore.com>
7134
7135         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
7136         when capturing size information, instead of base type, which for a
7137         formal array type will be the unconstrained type.
7138         (Analyze_Formal_Object_Declaration): Add check for illegal default
7139         expressions for a formal in object of a limited type.
7140         (Instantiate_Object): Ditto.
7141         (Check_Formal_Package_Instance): Skip entities that are formal objects,
7142         because they were defaulted in the formal package and no check applies
7143         to them.
7144         (Check_Formal_Package_Instance): Extend conformance check to other
7145         discrete types beyond Integer.
7146         (Process_Default): Copy directly the unmatched formal. A generic copy
7147         has already been performed in Analyze_Formal_Package.
7148         (Analyze_Associations): If a formal subprogram has no match, check for
7149         partial parametrization before looking for a default, to prevent
7150         spurious errors.
7151         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
7152         not set the instantiation environment before analyzing the actuals.
7153         Fixes regression on 8515-003 with implementation of AI-133.
7154         Set_Instance_Env checks whether the generic unit is a predefined
7155         unit, in which case the instance must be analyzed with the latest Ada
7156         mode. This setting must take place after analysis of the actuals,
7157         because the actuals must be analyzed and frozen in the Ada mode extant
7158         outside of the current instantiation.
7159         (Save_Env, Restore_Env): Preserve and restore the configuration
7160         parameters so that predefined units can be compiled in the proper Ada
7161         mode.
7162         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
7163         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
7164         and Is_Abstract_Type.
7165         (Analyze_Formal_Package): For better error recovery, Add exception
7166         handler to catch Instantion_Error, which can be raised in
7167         Analyze_Associations
7168
7169 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7170             Bob Duff  <duff@adacore.com>
7171             Gary Dismukes  <dismukes@adacore.com>
7172
7173         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
7174         prefix type is a discriminated subtype of the type of the formal.
7175         (Analyze_Allocator): Collect all coextensions regardless of the context.
7176         Whether they can be allocated statically is determined in exp_ch4.
7177         (Analyze_Selected_Component): If the prefix is a limited view and the
7178         non-limited view is available, use the non-limited one.
7179         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
7180         therefore illegal), suggest a qualified expression rather than a type
7181         conversion, because a type conversion would be illegal in this context.
7182         (Anayze_Allocator): Trace recursively all nested allocators so that all
7183         coextensions are on the corresponding list for the root. Do no mark
7184         coextensions if the root allocator is within a declaration for a stack-
7185         allocated object, because the access discriminants will be allocated on
7186         the stack as well.
7187         (Analyze_Call): Remove restriction on calls to limited functions for the
7188         cases of generic actuals for formal objects, defaults for formal objects
7189         and defaults for record components.
7190         (Analyze_Allocator): Before analysis, chain coextensions on the proper
7191         element list. Their expansion is delayed until the enclosing allocator
7192         is processed and its finalization list constructed.
7193         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
7194         for an operation with the given name among the primitive operations of
7195         the corresponding record type.
7196         (Analyze_Selected_Component): If the prefix is a task type that
7197         implements an interface, and there is no entry with the given name,
7198         check whether there is another primitive operation (e.g. a function)
7199         with that name.
7200         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
7201         properly the indexing of a function call written in prefix form, where
7202         the function returns an array type, and all parameters of the function
7203         except the first have defaults.
7204         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
7205         the original operands, rather than relocating them, for efficiency and
7206         to work properly when an operand is overloaded.
7207         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
7208         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
7209         (Analyze_Selected_Component): If the prefix is a private extension, only
7210         scan the visible components, not those of the full view.
7211         (Try_Primitive_Operation): If the operation is a procedure, collect all
7212         possible interpretations, as for a function, because in the presence of
7213         classwide parameters several primitive operations of the type can match
7214         the given arguments.
7215
7216 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7217             Robert Dewar  <dewar@adacore.com>
7218
7219         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
7220         tag-indeterminate call to an abstract function, when the left-hand side
7221         is not classwide.
7222         (Analyze_Loop_Statement): Improve detection of infinite loops
7223
7224 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7225             Thomas Quinot  <quinot@adacore.com>
7226
7227         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
7228         out of Analyze_Package_Declaration, because processing must be applied
7229         to package bodies as well, for deferred constants completed by pragmas.
7230         (Analyze_Package_Declaration): When the package declaration being
7231         analyzed does not require an explicit body, call Check_Completion.
7232         (May_Need_Implicit_Body): An implicit body is required when a package
7233         spec contains the declaration of a remote access-to-classwide type.
7234         (Analyze_Package_Body): If the package contains RACWs, append the
7235         pending subprogram bodies generated by exp_dist at the end of the body.
7236         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
7237         Is_Abstract_Subprogram and Is_Abstract_Type.
7238         (Preserve_Full_Attributes): The full entity list is not an attribute
7239         that must be preserved from full to partial view.
7240
7241         * sem_dist.adb (Add_RAS_Dereference_TSS):
7242         Change primitive name to _Call so it cannot clash with any legal
7243         identifier, and be special-cased in Check_Completion.
7244         Mark the full view of the designated type for the RACW associated with
7245         a RAS as Comes_From_Source to get proper view switching when installing
7246         private declarations.
7247         Provite a placeholder nested package body along with the nested spec
7248         to have a place for Append_RACW_Bodies to generate the calling stubs
7249         and stream attributes.
7250
7251 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7252             Robert Dewar  <dewar@adacore.com>
7253
7254         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
7255         that is a limited view, check the non-limited view if available.
7256         (Undefined): Refine error message for missing with of Text_IO
7257         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
7258         to distinguish real missing with cases.
7259         Fix format of all missing with messages
7260         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
7261         renaming as body when renamed entity is abstract.
7262
7263 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7264             Javier Miranda  <miranda@adacore.com>
7265
7266         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
7267         predicate recursive, to handle complex expressions on literals whose
7268         spurious ambiguity comes from the abstract interpretation of some
7269         subexpression.
7270         (Interface_Present_In_Ancestor): Add support to concurrent record
7271         types.
7272         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
7273         Is_Abstract_Subprogram and Is_Abstract_Type.
7274
7275 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7276             Javier Miranda  <miranda@adacore.com>
7277
7278         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
7279         dereference of a local object R created as a reference to another
7280         object O, use the access level of O.
7281         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
7282         rather than local Same_Formal_Type, to check whether protected operation
7283         overrides an inherited one.
7284         (Same_Formal_Type): New predicate, used when matching signatures of
7285         overriding synchronized operations, to handle the case when a formal
7286         has a type that is a generic actual.
7287         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
7288         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
7289         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
7290         syntactic ambiguities involving indexing of function calls that return
7291         arrays.
7292         (Abstract_Interface_List): New subprogram that returns the list of
7293         abstract interfaces associated with a concurrent type or a
7294         concurrent record type.
7295         (Interface_Present_In_Parent): New subprogram used to check if a
7296         given type or some of its parents implement a given interface.
7297         (Collect_Abstract_Interfaces): Add support for concurrent types
7298         with interface types.
7299         (Has_Abstract_Interfaces): Add support for concurrent types with
7300         interface types.
7301         (Is_Parent): New subprogram that determines whether E1 is a parent
7302         of E2. For a concurrent type its parent is the first element of its
7303         list of interface types; for other types this function provides the
7304         same result than Is_Ancestor.
7305         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
7306         (Collect_Synchronized_Interfaces): Removed because the subprogram
7307         Collect_Abstract_Interfaces provides this functionality.
7308         (Collect_Abstract_Interfaces): Minor update to give support to
7309         concurrent types and thus avoid undesired code duplication.
7310         (Get_Subprogram_Entity): Handle entry calls.
7311         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
7312         entry calls.
7313         (Enter_Name): Do not give -gnatwh hiding warning for record component
7314         entities, they never result in hiding.
7315
7316 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7317             Robert Dewar  <dewar@adacore.com>
7318
7319         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
7320         to chain nested components that are allocators for access discriminants
7321         of the enclosing object.
7322         Add N_Push and N_Pop nodes
7323         New field Exception_Label added
7324         (Local_Raise_Statements): New field in N_Exception_Handler_Node
7325         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
7326         (Is_Coextension): New flag for allocators, to mark allocators that
7327         correspond to access discriminants of dynamically allocated objects.
7328         (N_Block_Statement): Document the fact that the corresponding entity
7329         can be an E_Return_Statement.
7330         (Is_Coextension): New flag for allocators.
7331         Remove all code for DSP option
7332
7333         * sprint.ads, sprint.adb: Display basic information for class_wide
7334         subtypes. Add handling of N_Push and N_Pop nodes
7335
7336 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
7337
7338         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
7339         before propagating exception.
7340
7341 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7342
7343         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
7344         an address always within the call instruction from a return address.
7345
7346 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7347             Eric Botcazou <botcazou@adacore.com>
7348
7349         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
7350         expression with a COMPOUND_EXPR including the call instead of emitting
7351         the call directly here.
7352         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
7353         high bound is constant and the slice is empty.  Tidy.
7354         (tree_transform, case N_Op_Not): Handle properly the case where the
7355         operation applies to a private type whose full view is a modular type.
7356         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
7357         Address_Clause, use the associated Expression as the GNAT tree
7358         representing the choice value to ensure the corresponding GCC tree is
7359         of the proper kind.
7360         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
7361         instead of just the operands, as the base GCC stabilize_reference does.
7362         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
7363         requested; otherwise fail.
7364         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
7365
7366 2007-04-06  Thomas Quinot  <quinot@adacore.com>
7367
7368         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
7369         implementation of UI_Div.
7370         (UI_Div): Reimplement as a call to UI_Div_Rem.
7371         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
7372         remainder, avoiding the cost of a multiplication and a subtraction.
7373         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
7374         provides both quotient and remainder in a single computation.
7375         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
7376         functions for uint.
7377         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
7378         is undefined if the given n is not inversible.
7379
7380 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7381
7382         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
7383         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
7384         opcodes.
7385
7386 2007-04-06  Eric Botcazou <botcazou@adacore.com>
7387             Olivier Hainque  <hainque@adacore.com>
7388
7389         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
7390         when updating the contents of the old pointer to an unconstrained array.
7391         (end_subprog_body): Set error_gnat_node to Empty.
7392         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
7393         (unchecked_convert): For subtype to base type conversions, require that
7394         the source be a subtype if it is an integer type.
7395         (builtin_decls): New global, vector of available builtin functions.
7396         (gnat_pushdecl): Add global builtin function declaration nodes to the
7397         builtin_decls list.
7398         (gnat_install_builtins): Adjust comments.
7399         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
7400         calling gnat_pushdecl, so that it knows when it handed a builtin
7401         function declaration node.
7402         (builtin_decl_for): Search the builtin_decls list.
7403
7404 2007-04-06  Eric Botcazou <botcazou@adacore.com>
7405
7406         * s-stchop-vxworks.adb: 
7407         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
7408
7409 2007-04-06  Robert Dewar  <dewar@adacore.com>
7410             Arnaud Charlet  <charlet@adacore.com>
7411
7412         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
7413
7414         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
7415         of files
7416         Add mention of -Sev (set initialize_scalars option from environment
7417         variable at run time) in gnatbind usage message.
7418
7419         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
7420
7421         * fname-uf.ads: Minor comment fix
7422
7423         * osint.ads: Change pragma Elaborate to Elaborate_All
7424
7425         * par-load.adb: Add documentation.
7426
7427         * sem_cat.ads, sem_cat.adb: Minor code reorganization
7428
7429         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
7430
7431         * s-secsta.ads: Extra comments
7432
7433         * s-soflin.ads: Minor comment fixes
7434
7435         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
7436
7437         * s-wchcon.ads: Minor comment addition
7438
7439         * treepr.adb: Minor change in message
7440         (Print_Name,Print_Node): Make these debug printouts more robust: print
7441         "no such..." instead of crashing on bad input.
7442
7443 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
7444
7445         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
7446         instead of gnat_signed_or_unsigned_type.
7447         * utils.c (gnat_signed_or_unsigned_type): Remove.
7448         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
7449         * gigi.h (gnat_signed_or_unsigned_type): Remove
7450
7451 2007-03-09  Roger Sayle  <roger@eyesopen.com>
7452
7453         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
7454         fold with the result of buildN.
7455         * decl.c (gnat_to_gnu_entity): Likewise.
7456         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
7457         * utils.c (finish_record_type, merge_sizes, max_size, convert):
7458         Likewise.
7459         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
7460         nonbinary_modular_operation, build_binary_op, build_unary_op,
7461         build_cond_expr): Likewise.
7462
7463         * utils.c (convert): Use fold_build1 when casting values to void.
7464         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
7465         fold_convert instead of convert when appropriate.
7466
7467 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
7468
7469         * Make-lang.in: Add install-pdf target as copied from
7470         automake v1.10 rules.
7471
7472 2007-02-28  Andreas Schwab  <schwab@suse.de>
7473
7474         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
7475         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
7476         (doc/gnat-style.info): Likewise.
7477
7478 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
7479
7480         * gnat-style.texi: Standardize title page.
7481         * gnat_rm.texi: Likewise.
7482         * gnat_ugn.texi: Likewise.
7483
7484 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
7485
7486         * decl.c (annotate_value): Adjust for refactoring of tree_map
7487         hierarchy.
7488
7489 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
7490
7491         * decl.c (annotate_value): Adjust for refactoring of tree_map
7492         hierarchy.
7493
7494 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
7495
7496         PR ada/18819
7497         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
7498         untagged derived type, add hidden components to keep discriminant
7499         layout consistent, when a given discriminant of the derived type
7500         constraints several discriminants of the parent type.
7501
7502 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
7503             Sandra Loosemore  <sandra@codesourcery.com>
7504
7505         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
7506         build the call expression.
7507         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
7508         * utils.c (max_size) <tcc_exceptional>: Delete.
7509         <tcc_vl_exp>: New case.
7510         <tcc_expression>: Delete CALL_EXPR subcase.
7511         (build_global_cdtor): Use build_call_nary instead of build3.
7512         * utils2.c (build_call_1_expr): Likewise.
7513         (build_call_2_expr): Likewise.
7514         (build_call_0_expr): Likewise.
7515         (build_call_alloc_dealloc): Likewise.
7516
7517 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
7518
7519         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
7520         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
7521         and _Unwind_SWord with _sleb128_t.
7522
7523 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
7524
7525         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
7526         * decl.c: Include gt-ada-decl.h.
7527         (annotate_value_cache): New.
7528         (annotate_value): Use it instead of TREE_COMPLEXITY.
7529
7530 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
7531
7532         * misc.c, utils2.c: Fix comment typos.
7533
7534 2007-01-24  Roger Sayle  <roger@eyesopen.com>
7535
7536         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
7537         TREE_CONSTANT_OVERFLOW.
7538         (allocatable_size_p, annotate_value): Likewise.
7539         * trans.c (gnat_to_gnu): Likewise.
7540         * utils.c (unchecked_convert): Likewise.
7541         * utils2.c (build_simple_component_ref): Likewise.
7542
7543 2007-01-23  Richard Guenther  <rguenther@suse.de>
7544
7545         PR bootstrap/30541
7546         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
7547         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
7548         (gnatboot3): Likewise.
7549         (GNATBIND): Do not define.
7550         * Makefile.in (GNATBIND): Do not define.
7551
7552 2007-01-08  Richard Guenther  <rguenther@suse.de>
7553
7554         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
7555         * trans.c (gnat_to_gnu): Likewise.
7556
7557 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
7558
7559         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
7560         * adaint.c: Likewise.
7561
7562 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
7563
7564         Merge from gimple-tuples-branch:
7565         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
7566
7567         * ada-tree.h (lang_tree_node): Handle gimple tuples.
7568         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
7569         GIMPLE_MODIFY_STMT.
7570
7571 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
7572
7573         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
7574         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
7575         Fix typos.
7576
7577 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
7578
7579         PR ada/27936
7580         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
7581         if the initializer takes into account the padding.
7582
7583 2006-11-11  Richard Guenther  <rguenther@suse.de>
7584
7585         * trans.c (maybe_stabilize_reference): Remove handling of
7586         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
7587
7588 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
7589
7590         PR ada/29707
7591         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
7592         (To_Target_Priority): New function.
7593
7594 2006-10-31  Robert Dewar  <dewar@adacore.com>
7595
7596         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
7597         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
7598         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
7599         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
7600         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
7601         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
7602         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
7603         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
7604         a-szbzha.adb: Minor reformatting. Fix header.
7605
7606         * a-numaux-x86.adb: Add parentheses for use of unary minus
7607         * a-ngcefu.adb: Supply missing parentheses for unary minus
7608         * a-ngcoty.adb: Add parens for use of unary minus
7609         * a-ngelfu.adb: Add missing parens for unary minus
7610         * a-tifiio.adb: Add parentheses for uses of unary minus
7611
7612 2006-10-31  Robert Dewar  <dewar@adacore.com>
7613             Bob Duff  <duff@adacore.com>
7614             Ed Schonberg  <schonberg@adacore.com>
7615
7616         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
7617         with multiplying operator.
7618         (Expected_Type_Is_Any_Real): New function to determine from the Parent
7619         pointer whether the context expects "any real type".
7620         (Resolve_Arithmetic_Op): Do not give an error on calls to the
7621         universal_fixed "*" and "/" operators when they are used in a context
7622         that expects any real type. Also set the type of the node to
7623         Universal_Real in this case, because downstream processing requires it
7624         (mainly static expression evaluation).
7625         Reword some continuation messages
7626         Add some \\ sequences to continuation messages
7627         (Resolve_Call): Refine infinite recursion case. The test has been
7628         sharpened to eliminate some false positives.
7629         Check for Current_Task usage now includes entry barrier, and is now a
7630         warning, not an error.
7631         (Resolve): If the call is ambiguous, indicate whether an interpretation
7632         is an inherited operation.
7633         (Check_Aggr): When resolving aggregates, skip associations with a box,
7634         which are priori correct, and will be replaced by an actual default
7635         expression in the course of expansion.
7636         (Resolve_Type_Conversion): Add missing support for conversion from
7637         a class-wide interface to a tagged type. Minor code cleanup.
7638         (Valid_Tagged_Converion): Add support for abstact interface type
7639         conversions.
7640         (Resolve_Selected_Component): Call Generate_Reference here rather than
7641         during analysis, and use May_Be_Lvalue to distinguish read/write.
7642         (Valid_Array_Conversion): New procedure, abstracted from
7643         Valid_Conversion, to incorporate accessibility checks for arrays of
7644         anonymous access types.
7645         (Valid_Conversion): For a conversion to a numeric type occurring in an
7646         instance or inlined body, no need to check that the operand type is
7647         numeric, since this has been checked during analysis of the template.
7648         Remove legacy test for scope name Unchecked_Conversion.
7649
7650         * sem_res.ads: Minor reformatting
7651
7652         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
7653         (PE_Current_Task_In_Entry_Body): New exception code
7654         (SE_Restriction_Violation): Removed, not used
7655
7656         * a-except.ads:  Update comments.
7657
7658         * types.h, types.ads: Add definition for Validity_Check
7659         (PE_Current_Task_In_Entry_Body): New exception code
7660         (SE_Restriction_Violation): Removed, not used
7661
7662 2006-10-31  Thomas Quinot  <quinot@adacore.com>
7663
7664         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
7665         error status.
7666
7667 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
7668             Jose Ruiz  <ruiz@adacore.com>
7669
7670         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
7671         part of Ada.Calendar: all subprogram raise Unimplemented.
7672         (Split_W_Offset): Temp function body, raising Unimplemented
7673
7674         * a-calend.ads, a-calend-vms.ads: 
7675         Add imported variable Invalid_TZ_Offset used to designate targets unable
7676         to support time zones.
7677         (Unimplemented): Temporary function raised by the body of new
7678         subprograms below.
7679         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
7680         unit provides handling of leap seconds and is used by the new Ada 2005
7681         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
7682         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
7683         version returns an extra value which is the offset to UTC.
7684
7685         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
7686         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
7687         (Split_W_Offset): New function body.
7688         (Time_Of): When a date is close to UNIX epoch, compute the time for
7689         that date plus one day (that amount is later substracted after
7690         executing mktime) so there are no problems with time zone adjustments.
7691
7692         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
7693
7694         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
7695         a-catizo.ads, a-catizo.adb: New files.
7696
7697         * impunit.adb: Add new Ada 2005 entries
7698
7699         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
7700         Rename all occurences of "__gnat_localtime_r" to
7701         "__gnat_localtime_tzoff".
7702         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
7703         zone data and calculate the GMT offset.
7704         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
7705         Use the field "tm_gmtoff" to extract the GMT offset.
7706         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
7707         the external variable "timezone" to calculate the GMT offset.
7708
7709 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
7710             Jose Ruiz  <ruiz@adacore.com>
7711
7712         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
7713         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
7714         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
7715         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
7716         System.Any_Priority to a POSIX priority on the target.
7717
7718         * system-linux-ia64.ads: 
7719         Extend range of Priority types on Linux to use the whole range made
7720         available by the system.
7721
7722         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
7723         function maps from System.Any_Priority to a POSIX priority on the
7724         target.
7725         (PTHREAD_PRIO_PROTECT): Set real value.
7726         (PTHREAD_PRIO_INHERIT): Now a function.
7727         (SIGCPUFAIL): New signal.
7728         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
7729         are documented as reserved by the OS.
7730
7731         * system-aix.ads: Use the full range of priorities provided by the
7732         system on AIX.
7733
7734         * s-taprop-posix.adb: Call new function To_Target_Priority.
7735         (Set_Priority): Take into account Task_Dispatching_Policy and
7736         Priority_Specific_Dispatching pragmas when determining if Round Robin
7737         must be used for scheduling the task.
7738
7739         * system-linux-x86_64.ads, system-linux-x86.ads, 
7740         system-linux-ppc.ads: Extend range of Priority types on Linux to use
7741         the whole range made available by the system.
7742
7743         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
7744         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
7745         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
7746         when deallocating the TCB in order to avoid potential references to
7747         deallocated data.
7748         (Set_Priority): Take into account Task_Dispatching_Policy and
7749         Priority_Specific_Dispatching pragmas when determining if Round Robin
7750         or FIFO within priorities must be used for scheduling the task.
7751
7752         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
7753         the Thread field (to be used internally by the run-time system) and the
7754         kernel-level task id in the LWP field (to be used by the debugger).
7755         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
7756         instance, and propagate the current task options to the spawned task.
7757         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
7758         (Initialize): Set Round Robin dispatching when the corresponding pragma
7759         is in effect.
7760
7761 2006-10-31  Robert Dewar  <dewar@adacore.com>
7762
7763         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
7764         system-linux-hppa.ads, system-hpux-ia64.ads, 
7765         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
7766         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
7767         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
7768         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
7769         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
7770         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
7771         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
7772         Default_Bit_Order) to kill constant condition warnings for references
7773         to this switch.
7774
7775 2006-10-31  Vincent Celier  <celier@adacore.com>
7776             Eric Botcazou  <ebotcazou@adacore.com>
7777
7778         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
7779         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
7780         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
7781         Ext_To, when building the library file name
7782
7783         * mlib-tgt-vxworks.adb: ditto.
7784         (Get_Target_Suffix): Add support for x86 targets.
7785
7786         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
7787
7788         * mlib-tgt-darwin.adb: 
7789         Use Append_To, instead of Ext_To, when building the library file name
7790         (Flat_Namespace): New global variable.
7791         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
7792         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
7793         (Link_Shared_Libgcc): Delete.
7794         (Build_Dynamic_Library): Adjust for above changes.
7795         Use Opt package.
7796         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
7797
7798 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
7799
7800         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
7801         (Initialize): Add type conversions required by above change.
7802
7803 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
7804
7805         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
7806         (getpid): New body for this function that uses the underlying taskIdSelf
7807         function for VxWorks 5 and VxWorks 6 in kernel mode.
7808         (unsigned_int): New type, modular to allow logical bit operations.
7809         (taskOptionsGet): New imported function.
7810
7811         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
7812         field to be compliant with the type used by the corresponding operating
7813         system primitive.
7814
7815 2006-10-31  Pascal Obry  <obry@adacore.com>
7816             Eric Botcazou  <ebotcazou@adacore.com>
7817             Vincent Celier  <celier@adacore.com>
7818
7819         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
7820         ASCII version of the registry API. This is needed as the GNAT runtime
7821         is now UNICODE by default.
7822         Include version.h.
7823         (get_gcc_version): Do not hardcode the return value.
7824         (__gnat_file_time_name): On Windows properly set the default returned
7825         value to -1 which corresponds to Invalid_Time.
7826         (__gnat_fopen): New routine. A simple wrapper on all plateforms
7827          except on Windows where it does conversion for unicode support.
7828         (__gnat_freopen): Idem.
7829         (__gnat_locate_exec_on_path): If environment variable PATH does not
7830         exist, return a NULL pointer
7831
7832         * adaint.h: (__gnat_fopen): Declare.
7833         (__gnat_freopen): Likewise.
7834
7835         * mingw32.h (_tfreopen): Define this macro here for older MingW
7836         version.
7837         Activate the unicode support on platforms using a MingW runtime
7838         version 3.9 or newer.
7839
7840         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
7841         This is needed for proper unicode support on Windows.
7842         (freopen): Idem.
7843
7844 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
7845             Nicolas Setton  <setton@adacore.com>
7846             Olivier Hainque  <hainque@adacore.com>
7847             Gary Dismukes  <dismukes@adacore.com>
7848
7849         * gigi.h: (tree_code_for_record_type): Declare.
7850         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
7851         (get_global_renaming_pointers): Rename to
7852         invalidate_global_renaming_pointers.
7853         (static_ctors): Delete.
7854         (static_dtors): Likewise.
7855         (gnat_write_global_declarations): Declare.
7856         (create_var_decl): Adjust descriptive comment to indicate that the
7857         subprogram may return a CONST_DECL node.
7858         (create_true_var_decl): Declare new function, similar to
7859         create_var_decl but forcing the creation of a VAR_DECL node.
7860         (get_global_renaming_pointers): Declare.
7861         (add_global_renaming_pointer): Likewise.
7862
7863         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
7864
7865         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
7866         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
7867         processing.
7868         (gnat_to_gnu_entity): Remove From_With_Type from computation for
7869         imported_p.
7870         <E_Access_Type>: Use the Non_Limited_View as the full view of the
7871         designated type if the pointer comes from a limited_with clause.  Make
7872         incomplete designated type if it is in the main unit and has a freeze
7873         node.
7874         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
7875         Underlying_Full_View similarly.  Return earlier if the full view already
7876         has an associated tree.
7877         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
7878         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
7879         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
7880         reference type built for objects with an address clause.
7881         Use create_true_var_decl with const_flag set for
7882         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
7883         TREE_READONLY set.
7884         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
7885         for Character and Wide_Character types. This info is read by the
7886         dwarf-2 writer, and is needed to be able to use the command "ptype
7887         character" in the debugger.
7888         (gnat_to_gnu_entity): When generating a type representing
7889         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
7890         so that debug writers can distinguish it from ordinary integers.
7891         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
7892         addition to TREE_READONLY to assert the constantness of variables for
7893         elaboration purposes.
7894         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
7895         parameters to call new Einfo function First_Formal_With_Extras.
7896         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
7897         protected type with its corresponding discriminant, to obtain a usable
7898         declaration
7899         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
7900         for a multiple elaboration of the "equivalent" type.
7901         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
7902         into record_global_renaming_pointer.
7903         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
7904         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
7905         <E_Array_Subtype>: Likewise.
7906         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
7907         incomplete subtypes and incomplete subtypes of incomplete types visible
7908         through a limited with clause.
7909         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
7910         the base index type for the maximum size of the array only if they are
7911         constant.
7912         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
7913         expression into a SAVE_EXPR if stabilization failed.
7914
7915         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
7916         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
7917         by lower level compilation passes.
7918         (gnat_genericize): New function, lowering a function body to GENERIC.
7919         Turn the type of RESULT_DECL into a real reference type if the decl
7920         has been marked DECL_BY_REFERENCE, and adjust references to the latter
7921         accordingly.
7922         (gnat_genericize_r): New function. Tree walking callback for
7923         gnat_genericize.
7924         (convert_from_reference, is_byref_result): New functions. Helpers for
7925         gnat_genericize_r.
7926         (create_type_decl): Call gnat_pushdecl before calling
7927         rest_of_decl_compilation, to make sure that field TYPE_NAME of
7928         type_decl is properly set before calling the debug information writers.
7929         (write_record_type_debug_info): The heuristics which compute the
7930         alignment of a field in a variant record might not be accurate. Add a
7931         safety test to make sure no alignment is set to a smaller value than
7932         the alignment of the field type.
7933         (make_dummy_type): Use the Non_Limited_View as the underlying type if
7934         the type comes from a limited_with clause. Do not loop on the full view.
7935         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
7936         (dummy_node_table): New global variable, moved from decl.c.
7937         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
7938         (save_gnu_tree): Use above macros.
7939         (get_gnu_tree): Likewise.
7940         (present_gnu_tree): Likewise.
7941         (init_dummy_type): New function, moved from decl.c. Use above macros.
7942         (make_dummy_type): Likewise.
7943         (tree_code_for_record_type): New function extracted from make_dummy_type
7944         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
7945         (static_ctors): Change it to a vector, make static.
7946         (static_dtors): Likewise.
7947         (end_subprog_body): Adjust for above change.
7948         (build_global_cdtor): Moved from trans.c.
7949         (gnat_write_global_declarations): Emit global constructor and
7950         destructor, and call cgraph_optimize before emitting debug info for
7951         global declarations.
7952         (global_decls): New global variable.
7953         (gnat_pushdecl): Store the global declarations in global_decls, for
7954         later use.
7955         (gnat_write_global_declarations): Emit debug information for global
7956          declarations.
7957         (create_var_decl_1): Former create_var_decl, with an extra argument to
7958          state whether the creation of a CONST_DECL is allowed.
7959         (create_var_decl): Behavior unchanged. Now a wrapper around
7960         create_var_decl_1 allowing CONST_DECL creation.
7961         (create_true_var_decl): New function, similar to create_var_decl but
7962         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
7963         (create_field_decl): Do not always mark the field as addressable
7964         if its type is an aggregate.
7965         (global_renaming_pointers): New static variable.
7966         (add_global_renaming_pointer): New function.
7967         (get_global_renaming_pointers): Likewise.
7968
7969         * misc.c (gnat_dwarf_name): New function.
7970         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
7971         (gnat_post_options): Add comment about structural alias analysis.
7972         (gnat_parse_file): Do not call cgraph_optimize here.
7973         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
7974
7975         * trans.c (process_freeze_entity): Don't abort if we already have a
7976         non dummy GCC tree for a Concurrent_Record_Type, as it might
7977         legitimately have been elaborated while processing the associated
7978         Concurrent_Type prior to this explicit freeze node.
7979         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
7980         exception handler volatile if it is of variable size.
7981         (process_type): Remove bypass for types coming from a limited_with
7982         clause.
7983         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
7984         actual, convert the corresponding gnu_actual to the real destination
7985         type when necessary.
7986         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
7987         originally TREE_READONLY but whose elaboration cannot be performed
7988         statically.
7989         Part of fix for F504-021.
7990         (tree_transform, subprogram cases): Change loops on formal parameters to
7991         call new Einfo function First_Formal_With_Extras.
7992         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
7993         stemming from type conversion for the lhs.
7994         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
7995         number of bits per unit for components of records.
7996         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
7997         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
7998         with At_End_Proc after the SJLJ EH cleanup.
7999         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
8000         compilation unit.
8001         (elaborate_all_entities): Do not retest type_annotate_only.
8002         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
8003         result type of an abstract subprogram, which may be an itype associated
8004         with an anonymous access result (related to AI-318-02).
8005         (build_global_cdtor): Move to utils.c.
8006         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
8007         this choice is not a null tree nor an integer constant.
8008         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
8009         on the body of elaboration routines instead of mark_unvisited.
8010         (add_stmt): Do not mark the tree.
8011         (add_decl_expr): Tweak comment.
8012         (mark_unvisited): Delete.
8013         (unshare_save_expr): New static function.
8014         (call_to_gnu): Issue an error when making a temporary around a
8015         procedure call because of non-addressable actual parameter if the
8016         type of the formal is by_reference.
8017         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
8018         after building the elaboration routine.
8019
8020 2006-10-31  Bob Duff  <duff@adacore.com>
8021
8022         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
8023         as finalization-started, so we can raise Program_Error on 'new'.
8024
8025         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
8026         collection has already started.
8027
8028         * s-finimp.ads (Collection_Finalization_Started): Added new special
8029         flag value for indicating that a collection's finalization has started.
8030
8031         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
8032         create a task whose master has already waited for dependent tasks.
8033
8034 2006-10-31  Robert Dewar  <dewar@adacore.com>
8035
8036         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
8037
8038         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
8039         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
8040         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
8041         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
8042         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
8043         a-except-2005.ads: Add pragma Preelaborable_Warning
8044
8045 2006-10-31  Robert Dewar  <dewar@adacore.com>
8046             Jose Ruiz  <ruiz@adacore.com>
8047
8048         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
8049
8050         * ali.adb (Get_Name): Properly handle scanning of wide character names
8051         encoded with brackets notation.
8052         (Known_ALI_Lines): Add S lines to this list.
8053         (Scan_ALI): Acquire S (priority specific dispatching) lines.
8054         New flag Elaborate_All_Desirable in unit table
8055
8056         * ali.ads (Priority_Specific_Dispatching): Add this range of
8057         identifiers to be used for Priority_Specific_Dispatching table entries.
8058         (ALIs_Record): Add First_Specific_Dispatching and
8059         Last_Specific_Dispatching that point to the first and last entries
8060         respectively in the priority specific dispatching table for this unit.
8061         (Specific_Dispatching): Add this table for storing each S (priority
8062         specific dispatching) line encountered in the input ALI file.
8063         New flag Elaborate_All_Desirable in unit table
8064
8065         * bcheck.adb: (Check_Configuration_Consistency): Add call to
8066         Check_Consistent_Dispatching_Policy.
8067         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
8068         verifying that the use of Priority_Specific_Dispatching,
8069         Task_Dispatching_Policy, and Locking_Policy is consistent across the
8070         partition.
8071
8072         * bindgen.adb: (Public_Version_Warning): function removed.
8073         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
8074         required information from ALI files in order to initialize the table
8075         containing the specific dispatching policy.
8076         (Gen_Adainit_Ada): Generate the variables required for priority specific
8077         dispatching entries (__gl_priority_specific_dispatching and
8078         __gl_num_specific_dispatching).
8079         (Gen_Adainit_C): Generate the variables required for priority specific
8080         dispatching entries (__gl_priority_specific_dispatching and
8081         __gl_num_specific_dispatching).
8082         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
8083         pragma entries.
8084         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
8085         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
8086         (Tab_To): Removed.
8087         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
8088         a call to gnat_set_globals.
8089         Generate a string containing settings from
8090         Priority_Specific_Dispatching pragma entries.
8091         (Gen_Object_Files_Options): Do not include the runtime libraries when
8092         pragma No_Run_Time is specified.
8093
8094         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
8095         consistency with s-intman-posix.adb.
8096         (__gnat_error_handler, case FreeBSD): Account for the fact that the
8097         handler is installed with SA_SIGINFO.
8098         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
8099         FreeBSD ZCX support, copied from Linux version.
8100         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
8101         sigfillset, and sigemptyset so the routines defined by MaRTE.
8102         (__gl_priority_specific_dispatching): Add this variable that stores the
8103         string containing priority specific dispatching policies in the
8104         partition.
8105         (__gl_num_specific_dispatching): Add this variable that indicates the
8106         highest priority for which a priority specific dispatching pragma
8107         applies.
8108         (__gnat_get_specific_dispatching): Add this routine that returns the
8109         priority specific dispatching policy, as set by a
8110         Priority_Specific_Dispatching pragma appearing anywhere in the current
8111         partition. The input argument is the priority number, and the result
8112         is the upper case first character of the policy name.
8113         (__gnat_set_globals): Now a dummy function.
8114         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
8115         mechargs instead of sigargs, as the latter can be retrieved from the
8116         former and sigargs is not what we want on ia64.
8117         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
8118         mechargs argument.
8119         (__gnat_adjust_context_for_raise, ia64-vms): New function.
8120         (tasking_error): Remove unused symbol.
8121         (_abort_signal): Move this symbol to the IRIX specific part since this
8122         is the only target that uses this definition.
8123         (Check_Abort_Status): Move this symbol to the IRIX specific part since
8124         this is the only target that uses this definition.
8125         (Lock_Task): Remove unused symbol.
8126         (Unlock_Task): Remove unused symbol.
8127
8128         * lib-writ.adb (Write_ALI): Output new S lines for
8129         Priority_Specific_Dispatching pragmas.
8130         Implement new flag BD for elaborate body desirable
8131
8132         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
8133         (Specific_Dispatching): Add this table for storing the entries
8134         corresponding to Priority_Specific_Dispatching pragmas.
8135         Document new BD flag for elaborate body desirable
8136
8137         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
8138         of known pragmas.
8139
8140 2006-10-31  Javier Miranda  <miranda@adacore.com>
8141
8142         * a-tags.ads, a-tags.adb: 
8143         (Predefined_DT): New function that improves readability of the code.
8144         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
8145         Inherit_DT): Use the new function Predefined_DT to improve code
8146         readability.
8147         (Register_Interface_Tag): Update assertion.
8148         (Set_Interface_Table): Update assertion.
8149         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
8150         determining progenitor interfaces in Tags.
8151         (Inherit_CPP_DT): New subprogram.
8152
8153         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
8154         analysis of the thunk code.
8155         (Expand_Interface_Conversion): Handle run-time conversion of
8156         access to class wide types.
8157         (Expand_Dispatching_Call): When generating the profile for the
8158         subprogram itype for a dispatching operation, properly terminate the
8159         formal parameters chaind list (set the Next_Entity of the last formal
8160         to Empty).
8161         (Collect_All_Interfaces): Removed. This routine has been moved to
8162         sem_util and renamed as Collect_All_Abstract_Interfaces.
8163         (Set_All_DT_Position): Hidden entities associated with abstract
8164         interface primitives are not taken into account in the check for
8165         3.9.3(10); this check is done with the aliased entity.
8166         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
8167         interfacing with CPP by default.
8168         (Expand_Interface_Conversion): Add missing support for static conversion
8169         from an interface to a tagged type.
8170         (Collect_All_Interfaces): Add new out formal containing the list of
8171         abstract interface types to cleanup the subprogram Make_DT.
8172         (Make_DT): Update the code to generate the table of interfaces in case
8173         of abstract interface types.
8174         (Is_Predefined_Dispatching_Alias): New function that returns true if
8175         a primitive is not a predefined dispatching primitive but it is an
8176         alias of a predefined dispatching primitive.
8177         (Make_DT): If the ancestor of the type is a CPP_Class and we are
8178         compiling under full ABI compatibility mode we avoid the generation of
8179         calls to run-time services that fill the dispatch tables because under
8180         this mode we currently inherit the dispatch tables in the IP subprogram.
8181         (Write_DT): Emit an "is null" indication for a null procedure primitive.
8182         (Expand_Interface_Conversion): Use an address as the type of the formal
8183         of the internally built function that handles the case in which the
8184         target type is an access type.
8185
8186 2006-10-31  Robert Dewar  <dewar@adacore.com>
8187
8188         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
8189
8190 2006-10-31  Robert Dewar  <dewar@adacore.com>
8191
8192         * bindusg.ads, bindusg.adb:
8193         Change to package and rename procedure as Display, which
8194         now ensures that it only outputs usage information once.
8195
8196 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
8197
8198         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
8199         using RTPs.
8200
8201         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
8202         when using RTPs.
8203
8204 2006-10-31  Robert Dewar  <dewar@adacore.com>
8205             Ed Schonberg  <schonberg@adacore.com>
8206
8207         * treepr.adb: Use new subtype N_Membership_Test
8208
8209         * checks.ads, checks.adb: Add definition for Validity_Check
8210         (Range_Or_Validity_Checks_Suppressed): New function
8211         (Ensure_Valid): Test Validity_Check suppressed
8212         (Insert_Valid_Check): Test Validity_Check suppressed
8213         (Insert_Valid_Check): Preserve Do_Range_Check flag
8214         (Validity_Check_Range): New procedure
8215         (Expr_Known_Valid): Result of membership test is always valid
8216         (Selected_Range_Checks): Range checks cannot be applied to discriminants
8217         by themselves. Disabling those checks must also be done for task types,
8218         where discriminants may be used for the bounds of entry families.
8219         (Apply_Address_Clause_Check): Remove side-effects if address expression
8220         is non-static and is not the name of a declared constant.
8221         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
8222         Code cleanup and new error messages.
8223         (Enable_Range_Check): Test for some cases of suppressed checks
8224         (Generate_Index_Checks): Suppress index checks if index checks are
8225         suppressed for array object or array type.
8226         (Apply_Selected_Length_Checks): Give warning for compile-time detected
8227         length check failure, even if checks are off.
8228         (Ensure_Valid): Do not generate a check on an indexed component whose
8229         prefix is a packed boolean array.
8230         * checks.adb: (Alignment_Checks_Suppressed): New function
8231         (Apply_Address_Clause_Check): New procedure, this is a completely
8232         rewritten replacement for Apply_Alignment_Check
8233         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
8234         we request a discriminal value only in case of discriminants.
8235         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
8236         assignments where the target subtype is unconstrained and the target
8237         object is a parameter or dereference (other aliased cases are known
8238         to be unconstrained).
8239
8240 2006-10-31  Robert Dewar  <dewar@adacore.com>
8241
8242         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
8243         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
8244         vms_conv.adb: Fix bad table increment values (much too small)
8245
8246         * table.adb (Realloc): Make sure we get at least some new elements
8247         Defends against silly small values for table increment
8248
8249 2006-10-31  Robert Dewar  <dewar@adacore.com>
8250             Ed Schonberg  <schonberg@adacore.com>
8251             Bob Duff  <duff@adacore.com>
8252
8253         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
8254         entities. Move other fields around to make this possible
8255         (Is_Derived_Type): Add missing call to Is_Type.
8256         (Extra_Formals): New function for subprograms, entries, subprogram
8257         types.
8258         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
8259         (First_Formal_With_Extras): New function for subprogs, entries, subp
8260         types.
8261         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
8262         Add node information for E_Return_Statement.
8263         (Elaborate_Body_Desirable): New flag
8264         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
8265         to be Is_Inherently_Limited_Type, because return-by-reference has
8266         no meaning in Ada 2005.
8267         (E_Return_Statement): New entity kind.
8268         (Return_Applies_To): Field of E_Return_Statement.
8269         (Is_Return_Object): New flag in object entities.
8270         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
8271         (Must_Have_Preelab_Init): New flag
8272         (Known_To_Have_Preelab_Init): New flag
8273         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
8274         (Is_Visible_Formal): New flag on entities in formal packages.
8275         (Low_Bound_Known): New flag
8276         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
8277         Incomplete_Kind.
8278         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
8279         output when Id is an incomplete subtype.
8280
8281 2006-10-31  Robert Dewar  <dewar@adacore.com>
8282
8283         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
8284         Avoid abbreviation Creat
8285         (Finalize): List all sources in extended mail source if -gnatl
8286         switch is active.
8287         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
8288         (Finalize): Implement new -gnatl=xxx switch to output listing to file
8289         (Set_Specific_Warning_On): New procedure
8290         (Set_Specific_Warning_Off): New procedure
8291         Add implementation of new insertion \\
8292         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
8293         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
8294         types.
8295         (Error_Msg_Internal): Make sure that we set Last_Killed to
8296         True when a message from another package is suppressed.
8297         Implement insertion character ~ (insert string)
8298         (First_Node): Minor adjustments to get better placement.
8299
8300         * frontend.adb: 
8301         Implement new -gnatl=xxx switch to output listing to file
8302
8303         * gnat1drv.adb: 
8304         Implement new -gnatl=xxx switch to output listing to file
8305
8306         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
8307         (Commands_To_Stdout): New flag
8308         Implement new -gnatl=xxx switch to output listing to file
8309         New switch Dump_Source_Text
8310         (Warn_On_Deleted_Code): New warning flag for -gnatwt
8311         Define Error_Msg_Line_Length
8312         (Warn_On_Assumed_Low_Bound): New switch
8313
8314         * osint.ads, osint.adb
8315         (Normalize_Directory_Name): Fix bug.
8316         Implement new -gnatl=xxx switch to output listing to file
8317         (Concat): Removed, replaced by real concatenation
8318         Make use of concatenation now allowed in compiler
8319         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
8320         we find the 'lib' or 'bin' directory even when the tool has been
8321         invoked with a relative path.
8322         (Executable_Name): New function taking string parameters.
8323
8324         * osint-c.ads, osint-c.adb: 
8325         Implement new -gnatl=xxx switch to output listing to file
8326
8327         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
8328
8329         * switch-c.adb: 
8330         Implement new -gnatl=xxx switch to output listing to file
8331         Recognize new -gnatL switch
8332         (no longer keep in old warning about old style usage)
8333         Use concatenation to simplify code
8334         Recognize -gnatjnn switch
8335         (Scan_Front_End_Switches): Clean up handling of -gnatW
8336         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
8337
8338 2006-10-31  Robert Dewar  <dewar@adacore.com>
8339
8340         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
8341         (Set_Specific_Warning_Off): New procedure
8342         (Warning_Specifically_Suppressed): New function
8343         (Validate_Specific_Warnings): New procedure
8344         (Output_Msg_Text): Complete rewrite to support -gnatjnn
8345
8346         * err_vars.ads: Implement insertion character ~ (insert string)
8347
8348 2006-10-31  Bob Duff  <duff@adacore.com>
8349             Ed Schonberg  <schonberg@adacore.com>
8350
8351         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
8352         the parent part is a build-in-place function call, generate assignments.
8353         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
8354         are build-in-place function calls.
8355         (Replace_Self_Reference): New subsidiary of
8356         Make_OK_Assignment_Statement, to replace an access attribute that is a
8357         self-reference into an access to the appropriate component of the
8358         target object. Generalizes previous mechanism to handle self-references
8359         nested at any level.
8360         (Is_Self_Referential_Init): Remove, not needed.
8361         (Is_Self_Referential_Init): New predicate to simplify handling of self
8362         referential components in record aggregates.
8363         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
8364         check for presence of entity before checking for self-reference.
8365         (Has_Default_Init_Comps): Return True if a component association is a
8366         self-reference to the enclosing type, which can only come from a
8367         default initialization.
8368         (Make_OK_Assignment_Statement): If the expression is of the form
8369         Typ'Acc, where Acc is an access attribute, the expression comes from a
8370         default initialized self-referential component.
8371         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
8372         that has been derived from several abstract interfaces we must also
8373         initialize the tags of the secondary dispatch tables.
8374
8375 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
8376             Thomas Quinot  <quinot@adacore.com>
8377             Javier Miranda  <miranda@adacore.com>
8378             Robert Dewar  <dewar@adacore.com>
8379
8380         * exp_attr.adb: 
8381         (Expand_Access_To_Protected_Op): If the context indicates that an access
8382         to a local operation may be transfered outside of the object, create an
8383         access to the wrapper operation that must be used in an external call.
8384         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
8385         target, pass the Valid attribute applied to a floating-point prefix on
8386         to the back end without expansion.
8387         (Storage_Size): Use the new run-time function Storage_Size to retrieve
8388         the allocated storage when it is specified by a per-object expression.
8389         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
8390         Nothing to do here, the attribute has been rewritten during semantic
8391         analysis.
8392         (Expand_Attribute_Reference): Handle expansion of the new Priority
8393         attribute
8394         (Find_Fat_Info): Handle case of universal real
8395         (Expand_Access_To_Protected_Op): Fix use of access to protected
8396         subprogram from inside the body of a protected entry.
8397         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
8398         'Access and 'Unrestricted_Access, to transform the attribute reference
8399         into a fat pointer.
8400         (Is_Constrained_Aliased_View): New predicate to help determine whether a
8401         subcomponent's enclosing variable is aliased with a constrained subtype.
8402         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
8403         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
8404         an aliased prefix must be known to be constrained in order to use True
8405         for the attribute value, and now it's possible for some aliased views
8406         to be unconstrained.
8407
8408 2006-10-31  Robert Dewar  <dewar@adacore.com>
8409
8410         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
8411         (Expand_Entity_Reference): Correct error of not handling subprogram
8412         formals in current_value processing.
8413
8414 2006-10-31  Javier Miranda  <miranda@adacore.com>
8415             Robert Dewar  <dewar@adacore.com>
8416             Ed Schonberg  <schonberg@adacore.com>
8417             Gary Dismukes  <dismukes@adacore.com>
8418
8419         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
8420         register in the final list objects containing class-wide interfaces;
8421         otherwise we incorrectly register the tag of the interface in the final
8422         list.
8423         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
8424         generate the wrapper if the parent primitive is abstract. This is
8425         required to report the correct error message.
8426         (Expand_N_Subtype_Indication): Do validity checks on range
8427         (Clean_Task_Names): If an initialization procedure includes a call to
8428         initialize a task (sub)component, indicate that the procedure will use
8429         the secondary stack.
8430         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
8431         compatibility for interfacing with CPP by default.
8432         (Expand_N_Object_Declaration): Only build an Adjust call when the
8433         object's type is a nonlimited controlled type.
8434         * exp_ch3.adb: Add with and use of Exp_Ch6.
8435         (Expand_N_Object_Declaration): Check for object initialization that is a
8436         call to build-in-place function and apply Make_Build_In_Place_Call_In_
8437         Object_Declaration to the call.
8438         (Freeze_Type): When the designated type of an RACW was not frozen at the
8439         point where the RACW was declared, validate the primitive operations
8440         with respect to E.2.2(14) when it finally is frozen.
8441         (Build_Initialization_Call,Expand_Record_Controller): Rename
8442         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
8443         return-by-reference has no meaning in Ada 2005.
8444         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
8445         to register tag of the immediate ancestor interfaces in the
8446         run-time structure.
8447         (Init_Secondary_Tags): Moved to the specification to allow the
8448         initialization of extension aggregates with abstract interfaces.
8449         (Build_Master_Renaming): Make public, for use by function declarations
8450         whose return type is an anonymous access type.
8451         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
8452         Insert_List_Before_And_Analyze after the generation of the specs
8453         associated with null procedures.
8454         (Expand_Tagged_Root): Update documentation in its specification.
8455         (Init_Secondary_Tags): Update documentation.
8456         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
8457         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
8458         then generate code to inherit the contents of the dispatch table
8459         directly from the ancestor.
8460         (Expand_Record_Controller): Insert controller component after tags of
8461         implemented interfaces.
8462         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
8463         create null procedure overridings when null procedures are inherited
8464         from interfaces.
8465         (Make_Null_Procedure_Specs): New procedure to generate null procedure
8466         declarations for overriding null primitives inherited from interfaces.
8467         (Is_Null_Interface_Procedure): New function in
8468         Make_Null_Procedure_Specs.
8469         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
8470         immediate ancestor of a tagged type is an abstract interface type we
8471         must generate the specification of the predefined primitives associated
8472         with controlled types (because the dispatch table of the ancestor is
8473         null and hence these entries cannot be inherited). This is required to
8474         elaborate well the dispatch table.
8475
8476 2006-10-31  Javier Miranda  <miranda@adacore.com>
8477             Ed Schonberg  <schonberg@adacore.com>
8478             Bob Duff  <duff@adacore.com>
8479             Gary Dismukes  <dismukes@adacore.com>
8480             Robert Dewar  <dewar@adacore.com>
8481
8482         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
8483         conversion.
8484         (Expand_N_In): Do validity checks on range
8485         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
8486         (Expand_N_Allocator): For "new T", if the object is constrained by
8487         discriminant defaults, allocate the right amount of memory, rather than
8488         the maximum for type T.
8489         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
8490         when the allocator is initialized by a build-in-place call, since the
8491         allocator is already rewritten as a reference to the function result,
8492         and this prevents an unwanted duplication of the function call.
8493         Add with and use of Exp_Ch6.
8494         (Expand_Allocator_Expresssion): Check for an allocator whose expression
8495         is a call to build-in-place function and apply
8496         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
8497         untagged designated types).
8498         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
8499         optimization if source or target is biased.
8500         (Expand_N_Allocator): Add comments for case of an allocator within a
8501         function that returns an anonymous access type designating tasks.
8502         (Expand_N_Allocator): apply discriminant checks for access
8503         discriminants of anonymous access types (AI-402, AI-416)
8504
8505 2006-10-31  Bob Duff  <duff@adacore.com>
8506             Robert Dewar  <dewar@adacore.com>
8507             Gary Dismukes  <dismukes@adacore.com>
8508             Ed Schonberg  <schonberg@adacore.com>
8509
8510         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
8511
8512         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
8513         (Expand_N_Assignment_Statement): Call
8514         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
8515         build-in-place function call. Currently, this can happen only for
8516         assignments that come from aggregates.
8517         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
8518         in order to alleviate the upward compatibility introduced by AI-318.
8519         (Expand_N_Extended_Return_Statement): Add support for handling the
8520         return object as a build-in-place result.
8521         (Expand_Non_Function_Return): Implement simple return statements nested
8522         within an extended return.
8523         (Enable_New_Return_Processing): Turn on the new processing of return
8524         statements.
8525         (Expand_Non_Function_Return): For a return within an extended return,
8526         don't raise Program_Error, because Sem_Ch6 now gives a warning.
8527         (Expand_N_Extended_Return_Statement): Implement AI-318
8528         (Expand_Simple_Function_Return): Ditto.
8529         (Expand_N_If_Statement): Handle new -gnatwt warning
8530         (Expand_N_Case_Statement): Handle new -gnatwt warning
8531         (Expand_N_Assignment): Handle assignment to the Priority attribute of
8532         a protected object.
8533         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
8534         validity checking of assignments to elementary record components.
8535         (Expand_N_Return_Statement): return Class Wide types on the secondary
8536         stack independantly of their controlled status since with HIE runtimes,
8537         class wide types are not potentially controlled anymore.
8538
8539         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
8540         node kind.
8541
8542         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
8543         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
8544         it expects a block, procedure, or task. The return statement will get
8545         turned into a block, and Expand_Cleanup_Actions will happen then.
8546
8547 2006-10-31  Robert Dewar  <dewar@adacore.com>
8548             Ed Schonberg  <schonberg@adacore.com>
8549             Bob Duff  <duff@adacore.com>
8550             Gary Dismukes  <dismukes@adacore.com>
8551
8552         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
8553         capability.
8554         (Expand_Inlined_Call): Tagged types are by-reference types, and
8555         therefore should be replaced by a renaming declaration in the expanded
8556         body, as is done for limited types.
8557         (Expand_Call): If this is a call to a function with dispatching access
8558         result, propagate tag from context.
8559         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
8560         CPP by default.
8561         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
8562         build-in-place when the right-hand side of an assignment is a
8563         build-in-place function call.
8564         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
8565         of the explicit dereference of the allocator to the result subtype of
8566         the build-in-place function. This is needed to satisfy type checking
8567         in cases where the caller's return object is created by an allocator for
8568         a class-wide access type and the type named in the allocator is a
8569         specific type.
8570         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
8571         conversion of the reference to the declared object to the result subtype
8572         of the build-in-place function. This is needed to satisfy type checking
8573         in cases where the declared object has a class-wide type. Also, in the
8574         class-wide case, change the type of the object entity to the specific
8575         result subtype of the function, to avoid passing a class-wide object
8576         without explicit initialization to the back end.
8577         (Register_Interface_DT_Entry): Moved outside the body of
8578         Freeze_Subprogram because this routine is now public; it is called from
8579         Check_Dispatching_Overriding to handle late overriding of abstract
8580         interface primitives.
8581         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
8582         adding an implicit access actual on a call to a build-in-place function.
8583         (Expand_Actuals): Test for an actual parameter that is a call to a
8584         build-in-place function and apply
8585         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
8586         (Is_Build_In_Place_Function): New function to determine whether an
8587         entity is a function whose calls should be handled as build-in-place.
8588         (Is_Build_In_Place_Function_Call): New function to determine whether an
8589         expression is a function call that should handled as build-in-place.
8590         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
8591         calls to build-in-place functions as the initialization of an allocator.
8592         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
8593         handling calls to build-in-place functions in contexts that do not
8594         involve init of a separate object (for example, actuals of subprogram
8595         calls).
8596         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
8597         handling calls to build-in-place functions as the initialization of an
8598         object declaration.
8599         (Detect_Infinite_Recursion): Add explicit parameter Process to
8600         instantiation of Traverse_Body to avoid unreferenced warning.
8601         (Check_Overriding_Inherited_Interfaces): Removed.
8602         (Register_Interface_DT_Entry): Code cleanup.
8603         (Register_Predefined_DT_Entry): Code cleanup.
8604         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
8605         inlined statements if within a transient scope.
8606         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
8607         formal parameters with occurrences of actuals in inlined body, establish
8608         visibility on the proper view of the actual's subtype for the body's
8609         context.
8610         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
8611         compatibility mode and we have an imported CPP subprogram because
8612         for now we assume that imported CPP primitives correspond with
8613         objects whose constructor is in the CPP side (and therefore we
8614         don't need to generate code to register them in the dispatch table).
8615         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
8616         aligned selected component.
8617         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
8618         the actual of an in-mode parameter is a type conversion.
8619         (Expand_Actuals): If the call does not come from source and the actual
8620         is potentially misaligned, let gigi handle it rather than rejecting the
8621         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
8622         Class Wide types as returning by reference independantly of their
8623         controlled status since with HIE runtimes class wide types are not
8624         potentially controlled anymore.
8625
8626 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
8627
8628         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
8629         references that are private components of the protected object.
8630         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
8631         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
8632         instantiation to deal with warnings.
8633         (Initialize_Protection): If expression for priority is non-static, use
8634         System_Priority as its expected type, in case the expression has not
8635         been analyzed yet.
8636
8637 2006-10-31  Robert Dewar  <dewar@adacore.com>
8638
8639         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
8640         initialization of Homonym_Len.
8641         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
8642         names from fully qualified name. Fixes problem of duplicate
8643         external names differing only in the presence of such a block name.
8644
8645 2006-10-31  Thomas Quinot  <quinot@adacore.com>
8646             Pablo Oliveira  <oliveira@adacore.com>
8647
8648         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
8649         subprogram Ids, even if they are not yet assigned.
8650         (Build_Subprogram_Id): It is now this function that will take care of
8651         calling Assign_Subprogram_Ids if necessary.
8652         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
8653         should be done only once they are assigned.
8654         (Build_From_Any_Function, case of tagged types): Add missing call to
8655         Allocate_Buffer.
8656         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
8657         type for an RACW type.
8658         (Add_RACW_Features): When processing an RACW declaration for which the
8659         designated type is already frozen, enforce E.2.2(14) rules immediately.
8660         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
8661         special reordering of controlling formals.
8662
8663         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
8664         associated stub type for an RACW type.
8665
8666 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
8667
8668         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
8669         fixed-point operations in an integer context, i.e. as operands of a
8670         conversion to an integer type, indicate that result must be rounded.
8671
8672 2006-10-31  Robert Dewar  <dewar@adacore.com>
8673
8674         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
8675         cases, pass the encoding method, since it is now required by the run
8676         time.
8677
8678         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
8679         assumption that Str'First = 1.
8680         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
8681         it on to the Value_Wide_Wide_Character call.
8682         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
8683         properly handles a string of the form quote-encoded_wide_char-quote.
8684
8685         * s-wchcnv.adb: Minor reformatting
8686
8687 2006-10-31  Javier Miranda  <miranda@adacore.com>
8688
8689         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8690         run-time membership test to ensure that the constructed object
8691         implements the target abstract interface.
8692
8693 2006-10-31  Robert Dewar  <dewar@adacore.com>
8694
8695         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
8696         Machine_Attribute pragma internally to implement the user pragma.
8697         Add processing for pragma Interface so that it is now completely
8698         equivalent to pragma Import.
8699
8700         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
8701         so that it can be applied to all entities, including record components
8702         and enumeration literals.
8703         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
8704         priority ranges are correct, verify compatibility against task
8705         dispatching and locking policies, and if everything is correct an entry
8706         is added to the table containing priority specific dispatching entries
8707         for this compilation unit.
8708         (Delay_Config_Pragma_Analyze): Delay processing
8709         Priority_Specific_Dispatching pragmas because when processing the
8710         pragma we need to access run-time data, such as the range of
8711         System.Any_Priority.
8712         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
8713         Allow pragma Unreferenced as a context item
8714         Add pragma Preelaborable_Initialization
8715         (Analyze_Pragma, case Interface): Interface is extended so that it is
8716         now syntactically and semantically equivalent to Import.
8717         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
8718         insertion characters.
8719         Add handling for Pragma_Wide_Character_Encoding
8720         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
8721         never supercedes a real restriction, and that a real restriction
8722         always supercedes a warning.
8723         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
8724         appropriate form.
8725
8726 2006-10-31  Bob Duff  <duff@adacore.com>
8727             Ed Schonberg  <schonberg@adacore.com>
8728             Robert Dewar  <dewar@adacore.com>
8729
8730         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
8731         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
8732         Is_Inherently_Limited_Type, because return-by-reference has no meaning
8733         in Ada 2005.
8734         (Find_Node_To_Be_Wrapped): Use new method of determining the result
8735         type of the function containing a return statement, because the
8736         Return_Type field was removed. We now use the Return_Applies_To field.
8737
8738         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
8739         (Build_Task_Image_Decl): If procedure is not called from an
8740         initialization procedure, indicate that function that builds task name
8741         uses the sec. stack. Otherwise the enclosing initialization procedure
8742         will carry the indication.
8743         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
8744         N_Object_Declaration instead.
8745         (Kill_Dead_Code): New interface to implement -gnatwt warning for
8746         conditional dead code killed, and change implementation accordingly.
8747         (Insert_Actions): Add N_Return_Object_Declaration case.
8748         Correct comment to mention N_Extension_Aggregate node.
8749         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
8750         attempts to save information for global variables which cannot be
8751         safely tracked.
8752         (Get_Current_Value_Condition): Handle conditions the other way round
8753         (constant on left). Also handle right operand of AND and AND THEN
8754         (Set_Current_Value_Condition): Corresponding changes
8755         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
8756         (Get_Current_Value_Condition): Handle simple boolean operands
8757         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
8758         (Get_Current_Value_Condition): If the variable reference is within an
8759         if-statement, does not appear in the list of then_statments, and does
8760         not come from source, treat it as being at unknown location.
8761         (Get_Current_Value_Condition): Enhance to allow while statements to be
8762         processed as well as if statements.
8763         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
8764         come from source.
8765         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
8766         of loop. This is safe now that we fixed Kill_Current_Values.
8767         (OK_To_Do_Constant_Replacement): Check whether current scope is
8768         Standard, before examining outer scopes.
8769
8770 2006-10-31  Vincent Celier  <celier@adacore.com>
8771
8772         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
8773         When True, apply VMS treatment to children of packages A, G, I and S.
8774         For F320-016
8775
8776         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
8777
8778 2006-10-31  Robert Dewar  <dewar@adacore.com>
8779             Ed Schonberg  <schonberg@adacore.com>
8780
8781         * freeze.adb: Add handling of Last_Assignment field
8782         (Warn_Overlay): Supply missing continuation marks in error msgs
8783         (Freeze_Entity): Add check for Preelaborable_Initialization
8784
8785         * g-comlin.adb: Add Warnings (Off) to prevent new warning
8786
8787         * g-expect.adb: Add Warnings (Off) to prevent new warning
8788
8789         * lib-xref.adb: Add handling of Last_Assignment field
8790         (Generate_Reference): Centralize handling of pragma Obsolescent here
8791         (Generate_Reference): Accept an implicit reference generated for a
8792         default in an instance.
8793         (Generate_Reference): Accept a reference for a node that is not in the
8794         main unit, if it is the generic body corresponding to an subprogram
8795         instantiation.
8796
8797         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
8798
8799         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
8800         -gnatwq/Q.
8801         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
8802         exception handler.
8803         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
8804         use clauses, to avoid messages on packages used to qualify, and also
8805         to avoid messages from obsolescent units.
8806         (Warn_On_Useless_Assignments): Don't generate messages for imported
8807         and exported variables.
8808         (Warn_On_Useless_Assignments): New procedure
8809         (Output_Obsolescent_Entity_Warnings): New procedure
8810         (Check_Code_Statement): New procedure
8811
8812         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
8813         Change name Is_Ada_2005 to Is_Ada_2005_Only
8814         (Last_Assignment): New field for useless assignment warning
8815
8816 2006-10-31  Olivier Hainque  <hainque@adacore.com>
8817
8818         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
8819         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
8820
8821 2006-10-31  Bob Duff  <duff@adacore.com>
8822             Robert Dewar  <dewar@adacore.com>
8823             Ed Schonberg  <schonberg@adacore.com>
8824
8825         * g-awk.adb (Default_Session, Current_Session): Compile this file in
8826         Ada 95 mode, because it violates the new rules for AI-318.
8827
8828         * g-awk.ads: Use overloaded subprograms in every case where we used to
8829         have a default of Current_Session. This makes the code closer to be
8830         correct for both Ada 95 and 2005.
8831
8832         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
8833         code, relying on the fact that the compiler generates a warning
8834         instead of an error in -gnatg mode.
8835
8836         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
8837         E_Return_Statement entity kind.
8838         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
8839
8840         * par.adb (P_Interface_Type_Definition): Addition of one formal to
8841         report an error if the reserved word abstract has been previously found.
8842         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
8843
8844         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
8845         parenthesized range attribute usage
8846         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
8847
8848         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
8849         in the syntax for extended_return_statement. This is not in the latest
8850         RM, but the ARG is expected to issue an AI allowing this.
8851         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
8852         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
8853         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
8854         P_Return_Statement): Parse the new syntax for extended_return_statement.
8855
8856         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
8857         Output_End_Missing): Add error-recovery code for the new
8858         extended_return_statement syntax; that is, the new E_Return entry on
8859         the scope stack.
8860
8861         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
8862         limited to nonlimited, because otherwise we violate the new Ada 2005
8863         rules about returning limited types in function Create_AST_Handler in
8864         s-asthan.adb.
8865
8866         * sem.adb (Analyze): Add cases for new node kinds
8867         N_Extended_Return_Statement and N_Return_Object_Declaration.
8868
8869         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
8870         type is in the same category as type of context before applying check,
8871         to prevent anomalies in instantiations.
8872         (Resolve_Aggregate): Remove test for limited components in aggregates.
8873         It's unnecessary in Ada 95, because if it has limited components, then
8874         it must be limited. It's wrong in Ada 2005, because limited aggregates
8875         are now allowed.
8876         (Resolve_Record_Aggregate): Move check for limited types later, because
8877         OK_For_Limited_Init requires its argument to have been resolved.
8878         (Get_Value): When copying the component default expression for a
8879         defaulted association in an aggregate, use the sloc of the aggregate
8880         and not that of the original expression, to prevent spurious
8881         elaboration errors, when the expression includes function calls.
8882         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
8883         were missing. We also didn't handle qualified expressions. Now also
8884         allow function calls. Use new common routine OK_For_Limited_Init.
8885         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
8886         with space can upper case letter).
8887
8888         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
8889         Has_Static_Discriminants flag
8890         (Record_Type_Declaration): Diagnose an attempt to declare an interface
8891         type with discriminants.
8892         (Process_Range_Expr_In_Decl): Do validity checks on range
8893         (Build_Discriminant_Constraints): Use updated form of
8894         Denotes_Discriminant.
8895         (Process_Subtype): If the subtype is a private subtype whose full view
8896         is a concurrent subtype, introduce an itype reference to prevent scope
8897         anomalies in gigi.
8898         (Build_Derived_Record_Type, Collect_Interface_Primitives,
8899         Record_Type_Declaration):  The functionality of the subprograms
8900         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
8901         is now performed by a single routine.
8902         (Build_Derived_Record_Type): If the type definition includes an explicit
8903         indication of limitedness, then the type must be marked as limited here
8904         to ensure that any access discriminants will not be treated as having
8905         a local anonymous access type.
8906         (Check_Abstract_Overriding): Issue a detailed error message when an
8907         abstract subprogram was not overridden due to incorrect mode of its
8908         first parameter.
8909         (Analyze_Private_Extension_Declaration): Add support for the analysis of
8910         synchronized private extension declarations. Verify that the ancestor is
8911         a limited or synchronized interface or in the generic case, the ancestor
8912         is a tagged limited type or synchronized interface and all progenitors
8913         are either limited or synchronized interfaces.
8914         Derived_Type_Declaration): Check for presence of private extension when
8915         dealing with synchronized formal derived types.
8916         Process_Full_View): Enchance the check done on the usage of "limited" by
8917         testing whether the private view is synchronized.
8918         Verify that a synchronized private view is completed by a protected or
8919         task type.
8920         (OK_For_Limited_Init_In_05): New function.
8921         (Analyze_Object_Declaration): Move check for limited types later,
8922         because OK_For_Limited_Init requires its argument to have been resolved.
8923         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
8924         in order to alleviate the upward compatibility introduced by AI-318.
8925         (Constrain_Corresponding_Record): If the constraint is for a component
8926         subtype, mark the itype as frozen, to avoid out-of-scope references to
8927         discriminants in the back-end.
8928         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
8929         this subprogram against wrong sources.
8930         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
8931         discriminant of limited type completed with a protected type, when the
8932         discriminant is used to constrain a private component of the type, and
8933         expansion is disabled.
8934         (Find_Type_Of_Object): Do not treat a return subtype that is an
8935         anonymous subtype as a local_anonymous_type, because its accessibility
8936         level is the return type of the enclosing function.
8937         (Check_Initialization): In -gnatg mode, turn the error "cannot
8938         initialize entities of limited type" into a warning.
8939         (OK_For_Limited_Init): Return true for generated nodes, since it
8940         sometimes violates the legality rules.
8941         (Make_Incomplete_Declaration): If the type for which an incomplete
8942         declaration is created happens to be the currently visible entity,
8943         preserve the homonym chain when removing it from visibility.
8944         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
8945         inherited subprograms.
8946         (Access_Definition): If this is an access to function that is the return
8947         type of an access_to_function definition, context is a type declaration
8948         and the scope of the anonymous type is the current one.
8949         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
8950         incomplete subtype to the set of private dependents of the original
8951         incomplete type.
8952         (Constrain_Discriminated_Type): Emit an error message whenever an
8953         incomplete subtype is being constrained.
8954         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
8955         corresponding subtype of the full view of the original incomplete type.
8956         (Check_Incomplete): Properly detect invalid usage of incomplete types
8957         and subtypes.
8958
8959 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
8960
8961         * g-catiio.ads, g-catiio.adb (Value): New function.
8962         Given an input String, try and parse a valid Time value.
8963
8964 2006-10-31  Vincent Celier  <celier@adacore.com>
8965
8966         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
8967         Integer_Address arithmetic, as in Set_Valid.
8968
8969 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
8970             Robert Dewar  <dewar@adacore.com>
8971
8972         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
8973         handling executable extension manually and duplicating code.
8974
8975         * make.adb: Implement new -S switch
8976         (Gnatmake): Use new function Osint.Executable_Name instead
8977         of handling executable extension manually.
8978
8979         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
8980         is specified, the executable name ends with this suffix.
8981         Take advantage of Osint.Executable_Name instead of duplicating code.
8982
8983         * switch-m.adb: Recognize new gnatmake -S switch
8984
8985         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
8986         variable.
8987         (Get_Target_Parameters): Set Executable_Extension_On_Target if
8988         available.
8989
8990         * makeusg.adb: Add line for gnatmake -S switch
8991
8992 2006-10-31  Vincent Celier  <celier@adacore.com>
8993
8994         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
8995         call it with -static-libgcc, as there are some platforms, such as
8996         Darwin, where one of these two switches is compulsory to link.
8997
8998 2006-10-31  Vincent Celier  <celier@adacore.com>
8999
9000         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
9001         instead of ADA_PROJECT_PATH, for the project path.
9002         (Gnatls): When displaying the project path directories, use host dir
9003         specs.
9004
9005         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
9006         names in the project path, as absolute paths may correspond to
9007         multi-valued VMS logical names.
9008
9009 2006-10-31  Vincent Celier  <celier@adacore.com>
9010
9011         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
9012         absolute path name.
9013         (Locate_Regular_File): Ditto
9014         (Change_Dir): Remove, no longer used
9015         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
9016         on Windows. Get it calling Get_Current_Dir.
9017         (OpenVMS): Remove imported boolean, no longer needed.
9018         (Normalize_Pathname)[VMS]: Do not resolve directory names.
9019         (Pid_To_Integer): New function to convert a Process_Id to  Integer
9020
9021 2006-10-31  Thomas Quinot  <quinot@adacore.com>
9022
9023         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
9024         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
9025         to No_Socket.
9026         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
9027         W_Sig_Socket.
9028
9029 2006-10-31  Robert Dewar  <dewar@adacore.com>
9030
9031         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
9032         initial letter o as a zero.
9033
9034 2006-10-31  Robert Dewar  <dewar@adacore.com>
9035
9036         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
9037
9038 2006-10-31  Robert Dewar  <dewar@adacore.com>
9039
9040         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
9041         variant records
9042         (Layout_Variant_Record): Retrieve the discriminants from the entity
9043         rather than from the type definition, because in the case of a full
9044         type for a private type we need to take the discriminants from the
9045         partial view.
9046         (Layout_Component_List): When applying the Max operator to variants with
9047         a nonstatic size, check whether either operand is static and scale that
9048         operand from bits to storage units before applying Max.
9049         (Layout_Type): In VMS, if a C-convention access type has no explicit
9050         size clause (and does not inherit one in the case of a derived type),
9051         then the size is reset to 32 from 64.
9052
9053 2006-10-31  Vincent Celier  <celier@adacore.com>
9054
9055         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
9056         its file has already been loaded, according to the unit being loaded,
9057         not to the current value of Multiple_Unit_Index.
9058
9059 2006-10-31  Thomas Quinot  <quinot@adacore.com>
9060             Eric Botcazou  <ebotcazou@adacore.com>
9061             Arnaud Charlet  <charlet@adacore.com>
9062
9063         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
9064         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
9065         possible.
9066         (a-except.o): Pass it to the compiler.
9067         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
9068         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
9069         a-calend-mingw.adb version.
9070
9071         * Makefile.rtl: Added s-dsaser.
9072         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
9073         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
9074         Ada.Dispatching.Round_Robin.
9075         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
9076
9077         * Make-lang.in: Remove all references to gt-ada-decl.h.
9078         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
9079         sources.
9080         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
9081         Update dependencies.
9082
9083         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
9084
9085 2006-10-31  Vincent Celier  <celier@adacore.com>
9086
9087         * mlib-utl.adb (Initialized): Remove, no longer used
9088         (Initialize): Remove, no longer used
9089         (Ar): If Ar_Exec is null, get the location of the archive builder and,
9090         if there is one, the archive indexer. Fail if the archive builder cannot
9091         be found.
9092         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
9093         be found.
9094
9095 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9096
9097         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
9098         Process_Body_Clauses): If the context of a body includes a use clause
9099         for P.Q then a with_clause for P in the same body is not redundant,
9100         even if the spec also has a with_clause on P.
9101         Add missing continuation mark to error msg
9102         (Build_Limited_Views): A limited view of a type is tagged if its
9103         declaration includes a record extension.
9104         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
9105         node, even if the subunit has errors. This avoids malfunction by
9106         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
9107         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
9108         generation of obsolescent messages for with statements (cannot do
9109         this too early, or we cannot implement avoiding the messages in the
9110         case of obsolescent units withing obsolescent units).
9111         (Install_Siblings): If the with_clause is on a remote descendant of
9112         an ancestor of the current compilation unit, find whether there is
9113         a sibling child unit that is immediately visible.
9114         (Remove_Private_With_Clauses): New procedure, invoked after completing
9115         the analysis of the private part of a nested package, to remove from
9116         visibility the private with_clauses of the enclosing package
9117         declaration.
9118         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
9119         now centralized in Generate_Reference.
9120         (Install_Limited_Context_Clauses): Remove superfluous error
9121         message associated with unlimited view visible through use
9122         and renamings. In addition, at the point in which the error
9123         is reported, we add the backslash to the text of the error
9124         to ensure that it is reported as a single error message.
9125         Use new // insertion for some continuation messages
9126         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
9127         to create implicit with_clause for parent unit mentioned in original
9128         limited_with_clause.
9129         (Install_Limited_With_Unit): Set entity of parent identifiers if the
9130         unit is a child unit. For ASIS queries.
9131         (Analyze_Subunit): If the subunit appears within a child unit, make all
9132         ancestor child units directly visible again.
9133
9134 2006-10-31  Robert Dewar  <dewar@adacore.com>
9135
9136         * par-ch10.adb (P_Context_Clause): Minor error message fix
9137
9138 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9139             Javier Miranda  <miranda@adacore.com>
9140
9141         * par-ch12.adb: Grammar update and cleanup.
9142         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
9143         support for synchronized derived type definitions.
9144         Add the new actual Abstract_Present to every call to
9145         P_Interface_Type_Definition.
9146         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
9147         a formal object declaration with an access definition or a subtype mark
9148         with a null exclusion.
9149         (P_Generic_Association): Handle association with box, and others_choice
9150         with box, to support Ada 2005 partially parametrized formal packages.
9151
9152 2006-10-31  Robert Dewar  <dewar@adacore.com>
9153             Javier Miranda  <miranda@adacore.com>
9154
9155         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
9156         (P_Type_Declaration): Remove barrier against the reserved word "limited"
9157         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
9158         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
9159         private extensions.
9160         (P_Type_Declaration): Add the new actual Abstract_Present to every call
9161         to P_Interface_Type_Definition.
9162         (P_Interface_Type_Definition): Addition of one formal to report an error
9163         if the reserved word abstract has been previously found.
9164         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
9165         object renaming declaration with an access definition or subtype mark
9166         with a possible null exclusion.
9167
9168         * par-ch9.adb: Minor error msg fix
9169
9170         * par-load.adb: Add missing continuation mark to error msg
9171
9172         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
9173
9174 2006-10-31  Vincent Celier  <celier@adacore.com>
9175
9176         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
9177         unknown attribute in unknown package or in package that does not need
9178         to be checked.
9179         (Parse_Package_Declaration): Do not issue warning for unknown package in
9180         quiet output.
9181
9182 2006-10-31  Vincent Celier  <celier@adacore.com>
9183
9184         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
9185         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
9186         Packages_To_Check.
9187
9188 2006-10-31  Vincent Celier  <celier@adacore.com>
9189
9190         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
9191         on VMS, change "__" to '.' before checking the name.
9192         (Record_Ada_Source): Always add the source file name in the list of
9193         of sources, even if it is not the first time, as it is for another
9194         source index.
9195         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
9196         dot, instead of replacing only the first '_'.
9197
9198         * prj-part.adb (Parse): Convert project file path to canonical form
9199
9200         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
9201         extended, the project id of the project extending it is recorded in its
9202         data, even when it has already been processed as an imported project.
9203
9204 2006-10-31  Robert Dewar  <dewar@adacore.com>
9205
9206         * repinfo.adb (List_Entities): Don't list entities from renaming
9207         declarations.
9208
9209 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9210             Robert Dewar  <dewar@adacore.com>
9211
9212         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
9213         only a restriction warning is active for the given restriction. This is
9214         desirable because we do not want to modify code in the case where only
9215         a warning is set.
9216         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
9217         causes overriding of real restrictions.
9218         Take advantage of new No_Restrictions constant.
9219
9220         * raise.h: (__gnat_set_globals): Change profile.
9221
9222 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9223
9224         * rtsfind.adb: Remove s-polint from comment as it exists no more.
9225
9226         * rtsfind.ads: 
9227         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
9228         Move all the entities in obsolete package System.PolyORB_Interface to
9229         System.Partition_Interface.
9230         (RE_Storage_Size): New function in System.Tasking.
9231         (RE_Get_Ceiling): New entity.
9232         (RE_Set_Ceiling): New entity.
9233         (RO_PE_Get_Ceiling): New entity.
9234         (RO_RE_Set_Ceiling): New entity.
9235         (Inherit_CPP_DT): New entity
9236
9237 2006-10-31  Robert Dewar  <dewar@adacore.com>
9238
9239         * scng.adb (Scan, case of numeric literal): Better msg for identifier
9240         starting with a digit.
9241
9242 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9243             Thomas Quinot  <quinot@adacore.com>
9244             Javier Miranda  <miranda@adacore.com>
9245             Gary Dismukes  <dismukes@adacore.com>
9246
9247         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
9248         properly an attempt to apply Unchecked_Access to a protected operation.
9249         (OK_Self_Reference): New subprogram to check the legality of an access
9250         attribute whose prefix is the type of an enclosing aggregate.
9251         Generalizes previous mechanism to handle attribute references nested
9252         arbitrarily deep within the aggregate.
9253         (Analyze_Access_Attribute): An access attribute whose prefix is a type
9254         can appear in an aggregate if this is a default-initialized aggregate
9255         for a self-referential type.
9256         (Resolve_Attribute, case Access): Ditto.
9257         Add support for new implementation defined attribute Stub_Type.
9258         (Eval_Attribute, case Attribute_Stub_Type): New case.
9259         (Analyze_Attribute, case Attribute_Stub_Type): New case.
9260         (Stream_Attribute_Available): Implement using new subprogram from
9261         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
9262         Has_Specified_Stream_Attribute flag.
9263         Disallow Storage_Size and Storage_Pool for access to subprogram
9264         (Resolve_Attribute, case 'Access et al): Take into account anonymous
9265         access types of return subtypes in extended return statements. Remove
9266         accessibility checks on anonymous access types when Unchecked_Access is
9267         used.
9268         (Analyze_Attribute): Add support for the use of 'Class to convert
9269         a class-wide interface to a tagged type.
9270         Add support for the attribute Priority.
9271         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
9272         whether the designated type is discriminated with a constrained partial
9273         view and require static matching in that case.
9274         Add local variable Des_Btyp. The Designated_Type
9275         of an access to incomplete subtype is either its non-limited view if
9276         coming from a limited with or its etype if regular incomplete subtype.
9277
9278         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
9279         Fix predicate to identify and allow cases of (expander-generated)
9280         references to tag of designated object of a RACW.
9281         (Validate_Static_Object_Name): In Ada 2005, a formal object is
9282         non-static, and therefore cannot appear as a primary in a preelaborable
9283         package.
9284         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
9285         Has_Read_Write_Attributes.
9286         (Has_Read_Write_Attributes): Reimplement in termes of
9287         Has_Stream_Attribute_Definition.
9288         (Missing_Read_Write_Attributes): When checking component types in a
9289         record, unconditionally call Missing_Read_Write_Attributes recursively
9290         (remove guard checking for Is_Record_Type / Is_Access_Type).
9291
9292 2006-10-31  Robert Dewar  <dewar@adacore.com>
9293
9294         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
9295         useless assignments here and conditionalize it on absence of exception
9296         handlers.
9297         (Analyze_Exception_Handlers): Small code reorganization of error
9298         detection code, for new handling of formal packages.
9299
9300 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9301             Hristian Kirtchev  <kirtchev@adacore.com>
9302
9303         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
9304         that has been constant-folded, preserve information of original tree,
9305         for ASIS uses.
9306         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
9307         generated private extension declaration if the formal derived type is
9308         synchronized. Carry synchronized present over to the generated private
9309         extension.
9310         (Validate_Derived_Type_Instance): Ensure that the actual of a
9311         synchronized formal derived type is a synchronized tagged type.
9312         (Instantiate_Formal_Package): When creating the instantiation used to
9313         validate the actual package of a formal declared without a box, check
9314         whether the formal itself depends on a prior actual.
9315         (Instantiate_Formal_Subprogram): Create new entities for the defining
9316         identifiers of the formals in the renaming declaration, for ASIS use.
9317         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
9318         a renaming declaration or a subtype declaration for an actual in an
9319         instance, capture location information of declaration in generic, for
9320         ASIS use.
9321         (Instantiate_Formal_Package): Add comments on needed additional tests.
9322         AI-317 (partial parametrization) is fully implemented.
9323         (Validate_Private_Type_Instance): Add check for actual which
9324         must have preelaborable initialization
9325         Use new // insertion for some continuation messages
9326         (Analyze_Formal_Object_Declaration): Change usage of Expression to
9327         Default_Expression. Add type retrieval when the declaration has an
9328         access definition. Update premature usage of incomplete type check.
9329         (Check_Access_Definition): New subsidiary routine. Check whether the
9330         current compilation version is Ada 05 and the supplied node has an
9331         access definition.
9332         (Instantiate object): Alphabetize local variables. Handle the creation
9333         of new renaming declarations with respect to the kind of definition
9334         used - either an access definition or a subtype mark. Guard against
9335         unnecessary error message in the context of anonymous access types after
9336         they have been resolved. Add check for required null exclusion in a
9337         formal object declaration.
9338         (Switch_View): A private subtype of a non-private type needs to be
9339         switched (the base type can have been switched without its private
9340         dependents because of the last branch of Check_Private_View.
9341         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
9342         value from BT.
9343         (Instantiate_Type): Emit an error message whenever a class-wide type of
9344         a tagged incomplete type is used as a generic actual.
9345         (Find_Actual_Type): Extend routine to handle a component type in a child
9346         unit that is imported from a formal package in a parent.
9347         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
9348         agree on constrainedness, rather than checking against ultimate ancestor
9349         (Instantiate_Subprogram_Body): Create a cross-reference link to the
9350         generic body, for navigation purposes.
9351
9352 2006-10-31  Robert Dewar  <dewar@adacore.com>
9353             Thomas Quinot  <quinot@adacore.com>
9354
9355         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
9356         type.
9357         (New_Stream_Subprogram): When processing an attribute definition clause
9358         for a stream-oriented subprogram, record an entity node occurring at
9359         the point of clause to use for checking the visibility of the clause,
9360         as defined by 8.3(23) as amended by AI-195.
9361         (New_Stream_Subprogram): New procedure, factoring behaviour from both
9362          New_Stream_Function and New_Stream_Procedure.
9363         (New_Stream_Function, New_Stream_Procedure): Removed.
9364         (Analyze_Attribute_Definition_Clause, case Address): Check new
9365         Alignment_Check check
9366
9367 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9368             Javier Miranda  <miranda@adacore.com>
9369             Robert Dewar  <dewar@adacore.com>
9370
9371         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
9372         generate the same errors compiling under -gnatc.
9373         (Try_Object_Operation): If no candidate interpretation succeeds, but
9374         there is at least one primitive operation with the right name, report
9375         error in call rather than on a malformed selected component.
9376         (Analyze_Selected_Component): If the prefix is an incomplete type from
9377         a limited view, and the full view is available, use the full view to
9378         determine whether this is a prefixed call to a primitive operation.
9379         (Operator_Check): Verify that a candidate interpretation is a binary
9380         operation before checking the type of its second formal.
9381         (Analyze_Call): Add additional warnings for function call contexts not
9382         yet supported.
9383         (Analyze_Allocator): Move the check for "initialization not allowed for
9384         limited types" after analyzing the expression. This is necessary,
9385         because OK_For_Limited_Init looks at the structure of the expression.
9386         Before analysis, we don't necessarily know what sort of expression it
9387         is. For example, we don't know whether F(X) is a function call or an
9388         indexed component; the former is legal in Ada 2005; the latter is not.
9389         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
9390         were missing. We also didn't handle qualified expressions. Now also
9391         allow function calls. Use new common routine OK_For_Limited_Init.
9392         (Analyze_Type_Conversion): Do not perform some legality checks in an
9393         instance, because the error message will be redundant or spurious.
9394         (Analyze_Overloaded_Selected_Component): Do not do style check when
9395         setting an entity, since we do not know it is the right entity yet.
9396         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
9397         (Analyze_Overloaded_Selected_Component): Same change
9398         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
9399         since regular incomplete subtypes are transformed into corresponding
9400         subtypes of their full views.
9401         (Complete_Object_Operation): Treat name of transformed subprogram call
9402         as coming from source, for browsing purposes.
9403         (Try_Primitive_Operation): If formal is an access parameter, compare
9404         with base type of object to determine whether it is a primitive
9405         operation.
9406         (Operator_Check): If no interpretation of the operator matches, check
9407         whether a use clause on any candidate might make the operation legal.
9408         (Try_Class_Wide_Operation): Check whether the first parameter is an
9409         access type whose designated type is class-wide.
9410
9411 2006-10-31  Robert Dewar  <dewar@adacore.com>
9412             Ed Schonberg  <schonberg@adacore.com>
9413             Gary Dismukes  <dismukes@adacore.com>
9414
9415         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
9416         warn on infinite loops.
9417         Add \\ to some continuation messages
9418         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
9419         (Process_Bounds): If the bounds are integer literals that result from
9420         constant-folding, and they carry a user-defined type, preserve that type
9421         rather than treating this as an integer range.
9422         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
9423         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
9424         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
9425         left hand side of assignment.
9426         (Analyze_Assignment): Add suport to manage assigments to the attribute
9427         priority of a protected object.
9428         (Check_Possible_Current_Value_Condition): Allow fully qualified names
9429         not just identifiers.
9430         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
9431         or AND THEN for possible tracking.
9432         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
9433         case of while loops so we can track values in the loop body.
9434
9435 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9436             Hristian Kirtchev  <kirtchev@adacore.com>
9437             Bob Duff  <duff@adacore.com>
9438
9439         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
9440         procedure cannot be a protected operation (it is a basic_declaration,
9441         not a subprogram_declaration).
9442         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
9443         Subp. Add logic for entry processing.
9444         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
9445         Determine whether an entry or subprogram of a protected or task type
9446         override an inherited primitive of an implemented interface.
9447         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
9448         Update the actual used in calls to Check_Overriding_Indicator.
9449         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
9450         generate the proper reference to the parent unit, for cross-reference.
9451         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
9452         Is_Formal.
9453         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
9454         (Add_Extra_Formal): Revise procedure to allow passing in associated
9455         entity, scope, and name suffix, and handle setting of the new
9456         Extra_Formals field.
9457         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
9458         pass new parameters. Add support for adding the new extra access formal
9459         for functions whose calls are treated as build-in-place.
9460         (Analyze_A_Return_Statement): Correct casing in error message.
9461         Move Pop_Scope to after Analyze_Function_Return, because an extended
9462         return statement really is a full-fledged scope. Otherwise, visibility
9463         doesn't work right. Correct use of "\" for continuation messages.
9464         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
9465         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
9466         the node doesn't get properly marked as analyzed.
9467         (Analyze_Subprogram_Body): If subprogram is a function that returns
9468         an anonymous access type that denotes a task, build a Master Entity
9469         for it.
9470         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
9471         proper usage of null exclusion in a result definition.
9472         (Process_Formals): Code cleanup and new error message.
9473         (Process_Formals): Detect incorrect application of null exclusion to
9474         non-access types.
9475         (Conforming_Types): Handle conformance between [sub]types and itypes
9476          generated for entities that have null exclusions applied to them.
9477         (Maybe_Primitive_Operation): Add an additional type retrieval when the
9478          base type is an access subtype. This case arrises with null exclusions.
9479         (New_Overloaded_Entity): Do not remove the overriden entity from the
9480         homonym chain if it corresponds with an abstract interface primitive.
9481         (Process_Formals): Replace membership test agains Incomplete_Kind with a
9482         call to the synthesized predicate Is_Incomplete_Type.
9483         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
9484         primitives.
9485         (Analyze_Subprogram_Declaration): Check that abstract interface
9486         primitives are abstract or null.
9487         (Analyze_Subprogram_Specification): Remove previous check for abstract
9488         interfaces because it was not complete.
9489         (Has_Interface_Formals): Removed.
9490
9491 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9492             Javier Miranda  <miranda@adacore.com>
9493
9494         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
9495         of Analyze_Package_Body, to create Itype references for anonymous
9496         access types created in the package declaration, whose designated types
9497         may have only a limited view.
9498         (Analyze_Package_Specification): For the private part of a nested
9499         package, install private_with_clauses of enclosing compilation unit if
9500         we are in its visible part.
9501         (Declare_Inherited_Private_Subprograms): Complete barrier
9502         to ensure that the primitive operation has an alias to some parent
9503         primitive. This is now required because, after the changes done for the
9504         implementation of abstract interfaces, the contents of the list of
9505         primitives has entities whose alias attribute references entities of
9506         such list of primitives.
9507         (Analyze_Package_Specification): Simplify code that handles parent units
9508         of instances and formal packages.
9509         (Uninstall_Declarations): Check the convention consistency among
9510         primitive overriding operations of a tagged record type.
9511
9512 2006-10-31  Robert Dewar  <dewar@adacore.com>
9513             Hristian Kirtchev  <kirtchev@adacore.com>
9514             Javier Miranda  <miranda@adacore.com>
9515             Ed Schonberg  <schonberg@adacore.com>
9516
9517         * sem_ch8.adb: Minor error msg rewording
9518         (Undefined): When checking for misspellings, invert arguments (to get
9519         expected and found set right)
9520         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
9521         (Analyze_Generic_Renaming): Same fix
9522         (Use_One_Package): Do not take into account the internal entities of
9523         abstract interfaces during the analysis of entities that are marked
9524         as potentially use-visible.
9525         (Find_Type): Handle the case of an attribute reference for
9526         implementation defined attribute Stub_Type (simply let the analysis of
9527         the attribute reference rewrite it).
9528         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
9529         type that appears in a Use_Type clause.
9530         (Analyze_Object_Renaming): Add support for renaming of the Priority
9531         attribute.
9532         (Find_Type): In Ada 2005, a task type can be used within its own body,
9533         when it appears in an access definition.
9534         (Analyze_Object_Renaming): Remove warning on null_exclusion.
9535         (Analyze_Object_Renaming): Introduce checks for required null exclusion
9536          in a formal object declaration or in a subtype declaration.
9537         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
9538         (Check_Null_Exclusion): New local routine to
9539         Analyze_Subprogram_Renaming. Check whether the formals and return
9540         profile of a renamed subprogram have required null exclusions when
9541         their counterparts of the renaming already impose them.
9542         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
9543         Determine whether an entity is inside a generic scope.
9544         (In_Open_Scope): First pass of documentation update.
9545         (Find_Expanded_Name): Add support for shadow entities associated with
9546         limited withed packages. This is required to handle nested packages.
9547         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
9548         that makes a renaming of a limited withed package illegal.
9549
9550 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9551             Ed Schonberg  <schonberg@adacore.com>
9552
9553         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
9554         Check_Overriding_Indicator.
9555         (Analyze_Task_Definition): Ditto.
9556         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
9557         (Check_Overriding_Indicator): To find overridden interface operation,
9558         examine only homonyms that have an explicit subprogram declaration, not
9559         inherited operations created by an unrelated type derivation.
9560         (Check_Overriding_Indicator): When checking for the presence of "null"
9561         in a procedure, ensure that the queried node is a procedure
9562         specification.
9563         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
9564         type when the formal is an access to variable.
9565         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
9566         (Analyze_Task_Type): Same addition
9567         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
9568         provide navigation capabilities for entries.
9569
9570 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9571             Ed Schonberg  <schonberg@adacore.com>
9572             Javier Miranda  <miranda@adacore.com>
9573             Gary Dismukes  <dismukes@adacore.com>
9574
9575         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
9576         inherited from an interface ancestor by another interface in the
9577         context of an instance as 'late'.
9578         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
9579         of a call to a function that dispatches on access result.
9580         (Check_Dispatching_Operation): In case of late overriding of a primitive
9581         that covers abstract interface subprograms we register it in all the
9582         secondary dispatch tables associated with abstract interfaces.
9583         (Check_Dispatching_Call): Add check that a dispatching call is not made
9584         to a function with a controlling result of a limited type. This is a
9585         current implementation restriction.
9586         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
9587         (Check_Dispatching_Operation): Do no emit a warning if the controlling
9588         argument is an interface type that is a generic formal.
9589         (Is_Interface_Subprogram): Removed.
9590         (Check_Dispatching_Operation): If the subprogram is not a dispatching
9591         operation, check the formals to handle the case in which it is
9592         associated with an abstract interface type.
9593
9594 2006-10-31  Robert Dewar  <dewar@adacore.com>
9595             Ed Schonberg  <schonberg@adacore.com>
9596
9597         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
9598         Add new calls to this procedure during traversal
9599         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
9600         another unit if expansion is disabled.
9601
9602 2006-10-31  Robert Dewar  <dewar@adacore.com>
9603
9604         * sem_eval.adb (Compile_Time_Compare): Make use of information from
9605         Current_Value in the conditional case, to evaluate additional
9606         comparisons at compile time.
9607
9608 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9609             Hristian Kirtchev  <kirtchev@adacore.com>
9610             Javier Miranda  <miranda@adacore.com>
9611
9612         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
9613         subprogram type to provide better diagnostics in case of ambiguity.
9614         (Covers): Handle coverage of formal and actual anonymous access types in
9615         the context of generic instantiation.
9616         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
9617         abstract interface types; this is required to handle concurrent types
9618         with discriminants and abstract interface types.
9619         (Covers): Include type coverage of both regular incomplete subtypes and
9620         incomplete subtypes of incomplete type visibles through a limited with
9621         clause.
9622
9623 2006-10-31  Robert Dewar  <dewar@adacore.com>
9624             Hristian Kirtchev  <kirtchev@adacore.com>
9625             Ed Schonberg  <schonberg@adacore.com>
9626
9627         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
9628         messages for entities in packages which are not used.
9629         (Collect_Synchronized_Interfaces): New procedure.
9630         (Overrides_Synchronized_Primitive): New function.
9631         (Denotes_Discriminant): Extend predicate to apply to task types.
9632         Add missing continuation marks in error msgs
9633         (Unqualify): New function for removing zero or more levels of
9634         qualification from an expression. There are numerous places where this
9635         ought to be used, but we currently only deal properly with zero or one
9636         level.
9637         (In_Instance); The analysis of the actuals in the instantiation of a
9638         child unit is not within an instantiation, even though the parent
9639         instance is on the scope stack.
9640         (Safe_To_Capture_Value): Exclude the case of variables that are
9641         renamings.
9642         (Check_Obsolescent): Removed
9643         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
9644         is an aliased view, even when rewritten as a reference to the target
9645         object in an assignment.
9646         (Get_Subprogram_Entity): New function
9647         (Known_To_Be_Assigned): New function
9648         (Type_Access_Level): Compute properly the access level of a return
9649         subtype that is an anonymous access type.
9650         (Explain_Limited_Type): Correct use of "\" for continuation messages.
9651         (Is_Transfer): The new extended_return_statement causes a transfer of
9652         control.
9653         (Has_Preelaborable_Initialization): New function
9654         (Has_Null_Exclusion): New function. Given a node N, determine whether it
9655         has a null exclusion depending on its Nkind.
9656         Change Is_Lvalue to May_Be_Lvalue
9657         (May_Be_Lvalue): Extensive additional code to deal with subprogram
9658         arguments (IN parameters are not Lvalues, IN OUT parameters are).
9659         (Safe_To_Capture_Value): Extend functionality so it can be used for
9660         the current value condition case.
9661         (Has_Compatible_Alignment): New function
9662         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
9663         objects to handle the Ada 2005 case, where aliasedness no longer implies
9664         that the object is constrained. In particular, for dereferenced names,
9665         the designated object must be assumed to be unconstrained.
9666         (Kill_Current_Values): Properly deal with the case where we encounter
9667         a loop in the scope chain.
9668         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
9669         a value.
9670         (Compile_Time_Constraint_Error): Improve error message in error case
9671
9672         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
9673         associated with entities of abstract interface primitives.
9674         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
9675
9676 2006-10-31  Robert Dewar  <dewar@adacore.com>
9677
9678         * s-osinte-tru64.adb: 
9679         Mark Asm statements Volatile to prevent warnings (seems a
9680         reasonable change anyway)
9681         Fixes new warnings
9682
9683         * s-mastop-irix.adb: Add Volatile to Asm statements
9684         Suppresses warning, and seems appropriate in any case
9685
9686         * s-osinte-vms.adb: Add Volatile to Asm statement
9687
9688         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
9689
9690         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
9691         returned.
9692         Add call to Check_Code_Statement
9693
9694 2006-10-31  Robert Dewar  <dewar@adacore.com>
9695             Ed Schonberg  <schonberg@adacore.com>
9696             Bob Duff  <duff@adacore.com>
9697
9698         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
9699         Synchronized_Present): Add Formal_Derived_Type_Definition and
9700         Private_Extension_Declaration to the list of assertions.
9701         (Is_Entry_Barrier_Function): New flag
9702         (Has_Self_Reference): New flag on aggregates, to indicate that they
9703         contain a reference to the enclosing type, inserted through a default
9704         initialization.
9705         (Next_Rep_Item): Move from Node4 to Node5.
9706         (Entity): Add this field for N_Attribute_Definition_Clause.
9707         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
9708         (N_Return_Object_Declaration): Remove this node kind. We now use
9709         N_Object_Declaration instead.
9710         (Actual_Designated_Subtype): Move to a different place to make room in
9711         N_Extended_Return_Statement.
9712         (Procedure_To_Call): Move to a different place to make room in
9713         N_Extended_Return_Statement.
9714         (Return_Type): Removed this field to make room in return statements
9715         (both kinds).
9716         (Return_Statement_Entity): New field in return statements, in part to
9717         replace Return_Type, and in part to support the fact that return
9718         statements are now pushed on the scope stack during semantic analysis.
9719         (Return_Object_Declarations): New field to support extended return
9720         statements.
9721         (N_Extended_Return_Statement): New node for extended_return_statement
9722         nonterminal.
9723         (N_Return_Object_Declaration): New node for part of
9724         extended_return_statement nonterminal. Needed because all the necessary
9725         fields won't fit in N_Extended_Return_Statement.
9726         Generic_associations now carry the Box_Present flag, to indicate a
9727         default for an actual in a partially parametrized formal package.
9728
9729         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
9730         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
9731         and for the new predefined dispatching policies: EDF_Across_Priorities,
9732         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
9733         Introduce new name Stub_Type for implementation defined attribute.
9734         Add pragma Preelaborable_Initialization
9735         Add entry for Priority attribute.
9736         Add Pragma_Wide_Character_Encoding
9737         (Get_Convention_Name): Given a convention id, this function returns the
9738         corresponding name id from the names table.
9739
9740 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9741             Robert Dewar  <dewar@adacore.com>
9742             Bob Duff  <duff@adacore.com>
9743
9744         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
9745         print null exclusion twice in the case of an access definition,
9746         Implement new -gnatL switch
9747         Remove N_Return_Object_Declaration. We now use
9748         N_Object_Declaration instead. Implement the case for
9749         N_Extended_Return_Statement. Alphabetize the cases.
9750         Add cases for new nodes N_Extended_Return_Statement and
9751         N_Return_Object_Declaration. The code is not yet written.
9752         Update the output for N_Formal_Object_Declaration
9753         and N_Object_Renaming_Declaration.
9754         (Write_Itype): Account for the case of a modular integer subtype whose
9755         base type is private.
9756
9757 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9758
9759         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
9760         Remove elaboration code, now done in the binder.
9761
9762         * s-rident.ads: Make this unit Preelaborate.
9763         (No_Restrictions): New constant used to clean up code and follow
9764         preelaborate constraints.
9765
9766         * s-stalib.adb: 
9767         Add System.Restrictions dependence, referenced directly from the
9768         binder generated file.
9769
9770 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
9771
9772         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
9773         True when AAMP extended floating-point is in use (48-bit). Change type
9774         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
9775         the two byte array types on AFloat. Change type of IV_Ilf overlay
9776         variable from Byte8 to ByteLF. Add appropriate initializations of
9777         floating-point overlays for AAMP cases.
9778
9779 2006-10-31  Javier Miranda  <miranda@adacore.com>
9780
9781         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
9782         (Get_Ceiling): New subprogram that returns
9783         the ceiling priority of the protected object.
9784         (Set_Ceiling): New subprogram that sets the new ceiling priority of
9785         the protected object.
9786
9787         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
9788
9789         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
9790
9791 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
9792
9793         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
9794         requeuing to the same protected object to give higher priority tasks
9795         the opportunity to execute.
9796
9797 2006-10-31  Robert Dewar  <dewar@adacore.com>
9798
9799         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
9800         add more precise check for the character sequence that follows '[' to
9801         avoid possible confusion in case if '[' is the last character of a
9802         string literals.
9803         (Scan_Wide): Always allow brackets encoding
9804
9805 2006-10-31  Olivier Hainque  <hainque@adacore.com>
9806
9807         * s-stchop.ads: make this unit preelaborate. This is desirable in
9808         general and made mandatory by the use of this unit by s-taprop which
9809         is itself preelaborate.
9810
9811         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
9812         Td_Events component.
9813
9814 2006-10-31  Vincent Celier  <celier@adacore.com>
9815
9816         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
9817         in file names.
9818
9819 2006-10-31  Vincent Celier  <celier@adacore.com>
9820
9821         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
9822
9823 2006-10-31  Vincent Celier  <celier@adacore.com>
9824
9825         * makegpr.adb (Check_Compilation_Needed): Take into account path names
9826         with spaces.
9827         (Check_Compilation_Needed): When checking a C or C++ source, do not
9828         resolve symbolic links.
9829         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
9830         When not in verbose mode and Ellipse is True, display "..." for the
9831         first argument with Display set to False.
9832         (Build_Global_Archive): Always set Display True for the first object
9833         file. Call Display_Command with Ellipse set to True.
9834
9835 2006-10-31  Matt Heaney  <heaney@adacore.com>
9836
9837         * a-crbtgo.ads: Commented each subprogram
9838
9839         * a-crbtgo.adb: Added reference to book from which algorithms were
9840         adapted.
9841
9842         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
9843         indicate which child.
9844         (Generic_Conditional_Insert): changed parameter name from "Success" to
9845         "Inserted".
9846         (Generic_Unconditional_Insert_With_Hint): improved algorithm
9847
9848         * a-coorse.adb (Replace_Element): changed parameter name in call to
9849         conditional insert operation.
9850
9851         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
9852
9853         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
9854         Generic_Iteration
9855
9856         * a-ciorse.adb (Replace_Element): changed parameter name in call to
9857         conditional insert operation.
9858
9859         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
9860         Generic_Iteration.
9861
9862         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
9863         instead of mode inout.
9864
9865         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
9866         draft
9867         (Generic_Read): preserve existing buckets array if possible
9868         (Generic_Write): don't send buckets array length anymore
9869
9870         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
9871         instead of mode inout.
9872
9873         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
9874         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
9875
9876         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
9877         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
9878         (Replace_Element): local operation is now an instantiation
9879
9880         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
9881         check current length.
9882         (Generic_Replace_Element): new operation
9883
9884 2006-10-31  Doug Rupp  <rupp@adacore.com>
9885
9886         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
9887         Call TBK$SYMBOLIZE without omitting parameters.
9888
9889 2006-10-31  Vincent Celier  <celier@adacore.com>
9890
9891         * symbols-processing-vms-ia64.adb,
9892         symbols-processing-vms-alpha.adb (Process): Do not include symbols
9893         that come from generic instantiations in bodies.
9894
9895 2006-10-31  Pat Rogers  <rogers@adacore.com>
9896
9897         * a-rttiev.ads, a-rttiev.adb: 
9898         This is a significant redesign primarily for the sake of automatic
9899         timer task termination but also to fix a design flaw.
9900         Therefore we are now using an RTS lock, instead of a protected
9901         object, to provide mutual exclusion to the queue of pending events
9902         and the type Timing_Event is no longer a protected type.
9903
9904 2006-10-31  Robert Dewar  <dewar@adacore.com>
9905             Cyrille Comar  <comar@adacore.com>
9906             Ben Brosgol  <brosgol@adacore.com>
9907
9908         * debug.adb:  Update flags documentation
9909
9910         * gnat_ugn.texi: Add documentation for new -gnatwq switch
9911         Clean up documentation for several other warning switches
9912         Clarify how task stack size can be specified with various
9913         versions of Windows.
9914         Add note that -gnatVo includes ranges including loops
9915         Add documentation for -gnatL switch
9916         Add note on elaboration warning for initializing variables
9917         Add documentation for new -gnatwt warning switch
9918         Document new form of pragma Warnings (On|Off, string)
9919         Add comment on use of pragma Warnings to control warnings
9920         Add documentation for -gnatjnn switch
9921         Modify section on interfacing with C for VMS 64-bit.
9922         Add doc for -gnatVe/E
9923         Add documentation of new warning flags -gnatww/-gnatwW
9924         Add warnings about address clause overlays to list of warnings
9925         (Exception Handling Control): Document that the option --RTS must be
9926         used consistently for gcc and gnatbind.
9927         Clarify that inlining is not always possible
9928         Update documentation on pragma Unchecked_Union.
9929
9930         * gnat_rm.texi: 
9931         Add documentation for new extended version of pragma Obsolescent
9932         Add documentation for implementation defined attribute 'Stub_Type.
9933         Add note on use of Volatile in asm statements
9934         Add documentation on use of pragma Unreferenced in context clause
9935         Document new form of pragma Warnings (On|Off, pattern)
9936         Document pragma Wide_Character_Encoding
9937         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
9938         enforced if code generation is active.
9939         Add section on pragma Suppress to document GNAT specific check
9940         Alignment_Check
9941         Clarify difference between No_Dispatching_Calls & No_Dispatch.
9942         Add documentation for pragma Restrictions (No_Elaboration_Code)
9943
9944         * gnat-style.texi: 
9945         Add comments on layout of subprogram local variables in the
9946         presence of nested subprograms.
9947
9948         * ug_words: Resync.
9949
9950         * elists.ads: Minor reformatting
9951         Node returns Node_Or_Entity_Id (doc change only)
9952
9953         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
9954
9955         * g-arrspl.ads (Create): Update comments.
9956
9957         * sem.ads: Add details on the handling of the scope stack.
9958
9959         * usage.adb: Update documentation.
9960
9961         * validsw.ads, validsw.adb: 
9962         Add definition of Validity_Check_Components and implement -gnatVe/E
9963
9964         * vms_data.ads: Add missing VMS qualifiers.
9965
9966         * s-addope.ads: Add documentation on overflow and divide by zero
9967
9968 2006-10-31  Robert Dewar  <dewar@adacore.com>
9969             Thomas Quinot  <quinot@adacore.com>
9970             Arnaud Charlet  <charlet@adacore.com>
9971
9972         * fmap.adb: Put routines in alpha order
9973
9974         * g-boumai.ads: Remove redundant 'in' keywords
9975
9976         * g-cgi.adb: Minor reformatting
9977
9978         * g-cgi.ads: Remove redundant 'in' keywords
9979
9980         * get_targ.adb: Put routines in alpha order
9981
9982         * prj-attr.ads: Minor reformatting
9983
9984         * s-atacco.ads: Minor reformatting
9985
9986         * scn.adb: Put routines in alpha order
9987
9988         * sinput-l.adb: Minor comment fix
9989
9990         * sinput-p.adb: Minor comment fix
9991
9992         * s-maccod.ads: Minor reformatting
9993
9994         * s-memory.adb: Minor reformatting
9995
9996         * s-htable.adb: Fix typo in comment.
9997
9998         * s-secsta.adb: Minor comment update.
9999
10000         * s-soflin.adb: Minor reformatting
10001
10002         * s-stoele.ads: 
10003         Add comment about odd qualification in Storage_Offset declaration
10004
10005         * s-strxdr.adb: 
10006         Remove unnecessary 'in' keywords for formal parameters.
10007
10008         * treeprs.adt: Minor reformatting
10009
10010         * urealp.adb: Put routines in alpha order
10011
10012         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
10013         taking string.
10014
10015         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
10016
10017         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
10018
10019         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
10020         workaround as on other platforms.
10021
10022         * g-eacodu-vms.adb: Remove redundant 'in' keywords
10023         * g-expect-vms.adb: Remove redundant 'in' keywords
10024
10025         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
10026         clear error message if the list-of-files file cannot be opened.
10027
10028         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
10029         equality operator is always visible.
10030
10031         * lang.opt: Woverlength-strings: New option.
10032
10033         * nmake.adt: 
10034         Update copyright, since nmake.ads and nmake.adb have changed.
10035
10036         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
10037         (Binder_Output_Time_Stamps_Set): removed.
10038         (Old_Binder_Output_Time_Stamp): idem.
10039         (New_Binder_Output_Time_Stamp): idem.
10040         (Recording_Time_From_Last_Bind): idem.
10041         (Recording_Time_From_Last_Bind): Make constant.
10042
10043         * output.ads, output.adb (Write_Str): Allow LF characters
10044         (Write_Spaces): New procedure
10045
10046         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
10047
10048         * inline.adb: Minor reformatting
10049
10050         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
10051
10052         * s-mastop-vms.adb: Remove redundant 'in' keywords
10053
10054         * s-osprim-vms.adb: Remove redundant 'in' keywords
10055
10056         * s-trafor-default.adb: Remove redundant 'in' keywords
10057
10058         * 9drpc.adb: Remove redundant 'in' keywords
10059
10060         * s-osinte-mingw.ads: Minor reformatting
10061
10062         * s-inmaop-posix.adb: Minor reformatting
10063
10064         * a-direio.ads: Remove quotes from Compile_Time_Warning message
10065
10066         * a-exexda.adb: Minor code reorganization
10067
10068         * a-filico.adb: Minor reformatting
10069
10070         * a-finali.adb: Minor reformatting
10071
10072         * a-nudira.ads: Remove quote from Compile_Time_Warning message
10073
10074         * a-numeri.ads: Minor reformatting
10075
10076         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
10077
10078         * exp_pakd.ads: Fix obsolete comment
10079
10080         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
10081         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
10082         Probably not a bug, but certainly neater and more efficient.
10083
10084         * a-tienio.adb: Minor reformatting
10085
10086         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
10087         Avoid assuming low bound of string is 1.
10088
10089         * gnatbind.adb: Change Bindusg to package and rename procedure as
10090         Display, which now ensures that it only outputs usage information once.
10091         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
10092
10093         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
10094         Table'First.
10095
10096         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
10097         warning.
10098         (Match): Add pragma Assert to ensure that Matches'First is zero
10099
10100         * g-regpat.ads (Match): Document that Matches lower bound must be zero
10101
10102         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
10103         documented preconditions (also kills warnings about bad indexes).
10104
10105         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
10106         is 1.
10107         (Build_Import_Library): Ditto;
10108
10109         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
10110
10111         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
10112
10113         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
10114         lower bound of choice table is 1.
10115
10116         * sem_case.ads (Analyze_Choices): Document that lower bound of
10117         Choice_Table is 1.
10118
10119         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
10120         string is 1.
10121
10122         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
10123         and add appropriate Assert pragma to suppress warnings.
10124
10125         * atree.h, atree.ads, atree.adb
10126         Change Elist24 to Elist25
10127         Add definitions of Field28 and Node28
10128         (Traverse_Field): Use new syntactic parent table in sinfo.
10129
10130         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
10131
10132         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
10133
10134         * exp_tss.adb: Put routines in alpha order
10135
10136         * fe.h: Remove redundant declarations.
10137
10138 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
10139
10140         * utils.c (builtin_function): Rename to gnat_builtin_function.
10141         Move common code to add_builtin_function.
10142         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
10143         gnat_builtin_function.
10144         * gigi.h (builtin_function): Rename to gnat_builtin_function.
10145         Change the signature.
10146
10147 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
10148
10149         * Makefile.in: Add TEXI2PDF definition.
10150         * Make-lang.in: Add "ada.pdf" target.
10151
10152 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
10153
10154         * decl.c, utils.c: Fix comment typos.
10155         * utils.c: Fix a typo.
10156
10157 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
10158
10159         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
10160         on "pure" Ada subprograms if SJLJ exceptions are used.
10161         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
10162         on the declaration node of JMPBUF_SAVE.
10163         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
10164         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
10165         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
10166
10167 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
10168
10169         PR ada/28716
10170         g-socket.adb (Bind_Socket): Call Set_Address.
10171
10172 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
10173
10174         PR ada/15802
10175         * decl.c (same_discriminant_p): New static function.
10176         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
10177         subtype and we have discriminants, fix up the COMPONENT_REFs
10178         for the discriminants to make them reference the corresponding
10179         fields of the parent subtype after it has been built.
10180
10181 2006-09-15  Roger Sayle  <roger@eyesopen.com>
10182
10183         PR ada/18817
10184         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
10185         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
10186
10187 2006-09-13  Olivier Hainque  <hainque@adacore.com>
10188
10189         PR ada/29025
10190         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
10191         of a SAVE_EXPR, just make the operand addressable/not-readonly and
10192         let the common gimplifier code make and propagate a temporary copy.
10193         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
10194         out/in-out actuals and defer setting the addressable/readonly bits
10195         to the gimplifier.
10196
10197 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
10198
10199         PR ada/28591
10200         * decl.c (components_to_record): Defer emitting debug info for the
10201         record type associated with the variant until after we are sure to
10202         actually use it.
10203
10204 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
10205
10206         PR ada/21952
10207         * gigi.h (gnat_internal_attribute_table): Declare.
10208         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
10209         * utils.c (gnat_internal_attribute_table): New global variable.
10210         (builtin_function): Always call decl_attributes on the builtin.
10211         (handle_const_attribute): New static function.
10212         (handle_nothrow_attribute): Likewise.
10213
10214 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10215
10216         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
10217
10218 2006-06-23  Olivier Hainque  <hainque@adacore.com>
10219
10220         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
10221         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
10222
10223 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
10224             Eric Botcazou  <ebotcazou@adacore.com>
10225
10226         PR ada/18692
10227         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
10228         check-gnat into check-acats.
10229
10230 2006-06-17  Karl Berry  <karl@gnu.org>
10231
10232         * gnat-style.texi (@dircategory): Use "Software development"
10233         instead of "Programming", following the Free Software Directory.
10234
10235 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10236
10237         PR ada/27944
10238         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
10239
10240 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
10241
10242         PR ada/27769
10243         mlib-utl.adb: Use Program_Name.
10244
10245 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
10246
10247         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
10248         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
10249         trans.c, utils.c: Fix comment typos.  Follow spelling
10250         conventions.
10251         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
10252         conventions.
10253
10254 2006-05-19  Nicolas Setton  <setton@adacore.com>
10255
10256         * misc.c (gnat_dwarf_name): New function.
10257         (LANG_HOOKS_DWARF_NAME): Define to it.
10258
10259 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
10260
10261         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
10262         (ada/misc.o): Likewise.
10263         (ada/utils.o): Likewise.
10264
10265 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
10266
10267         * Makefile.in: Add Ada support for GNU/kFreeBSD.
10268         * s-osinte-kfreebsd-gnu.ads: New file.
10269
10270 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
10271
10272         * Make-lang.in: Rename docdir to gcc_docdir.
10273
10274 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
10275
10276         * gigi.h (get_ada_base_type): Delete.
10277         * utils2.c (get_ada_base_type): Likewise.
10278         * trans.c (convert_with_check): Operate in the real base type.
10279
10280 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10281
10282         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
10283
10284 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
10285
10286         * utils.c (create_var_decl): Use have_global_bss_p when deciding
10287         whether to make the decl common.
10288
10289 2006-02-20  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
10290
10291         * Make-lang.in (Ada): Remove.
10292         (.PHONY): Remove Ada
10293
10294 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10295
10296         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
10297         aggregate, check the interpretations of the other operand to find one
10298         that may be a boolean array.
10299
10300         (Analyze_Selected_Component): Fix flow-of-control typo in case where
10301         the prefix is a private extension.
10302
10303 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
10304
10305         PR ada/26315
10306         * utils2.c (find_common_type): If both input types are BLKmode and
10307         have the same constant size, keep using the first one.
10308
10309         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
10310
10311         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
10312
10313         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
10314
10315 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
10316
10317         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
10318         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
10319         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
10320         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
10321         Abort_Defer/Undefer pairs to avoid the possibility of a task being
10322         aborted while owning a lock.
10323
10324 2006-02-17  Javier Miranda  <miranda@adacore.com>
10325             Robert Dewar  <dewar@adacore.com>
10326
10327         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
10328         through an access to class-wide interface we force the displacement of
10329         the pointer to the allocated object to reference the corresponding
10330         secondary dispatch table.
10331         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
10332         if Long_Shifts are supported on the target, even if 64 bit divides
10333         are not supported (configurable run time mode).
10334         (Expand_N_Type_Conversion): Do validity check if validity checks on
10335         operands are enabled.
10336         (Expand_N_Qualified_Expression): Do validity check if validity checks
10337         on operands are enabled.
10338
10339 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10340
10341         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
10342         must be materialized when the renamed expression is an explicit
10343         dereference.
10344
10345 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10346
10347         * freeze.adb (Statically_Discriminated_Components): Return false if
10348         the bounds of the type of the discriminant are not static expressions.
10349
10350         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
10351         the bounds of the discriminant type are not static.
10352
10353 2006-02-17  Robert Dewar  <dewar@adacore.com>
10354
10355         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
10356         then we close To if it is valid.
10357
10358 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
10359
10360         * init.c (facility_resignal_table): new array
10361         (__gnat_default_resignal_p): enhance default predicate to resignal if
10362         VMS condition has one of the predefined facility codes.
10363
10364 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
10365
10366         * Makefile.in: Use VMS64 specialized versions of several units in
10367         Interfaces.C hierarchy to be compatible with HP C default size choices.
10368         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
10369
10370 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10371
10372         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
10373         instantiation, the corresponding entity is the related_instance of the
10374         wrapper package created for the instance.
10375
10376 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10377
10378         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
10379         the current instance is nested within another instance in a child unit.
10380
10381 2006-02-17  Javier Miranda  <miranda@adacore.com>
10382             Ed Schonberg  <schonberg@adacore.com>
10383
10384         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
10385         type we cannot inherit the primitive operations; we inherit the
10386         Corresponding_Record_Type (which has the list of primitive operations).
10387         (Check_Anonymous_Access_Types): When creating anonymous access types for
10388         access components, use Rewrite in order to preserve the tree structure,
10389         for ASIS use.
10390         (Analyze_Object_Declaration): For limited types with access
10391         discriminants with defaults initialized by an aggregate, obtain
10392         subtype from aggregate as for other mutable types.
10393         (Derived_Type_Declaration): If the derived type is a limited interface,
10394         set the corresponding flag (Is_Limited_Record is not sufficient).
10395
10396 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10397
10398         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
10399         to inline a function that returns an unconstrained type, the return
10400         expression must be the first variable declared in the body of the
10401         function.
10402
10403 2006-02-17  Javier Miranda  <miranda@adacore.com>
10404
10405         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
10406         abstract interface type, the static analysis is not enough to know if
10407         the interface is implemented or not by the source tagged type. Hence
10408         we must pass the work to the expander to generate the required code to
10409         evaluate the conversion at run-time.
10410         (Resolve_Equality_Op): Do not apply previous
10411         transformation if expansion is disasbled, to prevent anomalies when
10412         locating global references in a generic unit.
10413
10414 2006-02-17  Vincent Celier  <celier@adacore.com>
10415
10416         * snames.ads, snames.adb: New standard names for new project attributes:
10417         archive_builder, archive_indexer, compiler_pic_option,
10418         config_body_file_name, config_body_file_name_pattern,
10419         config_file_switches, config_file_unique, config_spec_file_name,
10420         config_spec_file_name_pattern, default_builder_switches,
10421         default_global_compiler_switches, default_language,
10422         dependency_file_kind, global_compiler_switches, include_path,
10423         include_path_file, language_kind, linker_executable_option,
10424         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
10425         roots, runtime_project.
10426
10427 2006-02-17  Matthew Heaney  <heaney@adacore.com>
10428
10429         * a-convec.ads, a-convec.adb: 
10430         (operator "&"): handle potential overflow for large index types
10431         (Insert): removed Contraint_Error when using large index types
10432         (Insert_Space): removed Constraint_Error for large index types
10433         (Length): moved constraint check from Length to Insert
10434
10435         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
10436         as not null access.
10437         Explicit raise statements now include an exception message.
10438         (operator "&"): handle potential overflow for large index types
10439         (Insert): removed Contraint_Error when using large index types
10440         (Insert_Space): removed Constraint_Error for large index types
10441         (Length): moved constraint check from Length to Insert
10442
10443 2006-02-17  Robert Dewar  <dewar@adacore.com>
10444
10445         * s-wchcnv.adb: Document handling of [ on output (we do not change
10446         this to ["5B"] and the new comments say why not.
10447
10448         * gnat_ugn.texi: 
10449         Add note for -gnatVo that this now includes the cases of type
10450         conversions and qualified expressions.
10451         Add comments on handling of brackets encoding for Text_IO
10452
10453 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
10454             Thomas Quinot  <quinot@adacore.com>
10455             Robert Dewar  <dewar@adacore.com>
10456             Javier Miranda  <miranda@adacore.com>
10457
10458         * expander.adb: Fix typo in comment
10459
10460         * exp_pakd.adb: Fix typo
10461         Minor comment reformatting.
10462
10463         * g-dyntab.adb: Minor reformatting
10464
10465         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
10466         aliased subprograms to look for the abstract interface subprogram.
10467
10468 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
10469
10470         * env.c (__gnat_setenv): Use size_t.
10471         (__gnat_unsetenv): Likewise.
10472         (__gnat_clearenv): Likewise.
10473
10474 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
10475
10476         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
10477
10478 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10479
10480         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
10481         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
10482         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
10483         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
10484         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
10485         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
10486         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
10487         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
10488         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
10489         no longer used.
10490
10491 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
10492
10493         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
10494         protection against race conditions is not needed.
10495         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
10496         fallback handler.
10497         (Set_Specific_Handler): Add mutual exclusive access to the specific
10498         handler.
10499         (Specific_Handler): Add mutual exclusive access for retrieving the
10500         specific handler.
10501
10502         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
10503         back handler.
10504
10505         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
10506         Fall_Back_Handler and Specific_Handler.
10507
10508         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
10509         termination handlers.
10510         Set two different owerflow depending on the maximal stack size.
10511
10512         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
10513         protection against race conditions is not needed when executing the
10514         task termination handler.
10515
10516 2006-02-13  Robert Dewar  <dewar@adacore.com>
10517
10518         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
10519         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
10520         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
10521         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
10522         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
10523         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
10524         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
10525         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
10526         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
10527         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
10528         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
10529         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
10530         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
10531         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
10532         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
10533         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
10534         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
10535         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
10536         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
10537         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
10538         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
10539         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
10540         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
10541         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
10542         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
10543         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
10544         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
10545         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
10546         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
10547         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
10548         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
10549         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
10550         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
10551         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
10552         reformatting.
10553
10554 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
10555
10556         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
10557         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
10558         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
10559         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
10560         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
10561         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
10562         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
10563         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
10564         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
10565
10566 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10567
10568         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
10569         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
10570         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
10571         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
10572         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
10573         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
10574         replaced by anonymous access type.
10575         (pthread_sigmask): Now take an access sigset_t
10576
10577         * s-osinte-hpux.ads:  Ditto.
10578         (pthread_mutex_t, pthread_cond_t): Update definitions to support
10579         properly 32 and 64 bit ABIs.
10580
10581 2006-02-13  Pascal Obry  <obry@adacore.com>
10582
10583         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
10584         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
10585         s-taprop-linux.adb, s-taprop-solaris.adb,
10586         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
10587         adjustement is already done when calling this routine.
10588
10589 2006-02-13  Pascal Obry  <obry@adacore.com>
10590
10591         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
10592         table to take advantage of the 16 priority levels available on Windows
10593         2000 and XP. On NT4 there are only 7 priority levels, this is properly
10594         supported by this new mapping.
10595
10596 2006-02-13  Nicolas Setton  <setton@adacore.com>
10597
10598         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
10599         (get_encoding): New subprogram. Extracts the encodings from an encoded
10600         Ada name.
10601
10602 2006-02-13  Pascal Obry  <obry@adacore.com>
10603             Nicolas Roche  <roche@adacore.com>
10604             Arnaud Charlet  <charlet@adacore.com>
10605
10606         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
10607         support.
10608         (__gnat_try_lock): Add unicode support by using a specific section on
10609         Windows.
10610         (__gnat_get_current_dir): Idem.
10611         (__gnat_open_read): Idem.
10612         (__gnat_open_rw): Idem.
10613         (__gnat_open_create): Idem.
10614         (__gnat_create_output_file): Idem.
10615         (__gnat_open_append): Idem.
10616         (__gnat_open_new): Idem.
10617         (__gnat_file_time_name): Idem.
10618         (__gnat_set_file_time_name): Idem.
10619         (__gnat_stat): Idem.
10620         (win32_no_block_spawn): Idem.
10621         (__gnat_locate_exec_on_path): Idem.
10622         (__gnat_opendir): New routine.
10623         (__gnat_closedir): Idem.
10624         (__gnat_readdir): Add new parameter length (pointer to int). Update
10625         implementation to use it and add specific Win32 code for Unicode
10626         support.
10627         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
10628         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
10629         (convert_addresses): Do not define this dummy routine on VMS.
10630
10631         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
10632         runtime Unicode support will be activated.
10633         (S2WS): String to Wide-String conversion. This version just copy a
10634         string in non Unicode version.
10635         (WS2S): Wide-String to String conversion. This version just copy a
10636         string in non Unicode version.
10637
10638         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
10639         (Open): Now import __gnat_opendir from adaint.c.
10640         (Read): Change the implementation to support unicode characters. It is
10641         not possible to use strlen() on Windows as this version supports only
10642         standard ASCII characters. So the length of the directory entry is now
10643         returned from the imported __gnat_readdir routine.
10644         Update copyright notice.
10645
10646         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
10647         (opendir): Moved to adaint.c.
10648
10649         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
10650         (Get_Directory): Fix wrong indexing.
10651         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
10652         __gnat_getenv from env.c
10653         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
10654         from env.c
10655
10656         * env.h, env.c: New file.
10657
10658         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
10659         adaint.c by __gnat_getenv from env.c
10660
10661         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
10662         adaint.c by __gnat_getenv from env.c
10663
10664         * Make-lang.in: Add env.o in the list of C object needed by gnat1
10665         and gnatbind.
10666         Update dependencies.
10667
10668 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10669             Olivier Hainque  <hainque@adacore.com>
10670             Eric Botcazou  <ebotcazou@adacore.com>
10671
10672         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
10673         
10674         * gigi.h (value_factor_p): Add prototype and description, now public.
10675
10676         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
10677         promotion for field with rep clause if the associated size was proven
10678         to be in error.
10679         Expand comments describing attempts to use a packable type.
10680         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
10681         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
10682         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
10683         necessary since these are not different types and pointers may
10684         actually designate any subtype in this hierarchy.
10685         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
10686         discriminants but put them into record only if not Unchecked_Union;
10687         pass flag to components_to_record showing Unchecked_Union.
10688         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
10689         components before variants; don't set TYPE_UNCHECKED_UNION_P.
10690         (components_to_record): New argument UNCHECKED_UNION.
10691         Remove special case code for Unchecked_Union and instead use main code
10692         with small changes.
10693
10694         PR ada/26096
10695         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
10696         variable with the expression being built, only its inner field.
10697
10698         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
10699         emit_sequence_entry_statements.
10700         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
10701         (establish_gnat_vms_condition_handler): Move before
10702         Subprogram_Body_to_gnu.
10703         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
10704         for a subprogram if it has a foreign convention or is exported.
10705         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
10706         substituted for a CONST_DECL.
10707         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
10708         Etype to assoc_to_constructor.
10709         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
10710         discriminants of Unchecked_Union.
10711         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
10712         don't need cluttering preprocessor directives.
10713         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
10714         condition handler as current in the compiled function.
10715         (body_with_handlers_p): New function. Tell whether a given sequence of
10716         statements node is attached to a package or subprogram body and involves
10717         exception handlers possibly nested within inner block statements.
10718         (emit_sequence_entry_statements): New function, to emit special
10719         statements on entry of sequences when necessary. Establish GNAT
10720         condition handler in the proper cases for VMS.
10721         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
10722         emit_sequence_entry_statements.
10723
10724         * utils2.c (find_common_type): If both input types are BLKmode and
10725         have a constant size, use the smaller one.
10726         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
10727         the same.
10728
10729         * utils.c (value_factor_p): Make public, to allow uses from other gigi
10730         units.
10731         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
10732         (convert, case UNION_TYPE): Remove special treatment for unchecked
10733         unions.
10734
10735         PR ada/18659
10736         (update_pointer_to): Update variants of pointer types to unconstrained
10737         arrays by attaching the list of fields of the main variant.
10738
10739 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10740             Robert Dewar  <dewar@adacore.com>
10741
10742         * a-exexpr.adb, a-exexpr-gcc.adb
10743         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
10744         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
10745         Remove code unused for exception propagation for the compiler itself
10746         from a-except.adb and update to still share separate packages.
10747
10748         * a-except.ads, a-except.adb: Ditto.
10749         Add comments that this version is now used only by the compiler and
10750         other basic tools. The full version that includes the Ada 2005 stuff
10751         is in separate files a-except-2005.ads/adb. The reason is that we do
10752         not want to cause bootstrap problems with compilers not recognizing
10753         Wide_Wide_String.
10754         Add exception reason code PE_Implicit_Return
10755         Add new exception reason code (Null Exception_Id)
10756
10757         * a-except-2005.adb, a-except-2005.ads: New files.
10758
10759         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
10760
10761         * s-wchcon.adb: New file.
10762
10763         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
10764         (traceback.o deps): Likewise.
10765         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
10766         Activate build of GMEM instrumentation library on VMS targets.
10767         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
10768         Use a-except-2005.ads/adb for all run-time library builds unless
10769         specified otherwise.
10770         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
10771         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
10772         Use s-parame.adb on all native platforms.
10773         Use s-parame-vxworks.adb on all vxworks platforms.
10774         Add env.c env.h in LIBGNAT_SRCS
10775         Add env.o in LIBGNAT_OBJS
10776         (GNATMAKE_OBJS): Remove ctrl_c.o object.
10777         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
10778         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
10779         supports VxWorks 6 RTPs.
10780         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
10781         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
10782
10783         * types.h, types.ads (Terminate_Program): New exception
10784         Add comment on modifying multiple versions of a-except.adb when the
10785         table of exception reasons is modified.
10786         Add exception reason code PE_Implicit_Return
10787         Add new exception reason code (Null Exception_Id)
10788
10789         * clean.adb (Initialize): Get the target parameters before checking
10790         if target is OpenVMS. Move the OpenVMS specific code here from package
10791         body elaboration code.
10792
10793 2006-02-13  Thomas Quinot  <quinot@adacore.com>
10794             Vincent Celier  <celier@adacore.com>
10795             Robert Dewar  <dewar@adacore.com>
10796
10797         * ali-util.adb (Get_File_Checksum): Update to account for change in
10798         profile of Initialize_Scanner.
10799
10800         * gprep.adb (Gnatprep): Update to account for change in profile of
10801         Initialize_Scanner.
10802         (Process_One_File): Same.
10803
10804         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
10805         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
10806         that behaviour using the new Unit information recorded in the source
10807         files table, rather than going through all units every time.
10808         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
10809         (Get_Source_Unit): Same.
10810
10811         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
10812         change in profile of Initialize_Scanner.
10813         (Prepare_To_Preprocess): Same.
10814
10815         * lib.ads: Fix typo in comment (templace -> template).
10816
10817         * prj-part.adb (Parse_Single_Project): Update to account for change in
10818         profile of Initialize_Scanner.
10819
10820         * scn.adb (Initialize_Scanner): Account for change in profile of
10821         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
10822         Also record the association of the given Source_File_Index to the
10823         corresponding Unit_Number_Type.
10824
10825         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
10826         procedure.
10827         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
10828         Remove Unit formal for generic scanner: this formal
10829         is only relevant to Scn (the scanner instance used to parse Ada source
10830         files), not to other instances. Update comment accordingly.
10831         (Scan): Use new function Snames.Is_Keyword_Name.
10832
10833         * sinfo-cn.adb: Fix typo in comment.
10834
10835         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
10836         Unit.
10837
10838         * sinput.ads (Source_File_Record): New component Unit, used to capture
10839         the unit identifier (if any) associated to a source file.
10840
10841         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
10842         Unit in Source_File_Record.
10843
10844         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
10845         in profile of Initialize_Scanner.
10846
10847         * scans.adb (Initialize_Ada_Keywords): New procedure
10848
10849         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
10850         Ada keywords in the Namet table, without the need to call
10851         Initialize_Scanner.
10852
10853         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
10854         (Is_Keyword_Name): New function
10855
10856         * snames.ads: Add subtype Configuration_Pragma_Names
10857         Add pragma Ada_2005 (synonym for Ada_05)
10858         (Is_Keyword_Name): New function
10859
10860         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
10861
10862 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10863
10864         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
10865         index.
10866
10867         * a-stwima.adb (To_Set): Add extra check when N = 0.
10868
10869         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
10870
10871 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10872
10873         * s-parame-mingw.adb, s-parame-linux.adb,
10874         s-parame-solaris.adb: Removed, replaced by s-parame.adb
10875
10876         * s-parame-vxworks.ads: Fix typo.
10877
10878         * s-parame-vxworks.adb: New file.
10879
10880         * s-parame.adb: Version now used by all native platforms.
10881         (Default_Stack_Size): Use 2 megs for default stack size and use
10882         __gl_default_stack_size when available.
10883         (Minimum_Stack_Size): Use 12K.
10884
10885         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
10886         (Create_Task): Refine implementation taking advantage of the XP stack
10887         size support. On XP, we now create the thread using the flag
10888         STACK_SIZE_PARAM_IS_A_RESERVATION.
10889
10890         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
10891
10892         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
10893         XP and 0 on older Windows versions.
10894
10895         * interfac-vms.ads: Removed, no longer used.
10896
10897 2006-02-13  Matthew Heaney  <heaney@adacore.com>
10898
10899         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
10900         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
10901         a-cohase.adb: All explicit raise statements now include an exception
10902         message.
10903
10904         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
10905         (Update_Element_Preserving_Key): renamed op to just Update_Element.
10906         Explicit raise statements now include an exception message
10907
10908         * a-cihase.ads, a-cohase.ads: Removed comment.
10909
10910         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
10911         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
10912         a-szbzha.adb, a-szfzha.ads: New files.
10913
10914 2006-02-13  Matthew Heaney  <heaney@adacore.com>
10915
10916         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
10917         quicksort.
10918
10919 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
10920
10921         * lang.opt: Wvariadic-macros: New option.
10922         Wold-style-definition: Likewise.
10923         Wmissing-format-attribute: Likewise.
10924
10925         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
10926         -Wold-style-definition and -Wmissing-format-attribute.
10927
10928 2006-02-13  Robert Dewar  <dewar@adacore.com>
10929
10930         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
10931
10932         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
10933
10934 2006-02-13  Nicolas Roche  <roche@adacore.com>
10935
10936         * a-envvar.adb, a-envvar.ads: New files.
10937
10938 2006-02-13  Douglas Rupp  <rupp@adacore.com>
10939
10940         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
10941
10942         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
10943
10944 2006-02-13  Pat Rogers  <rogers@adacore.com>
10945
10946         * a-rttiev.adb, a-rttiev.ads: New files.
10947
10948 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
10949
10950         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
10951         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
10952
10953         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
10954
10955 2006-02-13  Robert Dewar  <dewar@adacore.com>
10956
10957         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
10958         sem_case.adb: Minor code reorganization (not Present should be No)
10959
10960 2006-02-13  Geert Bosch  <bosch@adacore.com>
10961             Gary Dismukes  <dismukes@adacore.com>
10962
10963         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
10964         0, since the lower bound of the actual string may be greater than one.
10965
10966         PR ada/20753
10967         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
10968         layout is requested.
10969
10970 2006-02-13  Vincent Celier  <celier@adacore.com>
10971
10972         * back_end.adb (Scan_Compiler_Arguments): Check if
10973         Search_Directory_Present is True and, if it is, add the argument in
10974         the source search directory path.
10975
10976         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
10977         Search_Directory_Present to True.
10978
10979 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
10980
10981         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
10982         volatile, to tell the compiler to preserve this variable at any level
10983         of optimization.
10984         (Gen_Versions_Ada): Temporarily work around codegen bug.
10985
10986 2006-02-13  Vincent Celier  <celier@adacore.com>
10987
10988         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
10989         gcc to link with option -shared-libgcc.
10990         (Gnatlink): Remove duplicate switches -shared-libgcc
10991
10992 2006-02-13  Robert Dewar  <dewar@adacore.com>
10993
10994         * gnatvsn.ads (Current_Year): New constant, used to easily update
10995         copyright on all GNAT tools.
10996
10997         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
10998         copyright notice.
10999
11000 2006-02-13  Robert Dewar  <dewar@adacore.com>
11001
11002         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
11003         after hyphen (small aesthetic change useful for a range of numbers
11004         using ^-^.
11005         Suppress range checks for a couple of assignments which otherwise
11006         cause validity checks with validity checking turned on.
11007
11008         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
11009         Improvement in error message for object.
11010         (Rep_Item_Too_Late): Remove '!' in warning message.
11011
11012 2006-02-13  Robert Dewar  <dewar@adacore.com>
11013             Eric Botcazou  <ebotcazou@adacore.com>
11014
11015         * err_vars.ads: Suppress range checks for a couple of assignments
11016         which otherwise cause validity checks with validity checking turned on.
11017         Update comments.
11018
11019         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
11020         Make message unconditional if it is a warning.
11021         (Error_Msg_NEL): Always output warning messages.
11022         Suppress range checks for a couple of assignments which otherwise
11023         cause validity checks with validity checking turned on.
11024
11025         * errout.ads (Message Insertion Characters): Document that '!' is
11026         implied by '?' in error messages.
11027
11028         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
11029         (Gnat1drv): Use a goto to end of main subprogram instead of
11030         Exit_Program (E_Success) so that finalization can occur normally.
11031
11032 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
11033
11034         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
11035         wrapped around.
11036
11037 2006-02-13  Vincent Celier  <celier@adacore.com>
11038
11039         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
11040         Unchecked_Conversion functions.
11041         (Modification_Time): Use direct conversion of OS_Time to Calendar time
11042         when OpenVMS returns False.
11043
11044         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
11045         a-dirval.adb (OpenVMS): New Boolean function
11046
11047 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11048             Thomas Quinot  <quinot@adacore.com>
11049
11050         * checks.adb (Build_Discriminant_Checks): If the expression being
11051         checks is an aggregate retrieve the values of its discriminants to
11052         generate the check, rather than creating a temporary and a reference
11053         to it.
11054         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
11055         (Install_Null_Excluding_Check): Ditto
11056         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
11057         not for the renamed object, so that the actual itype is attached in the
11058         proper context.
11059
11060 2006-02-13  Robert Dewar  <dewar@adacore.com>
11061             Vincent Celier  <celier@adacore.com>
11062
11063         * debug.adb: Eliminate numeric switches for binder/gnatmake
11064
11065         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
11066         switches for the compiler.
11067         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
11068         (Scan_Make_Switches): When failing with an illegal switch, output an
11069         error message with the full switch.
11070         Eliminate numeric switches for binder/gnatmake
11071
11072         * switch.ads, switch.adb (Bad_Switch): New procedure
11073
11074         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
11075         Remove 0-9 as debug flag character possibilities
11076         -d is now controlling the primary stack size when its value is a
11077         positive. Also add checks against invalid values, and support for kb,
11078         mb. Ditto for -D switch.
11079
11080 2006-02-13  Robert Dewar  <dewar@adacore.com>
11081             Serguei Rybin  <rybin@adacore.com>
11082
11083         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
11084         save/restore routines.
11085         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11086         were not always properly handled previously.
11087         Since we are changing the tree format anyway, also get rid of the
11088         junk obsolete Immediate_Errors flag.
11089         (Tree_Read): Change the way of reading Tree_Version_String - now we
11090         read the version string from the tree even if its length is not the
11091         same as the length of the version string computed from Gnatvsn.
11092         (Search_Directory_Present): New Boolean flag for the compiler.
11093         Define Tree_Version_String as a dynamic string.
11094         (Default_Stack_Size): new variable, used to handle switch -d.
11095
11096         * par-prag.adb: 
11097         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
11098         only for main unit.
11099         Add pragma Ada_2005 (synonym for Ada_05)
11100         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11101         were not always properly handled previously.
11102
11103         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
11104         explicit Ada_95 to Ada_2005.
11105
11106 2006-02-13  Javier Miranda  <miranda@adacore.com>
11107             Robert Dewar  <dewar@adacore.com>
11108             Ed Schonberg  <schonberg@adacore.com>
11109
11110         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
11111         against errors in the source program: a private types for which the
11112         corresponding full type declaration is missing and pragma CPP_Virtual
11113         is used.
11114         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
11115         (Is_Known_Null): New flag
11116         (Has_Pragma_Pure): New flag
11117         (No_Return): Present in all entities, set only for procedures
11118         (Is_Limited_Type): A type whose ancestor is an interface is limited if
11119         explicitly declared limited.
11120         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
11121         entities. Only used for component marked Is_Tag. If present it stores
11122         the Offset_To_Top function used to provide this value in tagged types
11123         whose ancestor has discriminants.
11124
11125         * exp_ch2.adb: Update status of new Is_Known_Null flag
11126
11127         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
11128
11129         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
11130         the categorization sense if Is_Pure was set by pragma Pure_Function.
11131
11132 2006-02-13  Quentin Ochem  <ochem@adacore.com>
11133             Olivier Hainque  <hainque@adacore.com>
11134
11135         * bindusg.adb: Updated documentation for -d and -D switches.
11136
11137         * raise.h (__gnat_set_globals): added new parameter for
11138         Default_Stack_Size.
11139
11140         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
11141         (__gnat_handle_vms_condition): Adjust context before raise.
11142         (__gnat_install_handler): Restore the global vector setup for GCC
11143         versions before 3.4, as the frame based circtuitry is not available
11144         in this case.
11145         (__gnat_set_globals): added a parameter default_stack_size
11146         (__gl_default_stack_size): new variable.
11147
11148 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11149
11150         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
11151         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
11152         does not exist in the Ada RM.
11153         (Compatible_Int_Bounds): Determine whether two integer range bounds
11154         are of equal length and have the same start and end values.
11155         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
11156         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
11157         aggregate when it is part of an object declaration.
11158         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
11159         constrains discriminants of its parent, add explicitly the discriminant
11160         constraints of the ancestor by retrieving them from the
11161         stored_constraint of the parent.
11162
11163 2006-02-13  Robert Dewar  <dewar@adacore.com>
11164
11165         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
11166         attribute Mechanism_Code is applied to renamed subprogram, modify
11167         prefix to point to base subprogram.
11168         Max/Min attributes now violate Restriction No_Implicit_Conditionals
11169
11170         * sinfo.ads: Document that Mechanism_Code cannot be applied to
11171         renamed subprograms so that the front-end must replace the prefix
11172         appropriately.
11173
11174 2006-02-13  Javier Miranda  <miranda@adacore.com>
11175             Gary Dismukes  <dismukes@adacore.com>
11176
11177         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
11178         availability of RE_Interface_Tag.
11179         (Build_Initialization_Call): Fix wrong access to the discriminant value.
11180         (Freeze_Record_Type): Do not generate the tables associated with
11181         timed and conditional dispatching calls through synchronized
11182         interfaces if compiling under No_Dispatching_Calls restriction.
11183         When compiling for Ada 2005, for a nonabstract
11184         type with a null extension, call Make_Controlling_Function_Wrappers
11185         and insert the wrapper function declarations and bodies (the latter
11186         being appended as freeze actions).
11187         (Predefined_Primitive_Bodies): Do not generate the bodies of the
11188         predefined primitives associated with timed and conditional
11189         dispatching calls through synchronized interfaces if we are
11190         compiling under No_Dispatching_Calls.
11191         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
11192         service is available before generating a call.
11193         (Make_Controlling_Function_Wrappers): New procedure.
11194         (Expand_N_Full_Type_Declaration): Create a class-wide master for
11195         access-to-limited-interfaces because they can be used to reference
11196         tasks that implement such limited interface.
11197         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
11198         procedure spec and body of the Offset_To_Top function that is generated
11199         when the parent of a type with discriminants has secondary dispatch
11200         tables.
11201         (Init_Secondary_Tags): Handle the case in which the parent of the type
11202         containing secondary dispatch tables has discriminants to generate the
11203         correct arguments to call Set_Offset_To_Top.
11204         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
11205
11206         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
11207         Add Wide_[Wide_]Expanded_Name.
11208         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
11209         the same functionality of Get_Prim_Op_Address but applied to predefined
11210         primitive operations because the pointers to the predefined primitives
11211         are now saved in a separate table.
11212         (Parent_Size): Modified to get access to the separate table of primitive
11213         operations or the parent type.
11214         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
11215         functionality of Set_Prim_Op_Address but applied to predefined primitive
11216         operations.
11217         (Set_Signature): New subprogram used to store the signature of a DT.
11218         (Displace): If the Offset_To_Top value is not static then call the
11219         function generated by the expander to get such value; otherwise use
11220         the value stored in the table of interfaces.
11221         (Offset_To_Top): The type of the actual has been changed to Address to
11222         give the correct support to tagged types with discriminants. In this
11223         case this value is stored just immediately after the tag field.
11224         (Set_Offset_To_Top): Two new formals have been added to indicate if the
11225         offset_to_top value is static and hence pass this value to the run-time
11226         to store it in the table of interfaces, or else if this value is dynamic
11227         and then pass to the run-time the address of a function that is
11228         generated by the expander to provide this value for each object of the
11229         type.
11230
11231         * rtsfind.ads (Default_Prin_Op_Count): Removed.
11232         (Default_Prim_Op_Count): New entity
11233         (Get_Predefined_Prim_Op_Address): New entity
11234         (Set_Predefined_Prim_Op_Address): New entity
11235         (RE_Set_Signature): New entity
11236
11237 2006-02-13  Thomas Quinot  <quinot@adacore.com>
11238             Ed Schonberg  <schonberg@adacore.com>
11239
11240         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
11241         Make_Adjust_Call done for a newly-allocated object.
11242
11243         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
11244         in a subprogram are wrapped in a cleanup block, indicate that the
11245         subprogram contains an inner block with an exception handler.
11246         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
11247         Adjust call is for a newly-allocated object. In that case we must not
11248         assume that the finalization list chain pointers are correct (since they
11249         come from a bit-for-bit copy of the original object's pointers) so if
11250         the attach level would otherwise be zero (no change), we set it to 4
11251         instead to cause the pointers to be reset to null.
11252
11253         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
11254         reset chain pointers to null.
11255
11256 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11257
11258         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
11259         string, and the context requires a loop for the assignment (e.g.
11260         because the left-hand side is packed), generate a unique name for the
11261         temporary that holds the string, to prevent spurious name clashes.
11262
11263 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11264             Javier Miranda  <miranda@adacore.com>
11265             Robert Dewar  <dewar@adacore.com>
11266             Gary Dismukes  <dismukes@adacore.com>
11267
11268         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
11269         return unconstrained arrays.
11270         Update comments.
11271         (Expand_Call):  An indirect call through an access parameter of a
11272         protected operation is not a protected call.
11273         Add circuit to raise CE in Ada 2005 mode following call
11274         to Raise_Exception.
11275         (Register_DT_Entry): Do nothing if
11276         the run-time does not give support to abstract interfaces.
11277         (Freeze_Subprogram): In case of dispatching operations, do not generate
11278         code to register the operation in the dispatch table if the source
11279         is compiled with No_Dispatching_Calls.
11280         (Register_Predefined_DT_Entry): Generate code that calls the new
11281         run-time subprogram Set_Predefined_Prim_Op_Address instead of
11282         Set_Prim_Op_Address.
11283
11284         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
11285         on array assignments if the right-hand side is a function call that has
11286         been inlined. Check is performed on the assignment in the block.
11287         (Process_Bounds): If bounds and range are overloaded, apply preference
11288         rule for root operations to disambiguate, and diagnose true ambiguity.
11289         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
11290         a tag-indeterminate right-hand side even when Expander_Active is True.
11291         Needed to ensure that dispatching calls to T'Input are allowed and
11292         get the tag of the target class-wide object.
11293
11294         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
11295         an inherited primitive operation that already overrides several
11296         abstract interface primitives. For transitivity, the new entity must
11297         also override all the abstract interface primitives covered by the
11298         inherited overriden primitive.
11299         Emit warning if new entity differs from homograph in same scope only in
11300         that one has an access parameter and the other one has a parameter of
11301         a general access type with the same designated type, at the same
11302         position in the signature.
11303         (Make_Inequality_Operator): Use source locations of parameters and
11304         subtype marks from corresponding equality operator when creating the
11305         tree structure for the implicit declaration of "/=". This does not
11306         change anything in behaviour except that the decoration of the
11307         components of the subtree created for "/=" allows ASIS to get the
11308         string images of the corresponding identifiers.
11309         (Analyze_Return_Statement): Remove '!' in warning message.
11310         (Check_Statement_Sequence): Likewise.
11311         (Analyze_Subprogram_Body): For an access parameter whose designated type
11312         is an incomplete type imported through a limited_with clause, use the
11313         type of the corresponding formal in the body.
11314         (Check_Returns): Implicit return in No_Return procedure now raises
11315         Program_Error with a compile time warning, instead of beging illegal.
11316         (Has_Single_Return):  Function returning unconstrained type cannot be
11317         inlined if expression in unique return statement is not an identifier.
11318         (Build_Body_To_Inline): It is possible to inline a function call that
11319         returns an unconstrained type if all return statements in the function
11320         return the same local variable. Subsidiary procedure Has_Single_Return
11321         verifies that the body conforms to this restriction.
11322
11323         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
11324         same type, and  one of them is of an anonymous access type, convert
11325         the other operand to it, so that this is a valid binary operation for
11326         gigi.
11327         (Resolve_Type_Conversion): Handle subtypes of protected types and
11328         task types when accessing to the corresponding record type.
11329         (Resolve_Allocator): Add '\' in 2-line warning message.
11330         Remove '!' in warning message.
11331         (Resolve_Call): Add '\' in 2-line warning message.
11332         (Valid_Conversion): Likewise.
11333         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
11334         resulting type may be an access type with an implicit dereference.
11335         Obtain the proper component from the designated type.
11336         (Make_Call_Into_Operator): Handle properly a call to predefined equality
11337         given by an expanded name with prefix Standard, when the operands are
11338         of an anonymous access type.
11339         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
11340         Explicit_Dereference and Resolve_Selected_Component, to verify that the
11341         prefix of the expression is not of an incomplete type. Allows full
11342         diagnoses of all semantic errors.
11343         (Resolve_Actuals): If the actual is an allocator whose directly
11344         designated type is a class-wide interface we build an anonymous
11345         access type to use it as the type of the allocator. Later, when
11346         the subprogram call is expanded, if the interface has a secondary
11347         dispatch table the expander will add a type conversion to force
11348         the displacement of the pointer.
11349         (Resolve_Call): If a function that returns an unconstrained type is
11350         marked Inlined_Always and inlined, the call will be inlined and does
11351         not require the creation of a transient scope.
11352         (Check_Direct_Boolean_Op): Removed
11353         (Resolve_Comparison_Op): Remove call to above
11354         (Resolve_Equality_Op): Remove call to above
11355         (Resolve_Logical_Op): Inline above, since this is only call.
11356         (Valid_Conversion): Handle properly conversions between arrays of
11357         convertible anonymous access types.
11358
11359         PR ada/25885
11360         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
11361         the literal in an unchecked conversion, because GCC 4.x needs a static
11362         value for a string bound.
11363
11364 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11365             Hristian Kirtchev  <kirtchev@adacore.com>
11366
11367         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
11368         components of the corresponding record, take into account component
11369         definitions that are access definitions.
11370         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
11371         procedure is not considered a dispatching call and will be expanded
11372         properly.
11373
11374 2006-02-13  Javier Miranda  <miranda@adacore.com>
11375
11376         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
11377         controlling argument of the dispatching call is an abstract interface
11378         class-wide type then we use it directly.
11379         Check No_Dispatching_Calls restriction.
11380         (Default_Prim_Op_Position): Remove the code that looks for the last
11381         entity in the list of aliased subprograms. This code was wrong in
11382         case of renamings.
11383         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
11384         when the source is compiled with the No_Dispatching_Calls restriction.
11385         (Init_Predefined_Interface_Primitives): No need to inherit primitives
11386         if we are compiling with restriction No_Dispatching_Calls.
11387         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
11388         subprograms if we are compiling under No_Dispatching_Calls restriction.
11389         (Make_DT): Generate a dispatch table with a single dummy entry if
11390         we are compiling with the No_Dispatching_Calls restriction. In
11391         addition, in this case we don't generate code that calls to the
11392         following run-time subprograms: Set_Type_Kind, Inherit_DT.
11393         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
11394         of this subprogram if compiling with the No_Dispatching_Calls
11395         restriction.
11396         (Expand_Type_Conversion): Instead of using the actual parameter,
11397         the argument passed as parameter to the conversion function was
11398         erroneously referenced by the expander.
11399         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
11400         Set_Predefined_Primitive_Op_Address and Set_Signature.
11401         (Expand_Dispatching_Call): Generate call to
11402         Get_Predefined_Prim_Op_Address for predefined primitives.
11403         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
11404         predefined primitives.
11405         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
11406         primitives we reserve one dummy entry to ensure that the tag does not
11407         point to some memory that is associated with some other object. In
11408         addition, remove all the old code that generated the assignments
11409         associated with the signature of the dispatch table and replace them
11410         by a call to the new subprogram Set_Signature.
11411         (Set_All_DT_Position): Change the algorithm because now we have a
11412         separate dispatch table associated with predefined primitive operations.
11413         (Expand_Interface_Conversion): In case of non-static offset_to_top
11414         add explicit dereference to get access to the object after the call
11415         to displace the pointer to the object.
11416         (Expand_Interface_Thunk): Modify the generation of the actual used
11417         in the calls to the run-time function Offset_To_Top to fulfil its
11418         new interface.
11419         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
11420
11421 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11422
11423         * exp_dist.adb (Copy_Specification): For access parameters, copy
11424         Null_Exclusion flag, which will have been set for stream subprograms
11425         in Ada2005 mode.
11426
11427 2006-02-13  Pascal Obry  <obry@adacore.com>
11428
11429         * expect.c (__gnat_expect_portable_execvp): New implementation. The
11430         previous implementation was using the C runtime spawnve routine but
11431         the corresponding wait was using directly the Win32 API. This was
11432         causing some times a lock when waiting for an event using
11433         WaitForSingleObject in __gnat_waitpid. This new implementation uses
11434         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
11435         API fixes this problem.
11436
11437 2006-02-13  Robert Dewar  <dewar@adacore.com>
11438
11439         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
11440         call.
11441
11442 2006-02-13  Thomas Quinot  <quinot@adacore.com>
11443
11444         * exp_pakd.ads: Fix typos in comments.
11445
11446         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
11447         array reference that is an explicit dereference, mark the converted
11448         (packed) array reference as analyzed to prevent a forthcoming
11449         reanalysis from resetting its type to the original (non-packed) array
11450         type.
11451
11452 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11453             Javier Miranda  <miranda@adacore.com>
11454             Eric Botcazou  <ebotcazou@adacore.com>
11455
11456         * exp_util.ads, exp_util.adb (Find_Prim_Op,
11457         Is_Predefined_Primitive_Operation): When
11458         searching for the predefined equality operator, verify that operands
11459         have the same type.
11460         (Is_Predefined_Dispatching_Operation): Remove the code that looks
11461         for the last entity in the list of aliased subprograms. This code
11462         was wrong in case of renamings.
11463         (Set_Renamed_Subprogram): New procedure
11464         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
11465         Exp_Type constant computed when entering this subprogram.
11466         (Known_Null): New function
11467         (OK_To_Do_Constant_Replacement): New function
11468         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
11469         (Side_Effect_Free): An attribute reference 'Input is not free of
11470         side effect, unlike other attributes that are functions. (from code
11471         reading).
11472         (Remove_Side_Effects): Expressions that involve packed arrays or records
11473         are copied at the point of reference, and therefore must be marked as
11474         renamings of objects.
11475         (Is_Predefined_Dispatching_Operation): Return false if the operation is
11476         not a dispatching operation.
11477
11478         PR ada/18819
11479         (Remove_Side_Effects): Lift enclosing type conversion nodes for
11480         elementary types in all cases.
11481
11482 2006-02-13  Javier Miranda  <miranda@adacore.com>
11483
11484         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
11485         task types when accessing to the corresponding record type.
11486         Remove '!' in warning message.
11487
11488 2006-02-13  Olivier Hainque  <hainque@adacore.com>
11489
11490         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
11491         to avoid useless and space inefficient overalignments on targets where
11492         Max_Alignment is larger than 16.
11493
11494 2006-02-13  Pascal Obry  <obry@adacore.com>
11495
11496         * g-catiio.adb (Sec_Number): New type used to compute the number of
11497         seconds since 1-1-1970.
11498         (Image) [Natural]: The parameter was an Integer, as we can't deal with
11499         negative numbers (years, months...) it is better to have a Natural here.
11500         Code clean-up.
11501         (Image) [Number]: Change parameter from Long_Integer to Number.
11502         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
11503         overflow for dates past year 2038.
11504
11505 2006-02-13  Matthew Heaney  <heaney@adacore.com>
11506
11507         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
11508         Constraint_Error.
11509
11510 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
11511
11512         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
11513         native platforms.
11514         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
11515         finalization can occur normally.
11516
11517 2006-02-13  Vincent Celier  <celier@adacore.com>
11518
11519         * gnatcmd.adb (Rules_Switches): New table
11520         (Add_To_Rules_Switches): New procedure
11521         (GNATCmd): For command CHECK, put all options following "-rules" in the
11522         Rules_Switches table. Append these -rules switches after the -cargs
11523         switches.
11524
11525 2006-02-13  Robert Dewar  <dewar@adacore.com>
11526
11527         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
11528         These two cases were generating incorrect output, and if this unit
11529         was built with checks on, generated a discriminant mismatch constraint
11530         error.
11531
11532 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11533             Robert Dewar  <dewar@adacore.com>
11534
11535         * lib-xref.adb (Get_Type_Reference): For a private type whose full
11536         view is an array type, indicate the component type as well, for
11537         navigation purposes.
11538         (Generate_Reference): Don't consider array ref on LHS to be a case
11539         of violating pragma Unreferenced.
11540         Do not give Ada 2005 warning except on real reference.
11541
11542 2006-02-13  Vincent Celier  <celier@adacore.com>
11543
11544         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
11545         main source, add switch -mdebug-main=_ada_ so that the executable can
11546         be debugged by the standard VMS debugger.
11547         (Gnatmake): Set No_Main_Subprogram to True when there is no main
11548         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
11549         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
11550         of the last source, as the binding and linking phases are never
11551         performed.
11552         Set all executable obsolete when rebuilding a library.
11553
11554         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
11555         options.
11556
11557 2006-02-13  Javier Miranda  <miranda@adacore.com>
11558
11559         PR ada/23973
11560         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
11561         code to improve the error message reported when the program has
11562         declarations of abstract interface types and it is not compiled with
11563         the -gnat05 switch.
11564         (P_Access_Definition): Reorganize the code to improve the error
11565         message reported when the new Ada 2005 syntax for anonymous
11566         access types is used and the program is not compiled with the
11567         -gnat05 switch.
11568
11569 2006-02-13  Robert Dewar  <dewar@adacore.com>
11570
11571         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
11572         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
11573         (MODE_IN)
11574
11575 2006-02-13  Javier Miranda  <miranda@adacore.com>
11576
11577         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
11578         against source containing syntax errors.
11579
11580 2006-02-13  Vincent Celier  <celier@adacore.com>
11581
11582         * prj.adb (Reset): Initialize the first element of table Namings with
11583         the standard naming data.
11584
11585 2006-02-13  Vincent Celier  <celier@adacore.com>
11586
11587         * prj.ads (Error_Warning): New enumeration type
11588
11589         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
11590         unknown, use the location of the project to report the error.
11591         (When_No_Sources): New global variable
11592         (Report_No_Ada_Sources): New procedure
11593         (Check): New parameter When_No_Sources. Set value of global variable
11594         When_No_Sources,
11595         (Find_Sources): Call Report_No_Ada_Sources when appropriate
11596         (Get_Sources_From_File): Ditto
11597         (Warn_If_Not_Sources): Better warning messages indicating the unit name
11598         and the file name.
11599
11600         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
11601         Call Prj.Proc.Process with parameter When_No_Sources.
11602
11603         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
11604         Call Recursive_Check with parameter When_No_Sources.
11605         (Recursive_Check): New parameter When_No_Sources. Call itself and
11606         Prj.Nmsc.Check with parameter When_No_Sources.
11607         (Process): New parameter When_No_Sources. Call Check with parameter
11608         When_No_Sources.
11609         (Copy_Package_Declarations): New procedure to copy renamed parameters
11610         and setting the location of the declared attributes to the location
11611         of the renamed package.
11612         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
11613         packages.
11614
11615 2006-02-13  Vincent Celier  <celier@adacore.com>
11616
11617         * prj-makr.adb (Make): Preserve the comments from the original project
11618         file.
11619         When removing nodes (attributes Source_Dirs, Source_Files,
11620         Source_List_File and package Naming), save the comments and attach the
11621         saved comments to the newly created nodes.
11622         Do not add a with clause for the naming package if one already exists.
11623
11624 2006-02-13  Javier Miranda  <miranda@adacore.com>
11625             Gary Dismukes  <dismukes@adacore.com>
11626             Robert Dewar  <dewar@adacore.com>
11627
11628         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
11629
11630         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
11631         aliased entities to look for the overriden abstract interface
11632         subprogram.
11633         (Is_Interface_Subprogram): Complete documentation.
11634         (Check_Dispatching_Operation): Do not generate code to register the
11635         operation in the dispatch table if the source is compiled with
11636         restriction No_Dispatching_Calls.
11637         (Override_Dispatching_Operation): Check for illegal attempt to override
11638         No_Return procedure with procedure that is not No_Return
11639         (Check_Dispatching_Call): Suppress the check for an abstract operation
11640         when the original node of an actual is a tag-indeterminate attribute
11641         call, since the attribute, which must be 'Input, can never be abstract.
11642         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
11643         call to the Input attribute (even when rewritten).
11644         (Propagate_Tag): Augment comment to indicate the possibility of a call
11645         to an Input attribute.
11646
11647         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
11648         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
11649
11650         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
11651         No_Wide_Characters is no longer partition-wide
11652         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
11653         rather than GNAT
11654
11655 2006-02-13  Douglas Rupp  <rupp@adacore.com>
11656
11657         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
11658
11659 2006-02-13  Javier Miranda  <miranda@adacore.com>
11660
11661         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
11662         handles default-initialized components to keep separate the management
11663         of this feature but also avoid the unrequired resolution and
11664         expansion of components that do not have partially initialized
11665         values.
11666         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
11667         (Check_Bounds): Likewise.
11668         (Check_Length): Likewise.
11669
11670 2006-02-13  Javier Miranda  <miranda@adacore.com>
11671             Ed Schonberg  <schonberg@adacore.com>
11672
11673         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
11674         abstract interface type call analyze_and_resolve to expand the type
11675         conversion into the corresponding displacement of the
11676         reference to the base of the object.
11677         (Eval_Attribute, case Width): For systems where IEEE extended precision
11678         is supported, the maximum exponent occupies 4 decimal digits.
11679         (Accessibility_Message): Add '\' in 2-line warning message.
11680         (Resolve_Attribute): Likewise.
11681         (case Attribute_Access): Significantly revise checks
11682         for illegal access-to-subprogram Access attributes to properly enforce
11683         the rules of 3.10.2(32/2).
11684         Diagnose use of current instance with an illegal attribute.
11685
11686         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
11687         to a Node_Id.
11688         (Enclosing_Generic_Unit): New function to return a node's innermost
11689         enclosing generic declaration node.
11690         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
11691         (Type_Access_Level): The accessibility level of anonymous acccess types
11692         associated with discriminants is that of the current instance of the
11693         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
11694         (Compile_Time_Constraint_Error): Handle case of conditional expression.
11695         (Kill_Current_Values_For_Entity): New function
11696         (Enter_Name): Change formal type to Entity_Id
11697
11698 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
11699             Ed Schonberg  <schonberg@adacore.com>
11700             Gary Dismukes  <dismukes@adacore.com>
11701
11702         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
11703         Analyze_Compilation_Unit.
11704         Detect and warn on redundant with clauses detected in a package spec
11705         and/or body when -gnatwr is used.
11706         (Analyze_Context): Analyze config pragmas before other items
11707         (Install_Context_Items): Don't analyze config pragmas here
11708         (Install_Limited_Withed_Unit): Set limited entity of package in
11709         with_clause so that cross-reference information or warning messages on
11710         unused packages can be properly generated
11711         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
11712         has Error_Posted set. Prevent infinite loops in illegal programs.
11713         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
11714         to the point of the error test requiring the current unit to be private.
11715         This ensures that private with clauses are not exempted from the basic
11716         checking for being a descendant of the same library unit parent as a
11717         withed private descendant unit.
11718         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
11719         handle private with clauses properly, as well as to account for cases
11720         where the withed unit is a public descendant of a private ancestor
11721         (in which case the current unit must be a descendant of the private
11722         ancestor's parent). The spec comments were updated accordingly. Also,
11723         the old error message in this subprogram was replaced with error
11724         messages that mirror the errors tested and reported by
11725         Check_Private_Child_Unit.
11726         Parameter and variable names improved for readability.
11727         (Install_Limited_Context_Clauses): Remove test for a withed unit being
11728         private as the precondition for calling
11729         Check_Private_Limited_Withed_Unit since that subprogram has been
11730         revised to test public units as well as private units.
11731
11732 2006-02-13  Thomas Quinot  <quinot@adacore.com>
11733             Robert Dewar  <dewar@adacore.com>
11734             Ed Schonberg  <schonberg@adacore.com>
11735             Javier Miranda  <miranda@adacore.com>
11736
11737         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
11738         that Scope_Stack.First = 1.
11739         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11740         were not always properly handled previously.
11741         (Formal_Entity): Complete rewrite, to handle properly some complex case
11742         with multiple levels of parametrization by formal packages.
11743         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
11744         to the corresponding derived type declaration for proper semantics.
11745
11746         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
11747         (Check_Component): Enforce restriction on components of
11748         unchecked_unions: a component in a variant cannot contain tasks or
11749         controlled types.
11750         (Unchecked_Union): Allow nested variants and multiple discriminants, to
11751         conform to AI-216.
11752         Add pragma Ada_2005 (synonym for Ada_05)
11753         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11754         were not always properly handled previously.
11755         Document that pragma Propagate_Exceptions has no effect
11756         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
11757         (Set_Convention_From_Pragma): Check that if a convention is
11758         specified for a dispatching operation, then it must be
11759         consistent with the existing convention for the operation.
11760         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
11761         longer required to specify an vtable-ptr component in the record. For
11762         compatibility reasons we leave the support for the previous definition.
11763         (Analyze_Pragma, case No_Return): Allow multiple arguments
11764
11765         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
11766         non-overrideen inherited operation with a controlling result as
11767         illegal only its implicit declaration comes from the derived type
11768         declaration of its result's type.
11769         (Check_Possible_Deferred_Completion): Relocate the object definition
11770         node of the subtype indication of a deferred constant completion rather
11771         than directly analyzing it. The analysis of the generated subtype will
11772         correctly decorate the GNAT tree.
11773         (Record_Type_Declaration): Check whether this is a declaration for a
11774         limited derived record before analyzing components.
11775         (Analyze_Component_Declaration): Diagnose record types  not explicitly
11776         declared limited when a component has a limited type.
11777         (Build_Derived_Record_Type): Code reorganization to check if some of
11778         the inherited subprograms of a tagged type cover interface primitives.
11779         This check was missing in case of a full-type associated with a private
11780         type declaration.
11781         (Constant_Redeclaration): Check that the subtypes of the partial and the
11782         full view of a constrained deferred constant statically match.
11783         (Mentions_T): A reference to the current type in an anonymous access
11784         component declaration  must be an entity name.
11785         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
11786         class_wide type to refer to full type, not to the incomplete one.
11787         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
11788         available. Required to give support to the certified run-time.
11789         (Analyze_Component_Declaration): In case of anonymous access components
11790         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
11791         (Process_Discriminants): For an access discriminant, use the
11792         discriminant specification as the associated_node_for_itype, to
11793         simplify accessibility checks.
11794
11795 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11796             Javier Miranda  <miranda@adacore.com>
11797
11798         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
11799         abstract interpretations on an operator, remove interpretations that
11800         yield Address or a type derived from it, if one of the operands is an
11801         integer literal.
11802         (Try_Object_Operation.Try_Primitive_Operation,
11803         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
11804         location when creating the new reference to a primitive or class-wide
11805         operation as a part of rewriting a subprogram call.
11806         (Try_Primitive_Operations): If context requires a function, collect all
11807         interpretations after the first match, because there may be primitive
11808         operations of the same type with the same profile and different return
11809         types. From code reading.
11810         (Try_Primitive_Operation): Use the node kind to choose the proper
11811         operation when a function and a procedure have the same parameter
11812         profile.
11813         (Complete_Object_Operation): If formal is an access parameter and prefix
11814         is an object, rewrite as an Access reference, to match signature of
11815         primitive operation.
11816         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
11817         by an expanded name with prefix Standard, when the operands are of an
11818         anonymous access type.
11819         (Remove_Abstract_Operations): If the operation is abstract because it is
11820         inherited by a user-defined type derived from Address, remove it as
11821         well from the set of candidate interpretations of an overloaded node.
11822         (Analyze_Membership_Op): Membership test not applicable to cpp-class
11823         types.
11824
11825 2006-02-13  Bob Duff  <duff@adacore.com>
11826
11827         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
11828         redundant use clauses.
11829         In particular, if the scope of two use clauses overlaps, but one is not
11830         entirely included in the other, we should not warn.  This can happen
11831         with nested packages.
11832         (Analyze_Subprogram_Renaming): Protect the compiler against previously
11833         reported errors. The bug was reported when the compiler was built
11834         with assertions enabled.
11835         (Find_Type): If the node is a 'Class reference and the prefix is a
11836         synchronized type without a corresponding record, return the type
11837         itself.
11838
11839 2006-02-13  Javier Miranda  <miranda@adacore.com>
11840
11841         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
11842         if this is the full-declaration associated with a private declaration
11843         that implement interfaces, then the private type declaration must be
11844         limited.
11845         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
11846         as aliased. The use of the 'access attribute is not available for such
11847         object (for this purpose the object should be explicitly marked as
11848         aliased, but being an anonymous type this is not possible).
11849
11850 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11851             Robert Dewar  <dewar@adacore.com>
11852
11853         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
11854         compilation unit is an elaboration scope.
11855         (Add_Task_Proc): Add '\' in 2-line warning message.
11856         (Activate_All_Desirable): Deal with case of unit with'ed by parent
11857
11858 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11859             Javier Miranda  <miranda@adacore.com>
11860
11861         * sem_type.adb (Write_Overloads): Improve display of candidate
11862         interpretations.
11863         (Add_One_Interp): Do not add to the list of interpretations aliased
11864         entities corresponding with an abstract interface type that is an
11865         immediate ancestor of a tagged type; otherwise we have a dummy
11866         conflict between this entity and the aliased entity.
11867         (Disambiguate): The predefined equality on universal_access is not
11868         usable if there is a user-defined equality with the proper signature,
11869         declared in the same declarative part as the designated type.
11870         (Find_Unique_Type): The universal_access equality operator defined under
11871         AI-230 does not cover pool specific access types.
11872         (Covers): If one of the types is a generic actual subtype, check whether
11873         it matches the partial view of the other type.
11874
11875 2006-02-13  Thomas Quinot  <quinot@adacore.com>
11876
11877         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
11878         line. This is necessary to allow In_Extended_Main_Unit to provide
11879         correct results for itypes while writing out expanded source.
11880         (Close_File): No need to update the source_index_table here since it's
11881         now done for each line.
11882
11883 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11884             Robert Dewar  <dewar@adacore.com>
11885
11886         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
11887         preserve the source unit where the itype is declared, and prevent a
11888         backend abort.
11889         (Note_Implicit_Run_Time_Call): New procedure
11890         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
11891         E_Subprogram_Type)
11892
11893         * sprint.ads: Document use of $ for implicit run time routine call
11894
11895 2006-02-13  Quentin Ochem  <ochem@adacore.com>
11896
11897         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
11898         task name.
11899
11900 2006-02-13  Bob Duff  <duff@adacore.com>
11901
11902         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
11903         Scan_Unsigned, so we do not scan leading blanks and sign twice.
11904         Integer'Value("- 5") and Integer'Value("-+5") now correctly
11905         raise Constraint_Error.
11906
11907         * s-vallli.adb (Scan_Long_Long_Integer): Call
11908         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
11909         do not scan leading blanks and sign twice.
11910         Integer'Value("- 5") and Integer'Value("-+5") now correctly
11911         raise Constraint_Error.
11912
11913         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
11914         Scan_Long_Long_Unsigned): Split out most of the processing from
11915         Scan_Long_Long_Unsigned out into
11916         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
11917         This prevents scanning leading blanks and sign twice.
11918         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
11919         See RM-3.5(44).
11920
11921         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
11922         out most of the processing from Scan_Unsigned out into
11923         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
11924         This prevents scanning leading blanks and sign twice.
11925
11926         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
11927         use with Modular'Value attribute.
11928         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
11929         attribute.
11930
11931 2006-02-13  Robert Dewar  <dewar@adacore.com>
11932
11933         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
11934
11935 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
11936
11937         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
11938         (PPC VxWorks): Likewise.
11939         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
11940         (forced_callee): Make non-inlinable and non-pure.
11941         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
11942
11943 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
11944             Ben Brosgol  <brosgol@adacore.com>
11945             Robert Dewar  <dewar@adacore.com>
11946
11947         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
11948         support.
11949         Document that gnatbind -M option is for cross environments only.
11950         Added description of using gnatmem to trace gnat rtl allocs and deallocs
11951         Add note on use of $ to label implicit run time calls
11952         Add documentation for -gnatyI (check mode IN)
11953         Updated chapter on compatibility with HP Ada
11954         VMS-oriented edits.
11955         Ran spell and corrected errors
11956         Add documentation for gnatbind -d and rework documentation of -D
11957         at the same time.
11958         Add subprogram/data elimination section.
11959         Minor editing of annex A.
11960         Add section for gnatcheck.
11961         Add documentation for restriction No_Dispatching_Calls
11962         Add documentation for pragma Ada_2005
11963         Remove mention of obsolete pragma Propagate_Exceptions
11964         Document that pragma Unreferenced can appear after DO in ACCEPT
11965         Clarify Pure_Function for library level units
11966         Mention Max/Min in connection with No_Implicit_Conditionals
11967         No_Wide_Characters restriction is no longer partition-wide
11968         Add a nice example for Universal_Literal_String attribute
11969         Document that pragma No_Return can take multiple arguments
11970
11971         * ug_words: Added entry for gnatcheck
11972
11973         * g-ctrl_c.ads (Install_Handler): Enhance comments
11974
11975         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
11976
11977         * g-trasym.ads: Add documentation on how to do off line symbolic
11978         traceback computation.
11979
11980         * s-fatgen.adb: Add comments for Unaligned_Valid
11981
11982         * stand.ads: Fix typo in comment
11983
11984 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11985
11986         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
11987
11988 2006-02-06  Roger Sayle  <roger@eyesopen.com>
11989
11990         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
11991
11992 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11993
11994         PR target/25926
11995         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
11996         implementation that calls __main.
11997
11998 2006-01-25  Peter O'Gorman  <peter@pogma.com>
11999
12000         PR bootstrap/25859
12001         * Makefile.in (GCC_LINK): Remove quotes.
12002         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
12003         or $(GCC_LINK).
12004
12005         (powerpc-darwin): Pass -shared-libgcc when building shared library.
12006
12007 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12008
12009         PR ada/24533
12010         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
12011
12012 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12013
12014         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
12015
12016 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12017
12018         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
12019         needed.
12020
12021 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12022
12023         * Make-lang.in: Update dependencies
12024
12025 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12026
12027         * Make-lang.in: Add rule for ada/exp_sel.o
12028
12029 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12030
12031         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
12032
12033 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
12034
12035         * gnatvsn.ads (Library_Version): Bump to version 4.2
12036         (ASIS_Version_Number): Bumped.
12037
12038 2005-12-09  Doug Rupp  <rupp@adacore.com>
12039
12040         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
12041         Ada bind file prefix on VMS from b$ to b__.
12042         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
12043         __init.
12044
12045         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
12046         Targparm.OpenVMS_On_Target.
12047         (Object_Suffix): Initialize with target object suffix.
12048         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
12049
12050         * butil.adb: Change some Hostparm.OpenVMS checks to
12051         Targparm.OpenVMS_On_Target.
12052
12053         * clean.adb: Change some Hostparm.OpenVMS checks to
12054         Targparm.OpenVMS_On_Target.
12055         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
12056         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
12057         Ada bind file prefix on VMS from b$ to b__.
12058
12059         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
12060         --GCC so that Get_Target_Parameters can find system.ads.
12061         (Gnatlink): Call Get_Target_Parameters in mainline.
12062         Initialize standard packages for Targparm.
12063         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
12064         (Process_Args): Also Check for object files with target object
12065         extension.
12066         (Make_Binder_File_Names): Create with target object extension.
12067         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
12068         to b__.
12069
12070         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
12071         Targparm.OpenVMS_On_Target.
12072         ({declaration},Build_Library,Check_Library): Change Ada bind file
12073         prefix on VMS from b$ to b__.
12074
12075         * osint-b.adb: Change some Hostparm.OpenVMS checks to
12076         Targparm.OpenVMS_On_Target.
12077         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
12078         b__.
12079
12080         * targext.c: New file.
12081
12082         * Makefile.in: add support for vxworks653 builds
12083         (../../vxaddr2line): gnatlink with targext.o.
12084         (TOOLS_LIBS): Move targext.o to precede libgnat.
12085         (init.o, initialize.o): Minor clean up in dependencies.
12086         (GNATLINK_OBJS): Add targparm.o, snames.o
12087         Add rules fo building targext.o and linking it explicitly with all
12088         tools.
12089         Also add targext.o to gnatlib.
12090
12091         * Make-lang.in: Add rules for building targext.o and linking it in
12092         with gnat1 and gnatbind.
12093         Add entry for exp_sel.o.
12094
12095         * osint.adb Change some Hostparm.OpenVMS checks to
12096         Targparm.OpenVMS_On_Target.
12097         (Object_File_Name): Use target object suffix.
12098
12099         * osint.ads (Object_Suffix): Remove, no longer used.
12100         (Target_Object_Suffix): Initialize with target object suffix.
12101
12102         * rident.ads: Add special exception to license.
12103
12104         * targparm.adb (Get_Target_Parameters): Set the value of
12105         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
12106         value.
12107         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
12108         
12109         * targparm.ads: Add special exception to license.
12110
12111         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
12112         function.
12113         (Copy_File): Make sure from file is closed if error on to file
12114         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
12115
12116         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
12117         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
12118
12119         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
12120         target object suffix.
12121
12122 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
12123             Quentin Ochem  <ochem@adacore.com>
12124             Florian Villoing  <villoing@adacore.com>
12125
12126         * a-taster.ads, a-taster.adb: New files.
12127
12128         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
12129         link to the version that does nothing. This way the task termination
12130         routine is not executed twice for the environment task when finishing
12131         because of an unhandled exception.
12132
12133         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
12134         handler because of an unhandled exception.
12135
12136         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
12137         System.Tasking.Utilities instead of that in System.Tasking.Stages.
12138
12139         * s-finimp.adb (initialization code): Modify the soft link for the
12140         finalization of the global list instead of Adafinal.
12141
12142         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
12143         non-tasking version of the soft link for task termination. We do
12144         nothing since if we are using the non-tasking version it
12145         means that the task termination functionality is not used.
12146         (Null_Finalize_Global_List): Add this null version for the procedure
12147         in charge of finalizing the global list for controlled objects.
12148         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
12149         instead for handling run-time termination in a more flexible way.
12150         (Adafinal_NT): This new procedure will take care of finalizing the
12151         global list for controlled objects if needed, but no tasking
12152         finalization.
12153
12154         * s-tarest.adb (Task_Lock): Do not try to lock again the
12155         Global_Task_Lock if we already own it. Otherwise, we get blocked in
12156         some run-time operations.
12157         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
12158         until all nested locks have been released.
12159         (Task_Wrapper): Call the fall-back task termination handler. It
12160         applies to all tasks but the environment task.
12161         (Finalize_Global_Tasks): Add the call for the task termination
12162         procedure for the environment task.
12163         (Task_Wrapper): suppress warnings around declaration of
12164         Secondary_Stack_Address.
12165
12166         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
12167         moved to the Common_ATCB record.
12168         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
12169         Common_ATCB record.
12170         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
12171         Common_ATCB record.
12172
12173         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
12174         Fall_Back_Handler, and Specific_Handler.
12175
12176         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
12177         defined in Ada.Task_Termination, to avoid circular dependencies.
12178         (Termination_Handler): Redefine this type here, alredy defined in
12179         Ada.Task_Termination, for avoiding circular dependencies.
12180         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
12181         for storing task termination handlers. In addition,
12182         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
12183         Common_ATCB because it is used by both the regular and the restricted
12184         run times.
12185         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
12186         Common_ATCB because it is used by both the regular and the restricted
12187         run times.
12188         (Common_ATCB): Added a dynamic task analyzer field.
12189
12190         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
12191         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
12192         (Task_Wrapper): Call the task termination handler. It applies to all
12193         tasks but the environment task.
12194         (Finalize_Global_Tasks): Call the task termination procedure for the
12195         environment task. The call to Finalize_Global_List is now performed
12196         using the soft links mechanism.
12197         (Task_Wrapper): added dynamic stack analysis.
12198
12199         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
12200         potentially blocking operations has been moved from
12201         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
12202         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
12203         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
12204         this run-time check.
12205
12206         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
12207         of task termination procedure.
12208         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
12209         link for the task termination procedure.
12210
12211         * bindusg.adb: (Bindusg): Added documentation for -u option.
12212
12213         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
12214         (Get_Main_C): Add handling of dynamic stack analysis.
12215         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
12216
12217         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
12218         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
12219         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
12220
12221         * opt.ads: Added flags used by dynamic stack measurement.
12222         (Max_Line_Length): Remove (not used anymore)
12223
12224         * s-io.ads, s-io.adb (Standard_Error): new subprogram
12225         (Standart_Output): new subprogram
12226         (Set_Output): new subprogram
12227         (Put): now uses the value of Current_Out to know if the output has to be
12228         send to stderr or stdout.
12229         
12230         * s-stausa.ads: Complete implementation.
12231
12232         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
12233         
12234         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
12235         list of Ada 05 files.
12236         (GNAT Library Units): Add AltiVec files.
12237
12238         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
12239         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
12240         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
12241
12242 2005-12-09  Nicolas Setton  <setton@adacore.com>
12243
12244         * adaint.c (__gnat_locate_regular_file): Return immediately if
12245         file_name is empty.
12246
12247 2005-12-09  Javier Miranda  <miranda@adacore.com>
12248             Hristian Kirtchev  <kirtchev@adacore.com>
12249
12250         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
12251         to the specification because the frontend generates code that uses this
12252         subprogram.
12253         (Set_Interface_Table): Add missing assertion.
12254         Update documentation describing the run-time structure.
12255         (Displace): New subprogram that displaces the pointer to the object
12256         to reference one of its secondary dispatch tables.
12257         (IW_Membership): Modified to use the new table of interfaces.
12258         (Inherit_TSD): Modified to use the new table of interfaces.
12259         (Register_Interface_Tag): Use the additional formal to fill the
12260         contents of the new table of interfaces.
12261         (Set_Interface_Table): New subprogram that stores in the TSD the
12262         pointer to the table of interfaces.
12263         (Set_Offset_To_Top): Use the additional formal to save copy of
12264         the offset value in the table of interfaces.
12265         Update structure of GNAT Primary and Secondary dispatch table diagram.
12266         Add comment section on GNAT dispatch table prologue.
12267         (Offset_To_Signature): Update the constant value of the Signature field.
12268         (Dispatch_Table): Update comment on hidden fields in the prologue.
12269         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
12270         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
12271         the type of formal parameter T to Tag, introduce additional assertions.
12272         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
12273         conversion.
12274         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
12275
12276         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
12277         in all the calls to Expand_Interface_Thunk. Instead of referencing the
12278         record component containing the tag of the secondary dispatch table we
12279         have to use the Offset_To_Top run-time function to get this information;
12280         otherwise if the pointer to the base of the object has been displace
12281         we get a wrong value if we use the 'position attribute.
12282
12283         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
12284         all the calls to Expand_Interface_Thunk.
12285         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
12286         interfaces; hence the call to Set_Interface_Table was clearly wrong.
12287         (Collect_All_Interfaces): Modify the internal subprogram Collect to
12288         ensure that the interfaces implemented by the ancestors are placed
12289         at the header of the generated list.
12290         (Expand_Interface_Conversion): Handle the case in which the displacement
12291         associated with the interface conversion is not statically known. In
12292         this case we generate a call to the new run-time subprogram Displace.
12293         (Make_DT): Generate and fill the new table of interfaces.
12294         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
12295         Get_Tagged_Kind and Set_Tagged_Kind.
12296         (Tagged_Kind): New function that determines the tagged kind of a type
12297         with respect to limitedness and concurrency and returns a reference to
12298         RE_Tagged_Kind.
12299         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
12300         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
12301         primary dispatch table for a type.
12302         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
12303         secondary dispatch table respectively of a tagged type.
12304
12305         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
12306         (Expand_Interface_Conversion): New subprogram to indicate if the
12307         displacement of the type conversion is statically known.
12308         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
12309
12310         * rtsfind.ads (RE_Offset_To_Top): New entity
12311         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
12312         accessible to users.
12313         (Re_Displace): New entity
12314         (RE_Interface_Data): New entity
12315         (RE_Set_Interface_Data): New_Entity
12316         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
12317         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
12318         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
12319         RE_TK_Tagged, RE_TK_Task.
12320
12321         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
12322         Init_Secondary_Tags_Internal to allow its use with interface types and
12323         also to generate the code for the new additional actual required
12324         by Set_Offset_To_Top.
12325         (Build_Init_Statements): In case of components associated with abstract
12326         interface types there is no need to generate a call to its IP.
12327         (Freeze_Record_Type): Generate Select Specific Data tables only for
12328         concurrent types.
12329         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
12330         the bodies and specifications of the predefined primitive operations
12331         dealing with dispatching selects and abort, 'Callable, 'Terminated only
12332         for concurrent types.
12333
12334         * exp_sel.ads, exp_sel.adb: New files.
12335
12336         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
12337         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
12338         properly protected objects and attach handler in the case of the
12339         restricted profile.
12340         Move embeded package Select_Expansion_Utilities into a separate external
12341         package.
12342         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
12343         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
12344         (Build_K, Build_S_Assignment): New subprograms, part of the select
12345         expansion utilities.
12346         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
12347         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
12348         where the trigger is a dispatching procedure of a limited tagged type.
12349
12350 2005-12-09  Olivier Hainque  <hainque@adacore.com>
12351
12352         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
12353         pointer initialization values. Make a SAVE_EXPR instead. Add comments
12354         about the use and expansion of SAVE_EXPRs in the various possible
12355         renaming handling cases.
12356         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
12357         abusing DECL_FCONTEXT.
12358
12359 2005-12-09  Matthew Heaney  <heaney@adacore.com>
12360
12361         * a-convec.adb (Merge): Added assertions to check whether vector params
12362         are sorted.
12363
12364         * a-coinve.adb (Merge): Added assertions to check whether vector params
12365         are sorted.
12366
12367         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
12368         draft.
12369         (Cursor'Read): raises PE
12370
12371         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
12372         to its default value.
12373
12374         * a-cihama.adb: Manually check whether cursor's key and elem are
12375         non-null
12376
12377         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
12378         (Merge): Assert that target and source lists are in order
12379         (Swap): Declare non-const temporaries, to pass to Splice
12380
12381         * a-cdlili.ads: (Splice): Changed param name and param mode
12382
12383         * a-cdlili.adb: (Splice): Changed param name and param mode
12384         (Merge): Assert that target and source lists are in order
12385         (Swap): Declare non-const temporaries, to pass to Splice
12386
12387         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
12388         (Write): declare Stream param as not null
12389
12390         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
12391         an exception message.
12392
12393 2005-12-09  Thomas Quinot  <quinot@adacore.com>
12394             Robert Dewar  <dewar@adacore.com>
12395
12396         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
12397         which is the absolute maximum length we can support.
12398
12399         * frontend.adb: For the processing of configuration pragma files,
12400         remove references to Opt.Max_Line_Length, which is not checked anymore.
12401
12402         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
12403         length.
12404
12405         * scn.adb, scng.adb: 
12406         Always check line length against the absolute supported maximum,
12407         Hostparm.Max_Line_Length.
12408
12409         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
12410         value for the maximum line length is Max_Line_Length (not
12411         Column_Number'Last).
12412         Minor error msg update
12413         (Set_Style_Check_Options): New interface returning error msg
12414         Minor code reorganization (processing for 'M' was out of alpha order)
12415
12416         * switch-c.adb: New interface for Set_Style_Check_Options
12417
12418         * stylesw.ads (Set_Style_Check_Options): New interface returning error
12419         msg.
12420
12421 2005-12-09  Javier Miranda  <miranda@adacore.com>
12422
12423         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
12424         with IP subprogram were only supported if there were limited types.
12425
12426         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
12427         records with IP subprogram were only supported if there were limited
12428         types.
12429
12430 2005-12-09  Olivier Hainque  <hainque@adacore.com>
12431             Eric Botcazou  <ebotcazou@adacore.com>
12432
12433         * trans.c (tree_transform, emit_check): Adjust calls to
12434         build_call_raise, passing the now expected GNAT_NODE argument.
12435
12436         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
12437         source line information than what the current global locus indicates
12438         when appropriate.
12439
12440         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
12441         field has overflowed.
12442         (build_call_raise): Add a GNAT_NODE argument to convey better source
12443         line information than what the current global locus indicates when
12444         appropriate.
12445         (build_component_ref): Adjust call to build_call_raise.
12446
12447 2005-12-09  Pascal Obry  <obry@adacore.com>
12448
12449         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
12450         the iterator is quitting iteration on parent directory.
12451
12452 2005-12-09  Javier Miranda  <miranda@adacore.com>
12453
12454         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
12455         and the assignment to a class-wide object, before the assignment we
12456         generate a run-time check to ensure that the tag of the Target is
12457         covered by the tag of the source.
12458
12459 2005-12-09  Robert Dewar  <dewar@adacore.com>
12460
12461         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
12462         parameter in call to Image_Wide_Character.
12463
12464         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
12465         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
12466         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
12467         annoying FFFE/FFFF inconsistency.
12468
12469 2005-12-09  Robert Dewar  <dewar@adacore.com>
12470             Javier Miranda  <miranda@adacore.com>
12471             Ed Schonberg  <schonberg@adacore.com>
12472
12473         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
12474         of type conversion.
12475         (Find_Interface): New subprogram that given a tagged type and one of its
12476         component associated with the secondary table of an abstract interface
12477         type, return the entity associated with such abstract interface type.
12478         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
12479         base type to create anonymous subtype, because entity may be a locally
12480         declared subtype or generic actual.
12481         (Find_Interface): New subprogram that given a tagged type and one of its
12482         component associated with the secondary table of an abstract interface
12483         type, return the entity associated with such abstract interface type.
12484
12485         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
12486         conversion cannot be handled at compile time. In this case we pass this
12487         information to the expander to generate the appropriate code.
12488
12489 2005-12-09  Robert Dewar  <dewar@adacore.com>
12490             Ed Schonberg  <schonberg@adacore.com>
12491             Gary Dismukes  <dismukes@adacore.com>
12492             Javier Miranda  <miranda@adacore.com>
12493             Hristian Kirtchev  <kirtchev@adacore.com>
12494
12495         * einfo.adb (Itype_Printed): New flag
12496         (Is_Limited_Type): Derived types do not inherit limitedness from
12497         interface progenitors.
12498         (Is_Return_By_Reference_Type): Predicate does not apply to limited
12499         interfaces.
12500
12501         * einfo.ads (Itype_Printed): New flag
12502         Move Is_Wrapper_Package to proper section
12503         Add missing Inline for Is_Volatile
12504
12505         * output.ads, output.adb (Write_Erase_Char): New procedure
12506         (Save/Restore_Output_Buffer): New procedures
12507         (Save/Restore_Output_Buffer): New procedures
12508
12509         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
12510         Add missing support for anonymous access type
12511         (Write_Id): Insert calls to Write_Itype
12512         (Write_Itype): New procedure to output itypes
12513
12514         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
12515         use of "limited" in declaration.
12516
12517         * sinfo.ads, sinfo.adb: 
12518         Formal derived types can carry an explicit "limited" indication.
12519
12520         * sem_ch3.adb: Add with and use of Targparm.
12521         (Create_Component): If Frontend_Layout_On_Target is True and the
12522         copied component does not have a known static Esize, then reset
12523         the size and positional fields of the new component.
12524         (Analyze_Component_Declaration): A limited component is
12525         legal within a protected type that implements an interface.
12526         (Collect_Interfaces): Do not add to the list the interfaces that
12527         are implemented by the ancestors.
12528         (Derived_Type_Declaration): If the parent of the full-view is an
12529         interface perform a transformation of the tree to ensure that it has
12530         the same parent than the partial-view. This simplifies the job of the
12531         expander in order to generate the correct object layout, and it is
12532         needed because the list of interfaces of the full-view can be given in
12533         any order.
12534         (Process_Full_View): The parent of the full-view does not need to be
12535         a descendant of the parent of the partial view if both parents are
12536         interfaces.
12537         (Analyze_Private_Extension_Declaration): If declaration has an explicit
12538         "limited" the parent must be a limited type.
12539         (Build_Derived_Record_Type): A derived type that is explicitly limited
12540         must have limited ancestor and progenitors.
12541         (Build_Derived_Type): Ditto.
12542         (Process_Full_View): Verify that explicit uses of "limited" in partial
12543         and full declarations are consistent.
12544         (Find_Ancestor_Interface): Remove function.
12545         (Collect_Implemented_Interfaces): New procedure used to gather all
12546         implemented interfaces by a type.
12547         (Contain_Interface): New function used to check whether an interface is
12548         present in a list.
12549         (Find_Hidden_Interface): New function used to determine whether two
12550         lists of interfaces constitute a set equality. If not, the first
12551         differing interface is returned.
12552         (Process_Full_View): Improve the check for the "no hidden interface"
12553         rule as defined by AI-396.
12554
12555 2005-12-09  Robert Dewar  <dewar@adacore.com>
12556
12557         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
12558         types, not on record subtypes.
12559         (Freeze_Entity): Code cleanup. Add barrier to the loop
12560         that generates the references for primitive operations. This allows to
12561         remove an unnecessary exception handler.
12562         Code reformatting and comment clean ups.
12563
12564 2005-12-09  Vincent Celier  <celier@adacore.com>
12565
12566         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
12567         If GNAT CHECK is called with a project file, but with no
12568         source on the command line, call gnatcheck with all the compilable
12569         sources of the project.
12570         Take into account the new command Check, for gnatcheck. Treat as for
12571         other ASIS tools: take into account project, specific package Check and
12572         Compiler switches.
12573         For ASIS tools, add the switches in package Compiler for
12574         the invocation of the compiler.
12575
12576         * prj-attr.adb: Add package Check and its attributes
12577
12578         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
12579
12580         * vms_conv.adb (Initialize): Change Params of command Check to
12581         unlimited files.
12582         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
12583         Add data for new command Check
12584
12585         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
12586         ELIM.
12587         Add qualifiers for Check command options
12588         (Command_Type): New command Check
12589
12590 2005-12-09  Thomas Quinot  <quinot@adacore.com>
12591
12592         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
12593         command line switch overruns the output buffer.
12594
12595 2005-12-09  Robert Dewar  <dewar@adacore.com>
12596
12597         * sem_prag.adb: Processing for new pragma Complete_Representation
12598         (Analyze_Pragma, case Debug): Implement two argument form.
12599
12600         * par-prag.adb: Entry for new pragma Complete_Representation
12601         (Prag, case Debug): Recognize two argument form of pragma Debug
12602         New interface for Set_Style_Check_Options.
12603
12604         * sem_ch13.adb: Implement new pragma Complete_Representation.
12605
12606         * snames.adb, snames.ads, snames.h: Entry for new pragma
12607         Complete_Representation.
12608
12609 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
12610
12611         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
12612         available user-specified stream attributes on limited parameters to
12613         also test the type directly rather than only its underlying type (for
12614         Ada 95) and, in the case of Ada 2005, to check that the user-specified
12615         attributes are visible at the point of the subprogram declaration.
12616         For Ada 2005, the error message is modified to indicate that the
12617         type's stream attributes must be visible (again, only for -gnat05).
12618
12619 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
12620
12621         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
12622         anonymous access types.
12623
12624         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
12625         matching of anonymous access types and anonymous access to subprogram
12626         types. 'R'M 4.9.1 (2/2).
12627
12628 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
12629
12630         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
12631         rule prematurely when operands are universal, remaining ambiguities
12632         will be removed during resolution.
12633         Code cleanup.
12634
12635         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
12636         that are Ada 2005 functions.
12637         (Has_Abstract_Interpretation): Subsidiary to
12638         Remove_Conversions, to remove ambiguities caused by abstract operations
12639         on numeric types when operands are universal.
12640
12641 2005-12-09  Robert Dewar  <dewar@adacore.com>
12642
12643         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
12644         for case where spec is categorized.
12645
12646 2005-12-09  Javier Miranda  <miranda@adacore.com>
12647
12648         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
12649         types use the corresponding record type. This was not needed before
12650         the implementation of Ada 2005 synchronized types because
12651         concurrent types were never tagged types in Ada 95.
12652
12653 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
12654
12655         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
12656         first subtype of the type of the expression to verify that it is a
12657         legal Time type.
12658
12659 2005-12-09  Robert Dewar  <dewar@adacore.com>
12660
12661         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
12662         decoded names.
12663
12664 2005-12-09  Quentin Ochem  <ochem@adacore.com>
12665             Robert Dewar  <dewar@adacore.com>
12666             Ed Falis  <falis@adacore.com>
12667             Florian Villoing  <villoing@adacore.com>
12668             Thomas Quinot  <quinot@adacore.com>
12669             Arnaud Charlet  <charlet@adacore.com>
12670
12671         * gnat_ugn.texi: Created section "Stack Related Tools"
12672         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
12673         "Stack Related Tools"
12674         Added subsection "Static Stack Usage Analysis"
12675         Added subsection "Dynamic Stack Usage Analysis"
12676         Include documentation of itypes in sprint listing (-gnatG)
12677         Documented gnatbind -D switch (default sec stack size for fixed sec
12678         stacks).
12679         Added Interrupt_State and Persistent_BSS to list of configuration
12680         pragmas.
12681         Add missing doc for maximum value of nnn in -gnatyMnnn
12682
12683         * gnat_rm.texi: Document the AltiVec binding.
12684         Add documentation for pragma Complete_Representation
12685         Shortened an overly long line (> 79 chars)
12686         Clarify documentation of unchecked conversion in implementation
12687         defined cases.
12688         Document two argument form of pragma Debug
12689
12690         * types.ads (Column_Number): Update documentation.
12691
12692         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
12693         library level Finalize_Storage_Only objects (these are not attached to
12694         any finalization list).
12695
12696         * system-mingw.ads: (Underlying_Priorities): Update comment.
12697
12698 2005-12-09  Robert Dewar  <dewar@adacore.com>
12699
12700         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
12701         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
12702         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
12703         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
12704         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
12705         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
12706         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
12707         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
12708         reformatting.
12709
12710 2005-12-09  Robert Dewar  <dewar@adacore.com>
12711
12712         * s-vaflop-vms-alpha.adb: (Ne_F): New function
12713         (Ne_G): New function
12714
12715         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
12716         for tag assignment.
12717         (Rewrite_Comparison): Handle case where operation is not a comparison
12718         and ignore, and also handle type conversion case.
12719
12720 2005-12-09  Thomas Quinot  <quinot@adacore.com>
12721
12722         * exp_aggr.ads: Fix typo in comment.
12723         ???-mark Convert_Aggr_In_Assignment as needing documentation.
12724
12725 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
12726
12727         * layout.adb: Replace various uses of byte by storage unit throughout.
12728         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
12729         static size, convert to storage units before returning, to conform to
12730         spec.
12731
12732 2005-12-09  Matthew Gingell  <gingell@adacore.com>
12733
12734         * g-exctra.ads: Fix typo in comment.
12735
12736 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12737
12738         * utils.c: Minor reformatting.
12739
12740 2005-12-09  Robert Dewar  <dewar@adacore.com>
12741
12742         * g-soccon.ads: 
12743         Further comment fixes to make the status of the default file clear
12744
12745         * s-bitops.adb: Clarify comment for Bits_Array
12746
12747 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
12748
12749         * Make-lang.in (ada.install-normal): Remove.
12750
12751 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
12752
12753         * Make-lang.in: Remove all dependencies on s-gtype.
12754
12755 2005-12-05  Richard Guenther  <rguenther@suse.de>
12756
12757         * utils.c (convert): Use fold_convert where appropriate.
12758
12759 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
12760
12761         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
12762         a period is meant.
12763
12764 2005-12-02  Richard Guenther  <rguenther@suse.de>
12765
12766         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
12767
12768 2005-12-01  Roger Sayle  <roger@eyesopen.com>
12769
12770         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
12771         nodes.
12772
12773 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
12774
12775         * mlib-prj.adb (Build_Library): Initialize Delete.
12776
12777 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
12778
12779         * socket.c: Add extern int h_errno for rtems since networking header
12780         files are not available at this point in a tool bootstrap. Newlib
12781         only has basic C library header files.
12782
12783 2005-11-19  Richard Guenther  <rguenther@suse.de>
12784         Roger Sayle  <roger@eyesopen.com>
12785
12786         PR ada/23717
12787         * misc.c (internal_error_function): Don't use vsprintf to format
12788         the error message text, instead use pp_format_text and the new
12789         pretty printer APIs.  This allows handling of %qs, %w, etc.
12790
12791 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
12792
12793         PR ada/24857
12794         * Makefile.in: Use s-auxdec-empty for RTEMS.
12795
12796 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12797
12798         PR ada/22333
12799         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
12800         a temporary if taking the address of something that is neither
12801         reference, declaration, or constant, since the gimplifier
12802         can't handle that case.
12803
12804 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
12805
12806         PR ada/24857
12807         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
12808
12809 2005-11-16  Richard Guenther  <rguenther@suse.de>
12810
12811         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
12812
12813 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
12814
12815         PR ada/24855
12816         * raise-gcc.c: Add missing stdarg.h include.
12817  
12818 2005-11-16  Richard Guenther  <rguenther@suse.de>
12819
12820         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
12821         (ada/misc.o): Likewise.
12822
12823 2005-11-14  Thomas Quinot  <quinot@adacore.com>
12824
12825         * g-soccon.ads: Minor reformatting. Update comments.
12826
12827         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
12828         gain visibility on the declaration of struct timeval.
12829
12830         * g-soccon-freebsd.ads,
12831         g-soccon-darwin.ads,
12832         g-soccon-tru64.ads,
12833         g-soccon-aix.ads,
12834         g-soccon-irix.ads,
12835         g-soccon-hpux.ads,
12836         g-soccon-solaris.ads,
12837         g-soccon-vms.ads,
12838         g-soccon-mingw.ads,
12839         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
12840
12841         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
12842         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
12843         g-soccon-linux-x86.ads: New files.
12844
12845         * g-socthi-mingw.adb: 
12846         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
12847
12848         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
12849         (time_t, suseconds_t): New types constructed to match the tv_sec
12850         and tv_usec fields of C struct timeval.
12851         (Timeval): Construct structure in terms of the new types.
12852         (Host_Errno): New function (imported from socket.c), returns last hosts
12853         database error.
12854
12855         * g-socthi-vxworks.adb:  Add error handling circuitry.
12856
12857         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
12858         components of struct timeval.
12859         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
12860         (Check_Selector): In error conditions, clear internal socket sets to
12861         avoid a memory leak.
12862         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
12863         Send_Timeout, Receive_Timeout.
12864
12865         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
12866         the tv_sec and tv_usec fields of C struct timeval.
12867         (Timeval): Construct structure in terms of the new types.
12868         (Host_Errno): New function (imported from socket.c), returns last hosts
12869         database error.
12870
12871         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
12872         hosts database last error code.
12873
12874         * gen-soccon.c: Complete value expansion should not be performed on
12875         TARGET, as it has the form of a math expression, and some components
12876         may be platform-defined macros.
12877         For VxWorks, generate the OK and ERROR values.
12878         New constants giving the sizes of the components of C struct timeval.
12879
12880 2005-11-14  Robert Dewar  <dewar@adacore.com>
12881             Ed Schonberg  <schonberg@adacore.com>
12882
12883         PR ada/18434
12884         * types.ads: Include All_Checks in Suppress_Array
12885
12886         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
12887         not(a=b), since we no longer do this rewriting, and hence it is not
12888         needed.
12889         (Elaboration_Checks_Suppressed): Add special casing to
12890         deal with different cases of static and dynamic elaboration checks (all
12891         checks does not count in the first case, but does in the second).
12892         (Expr_Known_Valid): Do not assume that the result of any arbitrary
12893         function call is valid, since this is not the case.
12894         (Ensure_Valid): Do not apply validity check to a real literal
12895         in a universal or fixed context
12896
12897         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
12898         elementary types using the operator in standard. It is cleaner not to
12899         modify the programmers intent, especially in the case of floating-point.
12900         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
12901         it did not matter because we always rewrote a/=b to not(a=b).
12902         (Expand_Allocator_Expression): For an allocator expression whose nominal
12903         subtype is an unconstrained packed type, convert the expression to its
12904         actual constrained subtype.
12905         Implement warning for <= or >= where < or > not possible
12906         Fix to Vax_Float tests (too early in many routines, causing premature
12907         Vax_Float expansions.
12908
12909         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
12910         to be used with packages and generic packages as well as with
12911         subprograms.
12912         (Suppress): Set All_Checks, but not Elaboration_Check, for case
12913         of pragma Suppress (All_Checks)
12914         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
12915         a string literal for precise control over warnings.
12916         Avoid raise of pragma in case of unrecognized pragma and just return
12917         instead.
12918
12919         * sem_prag.ads: Minor reformatting
12920
12921         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
12922         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
12923         Switch. Do not handle any exception.
12924         Include -gnatwx as part of -gnatg (warn on redundant parens)
12925         Allow optional = after -gnatm
12926         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
12927         longer sets Elaboration_Checks.
12928         Code to set warning mode moved to Sem_Warn
12929         so that it can be shared by pragma processing.
12930
12931         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
12932         statement.
12933
12934         * s-taprop-solaris.adb: 
12935         Change some <= to =, to avoid new warning
12936
12937         * a-exexda.adb, prj-proc.adb: 
12938         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
12939         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
12940
12941 2005-11-14  Robert Dewar  <dewar@adacore.com>
12942
12943         * exp_vfpt.adb: Handle /= case
12944         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
12945         so that we do not get duplicate scaling for fixed point conversions.
12946
12947         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
12948
12949 2005-11-14  Matthew Gingell  <gingell@adacore.com>
12950
12951         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
12952         Increase default priority on Lynx from 15 to 17, and meet the Ada
12953         requirement that Default_Priority be ((Priority'First +
12954         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
12955
12956 2005-11-14  Vincent Celier  <celier@adacore.com>
12957
12958         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
12959         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
12960         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
12961         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
12962         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
12963         mlib-tgt-lynxos.adb (DLL_Prefix): New function
12964
12965 2005-11-14  Doug Rupp  <rupp@adacore.com>
12966
12967         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
12968         private part.
12969
12970 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
12971
12972         * s-traces-default.adb, s-trafor-default.ads,
12973         s-tratas-default.adb: Fix compilation errors.
12974
12975 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
12976
12977         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
12978         raising the exception so the memory used is freed.
12979
12980 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
12981
12982         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
12983         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
12984         (convert_address): Update comments and list of platforms using this.
12985
12986         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
12987         no longer used.
12988
12989 2005-11-14  Pascal Obry  <obry@adacore.com>
12990             Vincent Celier  <celier@adacore.com>
12991
12992         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
12993         GNAT.Command_Line.
12994
12995         * memroot.adb: Remove redundant with/use clause on
12996         System.Storage_Elements.
12997
12998 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
12999
13000         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
13001         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
13002         related code to a-exexpr.adb
13003         (Save_Occurrence_And_Private): Move GCC EH related code to
13004         a-exexpr-gcc.adb
13005         (Raise_Current_Excep): Add new variable Id with pragma
13006         volatile, to ensure that the variable lives on stack.
13007
13008         * a-exexpr-gcc.adb, raise-gcc.c: New file.
13009
13010         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
13011         from a-except.adb.
13012         Move GCC EH related code to a-exexpr-gcc.adb
13013
13014         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
13015         64-bit Solaris
13016         Split the Linux version of g-soccon into separate variants for 32 and 64
13017         bit platforms.
13018         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
13019         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
13020         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
13021         of host variable $(RANLIB_FLAGS).
13022         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
13023         Code clean up: remove unused/obsolete targets.
13024         (EH_MECHANISM): New variable introduced to differenciate between the
13025         two EH mechanisms statically.
13026         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
13027         (LIBGNAT_OBJS): Add raise-gcc.o
13028         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
13029         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
13030         supports VxWorks 6 RTPs.
13031         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
13032         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
13033
13034         * raise.c: Move all GCC EH-related routines to raise-gcc.c
13035
13036 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
13037
13038         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
13039         deferral level, when abort is not allowed, to a later stage (the
13040         Task_Wrapper).
13041         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
13042         it will not get changed by the generated code. It was previously done
13043         in Create_Task.
13044
13045 2005-11-14  Thomas Quinot  <quinot@adacore.com>
13046             Olivier Hainque  <hainque@adacore.com>
13047             Eric Botcazou  <ebotcazou@adacore.com>
13048
13049         * decl.c:
13050         Factor common code to build a storage type for an unconstrained object
13051         from a fat or thin pointer type and a constrained object type.
13052         (annotate_value): Handle BIT_AND_EXPR.
13053         (annotate_rep): Don't restrict the back annotation of inherited
13054         components to the type_annotate_only case.
13055         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
13056         we are not defining the type.
13057         <E_Record_Type>: Likewise.
13058         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
13059         to get advantage of the new maybe_stabilize_reference interface, to
13060         ensure that what we reference is indeed stabilized instead of relying
13061         on assumptions on what the stabilizer does.
13062         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
13063         type imported through a limited_with clause, use its non-limited view.
13064         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
13065         differentiation.
13066         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
13067         of #if sections + explicit comparisons of convention identifiers.
13068         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
13069         before early-returning for certain types when code generation is
13070         disabled.
13071         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
13072         nullification of gnu_expr we do for objects with address clause and
13073         that we are not defining.
13074         (elaborate_expression_1): Do not create constants when creating
13075         variables needed by the debug info: the dwarf2 writer considers that
13076         CONST_DECLs is used only to represent enumeration constants, and emits
13077         nothing for them.
13078         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
13079         object with an address clause into an indirect reference, drop the
13080         initializing expression.
13081         Include "expr.h".
13082         (STACK_CHECK_BUILTIN): Delete.
13083         (STACK_CHECK_PROBE_INTERVAL): Likewise.
13084         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
13085         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
13086         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
13087         corresponding to the renamed object as ignored for debugging purposes.
13088
13089         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
13090         related): For a prefix that is a dereference of a fat or thin pointer,
13091         if there is an actual subtype provided by the front-end, use that
13092         subtype to build an actual type with bounds template.
13093         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
13094         is provided by the front-end, use that subtype to compute the size of
13095         the deallocated object.
13096         (gnat_to_gnu): When adding a statement into an elaboration procedure,
13097         check for a potential violation of a No_Elaboration_Code restriction.
13098         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
13099         with extra arguments to control whether to recurse through non-values
13100         and to let the caller know if the stabilization has succeeded.
13101         (gnat_stabilize_reference): Now a simple wrapper around
13102         maybe_stabilize, for common uses without restriction on lvalues and
13103         without need to check for the success indication.
13104         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
13105         pass false instead of 0 as the FORCE argument which is a bool.
13106         (Identifier_to_gnu): Remove checks ensuring that an renamed object
13107         attached to a renaming pointer has been properly stabilized, as no such
13108         object is attached otherwise.
13109         (call_to_gnu): Invoke create_var_decl to create the temporary when the
13110         function uses the "target pointer" return mechanism.
13111         Reinstate conversion of the actual to the type of the formal
13112         parameter before any other specific treatment based on the passing
13113         mechanism. This turns out to be necessary in order for PLACEHOLDER
13114         substitution to work properly when the latter type is unconstrained.
13115
13116         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
13117         common pattern.
13118         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
13119         with extra arguments to control whether to recurse through non-values
13120         and to let the caller know if the stabilization has succeeded.
13121
13122         * utils2.c (gnat_build_constructor): Only sort the fields for possible
13123         static output of record constructor if all the components are constant.
13124         (gnat_build_constructor): For a record type, sort the list of field
13125         initializers in increasing bit position order.
13126         Factor common code to build a storage type for an unconstrained object
13127         from a fat or thin pointer type and a constrained object type.
13128         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
13129         types variants, and process special cases of VIEW_CONVERT expressions
13130         as their NOP_EXPR counterpart to ensure we get to the
13131         CORRESPONDING_VARs associated with CONST_DECls.
13132         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
13133         on the right-hand side.
13134
13135         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
13136         a common pattern.
13137         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
13138         are converting back to its original type.
13139         (convert) <JM input>: Fallthrough regular conversion code instead of
13140         extracting the object if converting to a type variant.
13141         (create_var_decl): When a variable has an initializer requiring code
13142         generation and we are at the top level, check for a potential violation
13143         of a No_Elaboration_Code restriction.
13144         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
13145         SIZE and SIZE_UNIT which we need for later back-annotations.
13146         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
13147         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
13148         is an unchecked union.
13149         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
13150         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
13151         main variant, just replace the VIEW_CONVERT_EXPR.
13152         <UNION_TYPE>: Revert 2005-03-02 change.
13153
13154         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
13155
13156         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
13157
13158 2005-11-14  Matthew Heaney  <heaney@adacore.com>
13159
13160         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
13161         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
13162         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
13163         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
13164         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
13165         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
13166         Compiles against the spec for ordered maps described in sections
13167         A.18.6 of the most recent (August 2005) AI-302 draft.
13168
13169 2005-11-14  Olivier Hainque  <hainque@adacore.com>
13170
13171         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
13172         to ensure bias adjustments take place when need be and to prevent
13173         occurrences of intermediate overflows.
13174
13175 2005-11-14  Matthew Gingell  <gingell@adacore.com>
13176             Olivier Hainque  <hainque@adacore.com>
13177
13178         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
13179         ia64 HP-UX.
13180
13181         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
13182         tracebacks on ia64 HP-UX and provide explanatory comment.
13183         Enable backtraces on ia64 GNU/Linux.
13184         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
13185         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
13186
13187 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
13188             Javier Miranda  <miranda@adacore.com>
13189
13190         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
13191         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
13192         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
13193         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
13194
13195         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
13196         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
13197         assertions).
13198
13199         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
13200         subprogram that generates the external name associated with a
13201         secondary dispatch table.
13202         (Get_Secondary_DT_External_Name): New subprogram that generates the
13203         external name associated with a secondary dispatch table.
13204
13205 2005-11-14  Emmanuel Briot  <briot@adacore.com>
13206
13207         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
13208         line in the ALI file to include both an instantiation reference, and a
13209         returned value.
13210
13211 2005-11-14  Vincent Celier  <celier@adacore.com>
13212
13213         * clean.adb (Check_Project): Look for Ada code in extending project,
13214         even if Ada is not specified as a language.
13215         Use new function DLL_Prefix for DLL_Name
13216         (Clean_Interface_Copy_Directory): New procedure
13217         (Clean_Library_Directory): New procedure
13218         (Clean_Directory): Remove procedure, no longer used
13219         (Clean_Project): Do not delete any file in an externally built project
13220
13221         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
13222         directory of an extending project, even when there are no Ada source
13223         present.
13224         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
13225         (Set_Ada_Paths.Add.Recursive_Add): Ditto
13226
13227         * mlib-prj.adb (Check_Library): For all library projects, get the
13228         library file timestamp.
13229         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
13230         (Build_Library): Use new function DLL_Prefix for the DLL_Name
13231         (Clean): Remove procedure, no longer used
13232         (Ultimate_Extension_Of): New function
13233         (Build_Library): When cleaning the library directory, only remove an
13234         existing library file and any ALI file of a source of the project.
13235         When cleaning the interface copy directory, remove any source that
13236         could be a source of the project.
13237
13238         * prj.ads, prj.adb (Project_Empty): Add values of new components
13239         Library_TS and All_Imported_Projects.
13240         (Project_Empty): Add values for new components of Project_Data:
13241         Library_ALI_Dir and Display_Library_ALI_Dir
13242
13243         * prj-attr.adb: New project level attribute name Library_ALI_Dir
13244
13245         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
13246         attribute Library_ALI_Dir.
13247         (Check_Library_Attributes): The library directory cannot be the same as
13248         any source directory of the project tree.
13249         (Check_Stand_Alone_Library): The interface copy directory cannot be
13250         the same as any source directory of the project tree.
13251
13252         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
13253         all temporary files.
13254
13255 2005-11-14  Robert Dewar  <dewar@adacore.com>
13256             Ed Schonberg  <schonberg@adacore.com>
13257
13258         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13259         (Check_Elab_Call): A call within a protected body is never an
13260         elaboration call, and does not require checking.
13261         (Same_Elaboration_Scope): Take into account protected types for both
13262         entities.
13263         (Activate_Elaborate_All_Desirable): New procedure
13264
13265         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
13266         desirable
13267
13268         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
13269         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
13270
13271         * lib-writ.ads, lib-writ.adb: 
13272         Implement new AD/ED for Elaborate_All/Elaborate desirable
13273         Use new Elaborate_All_Desirable flag in N_With_Clause node
13274
13275         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
13276         N_Free_Statement nodes.
13277         Define new class N_Subprogram_Instantiation
13278         Add Elaborate_Desirable flag to N_With_Clause node
13279         Add N_Delay_Statement (covering two kinds of delay)
13280
13281         * debug.adb: Introduce d.f flag for compiler
13282         Add -da switch for binder
13283
13284 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13285             Cyrille Comar  <comar@adacore.com>
13286
13287         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
13288         for task component, in the case of a limited aggregate. The enclosed
13289         object declaration will create it earlier. Otherwise, in the case of a
13290         nested aggregate, the object may appear in the wrong scope.
13291         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
13292         (Gen_Assign): If the component being assigned is an array type and the
13293         expression is itself an aggregate, wrap the assignment in a block to
13294         force finalization actions on the temporary created for each row of the
13295         enclosing object.
13296         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
13297         structures are initialized after all discriminants are set so that
13298         they can be accessed even when their offset is dynamic.
13299
13300 2005-11-14  Robert Dewar  <dewar@adacore.com>
13301             Hristian Kirtchev  <kirtchev@adacore.com>
13302
13303         * sem_attr.adb: Implement Machine_Rounding attribute
13304         (Analyze_Access_Attribute): The access attribute may appear within an
13305         aggregate that has been expanded into a loop.
13306         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
13307         'Terminated whenever the prefix is of a task interface class-wide type.
13308         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
13309         the prefix is of a task interface class-wide type.
13310
13311         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
13312         to avoid warnings.
13313
13314         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
13315         Remove pragma Inline for [Unaligned_]Valid.
13316         Add comments that Valid routines do not work for Vax_Float
13317
13318         * exp_attr.adb: Implement Machine_Rounding attribute
13319
13320         * snames.h: Add entry for Machine_Rounding attribute
13321
13322 2005-11-14  Javier Miranda  <miranda@adacore.com>
13323             Robert Dewar  <dewar@adacore.com>
13324             Hristian Kirtchev  <kirtchev@adacore.com>
13325
13326         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
13327         and related): For a prefix that is an explicit dereference of an
13328         access to unconstrained packed array type, annotate the dereference
13329         with an actual subtype so GIGI can make a correct size computation.
13330         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
13331         'Unrestricted_Access, if the designated type is an interface we
13332         add a type conversion to force the displacement of the pointer
13333         to the secondary dispatch table.
13334         Use Universal_Real instead of Long_Long_Float when we need a high
13335         precision float type for the generated code (prevents gratuitous
13336         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
13337         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
13338         'Terminated for task interface class-wide objects. Generate a call to
13339         the predefined dispatching routine used to retrieve the _task_id from
13340         a task corresponding record.
13341         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
13342
13343         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13344         (Check_Dispatching_Operation): Protect the frontend againts
13345         previously detected errors.
13346
13347         * Makefile.rtl: Add new instantiations of system.fat_gen
13348
13349         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
13350         Change name of instantiated package for better consistency
13351         with newly added system.fat_gen instantiations.
13352
13353         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
13354         s-fvagfl.ads: New files.
13355
13356 2005-11-14  Cyrille Comar  <comar@adacore.com>
13357             Thomas Quinot  <quinot@adacore.com>
13358
13359         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
13360         assignment of a value of a tagged type that has been rewritten to a
13361         block statement, it is known by construction that no checks are
13362         necessary for the statements within the block: analyze it with checks
13363         suppressed.
13364         (Expand_N_If_Statement): When killing a dead then-branch in an
13365         if-statement that has elsif_parts, recompute the Current_Value node
13366         for any entity whose value is known from the condition of the first
13367         elsif_part.
13368         (Expand_N_Return_Statement): When returning a mutable record, convert
13369         the return value into its actual subtype in order to help the backend
13370         to return the actual size instead of the maximum. This is another
13371         aftermath of not returning mutable records on the sec-stack anymore.
13372
13373         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
13374         handling of error msg for suspicious reverse range iteration.
13375         (Check_Possible_Current_Value_Condition): Move declaration from body to
13376         spec, to allow this subprogram to be called from exp_ch5.
13377
13378 2005-11-14  Thomas Quinot  <quinot@adacore.com>
13379
13380         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
13381         generate a set of nested array aggregates instead of a single flat
13382         aggregate for multi-dimensional arrays.
13383
13384 2005-11-14  Pascal Obry  <obry@adacore.com>
13385
13386         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
13387         by spawnve is a process handle, no need to convert. Add a parameter
13388         close to control wether the process handle must be closed.
13389         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
13390         a process handle, not need to convert.
13391         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
13392
13393         * g-expect.adb: (Kill): Document the new close parameter.
13394         (Close): Do not release the process handle in the kill there as
13395         waitpid() is using it.
13396         (Send_Signal): Release the process handle.
13397
13398 2005-11-14  Robert Dewar  <dewar@adacore.com>
13399
13400         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
13401         need a high precision float type for the generated code (prevents
13402         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
13403         used).
13404
13405         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
13406         need a high precision float type for the generated code (prevents
13407         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
13408         used).
13409         (Expand_Width_Attribute): In configurable run-time, the attribute is not
13410         allowed on non-static enumeration subtypes. Force a load error to emit
13411         the correct diagnostic.
13412
13413 2005-11-14  Thomas Quinot  <quinot@adacore.com>
13414             Robert Dewar  <dewar@adacore.com>
13415             Ed Schonberg  <schonberg@adacore.com>
13416
13417         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
13418         subtype to compute the size of the designated object at run-time,
13419         create such a subtype and store it in the Actual_Designated_Subtype
13420         attribute of the N_Free_Statement.
13421         Generate itype for classwide designated object in both cases of
13422         user-specified storage pool: specific and class-wide, not only in the
13423         specific case.
13424         Raise CE when trying to set a not null access type object to null.
13425         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
13426         an explicit loop, because freeze nodes make its position variable.
13427
13428         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
13429         null object.
13430
13431 2005-11-14  Javier Miranda  <miranda@adacore.com>
13432
13433         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
13434         Build_Stream_Procedure): Add the null-excluding attribute to the first
13435         formal.
13436         This has no semantic meaning under Ada95 mode but it is a
13437         requirement under Ada05 mode.
13438
13439         * par-ch3.adb (P_Access_Definition): Addition of warning message if
13440         the null exclusion is used under Ada95 mode
13441         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
13442         (P_Access_Definition): Remove assertion that forbids the use of
13443         the null-exclusion feature in Ada95.
13444
13445 2005-11-14  Robert Dewar  <dewar@adacore.com>
13446
13447         * impunit.adb: Exclude container helper units not intended for use by
13448         users.
13449
13450 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13451
13452         * freeze.adb (Freeze_Entity): For an access formal that is an access
13453         to subprogram, freeze the anonymous subprogram type at the same time,
13454         to prevent later freezing in the wrong scope, such as the enclosing
13455         subprogram body.
13456         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
13457         subprogram whenever available.
13458
13459 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13460
13461         PR ada/23732
13462         * gnatvsn.ads (Library_Version): Bump to 4.1
13463
13464 2005-11-14  Robert Dewar  <dewar@adacore.com>
13465
13466         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
13467         Storage_Offset to avoid wrap around causing invalid results.
13468
13469 2005-11-14  Pascal Obry  <obry@adacore.com>
13470
13471         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
13472         cross-compiler.
13473         (Scan_Bind_Arg): Fail with an error message if -M option is used
13474         on a native compiler.
13475
13476 2005-11-14  Robert Dewar  <dewar@adacore.com>
13477             Vincent Celier  <celier@adacore.com>
13478
13479         * gprep.adb: Implement -C switch to scan comments
13480
13481         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
13482
13483         * scans.ads: Comment updates (including new use of Tok_Comment in
13484         preprocessing)
13485
13486         * opt.ads: Add documentation for flags that are used by gprmake,
13487         currently and in the next version of gprmake.
13488         (Verbosity_Level): New variable
13489         Add Replace_In_Comments switch
13490
13491         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
13492         and -vm.
13493         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
13494
13495 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13496
13497         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
13498         message, friendlier.
13499
13500 2005-11-14  Robert Dewar  <dewar@adacore.com>
13501
13502         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
13503
13504 2005-11-14  Doug Rupp  <rupp@adacore.com>
13505
13506         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
13507
13508 2005-11-14  Robert Dewar  <dewar@adacore.com>
13509
13510         * interfac.ads: Change declarations of IEEE float types so that we no
13511         longer need a separate version of this package for VMS.
13512
13513 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13514
13515         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
13516         internal entity created for the declaration of a child subprogram body
13517         with no spec as coming from source, to generate proper cross-reference
13518         information.
13519
13520 2005-11-14  Vincent Celier  <celier@adacore.com>
13521
13522         * make.adb (Compile_Sources): Change verbose message to minimum
13523         verbosity level High for "is in an Ada library", "is a read-only
13524         library" and "is an internal library",
13525         (Create_Binder_Mapping_File): Path name of ALI file for library project
13526         must include the library directory, not the object directory.
13527         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
13528         for new switches -vl, -vm and -vh.
13529         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
13530         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
13531         (Compile_Sources): Do not attempt to compile if an ALI file is missing
13532         in a project that is externally built.
13533         (Compute_All_Imported_Projects): New procedure
13534         (Gnatmake): Check if importing libraries should be regenerated because
13535         at least an imported library is more recent.
13536         (Initialize): For each project compute the list of the projects it
13537         imports directly or indirectly.
13538         (Add_Library_Search_Dir): New procedure, used in place of
13539         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
13540         put in the search paths.
13541         (Add_Source_Search_Dir): New procedure, used in place of
13542         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
13543         put in the search paths.
13544         (Mark_Directory): Resolve the absolute path the directory before marking
13545         it.
13546
13547         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
13548         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
13549         Switch. Do not handle any exception.
13550         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
13551         so that the switch is recognized as valid.
13552         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
13553
13554 2005-11-14  GNAT Script  <nobody@adacore.com>
13555
13556         * Make-lang.in: Makefile automatically updated
13557
13558 2005-11-14  Pascal Obry  <obry@adacore.com>
13559
13560         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
13561         used.
13562         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
13563         In both cases the last argument was dropped.
13564
13565 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
13566
13567         * namet.h: (Column_Numbe): New type.
13568         (Get_Column_Number): Define to sinput__get_column_number.
13569         (Instantiation): Define to sinput__instantiation.
13570         (Get_Column_Number): Declare.
13571         (Instantiation): Likewise.
13572
13573 2005-11-14  Robert Dewar  <dewar@adacore.com>
13574
13575         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
13576         syntax, which could cause compiler hangs.
13577
13578 2005-11-14  Vincent Celier  <celier@adacore.com>
13579
13580         * prj-ext.adb: Take into account new environment variable
13581         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
13582         are defined.
13583         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
13584         normalize its path name, making it absolute and resolving symbolic
13585         links, and replace the original if resolved path is different.
13586
13587 2005-11-14  Vincent Celier  <celier@adacore.com>
13588
13589         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
13590         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
13591
13592 2005-11-14  Emmanuel Briot  <briot@adacore.com>
13593
13594         * prj-pp.adb (Print): Do not output the with statement if the
13595         associated name is empty, which happens for virtual extending projects.
13596         (Print): Preserve the "extends all" attribute when printing the project.
13597
13598         * prj-tree.ads (String_Value_Of): Add comment about returned value for
13599         a virtual extending project.
13600
13601 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13602
13603         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
13604         rhs of an assignment even if the type is unconstrained, when the
13605         context is non-expanding.
13606         In an inlined body, if the context type is private,
13607         resolve with its full view, which must be a composite type.
13608
13609 2005-11-14  Robert Dewar  <dewar@adacore.com>
13610             Ed Schonberg  <schonberg@adacore.com>
13611
13612         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13613         Do not give obsolescent warning on with of subprogram (since we
13614         diagnose calls)
13615         (Analyze_With_Clause): Add test for obsolescent package
13616         (Install_Context_Clauses): If the unit is the body of a child unit, do
13617         not install twice the private declarations of the parents, to prevent
13618         circular lists of Use_Clauses in a parent.
13619         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
13620         compiling body of child unit.
13621         Use new class N_Subprogram_Instantiation
13622         (Expand_With_Clause): If this is a private with_clause for a child unit,
13623         appearing in the context of a package declaration, then the implicit
13624         with_clauses generated for parent units are private as well.
13625         (License_Check): Do not generate message if with'ed unit is internal
13626
13627 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
13628             Ed Schonberg  <schonberg@adacore.com>
13629             Thomas Quinot  <quinot@adacore.com>
13630
13631         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
13632         names are internal, because they will not have a corresponding partner
13633         in the actual package.
13634         (Analyze_Formal_Package): Move the setting of the formal package spec's
13635         Generic_Parent field so that it occurs prior to analyzing the package,
13636         to allow proper operation of Install_Parent_Private_Declarations.
13637         (Analyze_Package_Instantiation): Set the instantiated package entity's
13638         Package_Instantiation field.
13639         (Get_Package_Instantiation_Node): Move declaration to package spec.
13640         Retrieve the N_Package_Instantiation node when the Package_Instantiation
13641         field is present.
13642         (Check_Generic_Child_Unit): Within an inlined call, the only possible
13643         instantiation is Unchecked_Conversion, for which no parents are needed.
13644         (Inline_Instance_Body): Deinstall and record the use_clauses for all
13645         parent scopes of a scope being removed prior to inlining an instance
13646         body.
13647         (Analyze_Package_Instantiation): Do not perform front-end inlining when
13648         the current context is itself an instance within a non-instance child
13649         unit, to prevent scope stack errors.
13650         (Save_References): If the node is an aggregate that is an actual in a
13651         call, rewrite as a qualified expression to preserve some type
13652         information, to resolve possible ambiguities in the instance.
13653         (Instance_Parent_Unit): New global variable to record the ultimate
13654         parent unit associated with a generic child unit instance (associated
13655         with the existing Parent_Unit_Visible flag).
13656         (type Instance_Env): New component Instance_Parent_Unit for stacking
13657         parents recorded in the global Instance_Parent_Unit.
13658         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
13659         stack.
13660         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
13661         it's not a top-level unit, and only do this if Instance_Parent_Unit is
13662         not already set. Replace test of Is_Child_Unit with test of parent's
13663         scope against package Standard. Add comments and a ??? comment.
13664         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
13665         on a child instance parent to test that the parent equals
13666         Instance_Parent rather than simply checking that the unit is not a
13667         child unit.
13668         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
13669         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
13670         a formal interface are ancestors of the corresponding actual.
13671         (Validate_Formal_Interface_Type): Additional legality checks.
13672         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
13673         interface types with ancestors.
13674         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
13675         to diagnose attempts to use generic within its own declaration.
13676
13677 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13678             Javier Miranda  <miranda@adacore.com>
13679
13680         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
13681         discriminant.
13682         (Build_Private_Derived_Type): The entity of the created full view of the
13683         derived type does not come from source. If after installing the private
13684         declarations of the parent scope the parent is still private, use its
13685         full view to construct the full declaration of the derived type.
13686         (Build_Derived_Record_Type): Relax the condition that controls the
13687         execution of the check that verifies that the partial view and
13688         the full view agree in the set of implemented interfaces. In
13689         addition, this test now only takes into account the progenitors.
13690         (Derive_Interface_Subprograms): No need to derive subprograms
13691         of ancestors that are interfaces.
13692         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
13693         associated code.
13694         Change name Is_Package to Is_Package_Or_Generic_Package
13695         (Complete_Subprograms_Derivation): Handle the case in which the full
13696         view is a transitive derivation of the ancestor of the partial view.
13697         (Process_Full_View): Rename local subprogram Find_Interface_In_
13698         Descendant to Find_Ancestor_Interface to leave the code more clear.
13699         Remove wrong code that avoids the generation of an error message
13700         when the immediate ancestor of the partial view is an interface.
13701         In addition some minor reorganization of the code has been done to
13702         leave it more clear.
13703         (Analyze_Type_Declaration): If type has previous incomplete tagged
13704         partial view, inherit properly its primitive operations.
13705         (Collect_Interfaces): Make public, for analysis of formal
13706         interfaces.
13707         (Analyze_Interface_Declaration): New procedure for use for regular and
13708         formal interface declarations.
13709         (Build_Derived_Record_Type): Add support for private types to the code
13710         that checks if a tagged type implements abstract interfaces.
13711         (Check_Aliased_Component_Type): The test applies in the spec of an
13712         instance as well.
13713         (Access_Type_Declaration): Clean up declaration of malformed type
13714         declared as an access to its own classwide type, to prevent cascaded
13715         crash.
13716         (Collect_Interfaces): For private extensions and for derived task types
13717         and derived protected types, the parent may be an interface that must
13718         be included in the interface list.
13719         (Access_Definition): If the designated type is an interface that may
13720         contain tasks, create Master_Id for it before analyzing the expression
13721         of the declaration, which may be an allocator.
13722         (Record_Type_Declaration): Set properly the interface kind, for use
13723         in allocators, the creation of master id's for task interfaces, etc.
13724
13725 2005-11-14  Javier Miranda  <miranda@adacore.com>
13726             Ed Schonberg  <schonberg@adacore.com>
13727
13728         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
13729         omitted in case of stream attribute subprograms.
13730         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
13731         appear immediately after a subprogram body, when there is no previous
13732         subprogram declaration.
13733         Change name Is_Package to Is_Package_Or_Generic_Package
13734         (Process_Formals): A non null qualifier on a non null named access
13735         type is not an error, and is a warning only if Redundant_Constructs
13736         are flagged.
13737
13738 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
13739             Ed Schonberg  <schonberg@adacore.com>
13740
13741         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
13742         nested within Analyze_Package_Specification to install the private
13743         declarations and use clauses within each of the parent units of a
13744         package instance of a generic child package.
13745         (Analyze_Package_Specification): When entering a private part of a
13746         package associated with a generic instance or formal package, the
13747         private declarations of the parent must be installed (by calling new
13748         procedure Install_Parent_Private_Declarations).
13749         Change name Is_Package to Is_Package_Or_Generic_Package
13750         (Preserve_Full_Attributes): For a synchronized type, the corresponding
13751         record is absent in a generic context, which does not indicate a
13752         compiler error.
13753
13754 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13755
13756         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
13757         not try to rewrite a renamed stream attribute, because the operations
13758         on the type may not have been generated.
13759         Handle properly a renaming_as_body generated for a stream operation
13760         whose default is abstract because the object type itself is abstract.
13761         (Find_Type): If the type is incomplete and appears as the prefix of a
13762         'Class reference, it is tagged, and its list of primitive operations
13763         must be initialized properly.
13764         (Chain_Use_Clauses): When chaining the use clauses that appear in the
13765         private declaration of a parent unit, prior to compiling the private
13766         part of a child unit, find on the scope stack the proper parent entity
13767         on which to link the use clause.
13768         (Note_Redundant_Use): Emit a warning when a redundant use clause is
13769         detected.
13770         (Analyze_Object_Renaming): An attribute reference is not a legal object
13771         if it is not a function call.
13772
13773 2005-11-14  Robert Dewar  <dewar@adacore.com>
13774             Ed Schonberg  <schonberg@adacore.com>
13775
13776         * sem_eval.adb: Implement d.f flag
13777         (Subtype_Statically_Match): A generic actual type has unknown
13778         discriminants when the corresponding actual has a similar partial view.
13779         If the routine is called to validate the signature of an inherited
13780         operation in a child instance, the generic actual matches the full view,
13781
13782 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
13783             Ed Schonberg  <schonberg@adacore.com>
13784             Robert Dewar  <dewar@adacore.com>
13785             Thomas Quinot  <quinot@adacore.com>
13786
13787         * sem_res.adb (Resolve_Call): Provide a better error message whenever
13788         a procedure call is used as a select statement trigger and is not an
13789         entry renaming or a primitive of a limited interface.
13790         (Valid_Conversion): If the operand has a single interpretation do not
13791         remove address operations.
13792         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
13793         statement to inhibit warning.
13794         (Resolve_Unary_Op): Do not produce a warning when
13795         processing an expression of the form -(A mod B)
13796         Use Universal_Real instead of Long_Long_Float when we need a high
13797         precision float type for the generated code (prevents gratuitous
13798         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
13799         (Resolve_Concatenation_Arg): Improve error message when argument is an
13800         ambiguous call to a function that returns an array.
13801         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
13802         there is an implicit operator in the given scope if we are within an
13803         instance: legality check has been performed on the generic.
13804         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
13805         after resolving operand, to avoid false warnings on overloaded calls.
13806
13807 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13808             Javier Miranda  <miranda@adacore.com>
13809
13810         PR ada/15604
13811         * sem_type.adb (Covers): In an inlined body, a composite type matches
13812         a private type whose full view is a composite type.
13813         (Interface_Present_In_Ancestor): Protect the frontend against
13814         previously detected errors to ensure that its compilation
13815         with assertions enabled gives the same output that its
13816         compilation without assertions.
13817         (Interface_Present_In_Ancestor): Add support for private types.
13818         Change name In_Actual to In_Generic_Actual (clean up)
13819         (Disambiguate): New predicate In_Actual, to recognize expressions that
13820         appear in the renaming declaration generated for generic actuals, and
13821         which must be resolved in the outer context.
13822
13823 2005-11-14  Robert Dewar  <dewar@adacore.com>
13824             Thomas Quinot  <quinot@adacore.com>
13825             Hristian Kirtchev  <kirtchev@adacore.com>
13826             Ed Schonberg  <schonberg@adacore.com>
13827
13828         * sem_util.ads, sem_util.adb: Change name Is_Package to
13829         Is_Package_Or_Generic_Package.
13830         (Check_Obsolescent): New procedure.
13831         (Set_Is_Public): Remove obsolete junk test.
13832         (Set_Public_Status): Do not set Is_Public on an object whose declaration
13833         occurs within a handled_sequence_of_statemets.
13834         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
13835         for a parameterless procedure.
13836         (Enter_Name): Recognize renaming declarations created for private
13837         component of a protected type within protected operations, so that
13838         the source name of the component can be used in the debugger.
13839
13840 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13841             Robert Dewar  <dewar@adacore.com>
13842
13843         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
13844         of a generic subprogram are not visible outside the body.
13845         (Set_Warning_Switch): New procedure (code to set warning mode moved
13846         here from Switch.C so that it can be shared by pragma processing.
13847         (Check_References): Special case warning for non-modified non-imported
13848         volatile objects.
13849         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
13850         form with a string literal argument
13851
13852 2005-11-14  Javier Miranda  <miranda@adacore.com>
13853
13854         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
13855         anonymous access.
13856         (Write): Addition of "not null" to the anonymous access.
13857         (Read): Addition of "not null" to the anonymous access.
13858         (Write): Addition of "not null" to the anonymous access.
13859
13860         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
13861         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
13862         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
13863         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
13864         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
13865         "not null" to the anonymous access.
13866
13867 2005-11-14  Robert Dewar  <dewar@adacore.com>
13868
13869         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
13870         offset values
13871
13872 2005-11-14  Vincent Celier  <celier@adacore.com>
13873
13874         * switch.adb (Bad_Switch): New procedure
13875         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
13876         message when in error.
13877
13878         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
13879         Too_Many_Output_Files): Remove declarations, no longer used.
13880         (Scan_Nat): New parameter Switch
13881         (Scan_Pos): Ditto
13882         (Bad_Switch): New procedure
13883
13884         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
13885         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
13886         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
13887         to Osint.Fail. Do not handle any exception.
13888
13889 2005-11-14  Vincent Celier  <celier@adacore.com>
13890
13891         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
13892         designates a non existent directory.
13893
13894 2005-11-14  Robert Dewar  <dewar@adacore.com>
13895
13896         * xgnatugn.adb: Replace invalid membership test by 'Valid
13897
13898 2005-11-14  Vincent Celier  <celier@adacore.com>
13899
13900         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
13901         there is no object directory.
13902
13903 2005-11-14  Robert Dewar  <dewar@adacore.com>
13904
13905         * usage.adb: Minor adjustment to output format, use nn instead of nnn
13906         (so that -gnateInnn does not run into next column)
13907
13908 2005-11-14  Ed Falis  <falis@adacore.com>
13909
13910         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
13911         "constrained"
13912
13913 2005-11-14  Cyrille Comar  <comar@adacore.com>
13914
13915         * s-chepoo.ads: Add comments on Dereference.
13916         Remove unnecessary inherited abstract primitives.
13917         Cosmetic cleanup.
13918
13919 2005-11-14  Robert Dewar  <dewar@adacore.com>
13920
13921         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
13922         node parameter, not needed, since it is available as Declaration_Node.
13923
13924 2005-11-14  Geert Bosch  <bosch@adacore.com>
13925
13926         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
13927         grammatically correct.
13928
13929 2005-11-14  Vincent Celier  <celier@adacore.com>
13930
13931         * s-fileio.ads: Correct spelling error in comment
13932
13933 2005-11-14  Cyrille Comar  <comar@adacore.com>
13934             Robert Dewar  <dewar@adacore.com>
13935             Vincent Celier  <celier@adacore.com>
13936             Ben Brosgol  <brosgol@adacore.com>
13937             Jose Ruiz  <ruiz@adacore.com>
13938             Pascal Obry  <obry@adacore.com>
13939
13940         * gnat_ugn.texi: 
13941         Document that -fstack-check is needed for strict compliance with the
13942         Ada 95 Reference Manual.
13943         Correct reference to VAX systems to meet HP guidelines
13944         Add documentation for new gnatmake switches -vl, -vm and -vh
13945         Replace DEC Ada by HP Ada
13946         Replace DIGITAL by HP
13947         Remove empty section on tools in compatibility section
13948         Clarify the Windows convention semantics.
13949         Document the Win32 calling convention.
13950         The Stdcall, Win32 and DLL convention are synonyms.
13951         Add a note in -gnatR description about zero size record components
13952         Note on new >= and <= warnings for -gnatwc
13953         Document that equal sign after -gnatm is optional.
13954         Note that strip is working fine on DLL built with a Library
13955         Project. The restriction apply only to DLL built with gnatdll.
13956         Update section about the way to debug a DLL.
13957         Update information about the DLL convention.
13958         Document -C switch for gnatprep
13959         Document new attribute Library_ALI_Dir
13960         Update elaboration doc to include implicit Elaborate pragmas now
13961         generated for subprogram instantiations.
13962         Document limitation on executable names that include spaces for --GCC,
13963         --GNATBIND, and --GNATLINK switches.
13964         Document that -w causes -gnatws to be added at start of gcc switches
13965
13966         * gnat_rm.texi: Document that -mieee is needed for generating infinite
13967         and NaN values in case of overflow on machines that are not fully
13968         compliant with the IEEE floating-point standard.
13969         Create a section describing the set of compiler options needed for
13970         strict compliance with the Ada 95 Reference Manual.
13971         Add documentation for pragma Obsolescent applied to a package
13972         Clarify potential issues of mixed language programs related to the
13973         I/O buffering enabling in the elaboration of the GNAT runtime.
13974         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
13975         This documentation only patch adds extra documentsion for pragma
13976         Restrictions (No_Elaboration_Code), explaining why it is not possible
13977         to document this restriction in terms of allowed source constructs.
13978         Document string literal form of pragma Warnings
13979         Document new attribute Library_ALI_Dir
13980         Add documentation on stable attributes in project files that was missing
13981
13982         * gnat-style.texi: Indicate that paragraphs within a single comment
13983         should be separated by empty comment lines
13984
13985         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
13986         /05 respectively)
13987
13988         * bindusg.adb: Minor cleanup, put -m before -M for consistency
13989
13990 2005-11-14  Robert Dewar  <dewar@adacore.com>
13991
13992         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
13993         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
13994         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
13995         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
13996         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
13997         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
13998         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
13999         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
14000         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
14001         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
14002         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
14003         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
14004         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
14005         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
14006         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
14007         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
14008         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
14009         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
14010         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
14011         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
14012         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
14013         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
14014         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
14015         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
14016         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
14017         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
14018         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
14019         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
14020         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
14021         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
14022         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
14023         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
14024         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
14025         system-interix.ads, system-solaris-sparc.ads,
14026         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
14027         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
14028         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
14029         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
14030         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
14031         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
14032         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
14033         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
14034         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
14035         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
14036         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
14037         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
14038         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
14039         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
14040         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
14041         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
14042         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
14043         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
14044         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
14045         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
14046         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
14047         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
14048         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
14049         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
14050         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
14051         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
14052         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
14053         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
14054         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
14055         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
14056         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
14057         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
14058         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
14059         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
14060         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
14061         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
14062         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
14063         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
14064         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
14065         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
14066         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
14067         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
14068         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
14069         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
14070         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
14071         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
14072         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
14073         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
14074         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
14075         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
14076         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
14077         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
14078         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
14079         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
14080         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
14081         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
14082         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
14083         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
14084         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
14085         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
14086         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
14087         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
14088         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
14089         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
14090         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
14091         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
14092         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
14093         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
14094         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
14095         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
14096         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
14097         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
14098         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
14099         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
14100         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
14101         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
14102         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
14103         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
14104         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
14105         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
14106         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
14107         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
14108         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
14109         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
14110         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
14111         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
14112         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
14113         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
14114         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
14115         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
14116         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
14117         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
14118         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
14119         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
14120         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
14121         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
14122         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
14123         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
14124         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
14125         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
14126         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
14127         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
14128         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
14129         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
14130         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
14131         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
14132         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
14133         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
14134         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
14135         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
14136         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
14137         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
14138         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
14139         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
14140         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
14141         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
14142         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
14143         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
14144         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
14145         a-numaux-darwin.ads, a-numaux-darwin.adb,
14146         a-swuwha.ads, a-stunha.ads: Minor reformatting
14147
14148 2005-11-14  Robert Dewar  <dewar@adacore.com>
14149
14150         PR ada/18434
14151         * osint-m.adb: Add pragma Elaborate_All for Osint
14152
14153 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
14154
14155         PR ada/23995
14156         * trans.c (call_to_gnu): Restore statement lost in translation.
14157
14158 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
14159
14160         * init.c: Use the Linux-specific section for the IA-64/Linux target.
14161         (__gnat_adjust_context_for_raise): Add conditional code so that the
14162         IA-64 is also supported.
14163
14164 2005-11-03  James E Wilson  <wilson@specifix.com>
14165
14166         PR ada/23427
14167         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
14168         TREE_OVERFLOW check.
14169
14170 2005-09-21  Olivier Hainque  <hainque@adacore.com>
14171
14172         PR ada/22418
14173         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
14174         as we create them to store a size in bits.
14175
14176 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
14177
14178         PR ada/21937
14179         PR ada/22328
14180         PR ada/22381
14181         PR ada/22383
14182         PR ada/22419
14183         PR ada/22420
14184         * utils2.c (build_return_expr): New helper function.
14185         * gigi.h (build_return_expr): Declare it.
14186         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
14187         of manually building the RETURN_EXPR tree.
14188         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
14189         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
14190         build_binary_op for the "target pointer" case.  Use build_return_expr
14191         instead of manually building the RETURN_EXPR tree.
14192
14193 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
14194
14195         PR ada/23788
14196         * s-tpinop.ads: Make this unit Preelaborate.
14197
14198 2005-09-16  Andreas Jaeger  <aj@suse.de>
14199
14200         * socket.c: Add string.h for memcpy.
14201
14202 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
14203
14204         * dec-io.ads, dec-io.adb: Removed, no longer used.
14205
14206 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14207
14208         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
14209
14210         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
14211         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
14212         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
14213         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
14214         dependent units are Preelaborate.
14215         (Initialize): Call Interrupt_Managemeent.Initialize and
14216         OS_Primitives.Initialize to ensure proper initialization of this unit.
14217         Remove use of System.Soft_Links
14218         Make this unit Preelaborate.
14219
14220         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
14221         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
14222         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
14223         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
14224         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
14225         s-tratas.ads, s-tasinf.ads: Minor reformatting.
14226         Add pragma Preelaborate, since these packages are suitable for this
14227         categorization.
14228         Update comments.
14229
14230         * s-traent-vms.ads, s-intman-dummy.adb,
14231         s-taprop-dummy.adb: Make this unit Preelaborate.
14232
14233         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
14234         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
14235         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
14236         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
14237         s-intman-solaris.adb, s-intman-irix-athread.adb,
14238         s-intman-irix.adb: Mark this unit Preelaborate.
14239         (Initialize): New procedure.
14240         Update comments.
14241
14242         * s-taspri-linux.ads: Removed.
14243
14244         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
14245         as done by other implementations (e.g. posix).
14246
14247         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
14248         responsible for deferring abort.
14249         Mark this unit Preelaborate.
14250
14251         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
14252         proper initialization of the tasking run-time.
14253
14254         * s-tasdeb.ads: Mark this unit Preelaborate.
14255         (Known_Tasks): Add explicit default value to avoid elaboration code.
14256
14257         * s-inmaop-vms.adb (Elaboration code): Add call to
14258         Interrupt_Management.Initialize since the elaboration code depends on
14259         proper initialization of this package.
14260
14261         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
14262         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
14263         s-osprim-posix.adb: Make this unit Preelaborate.
14264
14265         * a-calend.adb: Add call to OS_Primitives.Initialize
14266
14267         * a-elchha.adb: Update use of Except.Id.Full_Name.
14268         Minor reformatting.
14269         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
14270
14271         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
14272         Move with clauses outside Warnings Off now that dependent units are
14273         Preelaborate.
14274         Use raise xxx with "..."; Ada 2005 form.
14275
14276         * a-taside.ads, a-taside.adb:
14277         Remove some dependencies, to make it easier to make this unit truly
14278         Preelaborate.
14279         Rewrite some code to be conformant with Preelaborate rules.
14280
14281         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
14282         marked Preelaborate in the future.
14283
14284         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
14285         these units Preelaborate.
14286
14287         * s-exctab.adb: Update use of Except.Id.Full_Name.
14288
14289         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
14290         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
14291         Set_Exc_Stack_Addr): Removed, no longer used.
14292         Remove reference to *Machine_State_Addr*, no longer needed.
14293
14294         * s-stalib.ads: Mark this unit as Preelaborate[_05].
14295         (Exception_Data): Full_Name is now a System.Address so that this unit
14296         can be made Preelaborate.
14297         Clean up/simplify code thanks to Full_Name being a System.Address.
14298         Remove obsolete pragma Suppress (All_Checks), no longer needed.
14299
14300         * s-taskin.ads, s-taskin.adb:
14301         Move with clauses outside Warnings Off now that dependent units are
14302         Preelaborate.
14303         Make this unit Preelaborate.
14304         (Initialize): New proceduure, replace elaboration code and makes the
14305         set up of the tasking run-time cleaner.
14306         (Detect_Blocking): Now a function instead of a deferred boolean, to
14307         obey Preelaborate rules.
14308
14309         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
14310         soft links, no longer used.
14311
14312         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
14313         packages are suitable for this categorization.
14314
14315         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
14316         since we compile run-time sources in Ada 2005 mode.
14317         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
14318         avoid having s-taprop*.adb depend on s-soflin and to avoid code
14319         duplication.
14320         Remove reference to *Machine_State_Addr*, no longer needed.
14321
14322 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14323
14324         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
14325         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
14326         Remove reference to System.Exceptions.
14327
14328         * s-mastop-x86.adb: Removed, no longer used.
14329
14330         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
14331
14332         * a-excach.adb: Minor reformatting.
14333
14334         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
14335         instead fix new warnings that were hidden by this change.
14336         (AAA, ZZZ): Removed, replaced by...
14337         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
14338         are used instead of constants, to help make Ada.Exception truly
14339         preelaborate.
14340         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
14341         Raise_Storage_Error): File is now a System.Address, to simplify code.
14342         (Elab code): Removed, no longer used.
14343         (Null_Occurrence): Remove Warnings Off and make this construct
14344         preelaborate.
14345         Remove code related to front-end zero cost exception handling, since
14346         it is no longer used.
14347         Remove -gnatL/-gnatZ switches.
14348
14349         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
14350         Update use of Except.Msg.
14351
14352         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
14353         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
14354         to front-end zero cost exception handling, since it is no longer used.
14355         Remove -gnatL/-gnatZ switches.
14356
14357         * lib-writ.ads: Minor reformatting
14358         Remove doc of UX
14359
14360         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
14361
14362         * Make-lang.in: Remove references to s-except.ads
14363
14364         * s-except.ads: Removed, no longer used.
14365
14366         * s-mastop.ads, s-mastop.adb:
14367         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
14368         Remove reference to System.Exceptions.
14369
14370         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
14371         switch-b.adb: Remove code related to front-end zero cost exception
14372         handling, since it is no longer used.
14373         Remove -gnatL/-gnatZ switches.
14374
14375 2005-09-01  Robert Dewar  <dewar@adacore.com>
14376             Gary Dismukes  <dismukes@adacore.com>
14377             Javier Miranda  <miranda@adacore.com>
14378
14379         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
14380         type by valid test and generate warning.
14381         (Tagged_Membership): Generate call to the run-time
14382         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
14383         Change formal name Subtype_Mark to Result_Definition in several calls to
14384         Make_Function_Specification.
14385         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
14386         check for proper accessibility of the operand of a class-wide allocator.
14387         The check can be left out if checks are suppressed or if the expression
14388         has a specific tagged type whose level is known to be safe.
14389
14390         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
14391         generates the run-time check associated with null-excluding entities.
14392         (Expand_N_Return_Statement): Add tests to determine if the accessibility
14393         check on the level of the return expression of a class-wide function
14394         can be elided. The check usually isn't needed if the expression has a
14395         specific type (unless it's a conversion or a formal parameter). Also
14396         add a test for whether accessibility checks are suppressed. Augment
14397         the comments to describe the conditions for performing the check.
14398
14399 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
14400             Javier Miranda  <miranda@adacore.com>
14401             Gary Dismukes  <dismukes@adacore.com>
14402             Ed Schonberg  <schonberg@adacore.com>
14403
14404         * a-tags.adb (IW_Membership): Give support to
14405         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
14406         subprogram has been extended to look for the tag in the ancestors tag
14407         table.
14408         Update the structure of the GNAT Dispatch Table to reflect the
14409         additional two tables used in dispatching selects.
14410         Introduce appropriate array types and record components in
14411         Type_Specific_Data to reflect the two tables.
14412         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
14413         the TSD of a tag, indexed by position.
14414         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
14415         operation kind in the TSD of a tag, indexed by position.
14416
14417         * a-tags.ads: Introduce an enumeration type to capture different
14418         primitive operation kinds. Define a constant reflecting the number of
14419         predefined primitive operations.
14420         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
14421         of an entry wrapper.
14422         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
14423         callable entity of a primitive operation.
14424
14425         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
14426         primitive operations used in dispatching selects for limited
14427         interfaces, limited tagged, task and protected types what implement a
14428         limited interface.
14429         (Freeze_Type): Generate the bodies of the primitive operations used in
14430         dispatching selects for limited tagged, task and protected types that
14431         implement a limited interface. Generate statements to populate the two
14432         auxiliary tables used for dispatching in select statements.
14433         (Freeze_Record_Type): Add call to initialize the dispatch table entries
14434         associated with predefined interface primitive operations.
14435         (Build_Dcheck_Function): Change Set_Subtype_Mark to
14436         Set_Result_Definition.
14437         (Build_Variant_Record_Equality): Change Subtype_Mark to
14438         Result_Definition.
14439         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
14440         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
14441         (Build_Assignment): Simplify the code that adds the run-time-check.
14442         (Expand_N_Object_Declaration): Code cleanup.
14443
14444         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
14445         entries when there is a protected type that implements a limited
14446         interface.
14447
14448         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
14449         common routines used in expansion of dispatching selects.
14450         (Add_Private_Declarations): Select the appropriate protection type when
14451         there is a protected type that implements a limited interface.
14452         (Build_Parameter_Block): Generate a wrapped parameter block.
14453         (Build_Protected_Subprogram_Body): Select the appropriate type for
14454         locking entries when there is a protected type that implements a
14455         limited interface.
14456         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
14457         classified as entry wrappers.
14458         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
14459         asynchronous selects.
14460         (Expand_N_Conditional_Entry_Call): Add support for expansion of
14461         dispatching conditional selects.
14462         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
14463         protection when there is a protected type that implements limited
14464         interfaces.
14465         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
14466         timed selects.
14467         (Extract_Dispatching_Call): Extract the entity of the name of a
14468         dispatching call, the object parameter, actual parameters and
14469         corresponding formals.
14470         (Make_Initialize_Protection): Correct logic of protection initialization
14471         when there is a protected type that implements a limited interface.
14472         (Parameter_Block_Pack): Populate a wrapped parameter block with the
14473         values of actual parameters.
14474         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
14475         block and assign them to the original actual parameters.
14476
14477         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
14478         (Build_Protected_Sub_Specification): Change the type and name of the
14479         last formal to account for the increased variety of protection modes.
14480
14481         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
14482         entities. Used to save the value of the Is_Hidden attribute when the
14483         limited-view is installed.
14484         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
14485         the attribute of procedures classified as entry wrappers.
14486         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
14487         entity of a primitive wrapper.
14488         (Write_Entity_Flags): Output the name and value of the
14489         Is_Primitive_Wrapper attribute.
14490         (Write_Field27_Name): Output the name and entity of the field Wrapped_
14491         Entity.
14492         (Underlying_Type): If we have an incomplete entity that comes from
14493         the limited view then we return the Underlying_Type of its non-limited
14494         view if it is already available.
14495         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
14496         including operators.
14497         (Write_Field26_Name): Add entry for Overridden_Operation
14498         (Overridden_Operation): New attribute of functions and procedures.
14499
14500         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
14501         predefined position in the dispatch table for the primitive operations
14502         used in dispatching selects.
14503         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
14504         predefined primitive operations and replace it with
14505         Default_Prim_Op_Count.
14506         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
14507         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
14508         the names of the generated primitive operations used in dispatching
14509         selects.
14510         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
14511         case of abstract interface types. They will be inherit by the objects
14512         implementing the interface.
14513         (Make_DT): There is no need to inherit the dispatch table of the
14514         ancestor interface for the elaboration of abstract interface types.
14515         The dispatch table will be inherited by the object implementing the
14516         interface.
14517         (Copy_Secondary_DTs): Add documentation.
14518         (Validate_Position): Improve this static check in case of
14519         aliased subprograms because aliased subprograms must have
14520         the same position.
14521         (Init_Predefined_Interface_Primitives): New subprogram that initializes
14522         the entries associated with predefined primitives of all the secondary
14523         dispatch tables.
14524         (Build_Anonymous_Access_Type): Removed.
14525         (Expand_Interface_Actuals): With the previous cleanup there is no need
14526         to build an anonymous access type. This allows further cleanup in the
14527         code generated by the expander.
14528         (Expand_Interface_Conversion): If the actual is an access type then
14529         build an internal function to handle the displacement. If the actual
14530         is null this function returns null because no displacement is
14531         required; otherwise performs a type conversion that will be
14532         expanded in the code that returns the value of the displaced actual.
14533         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
14534         conversions that have no effect in the generated code because no
14535         displacement is required. Code cleanup; use local variables to
14536         avoid repeated calls to the subprogram directly_designated_type().
14537
14538         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
14539         Classify the primitive operations used in dispatching selects as
14540         predefined.
14541         (Implements_Limited_Interface): Determine whether some type either
14542         directly implements a limited interface or extends a type that
14543         implements a limited interface.
14544         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
14545         (Expand_Subtype_From_Expr): Do not build actual subtype if the
14546         expression is limited.
14547         (Find_Interface_Tag): Add code to handle class-wide types and
14548         entities from the limited-view.
14549
14550         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
14551         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
14552         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
14553         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
14554         Set_Prim_Op_Kind.
14555
14556         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
14557         of procedure name or prefix that appears as a trigger in a triggering
14558         alternative.
14559
14560         * uintp.ads: Introduce constants Uint_11 and Uint_13.
14561
14562 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14563
14564         * s-tataat.adb, a-tasatt.adb:
14565         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
14566
14567         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
14568         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
14569         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
14570         longer used.
14571
14572 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14573             Jose Ruiz  <ruiz@adacore.com>
14574
14575         * s-taprop-vxworks.adb:
14576         Move with clauses outside Warnings Off now that dependent units are
14577         Preelaborate.
14578         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
14579         initialization of this unit.
14580         (Specific): Add new procedures Initialize and Delete so that this
14581         package can be used for VxWorks 5.x and 6.x
14582         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
14583         differences between VxWorks 5.x and 6.x
14584         Minor reformatting.
14585         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
14586         caller.
14587         Use only Preelaborate-compatible constructs.
14588
14589         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
14590         Primitives.Operations.
14591         (Delete, Initialize): New procedures.
14592
14593         * s-osinte-vxworks.adb: Body used to handle differences between
14594         VxWorks 5.x and 6.x
14595         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
14596
14597         * s-osinte-vxworks.ads: Minor reformatting.
14598         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
14599         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
14600         and 6.
14601         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
14602         between Vxworks 5 and 6.
14603         (taskLock, taskUnlock): Removeed, no longer used.
14604
14605         * adaint.c: The wait.h header is not located in the sys directory on
14606         VxWorks when using RTPs.
14607         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
14608         using RTPs.
14609         (__gnat_dup): dup is available on Vxworks when using RTPs.
14610         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
14611
14612         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
14613
14614         * expect.c: The wait.h header is not located in the sys directory on
14615         VxWorks when using RTPs.
14616
14617 2005-09-01  Thomas Quinot  <quinot@adacore.com>
14618
14619         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
14620
14621         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
14622
14623         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
14624         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
14625         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
14626         g-soccon-freebsd.ads: Add new constants:
14627          IP_MULTICAST_IF
14628          SO_RCVTIMEO/SO_SNDTIMEO
14629          IOV_MAX
14630
14631         * gen-soccon.c:
14632         Move all target-specific file inclusions and macro definitions to
14633         gsocket.h, in order to ensure that any C code in socket.c will see a
14634         set of constants that is consistent with the contents of g-soccon.ads.
14635
14636         * gsocket.h: Code imported from gen-soccon.c:
14637         Move all target-specific file inclusions and macro definitions to
14638         gsocket.h, in order to ensure that any C code in socket.c will see a set
14639         of constants that is consistent with the contents of g-soccon.ads.
14640         This change also makes gen-soccon self-contained (removing dependencies
14641         upon GCC internal headers).
14642
14643         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
14644         iovecs at a time.
14645         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
14646
14647         * socket.c: Minor reformatting.
14648
14649 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
14650             Thomas Quinot  <quinot@adacore.com>
14651
14652         * fname-sf.adb, mlib-tgt.ads,
14653         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
14654         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
14655         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
14656         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
14657         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
14658         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
14659         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
14660         makegpr.adb: Remove redundant use_clauses.
14661
14662 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14663
14664         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
14665         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
14666         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
14667         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
14668         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
14669         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
14670         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
14671         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
14672         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
14673         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
14674         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
14675         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
14676         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
14677         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
14678         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
14679         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
14680         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
14681         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
14682         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
14683         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
14684         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
14685         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
14686         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
14687         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
14688         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
14689         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
14690         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
14691         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
14692         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
14693         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
14694         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
14695         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
14696         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
14697         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
14698         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
14699         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
14700         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
14701         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
14702         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
14703         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
14704         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
14705         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
14706         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
14707         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
14708         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
14709         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
14710         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
14711         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
14712         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
14713         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
14714         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
14715         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
14716         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
14717         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
14718         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
14719         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
14720         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
14721         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
14722         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
14723         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
14724         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
14725         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
14726         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
14727         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
14728         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
14729         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
14730         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
14731         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
14732         and always use the no parameter form for consistency.
14733
14734         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
14735
14736 2005-09-01  Robert Dewar  <dewar@adacore.com>
14737
14738         * binde.adb: Minor reformatting
14739         (Find_Elab_Order): Output warning if -p used with static elab order
14740
14741 2005-09-01  Robert Dewar  <dewar@adacore.com>
14742
14743         * checks.adb (Check_Needed): New procedure, deals with removing checks
14744         based on analysis of short-circuited forms. Also generates warnings for
14745         improper use of non-short-circuited forms.
14746         Code clean ups.
14747
14748 2005-09-01  Robert Dewar  <dewar@adacore.com>
14749
14750         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
14751         with 'Valid tests.
14752
14753 2005-09-01  Robert Dewar  <dewar@adacore.com>
14754
14755         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
14756         spec.
14757         Implement new insertion char < (conditional warning)
14758         * errutil.adb, erroutc.adb: Implement new insertion char <
14759         (conditional warning).
14760         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
14761         (Error_Msg_Warn): New variable for < insertion char.
14762         * prj-nmsc.adb: Implement new errout insertion char < (conditional
14763         warning).
14764         (Check_For_Source): Change value of Source_Id only after the current
14765         source has been dealt with.
14766
14767 2005-09-01  Robert Dewar  <dewar@adacore.com>
14768             Doug Rupp  <rupp@adacore.com>
14769
14770         * exp_attr.adb: Handle vax fpt for 'Valid attribute
14771         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
14772         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
14773         (Valid_D, Valid_F, Valid_G): New functions
14774
14775 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
14776             Hristian Kirtchev  <kirtchev@adacore.com>
14777             Javier Miranda  <miranda@adacore.com>
14778
14779         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
14780         from object notation, the original node is unanalyzed and carries no
14781         semantic information, so that accessiblity checks must be performed on
14782         the type of the actual itself.
14783         (Expand_N_Subprogram_Declaration): Change last actual parameter for
14784         compatibility with Build_Protected_Sub_Specification.
14785         (Check_Overriding_Inherited_Interfaces): Add suport to handle
14786         overloaded primitives.
14787         (Register_Interface_DT_Entry): Use the new name of the formal
14788         the the calls to Expand_Interface_Thunk
14789
14790         * exp_dbug.ads: Augment comments on encoding of protected types to
14791         include the generation of dispatching subprograms when the type
14792         implements at least one interface.
14793
14794         * lib.ads: Extend information in Load_Stack to include whether a given
14795         load comes from a Limited_With_Clause.
14796
14797         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
14798         whether a potential circularity is harmless, because it includes units
14799         loaded through a limited_with clause. Extends previous treatment which
14800         did not handle properly arbitrary combinations of limited and
14801         non-limited clauses.
14802
14803 2005-09-01  Nicolas Setton  <setton@adacore.com>
14804
14805         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
14806         to be encoded as typ___XBLU_lowerbound__upperbound instead of
14807         typ___XB_lowerbound__upperbound.
14808
14809 2005-09-01  Thomas Quinot  <quinot@adacore.com>
14810
14811         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
14812         dummy access formal for RACW/RAS TypeCode TSS.
14813         (Build_TypeCode_Call): Do not generate dummy null access actual for
14814         calls to the TypeCode TSS.
14815
14816 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
14817
14818         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
14819         fully qualified name, to distinguish instances with the same local name.
14820
14821         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
14822         fully qualified.
14823
14824 2005-09-01  Robert Dewar  <dewar@adacore.com>
14825
14826         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
14827         packed arrays.
14828
14829 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
14830
14831         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
14832         (Free): New deallocation procedure for filter elements
14833         (Close): Deallocate any existing filter for the concerned connection
14834
14835 2005-09-01  Laurent Pautet  <pautet@adacore.com>
14836
14837         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
14838         position set is provided, we compute one in order to reduce the maximum
14839         length of the keys.  This computation first selects a character
14840         position between 1 and the minimum length of the keys in order to
14841         avoid reducing one of the keys to an empty string.
14842         (Initialize, Compute): When the ratio V to K is too low, the algorithm
14843         does not converge. The initialization procedure now comes with a
14844         maximum number of iterations such that when exceeded, an exception is
14845         raised in Compute. The user can initialize this ratio to another value
14846         and try again
14847         Reformating and updated headers.
14848
14849 2005-09-01  Javier Miranda  <miranda@adacore.com>
14850
14851         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
14852         that given an entity T creates and returns an Itype that duplicates the
14853         contents of T. The returned Itype has the null-exclusion
14854         attribute set to True, and its Etype attribute references T
14855         to keep the association between the two entities.
14856         Update copyright notice
14857
14858         * sem_aggr.adb (Check_Can_Never_Be_Null,
14859         Aggregate_Constraint_Checks, Resolve_Aggregate,
14860         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
14861
14862         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
14863
14864 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
14865             Robert Dewar  <dewar@adacore.com>
14866             Hristian Kirtchev  <kirtchev@adacore.com>
14867
14868         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
14869         Result_Definition.
14870
14871         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
14872         function specs.
14873         Call Set_Result_Definition instead of Set_Subtype_Mark.
14874         (P_Subprogram_Specification): Add parsing of anonymous access result
14875         plus null exclusions. Call Set_Result_Definition instead of
14876         Set_Subtype_Mark.
14877
14878         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
14879         (P_Access_Type_Definition): Add parsing for an anonymous access result
14880         subtype, plus parsing for null exclusions. Call Set_Result_Definition
14881         instead of Set_Subtype_Mark.
14882
14883         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
14884         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
14885         (Result_Definition): New function for N_Function_Specifications.
14886         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
14887         N_Function_Specification.
14888         (Set_Null_Exclusion_Present): Allow this flag for
14889         N_Function_Specification.
14890         (Set_Result_Definition): New procedure for N_Function_Specifications.
14891         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
14892         and N_Function_Specification.
14893
14894         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
14895         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
14896         Add support for LIMITED NEW for Ada 2005 AI-419
14897         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
14898         syntax for anonymous access results.
14899         Replace Subtype_Mark field by Result_Definition in
14900         N_Function_Specification and N_Access_Definition specs.
14901         Add Null_Exclusion_Present to spec of N_Function_Specification.
14902         (Result_Definition): New function for N_Function_Specification and
14903         N_Access_Function_Definition.
14904         (Set_Result_Definition): New procedure for N_Function_Specification and
14905         N_Access_Function_Definition.
14906
14907         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
14908         Result_Definition for cases of N_Access_Function_Definition and
14909         N_Function_Specification.
14910         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
14911
14912 2005-09-01  Vincent Celier  <celier@adacore.com>
14913
14914         * lib-writ.adb: Update Copyright notice
14915         (Write_With_Lines): On platforms where file names are case-insensitive,
14916         record the file names in lower case.
14917         (Write_ALI): For D lines, on platforms where file names are
14918         case-insensitive, record the file names in lower case.
14919
14920 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
14921             Emmanuel Briot  <briot@adacore.com>
14922
14923         * lib-xref.adb (Output_Overridden_Op): Display information on
14924         overridden operation.
14925
14926         * lib-xref.ads: Add documentation on overridden operations.
14927
14928         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
14929         information.
14930
14931         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
14932         overriding entity information.
14933
14934 2005-09-01  Vincent Celier  <celier@adacore.com>
14935
14936         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
14937         including those that are inherited.
14938
14939 2005-09-01  Robert Dewar  <dewar@adacore.com>
14940
14941         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
14942
14943         * par-prag.adb: Implement new pragma Debug_Policy
14944
14945         * sem_prag.adb Implement new pragma Debug_Policy
14946         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
14947         Component_Size attribute specification. Give warning for ignored pragma
14948         Pack.
14949
14950         * snames.h, snames.ads, snames.adb: Introduce entries in
14951         Preset_Names for Name_Disp_Asynchronous_Select,
14952         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
14953         Name_Disp_Timed_Select.
14954         New pragma Debug_Policy
14955
14956         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
14957         explicitly.
14958         Switch -gnata also sets Debug_Pragmas_Enabled
14959
14960         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
14961         handle an explicit -gnata when compiling predefined files.
14962
14963 2005-09-01  Vincent Celier  <celier@adacore.com>
14964
14965         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
14966         directories of projects that have no Ada sources.
14967
14968 2005-09-01  Robert Dewar  <dewar@adacore.com>
14969
14970         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
14971         (makes a difference for wide characters)
14972
14973         * widechar.adb, widechar.ads:
14974         Add Wide_Char_Byte_Count feature to count chars vs bytes
14975
14976 2005-09-01  Thomas Quinot  <quinot@adacore.com>
14977             Ed Schonberg  <schonberg@adacore.com>
14978             Robert Dewar  <dewar@adacore.com>
14979
14980         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
14981         'Address attribute reference with an overloaded prefix, use the
14982         location of the prefix (not the location of the attribute reference) as
14983         the error location.
14984         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
14985         a function renaming thereof, is a valid prefix for 'Size (where it is
14986         intepreted as a function call).
14987         (Statically_Denotes_Entity): New predicate to determine whether the
14988         prefix of an array attribute can be considered static.
14989
14990         PR ada/9087
14991         (Eval_Attr): Fix failure to evaluate Component_Size for
14992         unconstrained arrays (resulted in wrong value in packed case, since
14993         back end cannot handle this case)
14994
14995 2005-09-01  Robert Dewar  <dewar@adacore.com>
14996
14997         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
14998         error msgs for most common cases.
14999         Use new errout insertion char < (conditional warning)
15000
15001 2005-09-01  Javier Miranda  <miranda@adacore.com>
15002             Ed Schonberg  <schonberg@adacore.com>
15003
15004         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
15005         become local to the whole package.
15006         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
15007         the package was already analyzed the new algorithm "replaces" the
15008         real entities by the shadow ones. This is required to ensure that
15009         the order of these entities in the homonym chains does not change;
15010         otherwise we can have undefined references at linking time because
15011         in case of conflicts the external name of the entities will have
15012         a suffix that depends on the order of the entities in the chain.
15013         (Remove_Limited_With_Clause): Complementary code that completes the
15014         new algorithm and replaces the shadow entities by the real ones.
15015         (Install_Limited_Withed_Unit): When unchaining entities before the
15016         installation of the shadow entities, only regular entities of the
15017         public part must be taken into account. This is required to
15018         keep this routine in synch with the work done by Remove_Limited_
15019         With_Clause
15020         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
15021         even if unit is analyzed, because the analysis of the unit is
15022         idempotent in any case, and the limited view of the unit may have to
15023         be installed for proper visibility.
15024         (Expand_Limited_With_Clause): Even if the unit in the implicit
15025         with_clause has been analyzed already, a limited view of the package
15026         must be built for the current context, if it does not exist yet.
15027
15028 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15029             Javier Miranda  <miranda@adacore.com>
15030             Gary Dismukes  <dismukes@adacore.com>
15031
15032         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
15033         defining entity for the instance body, make a new defining identifier
15034         rather than copying the entity of the spec, to prevent accidental
15035         sharing of the entity list.
15036         (Check_Private_View): When exchanging views of private types, build the
15037         list of exchanged views as a stack, to ensure that on exit the exchanges
15038         are undone in the proper order.
15039         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
15040         Restore the compilation environment in case of instantiation_error.
15041         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
15042         for an anonymous access result.
15043         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
15044         (Formal_Entity): Handle properly the case of a formal package that
15045         denotes a generic package renaming.
15046
15047 2005-09-01  Thomas Quinot  <quinot@adacore.com>
15048
15049         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
15050         clause if the array aggregate is surrounded by parentheses.
15051
15052 2005-09-01  Cyrille Comar  <comar@adacore.com>
15053             Gary Dismukes  <dismukes@adacore.com>
15054             Ed Schonberg  <schonberg@adacore.com>
15055             Javier Miranda  <miranda@adacore.com>
15056
15057         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
15058         underlying type
15059         to check if a type is Constrained in cases related to code generation
15060         (rather than semantic checking) since otherwise we do not generate
15061         similar code for mutable private types depending if their
15062         discriminants are visible or not.
15063         (Check_Abstract_Overriding): Do not complain about failure to override
15064         the primitive operations used in dispatching selects since they will
15065         always be overriden at the freeze point of the type.
15066         (Access_Definition): Separate out handling for resetting the scope
15067         of an anonymous access function result type. Retrieve the scope
15068         of the associated function rather than using Current_Scope, which
15069         does not have a consistent value (depends on whether we're in the
15070         middle of analyzing formal parameters). Add ??? comment about
15071         finding a cleaner way to handle the special cases of scope setting.
15072         (Process_Incomplete_Dependents): A protected operation is never a
15073         dispatching operation (only its wrapper may be).
15074         (Build_Derived_Record_Type): In case of tagged private types that
15075         implement interfaces add derivation of predefined primitive
15076         operations.
15077         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
15078         by two parameters that are used in case of derivation from abstract
15079         interface types: No_Predefined_Prims is used to avoid the derivation
15080         of predefined primitives from the interface, and Predefined
15081         Prims_Only is used to complete the derivation predefined primitives
15082         in case of private tagged types implementing interfaces.
15083         Fix typo in comments
15084         (Find_Interface_In_Descendant): Protect the frontend against
15085         wrong code with large circularity chains.
15086         (Is_Private_Overriding): Add support for entities overriding interface
15087         subprograms. The test failed because Entities associated with overriden
15088         interface subprograms are always marked as hidden (and used to build
15089         the secondary dispatch table); in this case the overriden entity is
15090         available through the field abstract_interface_alias (cf. override_
15091         dispatching_operation)
15092         (Access_Definition): Set the scope of the type to Current_Scope for the
15093         case of a function with an anonymous access result type.
15094         (Access_Subprogram_Declaration): Handle creation of the type entity for
15095         an access-to-function type with an anonymous access result.
15096         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
15097         in handling for N_Access_Function_Definition.
15098         (Analyze_Subtype_Declaration): Modify the text of error message.
15099         (Derived_Type_Declaration): Modify the text of error message.
15100         (Process_Subtype): Modify the text of error message plus cleanup
15101         of one redundant error message.
15102         (Analyze_Component_Declaration): Code cleanup.
15103         (Analyze_Object_Declaration): Code cleanup.
15104         (Analyze_Subtype_Declaration): Propagate the null-exclusion
15105         attribute in case of access types. Code cleanup.
15106         (Array_Type_Declaration): Code cleanup.
15107         (Process_Discriminants): Create the new null-excluding itype
15108         if required. Code cleanup.
15109         (Process_Subtype): Create the new null-excluding itype if
15110         required. Code cleanup.
15111         (Build_Derived_Record_Type): Code cleanup to avoid calling
15112         twice the subprogram derive_subprograms in case of private
15113         types that implement interfaces. In this particular case the
15114         subprogram Complete_Subprograms_Derivation already does the
15115         job associated with the second call.
15116
15117         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
15118         conversion to the full view when generating an operation for a
15119         discriminant whose type may currently be private.
15120
15121 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15122             Javier Miranda  <miranda@adacore.com>
15123
15124         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
15125         V (Obj.F), the rewriting does not involve the indexed component, but
15126         only the selected component itself.
15127         Do not apply the transformation if the analyzed node is an actual of a
15128         call to another subprogram.
15129         (Complete_Object_Operation): Retain the entity of the
15130         dispatching operation in the selector of the rewritten node. The
15131         entity will be used in the expansion of dispatching selects.
15132         (Analyze_One_Call): Improve location of the error message associated
15133         with interface.
15134         (Analyze_Selected_Component): No need to resolve prefix when it is a
15135         function call, resolution is done when parent node is resolved, as
15136         usual.
15137         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
15138         when attempting to resolve a call transformed from its object notation.
15139         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
15140         of the argument list for each interpretation of the operation.
15141         (Try_Object_Operation): The designated type of an access parameter may
15142         be an incomplete type obtained through a limited_with clause, in which
15143         case the primitive operations of the type are retrieved from its full
15144         view.
15145         (Analyze_Call): If this is an indirect call, and the return type of the
15146         access_to_subprogram is incomplete, use its full view if available.
15147
15148 2005-09-01  Javier Miranda  <miranda@adacore.com>
15149             Gary Dismukes  <dismukes@adacore.com>
15150
15151         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
15152         access types the null-exclusion and access-to-constant attributes must
15153         also match.
15154         (Analyze_Return_Statement): When the result type is an anonymous access
15155         type, apply a conversion of the return expression to the access type
15156         to ensure that appropriate accessibility checks are performed.
15157         (Analyze_Return_Type): For the case of an anonymous access result type,
15158         generate the Itype and set Is_Local_Anonymous_Access on the type.
15159         Add ??? placeholder for check to disallow returning a limited object
15160         in Ada 2005 unless it's an aggregate or a result of a function call.
15161         Change calls from Subtype_Mark to Result_Definition.
15162         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
15163         Result_Definition in call to Make_Function_Specification.
15164         (Build_Body_To_Inline): Change Set_Subtype_Mark to
15165         Set_Result_Definition.
15166         (Make_Inequality_Operator): Change formal Subtype_Mark to
15167         Result_Definition in call to Make_Function_Specification.
15168         (Process_Formals): Create the new null-excluding itype if required.
15169         (New_Overloaded_Entity): For an entity overriding an interface primitive
15170         check if the entity also covers other abstract subprograms in the same
15171         scope. This is required to handle the general case, that is, overriding
15172         other interface primitives and overriding abstract subprograms inherited
15173         from some abstract ancestor type.
15174         (New_Overloaded_Entity): For an overriding entity that comes from
15175         source, note the operation that it overrides.
15176         (Check_Conformance, Type_Conformant): Addition of one new formal
15177         to skip controlling formals in the analysis. This is used to
15178         handle overloading of abstract interfaces.
15179         (Base_Types_Match): Add missing case for types imported from
15180         limited-with clauses
15181         (New_Overloaded_Entity): Add barrier to protect the use of
15182         the "alias" attribute.
15183
15184 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15185
15186         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
15187         verify that the procedure and the entry are mode conformant.
15188         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
15189         as a different operator, which is often a cut-and-paste error.
15190
15191 2005-09-01  Javier Miranda  <miranda@adacore.com>
15192             Ed Schonberg  <schonberg@adacore.com>
15193
15194         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
15195         used in controlling parameters exclude null because it is necessary to
15196         read the tag to dispatch, and null has no tag.
15197         (Override_Dispatching_Operation): If the previous operation is inherited
15198         from an interface, it becomes hidden  and does not participate in later
15199         name resolution.
15200
15201 2005-09-01  Javier Miranda  <miranda@adacore.com>
15202             Ed Schonberg  <schonberg@adacore.com>
15203             Gary Dismukes  <dismukes@adacore.com>
15204
15205         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
15206         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
15207         the expander will generate the corresponding run-time check to evaluate
15208         the expression.
15209         (Resolve_Call): Check for legal type of procedure name or prefix that
15210         appears as a trigger in a triggering alternative.
15211         (Valid_Conversion): If expression is ambiguous and the context involves
15212         an extension of System, remove System.Address interpretations.
15213         (Resolve_Qualified_Expression): Reject the case of a specific-type
15214         qualification applied to a class-wide argument. Enhance comment
15215         to explain checking of Original_Node.
15216         (Resolve_Type_Conversion): The location of the error message was not
15217         general enough to handle the general case and hence it has been removed.
15218         In addition, this patch improves the text of the message.
15219         (Resolve_Type_Conversion): Add missing support for access to interface
15220         types.
15221         (Resolve_Type_Conversion): If the target is a class-wide interface type,
15222         do not expand if the expression is the actual in a call, because proper
15223         expansion will take place when the call itself is expanded.
15224         (Resolve_Allocator): If the context is an unchecked conversion, the
15225         allocator inherits its storage pool, if any, from the target type of
15226         the conversion.
15227
15228 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15229             Javier Miranda  <miranda@adacore.com>
15230
15231         * sem_type.adb (Add_One_Interp): If a candidate operation is an
15232         inherited interface operation that has an implementation, use the
15233         implementation to avoid spurious ambiguities.
15234         (Interface_Present_In_Ancestor): In case of concurrent types we can't
15235         use the Corresponding_Record_Typ attribute to look for the interface
15236         because it is set by the expander (and hence it is not always
15237         available). For this reason we traverse the list of interfaces
15238         (available in the parent of the concurrent type).
15239         (Interface_Present_In_Ancestor): Handle entities from the limited view
15240
15241 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15242
15243         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
15244         from the list of required components.
15245         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
15246         primitive procedure of a limited interface with a controlling first
15247         parameter.
15248         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
15249         of an entry.
15250         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
15251         capture if it is generated in the second operand of a short-circuit
15252         operation.
15253         Do not capture values for variables with address clauses.
15254         (Is_Object_Reference): Treat a function call as an object reference only
15255         if its type is not Standard_Void_Type.
15256
15257 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15258
15259         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
15260         to a variable that is statically known to be constant.
15261
15262 2005-09-01  Geert Bosch  <bosch@adacore.com>
15263             Robert Dewar  <dewar@adacore.com>
15264
15265         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
15266         (VAXGF_Safe_First): Idem.
15267
15268 2005-09-01  Robert Dewar  <dewar@adacore.com>
15269             Arnaud Charlet  <charlet@adacore.com>
15270
15271         * g-dirope.ads: Minor reformatting
15272         Document that bounds of result of Base_Name match the input index
15273         positions.
15274         Add documentation on environment variable syntax for Expand_Path
15275
15276         * gnat_ugn.texi: Update documentation to include mention of -m switches
15277         Document new treatment of wide characters in max line length
15278         style check.
15279         Remove -gnatL/-gnatZ switches, no longer used.
15280         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
15281         of -gnata switch.
15282
15283         * gnat_rm.texi: Add doc for two argument form of pragma
15284         Float_Representation.
15285         Add documentation for pragma No_Strict_Aliasing
15286         Add note that explicit component clause overrides pragma Pack.
15287         Add documentation of pragma Debug_Policy
15288
15289 2005-09-01  Matthew Heaney  <heaney@adacore.com>
15290
15291         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
15292         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
15293         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
15294         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
15295         draft (Draft 13, August 2005) of Ada Amendment 1.
15296
15297 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
15298
15299         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
15300         Note that the platform-specific version of g-soccon.ads for VMS is now
15301         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
15302         really is a package spec).
15303         Replace s-taspri-linux.ads by s-taspri-posix.ads
15304         Remove references to s-mastop-x86.adb
15305
15306         * system-vxworks-xscale.ads: Removed, no longer used.
15307         * s-vxwork-xscale.ads: Removed, no longer used.
15308
15309 2005-09-01  Robert Dewar  <dewar@adacore.com>
15310
15311         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
15312         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
15313         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
15314         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
15315         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
15316         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
15317         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
15318         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
15319         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
15320         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
15321         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
15322         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
15323         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
15324         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
15325         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
15326         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
15327         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
15328         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
15329         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
15330         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
15331         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
15332
15333 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
15334
15335         PR ada/23187
15336         * adaint.c
15337         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
15338
15339 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
15340             Doug Rupp  <rupp@adacore.com>
15341
15342         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
15343         when needed.
15344         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
15345         this code in the GNAT run-time.
15346
15347         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
15348
15349         PR ada/21053
15350         * init.c (__gnat_error_handler [many]): Mark "msg" as const
15351         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
15352
15353         (__gnat_inside_elab_final_code): Moved here from
15354         Standard_Library and only defined for the compiler.
15355         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
15356         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
15357         using RTPs because directly vectored Interrupt routines are not
15358         supported on this configuration.
15359         (getpid): Do not redefine this function on VxWorks when using RTPs
15360         because this primitive is well supported by the RTP libraries.
15361         (copy_msg): Correct the code that checks for buffer overflow.
15362         Discovered during code reading.
15363
15364 2005-08-29  Olivier Hainque  <hainque@adacore.com>
15365
15366         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
15367         a library level mutable variable with an initializer, tell
15368         build_allocator to ignore the initializer's size. It may not be large
15369         enough for all the values that might be assigned to the variable later
15370         on.
15371
15372 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
15373             Eric Botcazou  <ebotcazou@adacore.com>
15374
15375         * trans.c: Protect < in error msg with quote
15376         Replace GCC_ZCX by Back_End_Exceptions.
15377         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
15378         has been sufficiently aligned in the record.
15379
15380 2005-08-15  James E. Wilson  <wilson@specifix.com>
15381
15382         * system-linux-alpha.ads: Change ia64 to alpha.
15383
15384 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
15385
15386         * decl.c, utils.c: Fix comment typos.
15387
15388 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
15389
15390         * decl.c, init.c, initialize.c: Fix comment typos.
15391
15392 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
15393
15394         Make CONSTRUCTOR use VEC to store initializers.
15395         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
15396         CONSTRUCTOR_ELTS.
15397         * trans.c (extract_values): Likewise.
15398         * utils.c (convert, remove_conversions): Likewise.
15399         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
15400         gnat_build_constructor): Likewise.
15401
15402 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
15403
15404         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
15405         DECL_SECTION_NAME.
15406         (compare_field_bitpos): Likewise.
15407
15408 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
15409
15410         * utils.c (create_var_decl): Only set DECL_COMMON on
15411         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
15412         VAR_OR_FUNCTION_DECL_P.
15413
15414 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
15415
15416         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
15417         removed.
15418
15419 2005-07-07  Pascal Obry  <obry@adacore.com>
15420
15421         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
15422         returned type on Windows.
15423
15424         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
15425         routine.
15426
15427         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
15428         exception in this case.
15429         Simplify the code as "Image (Image'Range)" = "Image".
15430
15431 2005-07-07  Vincent Celier  <celier@adacore.com>
15432
15433         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
15434         the destructor/constructor attributes for <lib>final/<lib>init.
15435
15436         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
15437
15438 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
15439
15440         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
15441         type if the parameter is not passed by copy but reference by default.
15442
15443 2005-07-07  Javier Miranda  <miranda@adacore.com>
15444
15445         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
15446         Reimplementation of the support for abstract interface types in order
15447         to leave the code more clear and easy to maintain.
15448
15449         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
15450         abstract interface types in order to leave the code clearer and easier
15451         to maintain.
15452
15453         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
15454         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
15455         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
15456         appropriate entry of the secondary dispatch table.
15457         (Make_DT): Add code to inherit the secondary dispatch tables of
15458         the ancestors.
15459
15460         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
15461         implementing both functionalities by means of a common routine, each
15462         routine has its own code.
15463
15464 2005-07-07  Javier Miranda  <miranda@adacore.com>
15465
15466         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
15467
15468         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
15469         types:
15470         --
15471           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
15472         --
15473
15474         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
15475         use of tag incomplete types.
15476
15477         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
15478         give support to tagged incomplete types.
15479
15480         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
15481         expression is a discriminant reference and its type is private, as can
15482         happen within a stream operation for a mutable record, use the full
15483         view of the type to resolve the case alternatives.
15484         (Analyze_Assignment): Check wrong dereference of incomplete types.
15485
15486         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
15487         types.
15488
15489         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
15490         incomplete types.
15491
15492         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
15493         N_Incomplete_Type_Declaration nodes.
15494
15495         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
15496         Tag_Present to give support to tagged incomplete types:
15497         --
15498           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
15499         --
15500
15501 2005-07-07  Olivier Hainque  <hainque@adacore.com>
15502
15503         PR ada/22301
15504         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
15505         definitions for the Unwind wrappers in the compiler case.
15506
15507 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
15508             Javier Miranda  <miranda@adacore.com>
15509
15510         * par-load.adb (Load): If a child unit is loaded through a limited_with
15511         clause, each parent must be loaded as a limited unit as well.
15512
15513         * sem_ch10.adb (Previous_Withed_Unit): Better name for
15514         Check_Withed_Unit. Return true if there is a previous with_clause for
15515         this unit, whether limited or not.
15516         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
15517         the current unit.
15518         (Is_Visible_Through_Renamings): New local subprogram of install_limited
15519         _withed_unit that checks if some package installed through normal with
15520         clauses has a renaming declaration of package whose limited-view is
15521         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
15522         of the current Draft document for Ada 2005.
15523         (Analyze_Context): Complete the list of compilation units that
15524         are allowed to contain limited-with clauses. It also contains
15525         checks that were previously done by Install_Limited_Context_Clauses.
15526         This makes the code more clear and easy to maintain.
15527         (Expand_Limited_With_Clause) It is now a local subprogram of
15528         Install_Limited_Context_Clauses, and contains the code that adds
15529         the implicit limited-with clauses for parents of child units.
15530         This functionality was prevously done by Analyze_Context.
15531
15532         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
15533         incomplete type.
15534
15535         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
15536         been erroneously named in a limited-with clause of its own context.
15537         In this case the error has been previously notified by Analyze_Context.
15538
15539 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
15540
15541         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
15542         generic package that contains local declarations with the same name.
15543         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
15544
15545 2005-07-07  Bernard Banner  <banner@adacore.com>
15546
15547         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
15548         ia64 platform only on platforms that you the GCC unwind library
15549         rather than the system unwind library.
15550
15551 2005-07-07  Thomas Quinot  <quinot@adacore.com>
15552
15553         * expect.c: Minor reformatting
15554
15555 2005-07-07  Sergey Rybin  <rybin@adacore.com>
15556
15557         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
15558         --no-separate-is
15559
15560         * gnat_ugn.texi: Add description for new gnatpp option
15561         (--no-separate-is)
15562
15563 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15564
15565         * g-expect-vms.adb, g-expect.ads, g-expect.adb
15566         (Get_Command_Output): New subprogram to launch a process and get its
15567         standard output as a string.
15568
15569 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
15570             Olivier Hainque  <hainque@adacore.com>
15571
15572         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
15573         fetch a code-range descriptor associated with the machine state. On
15574         failure set the machine state's PC to 0; on success, pass the
15575         descriptor to exc_virtual_unwind.
15576
15577         * init.c (Tru64 section): New function __gnat_set_code_loc.
15578
15579 2005-07-04  Vincent Celier  <celier@adacore.com>
15580
15581         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15582         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
15583         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
15584         Remove all auto-initialization code, as this is now done through the
15585         constructor mechanism.
15586
15587         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
15588         __gnat_sals_init_using_constructors): New functions.
15589
15590         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
15591         Linker_Constructor and Linker_Destructor when switch -a is used.
15592
15593         * bindusg.adb: Add line for new switch -a
15594
15595         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
15596         (Gnatbind): When switch -a is used, check if it is allowed
15597
15598         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
15599
15600 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
15601
15602         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
15603         This prevents us from hitting a limitation during the debug info
15604         generation when using stabs.
15605         (Prims_Ptr): Likewise.
15606
15607 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
15608             Ed Schonberg  <schonberg@adacore.com>
15609             Javier Miranda  <miranda@adacore.com>
15610
15611         * checks.adb (Null_Exclusion_Static_Checks): In the case of
15612         N_Object_Declaration, only perform the checks if the Object_Definition
15613         is not an Access_Definition.
15614
15615         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
15616         where the parent of an the access definition is an N_Object_Declaration
15617         when determining the Associated_Node_For_Itype and scope of an
15618         anonymous access-to-subprogram type.
15619
15620         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
15621         Corresponding_Spec on the body created for a null procedure. Add ???
15622         comment. Remove New_Copy_Tree call on body argument to
15623         Set_Body_To_Inline.
15624
15625         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
15626         discriminants, use the type of the actual as well, because the
15627         discriminants may be read by the called subprogram.
15628
15629         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
15630         access type we do not need to handle non-limited views.
15631         (Build_Derived_Record_Type): Additional check to check that in case of
15632         private types, interfaces are only allowed in private extensions.
15633
15634 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
15635
15636         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
15637         <Pragma_Linker_Destructor>: Likewise.
15638
15639         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
15640         Pragma_Linker_Destructor.
15641
15642         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
15643         ATTR_LINK_DESTRUCTOR.
15644         (static_ctors, static_dtors): New variables.
15645
15646         * misc.c (gnat_expand_body): Output current function as constructor
15647         and destructor if requested.
15648
15649         * par-prag.adb: Add processing for pragma Linker_Constructor and
15650         Linker_Destructor.
15651
15652         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
15653         extracted from Check_Interrupt_Or_Attach_Handler.
15654         (Check_Interrupt_Or_Attach_Handler): Invoke it.
15655         Implement pragma Linker_Constructor and Linker_Destructor with the
15656         help of Find_Unique_Parameterless_Procedure.
15657         Replace Name_Alias with Name_Target for pragma Linker_Alias.
15658
15659         * snames.h, snames.ads, snames.adb:
15660         Add Name_Linker_Constructor and Name_Linker_Destructor.
15661         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
15662         * snames.adb: Remove Name_Alias.
15663
15664         * trans.c: Include cgraph.h.
15665         (build_global_cdtor): New function.
15666         (Compilation_Unit_to_gnu): Build global constructor and destructor if
15667         needed.
15668         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
15669         of objects too.
15670         (addressable_p) <COMPONENT_REF>: Unconditionally test
15671         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
15672
15673         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
15674         variable if it is external.
15675
15676         (static_ctors, static_dtors): New global variables.
15677         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
15678         <ATTR_LINK_DESTRUCTOR>: Likewise.
15679         (end_subprog_body): Chain function as constructor and destructor
15680         if requested.
15681
15682         * exp_util.adb (Force_Evaluation): Unconditionally invoke
15683         Remove_Side_Effects with Variable_Ref set to true.
15684         (Remove_Side_Effects): Handle scalar types first. Use a renaming
15685         for non-scalar types even if Variable_Ref is true and for class-wide
15686         expressions.
15687
15688 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15689
15690         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
15691         to prevent spurious warnings.
15692
15693 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15694
15695         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
15696         Itypes. Itypes are really unexpected there.
15697         (Build_TypeCode_Function): Generalise special processing for Itypes to
15698         handle the case of numeric implicit base types as well as enumerated
15699         ones.
15700
15701 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15702
15703         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
15704         controlled, indicate the expected type of the dereference that is
15705         created for the call to Deep_Finalize, to prevent spurious errors when
15706         the designated type is private and completed with a derivation from
15707         another private type.
15708
15709 2005-07-04  Vincent Celier  <celier@adacore.com>
15710
15711         * make.adb (Change_To_Object_Directory): When unable to change the
15712         current dir to the object directory, output the full path of the
15713         directory.
15714
15715 2005-07-04  Matthew Gingell  <gingell@adacore.com>
15716
15717         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
15718
15719         * indepsw-linux.adb: Replace by...
15720
15721         * indepsw-gnu.adb: ...this new file
15722
15723 2005-07-04  Vincent Celier  <celier@adacore.com>
15724
15725         * mlib-prj.adb (Auto_Initialize): New constant String
15726         (SALs_Use_Constructors): New Boolean function
15727         (Build_Library): Call gnatbind with Auto_Initialize switch when
15728         SALs_Use_Constructors returns True.
15729
15730         * mlib-tgt.ads: Minor reformatting
15731
15732         * mlib-utl.ads: Minor reformatting
15733
15734         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
15735
15736 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15737
15738         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
15739         single protected declarations can have an interface list.
15740         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
15741         with seriously malformed entry declarations, and lead to compilation
15742         abandoned messages.
15743
15744 2005-07-04  Javier Miranda  <miranda@adacore.com>
15745
15746         * par-load.adb: Load the context items in two rounds.
15747
15748 2005-07-04  Robert Dewar  <dewar@adacore.com>
15749
15750         * scng.adb: Do not consider Mod used as an attribute to be a keyword
15751
15752 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15753             Javier Miranda  <miranda@adacore.com>
15754
15755         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
15756         type extension needs a limited view.
15757         Remove previous restriction on private types available through the
15758         limited-view (only tagged private types were previously allowed).
15759         (Install_Withed_Unit): In the code that implements the
15760         legality rule given in AI-377, exclude a child unit with the name
15761         Standard, because it is a homonym of the Standard environment package.
15762
15763 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15764
15765         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
15766         overloaded function call, carry interpretations from the original tree
15767         to the copy.
15768
15769 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15770
15771         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
15772         types check whether some designated type is a limited view, and use
15773         the non-limited view if available.
15774
15775 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
15776
15777         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
15778         constraint of full view of a private view T1 if present, when T2 is a
15779         discriminated full view.
15780
15781 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15782
15783         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
15784         actual that is a view conversion of a bit packed array reference.
15785
15786 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15787
15788         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
15789         present before checking whether an interface type covers a synchronized
15790         type.
15791
15792 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15793
15794         * sem_util.adb (Is_Object_Reference): An indexed or selected component
15795         whose prefix is an implicit dereference is an object reference. Removes
15796         spurious errors when compiling with -gnatc.
15797
15798 2005-07-04  Robert Dewar  <dewar@adacore.com>
15799
15800         PR ada/22039
15801         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
15802
15803 2005-07-04  Matthew Gingell  <gingell@adacore.com>
15804
15805         * tracebak.c: Enable tracebacks on ia64 platforms
15806
15807 2005-07-04  Vincent Celier  <celier@adacore.com>
15808
15809         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
15810         the GNAT BIND command, as gnatbind accepts multiples ALI files with
15811         the -L or -n switches.
15812
15813 2005-07-04  Vincent Celier  <celier@adacore.com>
15814
15815         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
15816         correctly computed and the main project data is not modified while
15817         doing so.
15818         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
15819         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
15820         c++linker as this does not work on some platforms.
15821
15822 2005-07-04  Matthew Heaney  <heaney@adacore.com>
15823
15824         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
15825         was changed.
15826         * a-coinve.adb: Perform constraint checks explicitly.
15827
15828 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15829             Thomas Quinot  <quinot@adacore.com>
15830
15831         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
15832         new target gen-soccon.
15833
15834 2005-07-04  Robert Dewar  <dewar@adacore.com>
15835
15836         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
15837
15838 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15839
15840         * g-socket.ads (Check_Selector): Minor rewording of comment.
15841
15842 2005-07-04  Vincent Celier  <celier@adacore.com>
15843
15844         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
15845
15846 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15847
15848         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
15849
15850 2005-07-04  Sergey Rybin  <rybin@adacore.com>
15851
15852         * gnat_ugn.texi: Add description of --eol gnatpp option
15853
15854 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
15855             Thomas Quinot  <quinot@adacore.com>
15856
15857         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
15858         if the user wants all calls of a subprogram to be flagged,
15859         independently of whether they are made from within the same unit or
15860         another unit.
15861         Mention restriction for pragma Linker_Alias on some platforms.
15862         Document pragma Linker_Constructor and Linker_Destructor.
15863         Rewrite documentation of Weak_External, Linker_Section and
15864         Linker_Alias pragmas.
15865
15866 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
15867
15868         * s-stausa.ads, s-stausa.adb: New files.
15869
15870 2005-06-30  Kelley Cook
15871
15872         * all files:  Update FSF address in copyright headers.
15873         * gen-soccon.co (main): Output new FSF address in generated files.
15874
15875 2005-06-28  Paul Brook  <paul@codesourcery.com>
15876
15877         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
15878
15879 2005-06-14  Olivier Hainque  <hainque@adacore.com>
15880             Eric Botcazou  <ebotcazou@adacore.com>
15881
15882         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
15883         exc_unwind, now that we are generating proper .debug_frame output for
15884         that target.
15885
15886         * tracebak.c: Remove the mips-irix section, as we are now using the
15887         s-mastop based unwinder again.
15888         Under SPARC/Solaris, take into account the stack bias to compute the
15889         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
15890         ABI.
15891
15892 2005-06-14  Doug Rupp  <rupp@adacore.com>
15893
15894         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
15895
15896         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
15897
15898 2005-06-14  Pascal Obry  <obry@adacore.com>
15899
15900         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
15901         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
15902         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
15903         package name).
15904
15905         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
15906         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
15907         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
15908         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
15909         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
15910         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
15911         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
15912         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
15913         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
15914         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
15915         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
15916         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
15917         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
15918         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
15919         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
15920         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
15921         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
15922         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
15923         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
15924         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
15925         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
15926         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
15927         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
15928         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
15929         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
15930         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
15931         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
15932         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
15933         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
15934         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
15935         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
15936         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
15937         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
15938         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
15939         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
15940         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
15941         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
15942         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
15943         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
15944         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
15945         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
15946         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
15947         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
15948         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
15949         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
15950         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
15951         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
15952         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
15953         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
15954         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
15955         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
15956         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
15957         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
15958         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
15959         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
15960         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
15961         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
15962         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
15963         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
15964         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
15965         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
15966         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
15967         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
15968         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
15969         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
15970         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
15971         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
15972         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
15973         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
15974         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
15975         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
15976         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
15977         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
15978         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
15979         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
15980         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
15981         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
15982         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
15983         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
15984         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
15985         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
15986         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
15987         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
15988         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
15989         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
15990         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
15991         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
15992         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
15993         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
15994         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
15995         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
15996         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
15997         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
15998         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
15999         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
16000         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
16001         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
16002         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
16003         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
16004         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
16005         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
16006         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
16007         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
16008         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
16009         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
16010         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
16011         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
16012         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
16013         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
16014         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
16015         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
16016         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
16017         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
16018         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
16019         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
16020         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
16021         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
16022         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
16023         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
16024         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
16025         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
16026         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
16027         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
16028         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
16029         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
16030         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
16031         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
16032         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
16033         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
16034         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
16035         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
16036         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
16037         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
16038
16039 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
16040             Arnaud Charlet  <charlet@adacore.com>
16041
16042         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
16043         longer protected objects. They have been replaced by lower-level
16044         suspension objects made up by a mutex and a condition variable (or
16045         their equivalent given a particular OS) plus some internal data to
16046         reflect the state of the suspension object.
16047         (Initialize, Finalize): Add this initialization procedure for
16048         Suspension_Object, which is a controlled type.
16049         (Finalize): Add the finalization procedure for Suspension_Object,
16050         which is a controlled type.
16051
16052         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
16053         Ada.Synchronous_Task_Control because there is no longer a need for a
16054         VxWorks specific version of this package. Target dependencies
16055         has been moved to System.Task_Primitives.Operations.
16056
16057         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
16058         longer needed.
16059         (InitializeCriticalSection, EnterCriticalSection,
16060         LeaveCriticalSection, DeleteCriticalSection): Replace the type
16061         pCriticalSection by an anonymous access type so that we avoid problems
16062         of accessibility to local objects.
16063
16064         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
16065         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
16066         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
16067         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
16068         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
16069         set the environment task mask here.
16070         (Current_State): Add this function that returns the state of the
16071         suspension object.
16072         (Set_False): Add this procedure that sets the state of the suspension
16073         object to False.
16074         (Set_True): Add this procedure that sets the state of the suspension
16075         object to True, releasing the task that was suspended, if any.
16076         (Suspend_Until_True): Add this procedure that blocks the calling task
16077         until the state of the object is True. Program_Error is raised if
16078         another task is already waiting on that suspension object.
16079         (Initialize): Add this procedure for initializing the suspension
16080         object. It initializes the mutex and the condition variable which are
16081         used for synchronization and queuing, and it sets the internal state
16082         to False.
16083         (Finalize): Add this procedure for finalizing the suspension object,
16084         destroying the mutex and the condition variable.
16085
16086         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
16087         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
16088         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
16089         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
16090         which provides a low-level abstraction (using operating system
16091         primitives) for Ada.Synchronous_Task_Control.
16092         This object is made up by a mutex (for ensuring mutual exclusion), a
16093         condition variable (for queuing threads until the condition is
16094         signaled), a Boolean (State) indicating whether the object is open,
16095         and a Boolean (Waiting) reflecting whether there is a task already
16096         suspended on this object.
16097
16098         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
16099         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
16100         s-intman-vms.ads, s-intman-mingw.adb,
16101         (Initialize_Interrupts): Removed, no longer used.
16102
16103         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
16104         (Setup_Interrupt_Mask): New procedure.
16105
16106         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
16107
16108         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
16109
16110         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
16111         this is no longer done in the body of s-taprop
16112         (Server_Task): Explicitely test for Pending_Action in case
16113         System.Parameters.No_Abort is True.
16114
16115         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
16116         is no longer done in the body of s-taprop
16117
16118 2005-06-14  Robert Dewar  <dewar@adacore.com>
16119
16120         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
16121         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
16122         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
16123         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
16124         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
16125         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
16126         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
16127         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
16128         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
16129         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
16130         system-linux-hppa.ads, system-vms_64.ads,
16131         system-vxworks-alpha.ads: Minor comment update for
16132         AI-362 (unit is Pure).
16133
16134         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
16135         Add pragma Pure_05 for AI-362
16136         Make remaining conversion functions obsolescent in Ada 95
16137
16138         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
16139         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
16140         Add entries for a-wichun and a-zchuni
16141         Add a-widcha a-zchara for AI-395
16142         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
16143
16144         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
16145         Add entries for a-wichun.o and a-zchuni.o
16146         Entries for a-widcha.o and a-zchara.o
16147         Add entry for a-chacon.o
16148
16149         * a-ztenau.adb: Add with of Ada.Characters.Conversions
16150
16151         * a-chacon.ads, a-chacon.adb: New files.
16152
16153         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
16154         categorization violations.
16155
16156         * a-strmap.ads: Add pragma Pure_05 for AI-362
16157         * a-strmap.ads: Add note on implicit categorization for AI-362
16158
16159         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
16160
16161         * par-prag.adb: Dummy entry for pragma Persistent_BSS
16162         Set Ada_Version_Explicit, for implementation of AI-362
16163         Add processing for pragma Pure_05 and Preelaborate_05
16164         Add entry for Assertion_Policy pragma
16165
16166         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
16167         when needed for proper processing of categorization stuff
16168
16169         * sem_cat.adb:
16170         For several cases, make errors in preealborate units warnings,
16171         instead of errors, if GNAT_Mode is set. For AI-362.
16172
16173         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
16174         preelaborate unit is now warning if in GNAT mode
16175
16176         * s-stoele.ads: Document AI-362 for pragma preelaborate
16177
16178 2005-06-14  Doug Rupp  <rupp@adacore.com>
16179
16180         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
16181         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
16182         Default_Exception_Msg_Max_Length: new parameter.
16183
16184         * a-except.ads: (Exception_Msg_Max_Length): Set to
16185         System.Parameters.Default_Exception_Msg_Max_Length
16186         Add pragma Preelaborate_05 for AI-362
16187         Add warnings off to allow categorization violations for AI-362
16188
16189 2005-06-14  Vincent Celier  <celier@adacore.com>
16190
16191         * gnatsym.adb: Adapt to modification of package Symbols: procedure
16192         Process is now in package Processing.
16193
16194         * symbols.ads, symbols.adb:
16195         (Processing): New package, containing procedure Process
16196
16197         * symbols-vms-alpha.adb:
16198         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
16199
16200         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
16201         symbols-processing-vms-ia64.adb: New files.
16202
16203 2005-06-14  Pascal Obry  <obry@adacore.com>
16204
16205         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
16206         implementation. This new version generates the proper DllMain routine
16207         to initialize the SAL. The DllMain is generated in Ada and compiled
16208         before being added as option to the library build command.
16209
16210 2005-06-14  Doug Rupp  <rupp@adacore.com>
16211             Pascal Obry  <obry@adacore.com>
16212
16213         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
16214         call to decc$translate_vms.
16215         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
16216         need to remove those quotes before catenating the filename.
16217         (__gnat_locate_exec_on_path): improvements to the Win32 section:
16218         * avoid allocating the memory twice for better efficiency;
16219         * allocate 32K buffer for environment expansion as suggested by MSDN;
16220         * prepend ".;" to the path so that current directory is searched too.
16221
16222 2005-06-14  Robert Dewar  <dewar@adacore.com>
16223
16224         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
16225         instead of raising CE (AI-241)
16226         Add warnings off to allow categorization violations for AI-362
16227
16228 2005-06-14  Robert Dewar  <dewar@adacore.com>
16229
16230         * ali-util.adb, gnatbind.adb: Remove references to
16231         Force_RM_Elaboration_Order.
16232
16233         * switch-b.adb: Remove recognition of -f switch
16234
16235 2005-06-14  Pascal Obry  <obry@adacore.com>
16236
16237         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
16238         implementation which is slightly more efficient.
16239
16240 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
16241             Javier Miranda  <miranda@adacore.com>
16242             Ed Schonberg  <schonberg@adacore.com>
16243             Hristian Kirtchev  <kirtchev@adacore.com>
16244
16245         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
16246         allocator's designated type is a class-wide type, and compiling for
16247         Ada 2005, emit a run-time check that the accessibility level of the
16248         type given in the allocator's expression is not deeper than the level
16249         of the allocator's access type.
16250
16251         (Tagged_Membership): Modified to gives support to abstract interface
16252         types.
16253
16254         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
16255         Access_Level.
16256         (Descendant_Tag): New predefined function
16257         (Is_Descendant_At_Same_Level): New predefined function
16258         (Get_Access_Level): New private function
16259         (Set_Access_Level): New private procedure
16260         (IW_Membership): New function. Given the tag of an object and the tag
16261         associated with an interface, evaluate if the object implements the
16262         interface.
16263         (Register_Interface_Tag): New procedure used to initialize the table of
16264         interfaces used by the IW_Membership function.
16265         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
16266         of the dispatch table.
16267         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
16268         table of interfaces of the parent.
16269         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
16270         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
16271         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
16272         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
16273         Ada 2005 semantics for the new predefined function.
16274
16275         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
16276         call to Descendant_Tag rather than Internal_Tag.
16277         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
16278         the accessibility level of the attribute's Item parameter is not deeper
16279         than the level of the attribute's prefix type. Tag_Error is raised if
16280         the check fails. The check is only emitted for Ada_05.
16281         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
16282         requested stream attribute, use it.
16283         (Expand_N_Attribute_Reference): If the designated type is an interface
16284         then rewrite the referenced object as a conversion to force the
16285         displacement of the pointer to the secondary dispatch table.
16286         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
16287         is a dereference of an object with a constrained partial view.
16288
16289         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
16290         type is a class-wide type, emit a run-time check that the accessibility
16291         level of the returned object is not deeper than the level of the
16292         function's master (only when compiling for Ada 2005).
16293
16294         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
16295         Action_Nb_Arg): Add entries for new Get_Access_Level and
16296         Set_Access_Level routines in these tables.
16297         (Make_DT): Generate a call to set the accessibility level of the
16298         tagged type in its TSD.
16299         (Make_DT): Code cleanup. The functionality of generating all the
16300         secondary dispatch tables has been moved to freeze_record_type.
16301         (Make_Abstract_Interface_DT): Minor code cleanup.
16302         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
16303         this subprogram implements a new algorithm that provides the
16304         same functionality and it is more clear in case of primitives
16305         associated with abstract interfaces.
16306         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
16307         clean up, the functionality of this subprogram is now provided
16308         by Set_All_DT_Position.
16309         (Write_DT): New subprogram: a debugging procedure designed to be called
16310         within gdb to display the dispatch tables associated with a tagged
16311         type.
16312         (Collect_All_Interfaces): New subprogram that collects the whole list
16313         of interfaces that are directly or indirectly implemented by a tagged
16314         type.
16315         (Default_Prim_Op_Position): New subprogram that returns the fixed
16316         position in the dispatch table of the default primitive operations.
16317         (Expand_Interface_Actuals): New subprogram to generate code that
16318         displaces all the actuals corresponding to class-wide interfaces to
16319         reference the interface tag of the actual object.
16320         (Expand_Interface_Conversion): New subprogram. Reference the base of
16321         the object to give access to the interface tag associated with the
16322         secondary dispatch table.
16323         (Expand_Interface_Thunk): New subprogram that generates the code of the
16324         thunk. This is required for compatibility with the C+ ABI.
16325         (Make_Abstract_Interface_DT): New subprogram that generate the
16326         declarations for the secondary dispatch tables associated with an
16327         abstract interface.
16328         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
16329         attribute for each primitive operation covering interface subprograms
16330         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
16331         These subprograms were upgraded to give support to abstract interfaces
16332
16333         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
16334         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
16335         RE_Set_Access_Level.
16336         (RE_Unit_Table): Add entries for new Ada.Tags operations.
16337         Add support to call the followig new run-time subprograms:
16338         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
16339
16340         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
16341         match its full declaration when both have an access definition with
16342         statically matching designated subtypes.
16343         (Analyze_Component_Declaration): Delete commented out code that was
16344         incorrectly setting the scope of an anonymous access component's type.
16345         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
16346         an access discriminant when the containing type is nonlimited.
16347         (Make_Incomplete_Type_Declaration): Create an incomplete type
16348         declaration for a record type that includes self-referential access
16349         components.
16350         (Check_Anonymous_Access_Types): Before full analysis of a record type
16351         declaration, create anonymous access types for each self-referential
16352         access component.
16353         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
16354         an access component in this context is a Local_Anonymous_Access, for
16355         proper accessibility checks.
16356         (Access_Definition): Set properly the scope of the anonymous access type
16357         created for a stand-alone access object.
16358         (Find_Type_Of_Object): An object declaration may be given with an access
16359         definition.
16360         (Complete_Subprograms_Derivation): New subprogram used to complete
16361         type derivation of private tagged types implementing interfaces.
16362         In this case some interface primitives may have been overriden
16363         with the partial-view and, instead of re-calculating them, they
16364         are included in the list of primitive operations of the full-view.
16365         (Build_Derived_Record_Type): Modified to give support to private
16366         types implemening interfaces.
16367         (Access_Definition): Reject ALL on anonymous access types.
16368         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
16369         type derivation to occur at a deeper accessibility level than the
16370         parent type.
16371         For the case of derivation within a generic body however, disallow the
16372         derivation if the derived type has an ancestor that is a formal type
16373         declared in the formal part of an enclosing generic.
16374         (Analyze_Object_Declaration): For protected objects, remove the check
16375         that they cannot contain interrupt handlers if not declared at library
16376         level.
16377         (Add_Interface_Tag_Components): New subprogram to add the tag components
16378         corresponding to all the abstract interface types implemented by a
16379         record type or a derived record type.
16380         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
16381         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
16382         Process_Full_View, Record_Type_Declaration): Modified to give
16383         support to abstract interface types
16384         (Collect_Interfaces): New subprogram that collects the list of
16385         interfaces that are not already implemented by the ancestors
16386         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
16387         when partial view has no discriminants and full view has defaults.
16388         (Constrain_Access): Reject a constraint on a general access type
16389         if the discriminants of the designated type have defaults.
16390         (Access_Subprogram_Declaration): Associate the Itype node with the inner
16391         full-type declaration or subprogram spec. This is required to handle
16392         nested anonymous declarations.
16393         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
16394         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
16395         Process_Full_View, Record_Type_Declaration): Modified to give
16396         support to abstract interface types
16397         (Derive_Subprograms): Addition of a new formal to indicate if
16398         we are in the case of an abstact-interface derivation
16399         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
16400         to the specification because it is requied to analyze all the
16401         identifiers found in a list of interfaces
16402
16403         * debug.adb: Complete documentation of flag "-gnatdZ"
16404
16405         * exp_ch3.adb: Implement config version of persistent_bss pragma
16406         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
16407         testing for TSS presence to properly enforce visibility rules.
16408         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
16409         Make_Abstract_Interfaces_DT to generate the secondary tables
16410         associated with abstract interfaces.
16411         (Build_Init_Procedure): Modified to initialize all the tags
16412         corresponding.
16413         (Component_Needs_Simple_Initialization): Similar to other tags,
16414         interface tags do not need initialization.
16415         (Freeze_Record_Type): Modified to give support to abstract interface
16416         types.
16417         (Expand_N_Object_Declaration): Do not generate an initialization for
16418         a scalar temporary marked as internal.
16419
16420         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
16421         in-out parameter that is a component in an initialization procedure,
16422         whose constraint might depend on discriminants, and that may be
16423         misaligned because of packing or representation clauses.
16424         (Is_Legal_Copy): New predicate to determine whether a possibly
16425         misaligned in-out actual can actually be passed by copy/return. This
16426         is an error in case the type is by_reference, and a warning if this is
16427         the consequence of a DEC import pragma on the subprogram.
16428         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
16429         interface types
16430         (Expand_Inlined_Call): Mark temporary generated for the return value as
16431         internal, so that no useless scalar normalization is generated for it.
16432         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
16433         null procedure can always be inlined.
16434         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
16435         procedure, generate an explicit empty body for it.
16436
16437         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
16438         Given a type implementing an interface, returns the corresponding
16439         access_disp_table value.
16440         (Find_Interface_Tag): New subprogram. Given a type implementing an
16441         interface, returns the record component containing the tag of the
16442         interface.
16443         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
16444         previous ones that return the corresponding tag and access_disp_table
16445         entities.
16446         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
16447         is a predefined primitive operation.
16448         (Expand_Subtype_From_Expr): If the expression is a selected component
16449         within an initialization procedure, compute its actual subtype, because
16450         the component may depend on the discriminants of the enclosing record.
16451
16452         * i-cpp.ads, i-cpp.adb:
16453         This package has been left available for compatibility with previous
16454         versions of the frontend. As part of the new layout this is now a
16455         dummy package that uses declarations available at a-tags.ads
16456
16457         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
16458         "constant access" and "aliased [constant] access" when not compiling
16459         with -gnat05.
16460         Suppress Ada 2005 keyword warning if -gnatwY used
16461         (P_Identifier_Declarations): Add support for object declarations with
16462         access definitions.
16463         (Private_Extension_Declaration): Complete the documentation
16464         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
16465         attribute in case of private extension declaration
16466         (P_Type_Declaration): Mark as "abstract" the type declarations
16467         corresponding with protected, synchronized and task interfaces
16468         (P_Declarative_Items): "not" and "overriding" are overriding indicators
16469         for a subprogram or instance declaration.
16470
16471         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
16472         instantiation that is a dispatching operation has controlling access
16473         parameters that are null excluding.
16474         Save and restore Ada_Version_Explicit, for implementation of AI-362
16475         (Validate_Derived_Type_Instance): Add check for abstract interface
16476         types.
16477         (Analyze_Formal_Package): Establish Instantiation source for the copy of
16478         the generic that is created to represent the formal package.
16479         (Analyze_Package_Instantiation): Instantiate body immediately if the
16480         package is a predefined unit that contains inlined subprograms, and
16481         we are compiling for a Configurable_Run_Time.
16482         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
16483         If the program has a null default, generate an empty body for it.
16484
16485         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
16486         error message condition, null procedures are correctly detected now.
16487         (New_Overloaded_Entity): Bypass trivial overriding indicator check
16488         for subprograms in the context of protected types. Instead, the
16489         indicator is examined in Sem_Ch9 while analysing the subprogram
16490         declaration.
16491         (Check_Overriding_Indicator): Check consistency of overriding indicator
16492         on subprogram stubs as well.
16493         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
16494         the library level.
16495         (Analize_Subprogram_Specification): When analyzing a subprogram in which
16496         the type of the first formal is a concurrent type, replace this type
16497         by the corresponding record type.
16498         (Analyze_Subprogram_Body): Undo the previous work.
16499         (Analyze_Procedure_Call): If the call has the form Object.Op, the
16500         analysis of the prefix ends up analyzing the call itself, after which
16501         we are done.
16502         (Has_Interface_Formals): New subprogram subsidiary to analyze
16503         subprogram_specification that returns true if some non
16504         class-wide interface subprogram is found
16505         (New_Overloaded_Entity): Modified to give support to abstract
16506         interface types
16507         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
16508         access to subprograms must be recursive.
16509         (Is_Unchecked_Conversion): Improve the test that recognizes
16510         instantiations of Unchecked_Conversion, and allows them in bodies that
16511         are to be inlined by the front-end. When the body comes from an
16512         instantiation, a reference to Unchecked_Conversion will be an
16513         Expanded_Name, even though the body has not been analyzed yet.
16514         Replace Is_Overriding and Not_Overriding in subprogram_indication with
16515         Must_Override and Must_Not_Override, to better express intent of AI.
16516         (Analyze_Subprogram_Body): If an overriding indicator is given, check
16517         that it is consistent with the overrinding status of the subprogram
16518         at this point.
16519         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
16520         always inlined.
16521         If the subprogram is a null procedure, indicate that it does not need
16522         a completion.
16523
16524         * sem_disp.adb (Check_Controlling_Type): Give support to entities
16525         available through limited-with clauses.
16526         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
16527         allowed as the last primitive of a tagged type if it has no previous
16528         spec.
16529         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
16530         to give support to abstract interface types
16531
16532         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
16533         in the case where the target type is an anonymous access type of an
16534         object or component (that is, when Is_Local_Anonymous_Access is true).
16535         Prevent the special checks for conversions of access discriminants in
16536         the case where the discriminant belongs to a nonlimited type, since
16537         such discriminants have their accessibility level defined in the same
16538         way as a normal component of an anonymous access type.
16539         (Resolve_Allocator): When an allocator's designated type is a class-wide
16540         type, check that the accessibility level of type given in the
16541         allocator's expression or subtype indication is not statically deeper
16542         than the level of the allocator's access type.
16543         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
16544         name in a discriminant constraint of a record component.
16545         (Resolve_Explicit_Dereference): Do not check whether the type is
16546         incomplete when the dereference is a use of an access discriminant in
16547         an initialization procedure.
16548         (Resolve_Type_Conversion): Handle conversions to abstract interface
16549         types.
16550         (Valid_Tagged_Conversion): The conversion of a tagged type to an
16551         abstract interface type is always valid.
16552         (Valid_Conversion): Modified to give support to abstract interface types
16553         (Resolve_Actuals): Enable full error reporting on view conversions
16554         between unrelated by_reference array types.
16555         The rule for view conversions of arrays with aliased components is
16556         weakened in Ada 2005.
16557         Call to obsolescent subprogram is now considered to be a violation of
16558         pragma Restrictions (No_Obsolescent_Features).
16559         (Check_Direct_Boolean_Operator): If the boolean operation has been
16560         constant-folded, there is nothing to check.
16561         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
16562         check on possible violation of restriction No_Direct_Boolean_Operators
16563         until after expansion of operands, to prevent spurious errors when
16564         operation is constant-folded.
16565
16566         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
16567         Has_Compatible_Type): Modified to give support to abstract interface
16568         types.
16569         (Interface_Present_In_Ancestor): New function to theck if some ancestor
16570         of a given type implements a given interface
16571
16572         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
16573         prefix is a parameterless function that returns an access_to_procedure.
16574         (Transform_Object_Operation): Handle properly function calls of the
16575         form Obj.Op (X), which prior to analysis appear as indexed components.
16576         (Analyze_One_Call): Complete the error notification to help new Ada
16577         2005 users.
16578         (Analyze_Allocator): For an allocator without an initial value, where
16579         the designated type has a constrained partial view, a discriminant
16580         constraint is illegal.
16581
16582 2005-06-14  Robert Dewar  <dewar@adacore.com>
16583
16584         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
16585         do with treatment of Set_Col when positioned at end of line character.
16586
16587 2005-06-14  Robert Dewar  <dewar@adacore.com>
16588
16589         * atree.adb: (Elist*): Protect against uninitialized field
16590
16591 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16592
16593         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
16594         for an attribute reference that returns an access type.
16595         (Apply_Discriminant_Check): No need for check if (designated) type has
16596         constrained partial view.
16597
16598         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
16599         both bound checks, rather than a conjunction.
16600         (Insert_Valid_Check): If the expression is an actual that is an indexed
16601         component of a bit-packed array, force expansion of the packed element
16602         reference, because it is specifically inhibited elsewhere.
16603
16604 2005-06-14  Vincent Celier  <celier@adacore.com>
16605
16606         * clean.adb (Clean_Project): Correctly delete executable specified as
16607         absolute path names.
16608
16609         * make.adb (Gnatmake): Allow relative executable path names with
16610         directory information even when project files are used.
16611         (Change_To_Object_Directory): Fail gracefully when unable to change
16612         current working directory to object directory of a project.
16613         (Gnatmake): Remove exception handler that could no longer be exercized
16614         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
16615         may be deallocated by Normalize_Arguments.
16616         (Collect_Arguments): Eliminate empty arguments
16617
16618         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
16619         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
16620         (Check_Project): Return False when Project is No_Project. Return True
16621         when All_Projects is True.
16622         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
16623         All_Projects to True.
16624         Minor reformatting
16625
16626 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16627             Javier Miranda  <miranda@adacore.com>
16628             Thomas Quinot  <quinot@adacore.com>
16629             Robert Dewar  <dewar@adacore.com>
16630             Hristian Kirtchev  <kirtchev@adacore.com>
16631             Gary Dismukes  <dismukes@adacore.com>
16632
16633         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
16634         anonymous access types, to indicate that the accessibility level of
16635         the type is determined by that of the enclosing declaration.
16636         (Has_Persistent_BSS): New flag
16637         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
16638         of this attribute with functions.
16639         (Is_Primitive_Wrapper): Remove the barrier.
16640         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
16641         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
16642         New subprograms.
16643         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
16644         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
16645         New subprograms.
16646         (Is_Pure_Unit_Access_Type): New flag
16647         (Abstract_Interfaces): Complete the assertion to cover all usages.
16648         (Set_Is_Interface): Complete the assertion to cover all usages.
16649         (Is_Primitive_Wrapper): New attribute.
16650         (Is_Obsolescent): Now applies to all entities (though it is only set
16651         for subprograms currently)
16652         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
16653         which solves various problems concerning access subtypes.
16654         (Has_Persistent_BSS): New flag
16655         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
16656         Remove these subprograms because this attribute is currently
16657         not used.
16658         New entity flags:
16659         Has_Specified_Stream_Input (Flag190)
16660         Has_Specified_Stream_Output (Flag191)
16661         Has_Specified_Stream_Read (Flag192)
16662         Has_Specified_Stream_Write (Flag193)
16663         Present in all type and subtype entities. Set for a given view if the
16664         corresponding stream-oriented attribute has been defined by an
16665         attribute definition clause. When such a clause occurs, a TSS is set
16666         on the underlying full view; the flags are used to track visibility of
16667         the attribute definition clause for partial or incomplete views.
16668         (Is_Pure_Unit_Access_Type): New flag
16669         Clarify use of Is_Internal.
16670         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
16671         internally generated to wrap the invocation of tasks and protected
16672         types that implement interfaces.
16673         (Implementation_Base_Type): Documentation correction
16674         (Is_Obsolescent): Now applies to all entities (though it is only set
16675         for subprograms currently)
16676         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
16677         which solves various problems concerning access subtypes.
16678
16679         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
16680         for examined parameters. Identify unequal parameter list lengths as
16681         non-conformant parameters.
16682         (Overriding_Possible): Do not check for "All" qualifier in declaration
16683         of controlling access parameter, following prescription of AI-404.
16684         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
16685         that build the procedure body that wraps an entry invocation
16686         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
16687         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
16688         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
16689         give support to abstract interface types
16690
16691         * freeze.adb (Freeze_Entity): Issue error message if
16692         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
16693         type has no storage pool (Ada 2005) AI-366.
16694         Also modified to give support to abstract interface types
16695         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
16696         Inline_Always pragma.
16697
16698         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
16699         now begin an entry declaration.
16700         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
16701         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
16702         a subprogram declaration preceded by an overriding indicator.
16703         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
16704         declarations or subprogram declarations preceded by reserved words
16705         "not" or "overriding".
16706         (P_Entry_Declaration): Update comment. Parse and check overriding
16707         indicator, set semantic flags of entry declarations.
16708         (P_Task): New error message in case of private applied
16709         to a task type declaration.
16710         (P_Protected): New error message in case of private applied
16711         to a task type declaration.
16712
16713         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
16714         in which the full view of a type implementing an interface is a
16715         concurrent type.
16716         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
16717         Declare_Inherited_Private_Subprograms): If an explicit operation
16718         overrides an operation that is inherited in the private part, mark the
16719         explicit one as overriding, to enable overriding indicator checks.
16720         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
16721         full view to partial view, to simplify handling in back-end.
16722
16723         * sprint.adb: Print interface lists where needed: derived types,
16724         protected types, task types.
16725         output "is null" for null procedures. Part of implementation of
16726
16727         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
16728         relaxation of rules for access types in pure, shared passive partitions.
16729
16730         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
16731         first read discriminants into temporary objects, performing checks on
16732         the read values, then possibly performing discriminant checks on the
16733         actual (if it is constrained), and only finally reading the components
16734         into a constrained temporary object.
16735         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
16736         case of reading discriminants of a mutable record type to recognize
16737         the new form of the code generated by
16738         Build_Mutable_Record_Read_Procedure.
16739
16740         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
16741         of a simple call to Make_TSS_Name.
16742         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
16743         buffer, in order for Is_TSS to work correctly on local TSS names.
16744
16745         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
16746         Is_Local_Anonymous_Access to check legaliy of attributes in the
16747         context of  access components and stand-alone access objects.
16748         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
16749         treated as available for a limited private type if there is an
16750         attribute_definition_clause that applies to its full view, but not in
16751         other cases where the attribute is available for the full view
16752         (specifically, the sole fact that the full view is non-limited does not
16753         make the attribute available for the partial view).
16754         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
16755         non-overloaded intrinsic subprogram.
16756         (Check_Stream_Attribute): Reject an attribute reference for an
16757         unavailable stream attribute even if the prefix is not a limited type
16758         (case of a 'Input attribute reference for an abstract, non-classwide
16759         type)
16760         (Stream_Attribute_Available): New function to determine whether a stream
16761         attribute is available at a place.
16762         (Check_Attribute): Use Stream_Attribute_Available instead of just
16763         testing for TSS presence on the implementation base type.
16764         (Analyze_Attribute): Modified to give support to task interfaces.
16765         (Analyze_Access_Attribute): Add error check for use of an Access (or
16766         Unrestricted_Access) attribute with a subprogram marked as
16767         Inline_Always.
16768         (Analyze_Attribute, case Attribute_Address): Add error check for use of
16769         an Address attribute with a subprogram marked as Inline_Always.
16770         Update Eval_Attribute to handle new value of Width from AI-395
16771
16772         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
16773         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
16774         Factor common code across the stream-oriented attribute circcuits into
16775         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
16776         processing is functionally identical to the previous duplicated one,
16777         except that an expression that denotes an abstract subprogram will now
16778         be rejected, as mandated by AI-195 item 5.
16779
16780         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
16781         Is_Local_Anonymous_Access to apply accessibility checks to access
16782         components and stand-alone access objects.
16783         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
16784         elsewhere.
16785         (Is_Potentially_Persistent_Type): New function
16786         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
16787         a heap-object whose type has a constrained partial view, the object is
16788         unconstrained and the component may depend on a discriminant, making its
16789         renaming illegal.
16790
16791         * sinfo.ads, sinfo.adb
16792         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
16793         (Must_Override): Flag applicable to N_Entry_Declaration.
16794         Indicate that interface_list can appear in single task and single
16795         protected declarations.
16796         Replace Is_Overriding and Not_Overriding with Must_Override and
16797         Must_Not_Override, to better express intent of AI.
16798         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
16799         of an overriding indicator in a subprogram or instance.
16800         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
16801         Add the overriding indicator [[not] overriding] construct to the
16802         following grammar productions:
16803          ENTRY_DECLARATION
16804          GENERIC_INSTANTIATION
16805          SUBPROGRAM_SPECIFICATION
16806
16807         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
16808         can start with an overriding indicator.
16809
16810         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
16811         flags accordingly on subrogram specifications or instances.
16812
16813         * sem_ch8.adb:
16814         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
16815         overriding_indicator, if present, is consistent with status of spec.
16816         Improve error message for null-excluding checks on controlling access
16817         parameters.
16818         (Check_In_Previous_With_Clause): Protect the frontend against
16819         previously reported critical errors in the context clauses.
16820         Save and restore Ada_Version_Explicit, for implementation of AI-362
16821         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
16822         operation verify that controlling formals of the renamed entity that
16823         are access parameters are explicitly non-null.
16824         (Find_Expanded_Name): Improve error message when prefix is an illegal
16825         reference to a private child unit.
16826
16827         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
16828         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
16829         Rewrite to correspond to new wide character names in AI-395
16830
16831         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
16832         default procedures.
16833
16834 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16835             Robert Dewar  <dewar@adacore.com>
16836
16837         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
16838         code, not on the bodies of predefined operations, to cut down on
16839         spurious noise.
16840
16841 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16842
16843         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
16844         be expanded in place. The size computation does not require a
16845         subtraction, which would raise an exception on a compiler built with
16846         assertions when the upper bound is Integer'first.
16847         (Flatten): For an array of composite components, take into account the
16848         size of the components to determine whether it is safe to expand the
16849         array into a purely positional representation.
16850
16851 2005-06-14  Thomas Quinot  <quinot@adacore.com>
16852
16853         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
16854         denoting a formal parameter into account.
16855
16856 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16857
16858         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
16859         the entry_call alternative of a conditional entry call, wrap the
16860         conditional entry call itself.
16861
16862 2005-06-14  Nicolas Setton  <setton@adacore.com>
16863             Ed Schonberg  <schonberg@adacore.com>
16864
16865         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
16866         the "simple_choice" member in a variant record, in accordance with the
16867         description in the package spec: the information output for a constant
16868         should be "S number", not "SS number".
16869         (Get_Encoded_Name): Return at once if not generating code. Avoids name
16870         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
16871
16872 2005-06-14  Thomas Quinot  <quinot@adacore.com>
16873
16874         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
16875         RACW without any primitives, do not generate the if statement for
16876         dispatching by name in the PolyORB/DSA case, as it would be malformed
16877         (it would have an Elsif_Parts list that is not No_List, but with a
16878         length of 0).
16879
16880 2005-06-14  Robert Dewar  <dewar@adacore.com>
16881
16882         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
16883
16884 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
16885
16886         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
16887         can determine whether pragma Suppress_Exception_Locations is in effect.
16888
16889         * utils2.c (build_call_raise): Do not pass the file name to the
16890         exception handler if pragma Suppress_Exception_Locations is in effect.
16891         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
16892
16893 2005-06-14  Emmanuel Briot  <briot@adacore.com>
16894
16895         * g-debpoo.adb (Deallocate, Dereference): Improve output.
16896
16897 2005-06-14  Nicolas Roche  <roche@adacore.com>
16898
16899         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
16900         to ""
16901         (Next_Level): Fix minor bug in handling of ../dir case
16902         (Read): Add dir separator to Directory name so that "" is understood as
16903          "/"
16904
16905 2005-06-14  Pascal Obry  <obry@adacore.com>
16906
16907         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
16908         releasing the items.
16909
16910 2005-06-14  Vincent Celier  <celier@adacore.com>
16911             Cyrille Comar  <comar@adacore.com>
16912
16913         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
16914         with output file descriptor and with output file name.
16915         (Dup, Dup2): Now global procedures as they are used by two subprograms
16916         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
16917
16918 2005-06-14  Thomas Quinot  <quinot@adacore.com>
16919
16920         PR ada/6717
16921         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
16922         broadcast address.
16923         (Create_Selector): Bind listening socket used to create the signalling
16924         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
16925         Set listen backlog to 1 to ensure that we detect socket theft by a
16926         failure of our own connect(2) call.
16927         (Check_Selector): Improve documentation of the selector mechanism.
16928         (Broadcast_Inet_Addr): New constant.
16929
16930 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
16931
16932         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
16933         type which turns out to be an incomplete and incorrect fix.
16934         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
16935         of the type is declared in a record (for determination of insertion
16936         type).
16937         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
16938         a private type and ensure that the primary entity is used for the type
16939         of the newly created function's V formal by taking the Etype of the
16940         view.
16941
16942 2005-06-14  Javier Miranda  <miranda@adacore.com>
16943             Jose Ruiz  <ruiz@adacore.com>
16944             Robert Dewar  <dewar@adacore.com>
16945             Ed Schonberg  <schonberg@adacore.com>
16946
16947         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
16948         that indicates if we are parsing a compilation unit found in a
16949         limited-with clause.
16950         It is use to avoid the circularity check.
16951
16952         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
16953         we are parsing a compilation unit found in a limited-with clause. This
16954         is use to avoid the circularity check.
16955
16956         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
16957         unit as a consequence of parsing a limited-with clause. This is used
16958         to avoid the circularity check.
16959
16960         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
16961         (Analyze_Context): Limited-with clauses are now allowed
16962         in more compilation units.
16963         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
16964         againts previously reported critical errors in context clauses
16965         (Install_Limited_Withed_Unit): Code cleanup plus static detection
16966         of two further errors: renamed subprograms and renamed packages
16967         are not allowed in limited with clauses.
16968         (Install_Siblings): Do not install private_with_clauses on the package
16969         declaration for a non-private child unit.
16970         (Re_Install_Parents): When a parent of the subunit is reinstalled,
16971         reset visibility of child units properly.
16972         (Install_Withed_Unit): When a child unit appears in a with_clause of its
16973         parent, it is immediately visible.
16974
16975 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16976             Emmanuel Briot  <briot@adacore.com>
16977
16978         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
16979         declared within an inlined body as referenced, to prevent spurious
16980         warnings.
16981         (Output_One_Ref): If an entity renames an array component, indicate in
16982         the ALI file that this aliases (renames) the array. Capture as well
16983         function renamings that rename predefined operations.
16984         Add information about generic parent for package and subprogram
16985         instances.
16986         (Get_Type_Reference): For a subtype that is the renaming of an actual in
16987         an instantiation, use the first_subtype to ensure that we don't generate
16988         cross-reference information for internal types.
16989         For objects and parameters of a generic private type, retain the '*'
16990         indicator to distinguish such an entity from its type.
16991
16992         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
16993         to store information about instantiated entities.
16994
16995         * ali.adb (Scan_ALI): Add support for parsing the reference to the
16996         generic parent
16997
16998         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
16999         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
17000         information.
17001
17002 2005-06-10  Doug Rupp  <rupp@adacore.com>
17003             Arnaud Charlet  <charlet@adacore.com>
17004             Olivier Hainque  <hainque@adacore.com>
17005             Jose Ruiz  <ruiz@adacore.com>
17006
17007         * Make-lang.in: Add initialize.o when needed.
17008         Remove obsolete references to RT_FLAGS.
17009         Add missing dependencies for sdefault.o
17010
17011         * initialize.c: New file.
17012
17013         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
17014         [VMS] cond_signal_table: Fix problem in declaration.
17015         [VMS] __gnat_error_handler: rewrite.
17016         Move all __gnat_initialize() routines to initialize.c
17017         Specialize the former "hpux" section to "hppa hpux", as this is what the
17018         section really is here for and we now have other hpux ports that need
17019         different contents.
17020         (__gnat_adjust_context_for_raise) i386-linux: First version of this
17021         function for this target. Adjust PC by one in the machine context. This
17022         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
17023         it is more reliable to do that in the signal handler itself.
17024         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
17025         flags, so that the handler is passed the context structure to adjust
17026         prior to the raise.
17027         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
17028         SA_SIGINFO sigaction should look like. Call
17029         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
17030         Machine_State_Operations stuff.
17031         Add conditional code so that the x86_64 is also supported.
17032
17033 2005-06-14  Pascal Obry  <obry@adacore.com>
17034
17035         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
17036         the library name.
17037
17038 2005-06-14  Robert Dewar  <dewar@adacore.com>
17039
17040         * opt.ads, opt.adb: New flags for persistent_bss mode
17041         Add Ada_Version_Explicit, for implementation of AI-362
17042         Add Assertions_Enabled_Config and associated handling
17043         Needed since setting can be changed with Assertion_Policy pragma
17044         Add new flag Warn_On_Ada_2005_Compatibility
17045
17046         * switch-c.adb: Recognize -gnatwy/Y
17047         Set Ada_Version_Explicit, for implementation of AI-362
17048         The -gnatg switch now includes -gnatyu
17049
17050         * usage.adb: Add -gnatwy/Y
17051         Remove wrong asterisk on -gnatwX line
17052         Add line for -gnatyu switch
17053
17054 2005-06-14  Vincent Celier  <celier@adacore.com>
17055
17056         * osint.adb (Add_Default_Search_Dirs): Put source and object
17057         directories of project files before directories coming from
17058         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
17059
17060 2005-06-14  Robert Dewar  <dewar@adacore.com>
17061
17062         PR ada/15613
17063         * par-ch2.adb (Scan_Pragma_Argument): New procedure
17064         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
17065
17066 2005-06-14  Vincent Celier  <celier@adacore.com>
17067
17068         * prep.adb (Preprocess): Ignore error when scanning the first token of
17069         a line.
17070
17071 2005-06-14  Vincent Celier  <celier@adacore.com>
17072
17073         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
17074         (Check_Stand_Alone_Library): If the specified reference symbol file does
17075         not exist, only issue a warning when the symbol policy is not
17076         Controlled. And, when symbol policy is Compliant, set the symbol
17077         policy to Autonomous.
17078
17079 2005-06-14  Vincent Celier  <celier@adacore.com>
17080
17081         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
17082         when the project file in a with clause is not the last one, that is the
17083         project file name is followed by a comma.
17084         * prj-pp.adb: (First_With_In_List): New Boolean global variable
17085         (Print): Issue list of project files separated by commas in with clauses
17086         according to the values returned by Is_Not_Last_In_List.
17087         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
17088         (Set_Is_Not_Last_In_List): New procedure
17089
17090 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
17091
17092         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
17093
17094 2005-06-14  Robert Dewar  <dewar@adacore.com>
17095
17096         * scng.adb: Add call to new Check_EOF routine
17097         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
17098         Add some comments regarding wide character handling
17099
17100         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
17101
17102         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
17103
17104         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
17105         characters are now considered graphic characters and hence yield false
17106         in this call.
17107
17108         * nmake.adt: Modify header so that xnmake does not generate output
17109         files with multiple blank lines.
17110
17111         * treeprs.adt: Remove a blank line so that output from xtreeprs does
17112         not have an extra blank line
17113
17114 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
17115
17116         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
17117         expression when the component type is an anonymous access type to
17118         ensure that appropriate accessibility checks are done.
17119
17120         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
17121         expression of an assignment when the target object is of an anonymous
17122         access type. This ensures that required accessibility checks are done.
17123         (One_Bound): Move the check for type Universal_Integer to
17124         Process_Bounds.
17125         (Process_Bounds): Check whether the type of the preanalyzed range is
17126         Universal_Integer, and in that case set Typ to Integer_Type prior
17127         to setting the type of the original range and the calls to One_Bound.
17128
17129 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17130
17131         * sem_case.adb (Expand_Others_Choice): Improve warning.
17132
17133 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17134
17135         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
17136         constraint of full view if present, when other type is discriminated.
17137         (Eval_Relational_Op): Recognize tests of pointer values against Null,
17138         when the pointer is known to be non-null, and emit appropriate warning.
17139
17140 2005-06-14  Robert Dewar  <dewar@adacore.com>
17141             Ed Schonberg  <schonberg@adacore.com>
17142
17143         PR ada/10671
17144         * sem_prag.adb: Implement pragma Persistent_BSS
17145         Remove obsolete pragma Persistent_Data, Persistent_Object
17146         Set Ada_Version_Explicit, for implementation of AI-362
17147         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
17148         Add processing for pragma Pure_05 and Preelaborate_05
17149         Add processing for Assertion_Policy pragma
17150         Add pragma identifiers for Assert
17151         (Analyze_Pragma, case Assert): Check number of arguments
17152         (Process_Inline): Additional guard against an illegal program, where the
17153         argument of the pragma is undefined, and warnings on redundant
17154         constructs are enabled.
17155         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
17156         Ada_05 to this pragma, specifying that the pragma is only active in
17157         Ada_05 mode.
17158         (Check_Arg_Order): New procedure
17159         Add appropriate calls to this procedure throughout
17160         Also throughout, check entity name before doing any other checks
17161
17162         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
17163         Remove obsolete pragma Persistent_Data, Persistent_Object
17164         Add entries for pragma Pure_05 and Preelaborate_05
17165         Add entries for Assertion_Policy pragma and associated names
17166         Add some names for pragma argument processing
17167
17168         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
17169
17170 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17171
17172         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
17173         appears within a negation (either from source or as a rewriting of
17174         inequality) adjust text of warning accordingly.
17175
17176 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17177
17178         * s-strxdr.adb: Follow AI95-00132
17179
17180 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
17181
17182         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
17183
17184 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
17185             Jose Ruiz  <ruiz@adacore.com>
17186
17187         * s-tposen.adb, s-tpobop.adb
17188         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
17189         the exception id.
17190         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
17191         there is no violation of the Max_Entry_Queue_Length restriction (if it
17192         has been set); Program_Error is raised otherwise.
17193         (Requeue_Call): Before requeuing the task on the target entry queue we
17194         check that there is no violation of the Max_Entry_Queue_Length
17195         restriction (if it has been set); Program_Error is raised otherwise.
17196
17197 2005-06-14  Robert Dewar  <dewar@adacore.com>
17198
17199         * styleg.adb: Fix several remaining problems in -gnatyu switch
17200         Blank line count not reset at start
17201         Scanning outside source buffer in some cases
17202         Confusing message for blanks at end of file
17203         Non-empty blank lines not recognized
17204
17205         * nmake.adt: Modify header so that xnmake does not generate output
17206         files with multiple blank lines.
17207
17208         * treeprs.adt: Remove a blank line so that output from xtreeprs does
17209         not have an extra blank line
17210
17211 2005-06-14  Sergey Rybin  <rybin@adacore.com>
17212
17213         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
17214
17215 2005-06-14  Doug Rupp  <rupp@adacore.com>
17216             Vincent Celier  <celier@adacore.com>
17217
17218         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
17219         Update copyright.
17220
17221         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
17222         Remove "Library" command.
17223         Change keyword for style check -gnatyd from NOCRLF to
17224         DOS_LINE_ENDINGS.
17225         Remove useless second style check keyword NONE
17226         Remove help documentation for inexistent style check keyword
17227         RM_COLUMN_LAYOUT.
17228         Add help documentation for style check keywords DOS_LINE_ENDINGS,
17229         UNNECESSARY_BLANK_LINES and XTRA_PARENS
17230         Add UNNECESSARY_BLANK_LINES for -gnatyu
17231         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
17232
17233         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
17234
17235 2005-06-14  Vincent Celier  <celier@adacore.com>
17236
17237         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
17238         gprmake was invoked with -d.
17239         (Compile_Sources): If -d was used, output the "completed ..." message
17240         for each compilation.
17241         (Scan_Arg): Recognize new switch -d
17242         When -c and at least one main is specified, set
17243         Unique_Compile to True to guarantee that no other sources will be
17244         compiled.
17245
17246 2005-06-14  Matthew Heaney  <heaney@adacore.com>
17247
17248         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
17249         * a-swuwha.ads, a-swuwha.adb: New files
17250
17251         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
17252         * a-szuzha.ads, a-szuzha.adb: New files.
17253
17254         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
17255         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
17256         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
17257         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
17258         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
17259         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
17260         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
17261         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
17262         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
17263         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
17264         Ada 2005 RM.
17265
17266 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
17267             Olivier Hainque  <hainque@adacore.com>
17268             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17269             Pascal Obry  <obry@adacore.com>
17270
17271         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
17272
17273         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
17274         making a temporary around a procedure call because of non-addressable
17275         actual parameter.
17276         (process_freeze_entity): If entity is a private type, capture size
17277         information that may have been computed for the full view.
17278         (tree_transform, case N_Allocator): If have initializing expression,
17279         check type for Has_Constrained_Partial_View and pass that to
17280         build_allocator.
17281         (tree_transform, case N_Return_Statement): Pass extra arg to
17282         build_allocator.
17283
17284         * decl.c (annotate_value): Remove early return if -gnatR is not
17285         specified.
17286         (gnat_to_gnu_field): Don't make a packable type for a component clause
17287         if the position is byte aligned, the field is aliased, and the clause
17288         size isn't a multiple of the packable alignment. It serves no useful
17289         purpose packing-wise and would be rejected later on.
17290         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
17291
17292         PR ada/20515
17293         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
17294         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
17295         instead.
17296         (create_concat_name): Idem.
17297
17298 2005-06-10  Robert Dewar  <dewar@adacore.com>
17299             Eric Botcazou  <ebotcazou@adacore.com>
17300             Ben Brosgol  <brosgol@adacore.com>
17301             Cyrille Comar  <comar@adacore.com>
17302             Sergey Rybin  <rybin@adacore.com>
17303             Pascal Obry  <obry@adacore.com>
17304
17305         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
17306         Document second argument (Ada_05) of pragma Obsolescent
17307         Add note that call to subprogram marked with pragma Obsolescent
17308         is now considered to be a violation of program Restrictions
17309         (No_Obsolescent_Features).
17310         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
17311         that only machine-dependent attributes are supported.
17312
17313         * gnat_ugn.texi:
17314         Commented out menu lines and empty section for gnatclean examples
17315         Document -gnatwy/Y
17316         Fix some over long lines
17317         Clarify and enhance documentation of ADA_PROJECT_PATH.
17318         Rework section 2.11.2(3) about linking with a non-GNU compiler.
17319         Mention new switch -fcallgraph-info.
17320         Mention new switch -fstack-usage.
17321         For gnatpp, replace '-notab' with '-N' and add this option to Index
17322         Corrected VMS example.
17323         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
17324         Minor reformatting
17325         Add documentation for -gnatyu switch (unnecessary blank lines)
17326         Document new switch -U for GNAT PRETTY and GNAT METRIC
17327         Add note about Stdcall being handled as C convention on non Windows OS.
17328         Remove some junk typo in description of gnatbind -S switch
17329         Remove reference to Extensions_Allowed pragma
17330         Document the new order of the directories to be searched (source and
17331         object directories of project files before directories in ADA_*_PATH
17332         environment variables.
17333
17334         * g-trasym.ads: Document that IRIX is supported
17335
17336 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
17337
17338         * Makefile.in: Add initialize.o when needed.
17339         Adapt to new VMS package body Symbols and subunits
17340         No specialized version of a-sytaco is needed for VxWorks.
17341
17342         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
17343         * a-zchara.ads, a-widcha.ads: New files.
17344
17345         * system-hpux-ia64.ads: New file.
17346
17347         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
17348         is imported from the VxWorks kernel.
17349
17350 2005-06-14  Robert Dewar  <dewar@adacore.com>
17351
17352         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
17353         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
17354         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
17355         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
17356         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
17357         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
17358         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
17359         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
17360         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
17361         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
17362         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
17363         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
17364
17365 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17366
17367         * xeinfo.adb: Fix typo in comment
17368
17369 2005-06-14  Javier Miranda  <miranda@adacore.com>
17370
17371         * repinfo.ads: Fix typo in comment
17372
17373 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
17374
17375         * s-finimp.adb (Parent_Tag): Delete this imported function (function
17376         Parent_Tag is now in the visible part of Ada.Tags).
17377         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
17378         using imported function.
17379
17380 2005-06-14  Bernard Banner  <banner@adacore.com>
17381
17382         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
17383         also apply for handling support for VxSim 653.
17384
17385 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
17386
17387         * xsnames.adb: Add automatic generation of snames.h.
17388
17389 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17390
17391         * gen-soccon.c: Add IP_MULTICAST_IF constant
17392         Minor reformatting and adjustments to prevent warnings.
17393
17394 2005-06-14  Pascal Obry  <obry@adacore.com>
17395
17396         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
17397
17398 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
17399
17400         * trans.c (gnat_gimplify_expr): Call
17401         recompute_tree_invarant_for_addr_expr when we change
17402         the operand of the ADDR_EXPR.
17403
17404 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17405
17406         * misc.c: Don't include errors.h.
17407
17408 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17409
17410         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
17411
17412 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
17413
17414         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
17415         comment typos.
17416         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
17417
17418 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
17419
17420         PR ada/20270
17421         * Makefile.in: Make TGT_LIB behave correctly.
17422
17423 2005-04-23  DJ Delorie  <dj@redhat.com>
17424
17425         * misc.c: Adjust warning() callers.
17426
17427 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
17428
17429         PR ada/18847
17430         * a-nudira.adb (Value): Check for valid string.
17431         * a-nuflra.adb (Value): Likewise.
17432
17433 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
17434
17435         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
17436
17437 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
17438
17439         * adaint.c, init.c, tracebak.c: Fix comment typos.
17440         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
17441
17442 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
17443             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17444
17445         * Makefile.in: Add make ifeq define for hppa linux tasking support.
17446         * system-hpux.ads: Define Signed_Zeros to be True.
17447         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
17448
17449 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
17450
17451         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
17452         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
17453         typos.
17454
17455 2005-03-30  Tom Tromey  <tromey@redhat.com>
17456
17457         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
17458
17459 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
17460
17461         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
17462
17463 2005-03-29  Robert Dewar  <dewar@adacore.com>
17464
17465         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
17466         fixed-point expression has value that is not a multiple of the Small
17467         value.
17468
17469         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
17470
17471         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
17472         nanoseconds.
17473
17474         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
17475
17476 2005-03-29  Vincent Celier  <celier@adacore.com>
17477
17478         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
17479         (Build_Dynamic_Library.Version_String): Return the empty string when
17480         Lib_Version is empty or when the symbol policy is not Autonomous.
17481
17482         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
17483         a symbol is not in the reference symbol file, increase the Major ID
17484         and set the Minor ID to 0.
17485         Use gsmatch=lequal instead of gsmatch=equal
17486
17487 2005-03-29  Doug Rupp  <rupp@adacore.com>
17488
17489         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
17490         name and translate.
17491
17492 2005-03-29  Javier Miranda  <miranda@adacore.com>
17493
17494         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
17495         (Inherit_DT): The first formal has been redefined as a Tag.
17496         This allows us the removal of the subprogram Get_TSD.
17497         (TSD): Replace the call to Get_TSD by the actual code.
17498
17499         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
17500         (Make_DT): Upgrade the call to Inherit_TSD according to the
17501         new interface: the first formal is now a Tag.
17502
17503         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
17504         redefined as a Tag.
17505         This change allows us to remove the subprogram Get_TSD.
17506         (CPP_Get_TSD): Subprogram removed.
17507         (TSD): Replace the call to CPP_Get_TSD by the actual code.
17508
17509         * rtsfind.ads: Remove support to call the run-time
17510         subprogram Get_TSD
17511
17512 2005-03-29  Robert Dewar  <dewar@adacore.com>
17513
17514         * errutil.adb, errout.adb:
17515         Minor comment updates on Line_Terminator references
17516
17517         * par-ch10.adb: Add ??? comment about line terminator
17518
17519         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
17520         (check dos line terminator).
17521         (Check_Line_Max_Length): New procedure, split off from the existing
17522         Check_Line_Terminator routine. Separating this out allows -gnatyf to
17523         be properly recognized.
17524
17525         * styleg.adb: Add ??? comment for line terminator reference
17526
17527         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
17528         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
17529
17530         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
17531         (check dos line terminator).
17532         (Check_Line_Max_Length): New procedure, split off from the existing
17533         Check_Line_Terminator routine. Separating this out allows -gnatyf to
17534         be properly recognized.
17535
17536         * stylesw.ads, stylesw.adb:
17537         Add handling for new -gnatyd switch (check dos line terminator)
17538
17539         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
17540         Recognize -gnatwb/-gnatwB switches
17541         Include Warn_On_Bad_Fixed_Value for -gnatg
17542
17543         * usage.adb:
17544         Add line for new -gnatyd switch (check dos line terminator)
17545
17546         * usage.adb: Add lines for -gnatwb/-gnatwB
17547
17548         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
17549
17550         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
17551
17552         * gnat_ugn.texi: Fix overlong lines
17553         Document new -gnatyd switch
17554         Document new -gnatwb/-gnatwB switches
17555
17556 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17557
17558         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
17559         order to retrieve the component list of the type, before examining
17560         individual components.
17561
17562         * sem_type.adb (Covers): Types are compatible if one is the base type
17563         of the other, even though their base types might differ when private
17564         views are involved.
17565
17566 2005-03-29  Thomas Quinot  <quinot@adacore.com>
17567
17568         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
17569         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
17570         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
17571         analyzed if expansion is disabled (which could otherwise cause spurious
17572         error messages if expansion has been disabled due to previous
17573         (unrelated) errors).
17574
17575         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
17576         is disabled, the entity denoted by the argument is the access type
17577         itself, not an underlying record type, so there is no need to go back
17578         to the Corresponding_Remote_Type.
17579
17580 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
17581             Robert Dewar  <dewar@adacore.com>
17582
17583         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
17584         expand a call to an instance of
17585         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
17586         Constructor actual of the instance. A class-wide membership
17587         check is also generated, to ensure that the tag passed to the instance
17588         denotes a type in the class.
17589         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
17590         of Name_Generic_Dispatching_Constructor.
17591
17592         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
17593         05 unit for AI-260-02).
17594
17595         * a-tgdico.ads: New file.
17596
17597         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
17598         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
17599
17600         * snames.ads, snames.adb (Preset_Names): Add entry for
17601         Generic_Dispatching_Constructor.
17602
17603         PR ada/20300
17604         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
17605         character type cases.
17606         (Analyze_Subprogram_Renaming): Add special handling for
17607         the case of renaming of stream attributes when the renaming denotes a
17608         generic formal subprogram association for an abstract formal subprogram.
17609         Check that the attribute is a primitive stream attribute (and not
17610         a class-wide stream attribute) and then rewrite the attribute name
17611         as the name of the appropriate compiler-generated stream primitive.
17612
17613 2005-03-29  Robert Dewar  <dewar@adacore.com>
17614
17615         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
17616         recursive calls.
17617         (Is_Possibly_Unaligned_Object): Correct typo that
17618         resulted in inaccurate result for unaligned scalars within records.
17619
17620 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17621
17622         * freeze.adb (Freeze_Record_Type): If the type of the component is an
17623         itype whose parent is controlled and not yet frozen, do not create a
17624         freeze node for the itype if expansion is disabled.
17625
17626 2005-03-29  Vincent Celier  <celier@adacore.com>
17627
17628         * make.adb (Gnatmake): Don't fail if the main project file is declared
17629         as having no Ada sources. Do not display message "no sources to
17630         compile" in quiet output.
17631
17632 2005-03-29  Doug Rupp  <rupp@adacore.com>
17633
17634         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
17635         extra tools.
17636
17637 2005-03-29  Robert Dewar  <dewar@adacore.com>
17638
17639         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
17640         child.
17641
17642 2005-03-29  Robert Dewar  <dewar@adacore.com>
17643
17644         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
17645         missing TYPE Improve the error message generated when compiling a
17646         limited interface in Ada83 or Ada95 mode.
17647
17648 2005-03-29  Robert Dewar  <dewar@adacore.com>
17649
17650         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
17651         rather than proceed ahead using a junk attribute name.
17652
17653 2005-03-29  Vincent Celier  <celier@adacore.com>
17654
17655         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
17656
17657         * prj-part.adb (Parse_Single_Project): Set the location of a project
17658         on its defining identifier, rather than on the reserved word "project".
17659
17660         * prj-proc.adb (Expression): Adapt to the fact that default of external
17661         references may be string expressions, not always literal strings.
17662         (Recursive_Process): Set Display_Name equal to Name
17663         when Location is No_Location, that is when there is no actual file.
17664         Get the Display_Name of the project from the source, when it is not a
17665         virtual project.
17666         (Process): Use the Display_Name in error messages
17667
17668         * prj-strt.adb (External_Reference): Allow default to be string
17669         expressions, not only literal strings.
17670
17671 2005-03-29  Vincent Celier  <celier@adacore.com>
17672
17673         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
17674         file and the reference symbol file to be the same file.
17675
17676 2005-03-29  Thomas Quinot  <quinot@adacore.com>
17677
17678         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
17679         forbid conversion of a local access-to-subprogram type to a remote one.
17680
17681         * sem_util.adb (Wrong_Type): For a record type that is the expanded
17682         equivalent type for a remote access-to-subprogram type, go back to the
17683         original RAS entity when displaying an error message, so the casing is
17684         the original source casing.
17685
17686 2005-03-29  Robert Dewar  <dewar@adacore.com>
17687
17688         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
17689         on param update.
17690
17691 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17692
17693         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
17694         subtype if code is being pre-analyzed, to prevent un-expanded
17695         references to protected formals, among others.
17696         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
17697         interpretation that can be a call, include the result of the call as a
17698         possible interpretation of the dereference.
17699
17700         * sem_ch5.adb (Process_Bounds): Determine type of range by
17701         pre-analyzing a copy of the original range, and then analyze the range
17702         with the expected type.
17703
17704         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
17705         with an overloaded prefix where not all interpretations yield an
17706         access to subprogram, do not rewrite node as a call.
17707         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
17708         the node as a call once the context identifies the interpretation of
17709         the prefix whose call yields the context type.
17710         (Valid_Conversion): For the case of a conversion between
17711         local access-to-subprogram types, check subtype conformance using
17712         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
17713         detailed error message.
17714
17715 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17716
17717         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
17718         indicator, indicate that the formal can never be null.
17719         (Process_Formals): If a formal has a non_null indicator, insert the
17720         resulting subtype immediately before the enclosing subprogram decl,
17721         and not at the beginning of the corresponding declarative part, to
17722         prevent access before elaboration (Ada2005).
17723
17724 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17725
17726         PR ada/19956
17727         * utils.c (finish_record_type): Use variable_size when setting sizes.
17728
17729 2005-03-29  Robert Dewar  <dewar@adacore.com>
17730
17731         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
17732         guarantee Unix style line terminators for the output files, even when
17733         running on windows.
17734
17735 2005-03-29  Robert Dewar  <dewar@adacore.com>
17736
17737         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
17738         buffer if an exception is raised.
17739
17740 2005-03-29  Ed Falis  <falis@adacore.com>
17741
17742         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
17743         VxWorks 653 1.4
17744
17745 2005-03-29  Robert Dewar  <dewar@adacore.com>
17746
17747         * sem_util.ads: Minor reformatting
17748         * gnat_rm.texi: Minor editing.
17749
17750 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
17751
17752         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
17753         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
17754
17755 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
17756
17757         * adaint.c (__gnat_portable_spawn): Adjust cast.
17758
17759 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
17760
17761         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
17762
17763 2005-03-17  Pascal Obry  <obry@adacore.com>
17764
17765         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
17766         used.
17767
17768         * expect.c (__gnat_waitpid): Moved here from adaint.c.
17769         Reimplement under Win32 using Win32 API.
17770
17771         (__gnat_kill) [Win32]: Properly close the process handle before leaving
17772         this routine.
17773
17774 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
17775
17776         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
17777         (DECL_RENAMED_OBJECT): New accessor macro.
17778         (SET_DECL_RENAMED_OBJECT): New setter macro.
17779
17780         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
17781         object in all cases.  Attach the renamed object to the VAR_DECL.
17782         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
17783         field is not prescribed.
17784
17785         * misc.c (gnat_handle_option): Handle -gnatO separately.
17786         (gnat_print_decl) <VAR_DECL>: New case.
17787         Print the DECL_RENAMED_OBJECT node.
17788
17789         * lang.opt:  Declare separate -gnatO option.
17790
17791         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
17792         pointer, replace it with the renamed object.
17793         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
17794         pointer type if the source is not a fat pointer type whose underlying
17795         array has the same non-zero alias set as that of the destination array.
17796
17797 2005-03-17  Javier Miranda  <miranda@adacore.com>
17798
17799         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
17800         (Get_Inheritance_Depth): Removed.
17801         (Set_Inheritance_Depth): Removed.
17802
17803         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
17804         subprogram Get_Expanded_Name because it is not referenced by the
17805         frontend.
17806
17807         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
17808         (CPP_Get_Inheritance_Depth): Removed.
17809         (CPP_Set_Inheritance_Depth): Removed.
17810
17811         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
17812
17813 2005-03-17  Robert Dewar  <dewar@adacore.com>
17814
17815         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
17816         3, since we now expect GCC 3 to do all the work.
17817
17818 2005-03-17  Javier Miranda  <miranda@adacore.com>
17819
17820         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
17821         of one barrier to avoid wrong usage of this attribute.
17822
17823         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
17824         First_Private_Entity.
17825
17826         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
17827         the subprogram against wrong usage.
17828         Adapt the code to traverse the entities in the
17829         scope of a record_type because in addition to its usage regarding
17830         packages, this subprogram is also called by Expand_N_Freeze_Entity
17831         to install the visible declarations of the enclosing scope of a
17832         record_type_with_private to establish the proper visibility before
17833         freezing the entity and related subprograms.
17834
17835 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
17836
17837         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
17838         entry formals.
17839
17840 2005-03-17  Thomas Quinot  <quinot@adacore.com>
17841
17842         * exp_ch3.adb (Check_Attr): New subprogram.
17843         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
17844         into a new Check_Attr subprogram, in order to provide a more
17845         explanatory error message (including the name of the missing attribute).
17846         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
17847         subprogram determines whether a default implementation exists for a
17848         given stream attribute.
17849         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
17850         Determine whether to generate a default implementation for each stream
17851         attribute separately, as this depends on the specific attribute.
17852
17853         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
17854         limited extension where a stream attribute is missing for a limited
17855         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
17856         generate a bogus reference to the missing attribute to prevent
17857         cascaded errors. Instead, generate a null statement.
17858
17859         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
17860         available for a limited type if it has been specified for an ancestor
17861         of the type.
17862
17863 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
17864
17865         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
17866         entity is an operator.
17867
17868 2005-03-17  Thomas Quinot  <quinot@adacore.com>
17869
17870         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
17871         spec, to make this predicate available to other units.
17872
17873         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
17874         reimplementing it.
17875
17876         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
17877         when no distribution runtime library is available.
17878
17879         * sem_res.adb, sem_dist.adb: Disable expansion of remote
17880         access-to-subprogram types when no distribution runtime library is
17881         available.
17882         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
17883         predicate available to other units.
17884
17885         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
17886         spec, to make this predicate available to other units.
17887
17888 2005-03-17  Vincent Celier  <celier@adacore.com>
17889
17890         * make.adb (Insert_Project_Sources): Make sure the Q is always
17891         initialized.
17892
17893         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
17894         the default for the tree, not the global default naming.
17895
17896         * prj-proc.adb (Recursive_Process): No need to put the default naming
17897         in the project data, it's already there.
17898
17899 2005-03-17  Doug Rupp  <rupp@adacore.com>
17900
17901         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
17902
17903         * 5xcrtl.ads: Renamed to...
17904         * s-crtl-vms64.ads: ...this new file
17905
17906 2005-03-17  Robert Dewar  <dewar@adacore.com>
17907
17908         PR ada/19519
17909         * namet.adb (Copy_One_Character): Set proper wide character encoding
17910         for upper half character if we have upper half encoding.
17911
17912 2005-03-17  Robert Dewar  <dewar@adacore.com>
17913
17914         * par.adb (Par): Improved msg for attempt to recompile predefined unit
17915
17916 2005-03-17  Thomas Quinot  <quinot@adacore.com>
17917
17918         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
17919         tagged limited type, the TSS is a newly built renaming declaration:
17920         insert it using Set_TSS, not Copy_TSS.
17921
17922 2005-03-17  Javier Miranda  <miranda@adacore.com>
17923
17924         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
17925         Try_Object_Operation): Analyze the object that is accessible
17926         through the prefix of the subprogram call before we apply
17927         the transformation of the object-operation notation.
17928
17929 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
17930
17931         * s-taprob.adb (Initialize_Protection): Initialize the protected
17932         object's owner to Null_Task.
17933         (Lock): If pragma Detect_Blocking is in effect and the caller of this
17934         procedure is already the protected object's owner then Program_Error
17935         is raised. In addition the protected object's owner is updated.
17936         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
17937         of this procedure is already the protected object's owner then
17938         Program_Error is raised.
17939         In addition the protected object's owner is updated.
17940         (Unlock): Remove the ownership of the protected object.
17941
17942         * s-taprob.ads (Protection): Add the field Owner, used to store the
17943         protected object's owner.
17944         This component is needed for detecting one type of potentially blocking
17945         operations (external calls on a protected subprogram with the same
17946         target object as that of the protected action). Document the rest of
17947         the components.
17948
17949         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
17950         Initialize the protected object's owner to Null_Task.
17951         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
17952         caller of this procedure is already the protected object's owner then
17953         Program_Error is raised.
17954         Do not raise Program_Error when this procedure is called from a
17955         protected action.
17956         (Unlock_Entries): Remove the ownership of the protected object.
17957         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
17958         of this procedure is already the protected object's owner then
17959         Program_Error is raised.
17960         Do not raise Program_Error when this procedure is called from
17961         a protected action.
17962
17963         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
17964         used to store the protected object's owner.
17965
17966         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
17967         effect and this procedure (a potentially blocking operation) is called
17968         from whithin a protected action, Program_Error is raised.
17969         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
17970         and this procedure (a potentially blocking operation) is called from
17971         whithin a protected action, Program_Error is raised.
17972
17973 2005-03-17  Vincent Celier  <celier@adacore.com>
17974             Nicolas Setton  <setton@adacore.com>
17975
17976         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
17977         switch, not supported by the linker on Darwin. Add '_' before
17978         <library>init, as this character is added unconditionally by the
17979         compiler.
17980         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
17981         correct one ".dylib". This fixes detection of the archive files when
17982         building library projects.
17983
17984 2005-03-17  Vincent Celier  <celier@adacore.com>
17985
17986         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
17987         -gnat83, -gnat95 and -gnat05.
17988
17989 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
17990
17991         * gnat_ugn.texi: Document gnatmem restriction
17992
17993 2005-03-17  Thomas Quinot  <quinot@adacore.com>
17994
17995         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
17996         cleanup
17997
17998 2005-03-17  Robert Dewar  <dewar@adacore.com>
17999
18000         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
18001         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
18002         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
18003
18004         * casing.adb: Comment improvements
18005
18006 2005-03-17  Pascal Obry  <obry@adacore.com>
18007
18008         * g-expect.adb: Minor reformatting.
18009
18010 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
18011
18012         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
18013         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
18014         to dependencies.
18015
18016 2005-03-15  Vincent Celier  <celier@adacore.com>
18017
18018         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
18019         Add new parameter In_Tree to specify the project tree: needed
18020         by the project manager. Adapt to changes in project manager
18021         using new parameter In_Tree.
18022
18023 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
18024
18025         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
18026         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
18027         ada/bldtools to avoid make -jN failures.
18028
18029 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18030
18031         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
18032         to NULL_TREE on entry.
18033
18034 2005-03-15  Robert Dewar  <dewar@adacore.com>
18035
18036         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
18037         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
18038         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
18039         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
18040         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
18041         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
18042         system-interix.ads, system-solaris-sparc.ads,
18043         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
18044         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
18045         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
18046         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
18047         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
18048         Compiler_System_Version to be False.
18049
18050         * opt.ads: Add new flag Opt.Address_Is_Private
18051
18052         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
18053         Add new parameter Compiler_System_Version to avoid checking for
18054         completeness of parameters when compiler is compiling itself.
18055         Allows old versions of GNAT to be compiled with new compiler.
18056
18057 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18058
18059         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
18060         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
18061         calling thread.
18062         (Stack_Base_Available): New flag.
18063         (Get_Page_Size): New overloaded functions imported from C.
18064         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
18065         PROT_ON, PROT_OFF): New constants.
18066         (mprotect): New function imported from C.
18067         (pthread_teb_t): New record type.
18068
18069         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
18070         (Create_Task): Account for the Yellow Zone and the guard page.
18071
18072 2005-03-15  Vincent Celier  <celier@adacore.com>
18073
18074         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
18075         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
18076         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
18077         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
18078         Library_File_Name_For): Add new parameter In_Tree
18079         to specify the project tree: needed by the project manager.
18080         Adapt to changes in project manager using new parameter In_Tree.
18081         Remove local imports, use functions in System.CRTL.
18082
18083         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
18084         to use the project manager.
18085
18086         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
18087         In_Tree to designate the project tree. Adapt to changes in the project
18088         manager, using In_Tree.
18089
18090         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
18091         Copy_Interface_Sources): Add new parameter In_Tree to specify the
18092         project tree: needed by the project manager.
18093         (Build_Library): Check that Arg'Length >= 6 before checking if it
18094         contains "--RTS=...".
18095
18096         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
18097         Library_File_Name_For): Add new parameter In_Tree to specify the
18098         project tree: needed by the project manager.
18099
18100         * prj.ads, prj.adb: Major modifications to allow several project trees
18101         in memory at the same time.
18102         Change tables to dynamic tables and hash tables to dynamic hash
18103         tables. Move tables and hash tables from Prj.Com (in the visible part)
18104         and Prj.Env (in the private part). Move some constants from the visible
18105         part to the private part. Make other constants deferred.
18106         (Project_Empty): Make it a variable, not a function
18107         (Empty_Project): Add parameter Tree. Returns the data with the default
18108         naming data of the project tree Tree.
18109         (Initialize): After updating Std_Naming_Data, copy its value to the
18110         component Naming of Project Empty.
18111         (Register_Default_Naming_Scheme): Use and update the default naming
18112         component of the project tree, instead of the global variable
18113         Std_Naming_Data.
18114         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
18115         Tree is not defaulted, return the default naming data of the Tree.
18116         (Initial_Buffer_Size): Constant moved from private part
18117         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
18118         variables initialized in procedure Initialize.
18119         (Add_To_Buffer): Add two in out parameters to replace global variables
18120         Buffer and Buffer_Last.
18121         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
18122         functions.
18123         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
18124         hash tables.
18125         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
18126         for the project tree.
18127         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
18128         constant at the beginning of the package spec, so that they cane be used
18129         in subprograms before their full declarations.
18130         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
18131         (Empty_Project): Add parameter of type Project_Node_Ref
18132         (Private_Project_Tree_Data): Add component Default_Naming of type
18133         Naming_Data.
18134         (Buffer, Buffer_Last): remove global variables
18135         (Add_To_Buffer): Add two in out parameters to replace global variables
18136         Buffer and Buffer_Last.
18137         (Current_Packages_To_Check): Remove global variable
18138         (Empty_Name): Move to private part
18139         (No-Symbols): Make it a constant
18140         (Private_Project_Tree_Data): New type for the private part of the
18141         project tree data.
18142         (Project_Tree_Data): New type for the data of a project tree
18143         (Project_Tree_Ref): New type to designate a project tree
18144         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
18145         for the project tree.
18146
18147         * prj-attr.ads: Add with Table; needed, as package Prj no longer
18148         imports package Table.
18149
18150         * prj-com.adb: Remove empty, no longer needed body
18151
18152         * prj-com.ads: Move most of the content of this package to package Prj.
18153
18154         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
18155         designate the project node tree and Packages_To_Check to replace
18156         global variable Current_Packages_To_Check.
18157         Add new parameters In_Tree and Packages_To_Check to local subprograms,
18158         when needed. Adapt to changes in project manager with project node tree
18159         In_Tree.
18160
18161         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
18162         project tree to most subprograms. Move tables and hash tables to
18163         private part of package Prj.
18164         Adapt to changes in project manager using project tree In_Tree.
18165
18166         * prj-makr.adb (Tree): New constant to designate the project node tree
18167         Adapt to change in project manager using project node tree Tree
18168
18169         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
18170         display the Library_Src_Dir and the Library_Dir.
18171         Add new parameter In_Tree to designate the project node tree to most
18172         subprograms. Adapt to changes in the project manager, using project tree
18173         In_Tree.
18174         (Check_Naming_Scheme): Do not alter the casing on platforms where
18175         the casing of file names is not significant.
18176         (Check): Add new parameter In_Tree to designate the
18177
18178         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
18179         designate the project tree.
18180         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
18181
18182         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
18183         to replace those that were in the private part of package Prj.
18184         Add new parameter In__Tree to designate the project node tree to most
18185         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
18186         (Post_Parse_Context_Clause): When specifying the project node of a with
18187         clause, indicate that it is a limited with only if there is "limited"
18188         in the with clause, not necessarily when In_Limited is True.
18189         (Parse): Add new parameter In_Tree to designate the project node tree
18190
18191         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
18192         designate the project node tree. Adapt to change in Prj.Tree with
18193         project node tree In_Tree.
18194
18195         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
18196         tree In_Tree in the call to function Empty_Process to give its initial
18197         value to the project data Processed_Data.
18198         Add new parameters In_Tree to designate the project tree and
18199         From_Project_Node_Tree to designate the project node tree to several
18200         subprograms. Adapt to change in project manager with project tree
18201         In_Tree and project node tree From_Project_Node_Tree.
18202
18203         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
18204         to replace those that were in the private part of package Prj.
18205         Add new parameter In_Tree to designate the project node tree to most
18206         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
18207
18208         * prj-tree.ads, prj-tree.adb: Add new parameter of type
18209         Project_Node_Tree_Ref to most subprograms.
18210         Use this new parameter to store project nodes in the designated project
18211         node tree.
18212         (Project_Node_Tree_Ref): New type to designate a project node tree
18213         (Tree_Private_Part): Change table to dynamic table and hash tables to
18214         dynamic hash tables.
18215
18216         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
18217         the project tree to most subprograms. Adapt to changes in project
18218         manager using project tree In_Tree.
18219
18220         * makegpr.adb (Project_Tree): New constant needed to use project
18221         manager.
18222
18223 2005-03-15  Olivier Hainque  <hainque@adacore.com>
18224
18225         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
18226         for sigactions with SA_SIGINFO set. Call
18227         __gnat_adjust_context_for_raise before raising, to perform the
18228         potentially required adjustments to the machine context for the GCC
18229         unwinder.
18230
18231         * raise.h (__gnat_adjust_context_for_raise): New prototype.
18232
18233         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
18234         Adjust PC by one in the provided machine context.
18235         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
18236         so that the handler is passed the context structure to adjust prior to
18237         the raise.
18238         (__gnat_error_handler) HPUX: Adjust the signature to match what an
18239         SA_SIGINFO sigaction should look like. Call
18240         __gnat_adjust_context_for_raise before actually raising.
18241         (__gnat_adjust_context_for_raise): Default noop to help PC
18242         adjustments before raise from signal handlers.
18243         (__gnat_error_handler): Indirectly call a predicate function to
18244         determine if a condition should be resignaled or not.
18245         (__gnat_set_resignal_predicate): User interface to modify the predicate.
18246         (__gnat_default_resignal_p): Default GNAT predicate.
18247
18248 2005-03-15  Doug Rupp  <rupp@adacore.com>
18249
18250         * adaint.c: Prefix #include of VMS system header files with vms/
18251         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
18252         Do not define a dummy function "convert_addresses" under Darwin,
18253         not needed.
18254
18255         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
18256         with vms/
18257
18258 2005-03-15  Nicolas Setton  <setton@adacore.com>
18259
18260         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
18261         PPC/AIX.
18262
18263 2005-03-15  Robert Dewar  <dewar@adacore.com>
18264
18265         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
18266         AI-386.
18267
18268         * a-retide.ads: Minor comment changes
18269
18270 2005-03-15  Robert Dewar  <dewar@adacore.com>
18271
18272         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
18273         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
18274         Realloc_For_Chunk to private part of package.
18275         New subprograms for AI-301
18276
18277         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
18278         Get_Line procedure.
18279         Avoid unnecessary use of Get/Set_Wide_String
18280
18281 2005-03-15  Robert Dewar  <dewar@adacore.com>
18282
18283         PR ada/13470
18284         * a-stunau.ads, a-stunau.adb:
18285         Change interface to allow efficient (and correct) implementation
18286         The previous changes to allow extra space in unbounded strings had
18287         left this interface a bit broken.
18288
18289         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
18290
18291         * g-spipat.ads, g-spipat.adb: New interface for Get_String
18292         Minor reformatting (function specs)
18293
18294         * g-spitbo.adb: New interface for Get_String
18295
18296         * g-spitbo.ads: Minor reformatting
18297
18298         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
18299
18300         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
18301
18302 2005-03-15  Javier Miranda  <miranda@adacore.com>
18303             Robert Dewar  <dewar@adacore.com>
18304             Thomas Quinot  <quinot@adacore.com>
18305             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18306
18307         * atree.ads, atree.adb: Add support for Elist24 field
18308
18309         * atree.h: Fix wrong definition of Field27
18310         Add support for Elist16 field
18311         Add support for Elist24 field
18312
18313         * einfo.ads, einfo.adb (Abstract_Interfaces,
18314         Set_Abstract_Interfaces): New subprograms.
18315         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
18316         subprograms.
18317         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
18318         entities rather than a single node.
18319         (Is_Interface, Set_Is_Interface): New subprogram
18320         (First_Tag_Component): New syntesized attribute
18321         (Next_Tag_Component): New synthesized attribute
18322         (Write_Entity_Flags): Upgraded to write Is_Interface
18323         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
18324         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
18325         (Task_Body_Procedure): New subprogram to read this attribute.
18326         (Set_Task_Body_Procedure): New subprogram to set this attribute.
18327         (Has_Controlled_Component): Now applies to all entities.
18328         This is only a documentation change, since it always worked to apply
18329         this to other than composite types (yielding false), but now this is
18330         official.
18331         Update documentation on Must_Be_Byte_Aligned for new spec
18332
18333         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
18334         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
18335         uses of the Access_Disp_Table attribute to reference the first dispatch
18336         table associated with a tagged type. As
18337         part of the implementation of abstract interface types,
18338         Access_Disp_Table has been redefined to contain a list of dispatch
18339         tables (rather than a single dispatch table).
18340         Similarly, upgrade all the references to Tag_Component by the
18341         new attribute First_Tag_Component.
18342         (Find_Inherited_TSS): Moved to exp_tss.
18343         Clean up test in Expand_N_Object_Declaration for cases
18344         where we need to do a separate assignment of the initial value.
18345         (Expand_N_Object_Declaration): If the expression in the
18346         declaration of a tagged type is an aggregate, no need to generate an
18347         additional tag assignment.
18348         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
18349         is to be deleted.
18350         Bit packed array ops are only called if operands are known to be
18351         aligned.
18352         (Component_Equality): When returning an N_Raise_Program_Error statement,
18353         ensure that its Etype is set to Empty to avoid confusing GIGI (which
18354         expects that only expressions have a bona fide type).
18355         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
18356         determine the amount of data to be copied.
18357
18358         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
18359         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
18360             INTERFACE_TYPE_DEFINITION ::=
18361               [limited | task | protected | synchronized] interface
18362                 [AND interface_list]
18363
18364         * par-ch3.adb (P_Type_Declaration): Modified to give support to
18365         interfaces.
18366         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
18367         interfaces.
18368         (P_Interface_Type_Definition): New subprogram that parses the new
18369         syntax rule of Ada 2005 interfaces
18370         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
18371         messages by the correct RENAMES (quotes removed).
18372
18373         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
18374         attribute First_Tag_Component.
18375
18376         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
18377         (Interface_List, Set_Interface_List): New subprograms.
18378         (Interface_Present, Set_Interface_Present): New subprograms.
18379         (Limited_Present, Set_Limited_Present): Available also in derived
18380         type definition nodes.
18381         (Protected_Present, Set_Protected_Present): Available also in
18382         record type definition and
18383         derived type definition nodes.
18384         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
18385         (Task_Present, Set_Task_Present): New subprogram.
18386         (Task_Body_Procedure): Removed.
18387         (Set_Task_Body_Procedure): Removed.
18388         These subprogram have been removed because the attribute
18389         Task_Body_Procedure has been moved to the corresponding task type
18390         or task subtype entity to leave a field free to store the list
18391         of interfaces implemented by a task (for AI-345)
18392         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
18393         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
18394         expression flag Do_Range_Check
18395         (Exception_Junk): Change to Flag7 to accomodate above change
18396         (Box_Present, Default_Name, Specification, Set_Box_Present,
18397         Set_Default_Name, Set_Specification): Expand the expression
18398         "X in N_Formal_Subprogram_Declaration" into the corresponding
18399         two comparisons. Required to use the csinfo tool.
18400
18401         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
18402         "with string" given.
18403
18404         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
18405         expression given.
18406
18407         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
18408         in 2005 mode
18409
18410         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
18411         attribute Task_Body_Procedure rather than the old semantic field that
18412         was available in the task_type_declaration node.
18413
18414         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
18415         interface type definitions.
18416         (P_Formal_Derived_Type_Definition): Modified to handle the list of
18417         interfaces.
18418
18419         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
18420         task type declaration.
18421         (P_Protected): Modified to handle the list of interfaces in a
18422         protected type declaration.
18423
18424 2005-03-15  Doug Rupp  <rupp@adacore.com>
18425             Vincent Celier  <celier@adacore.com>
18426
18427         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
18428         (Gen_Output_File_C): Likewise.
18429         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
18430
18431 2005-03-15  Thomas Quinot  <quinot@adacore.com>
18432
18433         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
18434         is an N_Raise_Constraint_Error node, create a new copy of it without
18435         going through a call to Duplicate_Subexpr.
18436
18437 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18438             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18439             Nicolas Setton  <setton@adacore.com>
18440             Ed Schonberg  <schonberg@adacore.com>
18441
18442         PR ada/19900
18443         PR ada/19408
18444         PR ada/19140
18445         PR ada/20255
18446         * decl.c (gnat_to_gnu_field): Reject aliased components with a
18447         representation clause that prescribes a size not equal to the rounded
18448         size of their types.
18449         (gnat_to_gnu_entity, case E_Component): Always look at
18450         Original_Record_Component if Present and not the entity.
18451         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
18452         of tagged extension types by not making field for components that are
18453         inside the parent.
18454         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
18455         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
18456         expression to the type of the object when the object is constant.
18457         Reverse defer_debug_incomplete_list before traversing it, so that trees
18458         are processed in the order at which they were added to the list. This
18459         order is important when using the stabs debug format.
18460         If we are deferring the output of debug information, also defer this
18461         output for a function return type.
18462         When adding fields to a record, prevent emitting debug information
18463         for incomplete records, emit the information only when the record is
18464         complete.
18465         (components_to_record): New parameter defer_debug.
18466         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
18467         (gnat_to_gnu_field_decl): New function.
18468         (substitution_list, annotate_rep): Call it.
18469         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
18470         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
18471         No longer update discriminants to not be a COMPONENT_REF.
18472         (copy_alias_set): Strip padding from input type; also handle
18473         unconstrained arrays properly.
18474
18475         * gigi.h (write_record_type_debug_info): New function.
18476         Convert to use ANSI-style prototypes. Remove unused
18477         declarations for emit_stack_check, elab_all_gnat and
18478         set_second_error_entity.
18479         (gnat_to_gnu_field_decl): New decl.
18480
18481         * utils.c (write_record_type_debug_info): New function.
18482         (finish_record_type): Delegate generation of debug information to
18483         write_record_type_debug_info.
18484         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
18485         (update_pointer_to): Fix pasto.
18486         (convert) <UNION_TYPE>: Accept slight type variations when
18487         converting to an unchecked union type.
18488
18489         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
18490         replace the N_Freeze_Entity with a null statement.
18491
18492         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
18493         within a constrained subcomponent of an enclosing record, place the
18494         freeze nodes in the scope stack entry for the enclosing record.
18495         (Undelay_Type): New Subprogram.
18496         (Set_Small_Size): Pass T, the type to modify; all callers changed.
18497         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
18498         within records; allow them to have freeze nodes if their base types
18499         aren't frozen yet.
18500
18501         * exp_util.adb (Remove_Side_Effects): Properly test for
18502         Expansion_Delayed and handle case when it's inside an
18503         N_Qualified_Expression.
18504
18505         * sem_ch3.adb (Derived_Type_Declaration): New predicate
18506         Comes_From_Generic, to recognize accurately that the parent type in a
18507         derived type declaration can be traced back to a formal type, because
18508         it is one or is derived from one, or because its completion is derived
18509         from one.
18510         (Constrain_Component_Type): If component comes from source and has no
18511         explicit constraint, no need to constrain in in a subtype of the
18512         enclosing record.
18513         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
18514         Minor change to propagate Is_Ada_2005 flag
18515
18516         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
18517         Expansion_Delayed is False.
18518         (assoc_to_constructor): Ignore fields that have a
18519         Corresponding_Discriminant.
18520         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
18521         function returns "by target", dereference the target pointer using the
18522         type of the actual return value.
18523         <all>: Be prepared for a null gnu_result.
18524         (processed_inline_subprograms): Check flag_really_no_inline
18525         instead of flag_no_inline.
18526         (set_second_error_entity): Remove unused function.
18527         (gnat_to_gnu, case N_Selected_Component): Call
18528         gnat_to_gnu_field_decl.
18529         (assoc_to_constructor): Likewise.
18530
18531 2005-03-15  Robert Dewar  <dewar@adacore.com>
18532             Ed Schonberg  <schonberg@adacore.com>
18533             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18534
18535         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
18536         Must_Be_Byte_Aligned for cases where we do not need to use a
18537         System.Pack_nn unit.
18538
18539         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
18540         as procedures.
18541         Needed now that we do some processing for IN parameters as well. This
18542         may well fix some unrelated errors.
18543         (Expand_Call): Handle case of unaligned objects (in particular those
18544         that come from packed arrays).
18545         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
18546         renamed entity is an inherited operation, re-expand the call using the
18547         original operation, which is the one to call.
18548         Detect attempt to inline parameterless recursive subprogram.
18549         (Represented_As_Scalar): Fix to work properly with private types
18550         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
18551         accurate estimate. Yields True in far fewer cases than before,
18552         improving the quality of code that depends on this test.
18553
18554         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
18555         over both visible and private declarations to remove them from tree,
18556         and mark subprograms declared in package as eliminated, to prevent
18557         spurious use in subsequent compilation of generic units in the context.
18558
18559         * exp_util.ads: Minor cleanup in variable names
18560
18561         * sem_eval.ads, sem_eval.adb: Minor reformatting
18562         (Compile_Time_Known_Bounds): New function
18563
18564 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18565
18566         * exp_ch7.adb (Convert_View): Use base types of underlying types when
18567         determining whether an unchecked conversion is needed for the argument
18568         of an initialization call.
18569
18570 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18571
18572         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
18573         that appears in the instantiation rather than the internal subtype
18574         generated in the wrapper package, to avoid anomalies in gigi when the
18575         target is derived from a private type whose full view is an access type.
18576
18577 2005-03-15  Robert Dewar  <dewar@adacore.com>
18578
18579         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
18580         not needed.
18581         Add documentation to replace the use of this flag
18582         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
18583         the x86_64.
18584
18585 2005-03-15  Thomas Quinot  <quinot@adacore.com>
18586
18587         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
18588         here from exp_attr so it can be shared between exp_attr and exp_dist.
18589         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
18590         all TSS names, not a subset thereof, and the previous name introduced
18591         an unnecessarily confusion that a distinction might exist between
18592         "OK" TSS names and some "not OK" TSS names.
18593
18594 2005-03-15  Doug Rupp  <rupp@adacore.com>
18595
18596         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
18597         Command_Name.
18598
18599 2005-03-15  Pascal Obry  <obry@adacore.com>
18600             Eric Botcazou  <ebotcazou@adacore.com>
18601
18602         PR ada/20226
18603         PR ada/20344
18604         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
18605         when IN_RTS. This is to work around a bootstrap path problem.
18606
18607         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
18608         table and pass it to __gnat_install_SEH_handler().
18609         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
18610
18611         * lang.opt: Fix specification of -fRTS=.
18612
18613 2005-03-15  Doug Rupp  <rupp@adacore.com>
18614             Bernard Banner  <banner@adacore.com>
18615             Vincent Celier  <celier@adacore.com>
18616             Arnaud Charlet  <charlet@adacore.com>
18617
18618         PR ada/6852
18619         This change works fine when gnatlib is built from the gcc directory,
18620         but does not work when using the libada Makefile, since GCC_FOR_TARGET
18621         is not passed to ada/Makefile.in, so more work is needed by a
18622         Makefile/configure expert.
18623
18624         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
18625         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
18626         Setup gnatlink switch -M for x86_64 linux, as it is already setup
18627         for Linux x86.
18628         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
18629         Run ranlib on libgccprefix.a
18630         Define PREFIX_OBJS for Darwin, to build libgccprefix.
18631         (ADA_INCLUDE_SRCS): Split Ada packages.
18632
18633 2005-03-15  Robert Dewar  <dewar@adacore.com>
18634
18635         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
18636
18637         * impunit.adb: Add GNAT.UTF_32
18638
18639         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
18640
18641         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
18642         now uses GNAT.UTF_32).
18643
18644         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
18645         capabilities for categorizing characters using Unicode categories
18646
18647 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18648
18649         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
18650         instantiation that has been rewritten as a package body, retrieve spec
18651         to generate proper name for implicit_with_clause.
18652         (Install_Parents): Recognize a parent that is an instantiation but has
18653         been rewritten as a package declaration during analysis.
18654
18655 2005-03-15  Javier Miranda  <miranda@adacore.com>
18656             Ed Schonberg  <schonberg@adacore.com>
18657
18658         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
18659         parameter reported some error we immediately return. This improves the
18660         behaviour of the frontend in case of errors.
18661         (Install_Parent, Remove_Parent): Introduce new flag
18662         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
18663         ancestor of a generic child unit, when the child is being instantiated.
18664         (Inline_Instance_Body): If we are compiling the private
18665         part or the body of a child unit, restore the proper visibility of the
18666         parents after compiling the instance body.
18667
18668 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18669             Javier Miranda  <miranda@adacore.com>
18670
18671         PR ada/15608
18672         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
18673         of a private type, in which case it is underlying_type that denotes
18674         the proper task. Also modified to use the new entity attribute
18675         that is directly available in the task type and task subtype entities
18676         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
18677         arrays when other dimensions than the first are constrained by
18678         discriminants of an enclosing record.
18679         (Insert_Explicit_Dereference): If the prefix is an indexed component or
18680         a combination of indexed and selected components, find ultimate entity
18681         and generate the appropriate reference for it, to suppress spurious
18682         warnings.
18683         (Note_Possible_Modification): If an entity name has no entity, return.
18684         (Is_Variable): A function call never denotes a variable.
18685         (Requires_Transient_Scope): For record types, recurse only on
18686         components, not on internal subtypes that may have been generated for
18687         constrained components.
18688
18689 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18690
18691         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
18692         Eliminated as candidates for resolution. Both efficient, and avoids
18693         anomalies with operators declared in deleted code.
18694         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
18695         expansion is disabled (as when compiling a generic) to prevent spurious
18696         warnings on prefixes of selected components.
18697
18698 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18699
18700         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
18701         attached to a list before checking whether it appears in the private
18702         declarations of the current package.
18703         (Make_Inequality_Operator): Insert declaration in proper declarative
18704         list rather than just setting the Parent field, so that
18705         Is_Private_Declaration can handle it properly.
18706
18707 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18708
18709         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
18710         a renaming a body, check that the renamed subprogram in not intrinsic.
18711         (Find_Direct_Name): If several use_visible entities hide
18712         each other, and the context is a predefined file compiled through
18713         rtsfind, keep only the entity that comes from a predefined file.
18714
18715 2005-03-15  Geert Bosch  <bosch@adacore.com>
18716
18717         * s-fatgen.adb (Valid): Extend special exceptions to account for long
18718         long float padding to also cover AMD64 and IA64.
18719
18720 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
18721
18722         * s-imgwch.adb: Add with and use of Interfaces.
18723         (Img_Wide_Character): Change type of Val to Unsigned_16.
18724         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
18725
18726 2005-03-15  Matthew Gingell  <gingell@adacore.com>
18727
18728         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
18729
18730 2005-03-15  Robert Dewar  <dewar@adacore.com>
18731
18732         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
18733
18734         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
18735
18736         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
18737
18738 2005-03-15  Robert Dewar  <dewar@adacore.com>
18739
18740         * s-bitops.adb, s-bitops.ads,
18741         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
18742         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
18743         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
18744         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
18745         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
18746         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
18747         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
18748         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
18749         reformatting.
18750
18751 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18752
18753         * utils2.c (build_binary_op): Fix typo.
18754
18755 2005-03-15  Doug Rupp  <rupp@adacore.com>
18756
18757         * s-crtl.ads (popen,pclose): New imports.
18758
18759 2005-03-15  Cyrille Comar  <comar@adacore.com>
18760
18761         * comperr.adb (Compiler_Abort): remove references to obsolete
18762         procedures in the bug boxes for various GNAT builds.
18763
18764 2005-03-15  Vincent Celier  <celier@adacore.com>
18765
18766         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
18767
18768 2005-03-15  Geert Bosch  <bosch@adacore.com>
18769             Arnaud Charlet  <charlet@adacore.com>
18770             Robert Dewar  <dewar@adacore.com>
18771             Cyrille Comar  <comar@adacore.com>
18772             Sergey Rybin  <rybin@adacore.com>
18773
18774         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
18775         too specific and long-winded to be appropriate for the GNAT User's
18776         Guide.
18777         Warn about use of GCC switches not documented in the GNAT User's Guide,
18778         as these may cause generated code to not conform to Ada semantics.
18779         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
18780         Add documentation for -gnat95 and -gnat05 switches
18781         Remove paragraph documenting obsolete way to refer to third party
18782         libraries.
18783         Add a few references to Ada_05 that were missing.
18784         Update documentation on -gnatZ/-gnatL.
18785         Document limitation when using -m64 under Solaris.
18786         Change the "Name Casing" subsection of the pretty-printer section
18787         according to the changes in the dictionary processing.
18788
18789         * gnat_rm.texi: Document the Ada_05 pragma.
18790         Section on record representation clauses describes the new more
18791         relaxed rules about placement of large packed bit array components.
18792         Add documentation of GNAT.UTF_32
18793
18794 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
18795
18796         * misc.c (gnat_post_options): Turn off structural
18797         aliasing for now.
18798
18799 2005-03-08  Laurent Guerby <laurent@guerby.net>
18800
18801         * system-linux-sparc.ads: Fix typo in previous commit.
18802
18803 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
18804             Laurent Guerby <laurent@guerby.net>
18805
18806         PR ada/20035
18807         * system-linux-sparc.ads: New.
18808         * Makefile.in: Add sparc linux entry.
18809
18810 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
18811
18812         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
18813         parameters as unused.
18814
18815 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
18816         Partial merge from libada-gnattools-branch:
18817
18818         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
18819         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
18820         into code in gnattools/Makefile.in.  Remove direct dependencies on
18821         stamp-tools by tools clauses.
18822         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
18823         * config-lang.in: Add gnattools to $lang_dirs.
18824
18825 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
18826
18827         PR ada/19942
18828         * utils.c (gnat_type_for_mode): Return null instead of ICE because
18829         we asked for an unknown mode.
18830
18831 2005-02-12  Richard Henderson  <rth@redhat.com>
18832
18833         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
18834         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
18835
18836 2005-02-10  Andreas Jaeger  <aj@suse.de>
18837
18838         * init.c (__gnat_initialize): Mark parameter as unused.
18839
18840 2005-02-09  Doug Rupp  <rupp@adacore.com>
18841
18842         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
18843         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
18844
18845 2005-02-09  Doug Rupp  <rupp@adacore.com>
18846
18847         * gnatchop.adb (dup, dup2),
18848         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
18849
18850         * gnatlbr.adb (mkdir),
18851         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
18852
18853         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
18854
18855 2005-02-09  Doug Rupp  <rupp@adacore.com>
18856
18857         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
18858
18859 2005-02-09  Robert Dewar  <dewar@adacore.com>
18860             Thomas Quinot  <quinot@adacore.com>
18861             Javier Miranda  <miranda@adacore.com>
18862             Pascal Obry  <obry@adacore.com>
18863             Ed Schonberg  <schonberg@adacore.com>
18864             Doug Rupp  <rupp@adacore.com>
18865             Gary Dismukes  <dismukes@adacore.com>
18866             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18867
18868         * g-zstspl.ads: New file.
18869
18870         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
18871
18872         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
18873         Ada 95 mode
18874         Add definition of Wide_Wide_Space for AI-285
18875
18876         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
18877         interface (to support Ada 95 and Ada 2005 units).
18878         Add Unbounded_IO files
18879         Add entries for Wide_Wide packages for AI-285
18880         Add list of containers packages to Ada 2005 unit list
18881
18882         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
18883         support new Unbounded_IO package cleanly.
18884
18885         * g-utf_32.ads, g-utf_32.adb: New files.
18886
18887         * Makefile.rtl: Add entry for g-utf_32
18888         Add new files for Unbounded_IO
18889         Adjust make file for new AI-285 wide wide packages
18890         Add AI-302 containers to the run time.
18891
18892         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
18893         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
18894         subprograms for AI-301.
18895
18896         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
18897
18898         * a-stunau.ads: Minor comment correction
18899
18900         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
18901         etc.
18902         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
18903         (Check_RPC): Update to match changes in expanded code.
18904         Clean up unused entity.
18905
18906         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
18907         was not taken into account.
18908         This includes proper initialization with Normalize_Scalars.
18909         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
18910         normalize scalars cases (particularly the latter) to do a better job
18911         of finding invalid representations.
18912
18913         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
18914
18915         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
18916         used
18917
18918         * exp_dist.adb: Add support for wide wide character type
18919         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
18920         private part, generate stub bodies at the end of the private part,
18921         not the visible part.
18922         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
18923         PolyORB support.
18924         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
18925         generic wrapper to execute final processing after completing the
18926         expansion of the RPC receiver for an RACW.
18927
18928         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
18929         packages and attributes.
18930         (Preset_Names): Addition of the new reserved words of Ada 2005,
18931         that is interface, overriding and synchronized.
18932         (Get_Pragma_Id): Give support to the use of the new reserved word
18933         "interface" as a pragma name.
18934         (Is_Pragma_Name): Give support to the use of the new reserved word
18935         "interface" as a pragma name.
18936         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
18937         attribute implementation.
18938
18939         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
18940         checks to entities that are output parameters of Asm operations.
18941         Handle the Stream_Size attribute.
18942         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
18943
18944         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
18945
18946         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
18947         for second parameter being 0.0.
18948         Add support for wide wide character type.
18949         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
18950
18951         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
18952         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
18953         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
18954         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
18955         for wide wide character cases.
18956
18957         * cstand.adb: Create entities for Wide_Wide_Character and
18958         Wide_Wide_String.
18959
18960         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
18961         accordance with AI-258.
18962         Add new declarations for 16/32 bit C character types (Part of AI285)
18963
18964         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
18965         (Obsolescent_Warning): New field
18966         (Rep_Clause): New local subprogram used to share code. Returns the rep
18967         clause for which the name is given in parameter.
18968         (Has_Stream_Size_Clause): New routine.
18969         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
18970         (Address_Clause): Implementation is now using Rep_Clause.
18971         (Alignment_Clause): Idem.
18972         (Size_Clause): Idem.
18973
18974         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
18975         entity in non-Ada 2005 mode and generate warning.
18976
18977         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
18978         (Prag): Code cleanup. Remove old gnat pragma "overriding"
18979
18980         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
18981         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
18982         on the named unit if the pragma is not in the current compilation unit,
18983         so that elaboration calls in the current unit can set up an elaboration
18984         dependency on the named unit, as needed.
18985         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
18986         subprogram as well as for subprograms declared within a package.
18987         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
18988         pragma overriding.
18989
18990         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
18991         to z) to avoid some instances of duplication for Wide_Wide packages.
18992
18993         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
18994         characters.
18995
18996         * scn.adb: Char_Literal_Value field is now a Uint
18997
18998         * scng.adb: Significant rewrite to handle new Ada 2005 features
18999         allowing wide and wide wide characters in program text, e.g. for
19000         identifiers, as described in AI-285.
19001         (Set_Reserved): New procedure, makes setting up keywords cleaner.
19002         (Initialize_Scanner): Register the new reserved words of Ada 2005.
19003         (Scan): Give support to the new reserved words.
19004
19005         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
19006         warning notifying that interface, overriding, and synchronized are
19007         new reserved words.
19008         (P_Pragma): Allow the use of the new reserved word "interface" as
19009         a pragma name.
19010
19011         * gnatls.adb, gnatbind.adb,
19012         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
19013         identifiers named "interface" to "SAL_Interface".
19014
19015         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
19016         (Structured Exception handling).
19017         (Gen_Main_C): Idem.
19018
19019         * bindgen.adb:
19020         (Gen_Main_Ada): Set the default exit code if specified.
19021         (Gen_Main_C): Likewise.
19022         Part of *DC20-006.
19023         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
19024         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
19025
19026         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
19027         new -Xnnn switch.
19028
19029         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
19030         has a collision with the new Ada 2005 "interface" reserved word.
19031
19032         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
19033         generate a warning notifying that interface, overriding, and
19034         synchronized are new reserved words.
19035
19036         * scans.ads (Token_Type): Addition of the tokens corresponding to the
19037         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
19038         and Tok_Synchronized.
19039
19040         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
19041         "dispatching" rather than "primitive" operations, since dispatching
19042         calls are now allowed to abstract formal subprograms (which are not
19043         primitive).
19044         Char_Literal_Value field is now a Uint
19045         (Resolve_Slice): If the prefix is an access to an unconstrained array,
19046         compute the actual subtype of the designated object to impose the proper
19047         index constraints.
19048         (Resolve_Selected_Component): Do not insert an access check if the
19049         prefix is an access type: such a node is expanded into an explicit
19050         dereference, on which the access check is performed anyway. Removes
19051         expensive duplicate checks.
19052         (Resolve_Call): Use new flag Is_Obsolescent and field
19053         Obsolescent_Warning so that pragma Obsolescent works on library
19054         subprograms.
19055         Add support for wide wide character type
19056         (Resolve_Allocator): Replace the error message on wrong null-exclusion
19057         value by a warning message.
19058         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
19059         as fixed-point, and one of the operands is non-static and universal, it
19060         can only be an illegal exponentiation operation, in which case there is
19061         no real value to retrieve.
19062
19063         * exp_strm.adb: Add support for wide wide character type
19064         (Build_Elementary_Input_Call): Compute the size of the stream element by
19065         querying the rep chain to find the Stream_Attribute attribute value.
19066         (Build_Elementary_Write_Call): Ditto.
19067
19068         * sem_aggr.adb: Char_Literal_Value field is now a Uint
19069         Add support for wide wide character type
19070         Replace the error messages on wrong null-exclusion value by warnings
19071         as described in Ada 2005.
19072         (Resolve_Extension_Aggregate): Document the fact that the error
19073         message on class-wide expressions in extensions aggregates.
19074
19075         * sem_case.adb: Add support for wide wide character type
19076
19077         * sem_ch13.adb: Add support for wide wide character type
19078         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
19079
19080         * sem_ch3.adb: Add support for wide wide character type
19081         (Process_Subtype): If constraint is illegal for the type, set Ekind of
19082         now-useless Itype, to prevent cascaded errors on a compiler built
19083         without -gnatp.
19084
19085         * sem_ch8.adb: Add with and use of Sem_Disp.
19086         (Analyze_Subprogram_Renaming): Replace unclean uses of
19087         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
19088         of Corresponding_Spec to Empty).
19089         (Attribute_Renaming): Replace use of Corresponding_Spec with
19090         Corresponding_ Formal_Spec and simplify condition.
19091         (Use_One_Package): Check that scope of homonym of identifier is defined,
19092         before checking whether it is a wrapper package.
19093         Add support for wide wide character type
19094
19095         * sem_eval.adb: Add support for wide wide character type.
19096         (Eval_Arithmetic_Op): Check for compile time known signed integer
19097         overflow in the non-static case.
19098         (Subtypes_Statically_Match): A formal scalar type and its base type do
19099         not statically match.
19100
19101         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
19102         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
19103         subtype).
19104         (Unit_Declaration_Node): Ditto.
19105         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
19106         has a packed array type, the prefix has been rewritten into a type
19107         conversion. Determine variable-ness from the converted expression.
19108         Handle wide wide character cases.
19109
19110         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
19111
19112         * stringt.ads, stringt.adb: Handle full UTF-32 range.
19113         Remove ["0A"] from comment, since it can look like a line terminator.
19114         Currently we don't permit this, but this is under discussion by the
19115         ARG, and it is easy enough to use a different example.
19116
19117         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
19118         handling UTF-32 encoding for wide wide character.
19119         Implement new brackets coding ["hhhhhhhh"]
19120         Add UTF-8 encodings for full UTF-32 range
19121
19122         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
19123
19124         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
19125         bit range Add full UTF-32 support.
19126         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
19127         notify that constraint error will be raised at run-time
19128         because a null value is assigned to a null-excluding object.
19129         Remove some obsolete declarations and make Char_Code
19130         unsigned.
19131
19132         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
19133         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
19134         Rcheck subprograms.
19135
19136         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
19137         wrong null-exclusion value by a warning message.
19138         (Enable_Range_Check): Do range check if the prefix is an
19139         explicit dereference whose designated object is an unconstrained array.
19140         Current algorithm for removing duplicate checks is over-eager in this
19141         case.
19142
19143         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
19144         null-exclusion value by a warning message
19145
19146         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
19147         completely. Add support for Uint2 field
19148
19149         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
19150         exp_prag.adb: Char_Literal_Value field is now a Uint.
19151
19152         * exp_util.adb (Insert_Actions): Replace
19153         N_Formal_Subprogram_Declaration by
19154         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
19155         Char_Literal_Value field is now a Uint.
19156
19157         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
19158         defined for subprogram renaming declarations. When set, the field
19159         indicates the defining entity of a corresponding formal subprogram
19160         when the renaming corresponds to a formal subprogram association in an
19161         instantiation.
19162         (Set_Corresponding_Formal_Spec): New procedure to return
19163         Corresponding_Formal_Spec field.
19164         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
19165         (which is now a subtype).
19166         Char_Literal_Value field is now a Uint
19167
19168         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
19169         pointer to the base of the dispatch table.
19170         Minor changes to comments.
19171         (Controlling_Type): New function for determining the tagged type
19172         associated with a tagged primitive subprogram.
19173         (Expand_Dispatching_Call): Add support for a controlling actual that is
19174         directly a value of type Ada.Tag rather than a tagged object.
19175
19176         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
19177         describing the new layout.
19178         (Dispatch_Table): The expander computes the actual array size, allocates
19179         the Dispatch_Table record accordingly, and generates code that displaces
19180         the base of the record after the Typeinfo_Ptr component. The access to
19181         these components is done by means of local functions.
19182         (Offset_To_Top): New function.
19183         (Typeinfo_Ptr): New function.
19184         (Get_TSD): Modified to access the new position of the TSD.
19185         (Set_TSD): Modified to save the TSD in its new position.
19186
19187         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
19188         case of formal abstract subprograms. Add check and message for -gnat05.
19189         Update comments.
19190
19191         * sem_ch12.adb: Add with and use for Sem_Disp.
19192         (Analyze_Associations): Minor change from "=" to "in" for use of
19193         N_Formal_Subtype_Declaration (which is now a subtype).
19194         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
19195         N_Formal_Subtype_Declaration (which is now a subtype).
19196         (Analyze_Formal_Subprogram): Add handling for
19197         N_Formal_Abstract_Subprogram, marking the formal as abstract and
19198         dispatching, setting the controlling status of the formal parameters
19199         and result, and issuing an error if there is no controlling type for
19200         the formal subprogram.
19201         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
19202         which is an unclean use of that field, we set the new field
19203         Corresponding_Formal_Spec to make the formal subprogram available to
19204         processing in Analyze_Subprogram_Declaration.
19205         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
19206         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
19207         Constrained, so that it is is does not statically match its anonymous
19208         base type.
19209
19210         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
19211         abstract formal subprograms in error check for functions returning
19212         abstract types. Set scope of new designator for
19213         a parameterless subprogram, so that it is available when checking the
19214         body for nested subprograms, before full analysis of said body.
19215         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
19216         subprogram only if inner one comes from source.
19217         (Analyze_Function_Call): If the call is given in object notation, the
19218         analysis of the name rewrites the node and analyzes it with the proper
19219         argument list. After analyzing the name, if the call has been rewritten
19220         and the result type is set, no further analysis is needed.
19221         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
19222         mark in function specification, in a context where the formals are
19223         visible and hide outer homographs.
19224
19225         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
19226         as the tagged type for the cases of abstract formal subprograms and
19227         renamings of those.  Clean up spec comments.
19228         (Check_Dispatching_Context): Add error message to indicate "abstract
19229         procedure", covering the case of a call to a formal abstract procedure
19230         that has statically tagged operands.
19231         (Check_Dispatching_Call): Check for the case of an actual given by
19232         a tag-indeterminate function call whose type is an ancestor of the
19233         containing call's associated tagged type. This situation can occur
19234         for inherited primitives with function defaults. In this case we
19235         use the tagged type's tag directly as the controlling argument for
19236         the calls.
19237         (Expand_Call): Name change on call to Expand_Dispatch_Call.
19238
19239         * sprint.adb (Sprint_Node_Actual): Split
19240         N_Formal_Subprogram_Declaration into two alternatives for the new
19241         cases N_Formal_Abstract_Subprogram_Declaration and
19242         N_Formal_Concrete_Subprogram_Declaration.
19243         Char_Literal_Value field is now a Uint.
19244
19245         * trans.c: Get rid of junk Uint2 reference.
19246         Char_Literal_Value field is now a Uint.
19247         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
19248         (gigi): Correct third arg to gimplify_body.
19249
19250         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
19251         (TYPE_LANG_FLAG_0): Check for record or union.
19252
19253         * treepr.adb: Char_Literal_Value field is now a Uint
19254
19255         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
19256         UI_From_CC.
19257
19258         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
19259         Add full UTF-32 support
19260         Char_Code is now 32 bits
19261
19262         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
19263         wide character UTF_32 line terminators.
19264         Initialize Main_Source_File to avoid error when no main
19265         source is loaded.
19266
19267         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
19268         (Main_Source_File) when no main source has been loaded, to avoid
19269         potential crash.
19270
19271 2005-02-09  Robert Dewar  <dewar@adacore.com>
19272
19273         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
19274         Fix name of Set routine
19275
19276         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
19277         fixed packages.
19278
19279         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
19280         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
19281         fixed packages
19282
19283         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
19284         forms of Get_Line subprograms for AI-301.
19285
19286         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
19287         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
19288         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
19289         a-stwima.ads: Minor reformatting.
19290
19291 2005-02-09  Doug Rupp  <rupp@adacore.com>
19292             Thomas Quinot  <quinot@adacore.com>
19293
19294         * adaint.c, adaint.h
19295         [VMS] (to_ptr32): New function.
19296         (MAYBE_TO_PTR32): New macro.
19297         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
19298         for pointer size.
19299         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
19300         [VMS] (#define fork()): Remove since unneccessary.
19301         (__gnat_set_close_on_exec): New routine to support
19302         GNAT.OS_Lib.Set_Close_On_Exec.
19303
19304         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
19305         the parent side as close-on-exec so that they are not inherited by the
19306         child.
19307
19308         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
19309         set or clear the FD_CLOEXEC flag on a file descriptor.
19310
19311 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
19312             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19313
19314         PR ada/19386
19315         * decl.c:
19316         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
19317         on the field if Pragma Component_Alignment (Storage_Unit).
19318         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
19319         side-effects as if it were a constant; also make SAVE_EXPR to protect
19320         side-effects.
19321         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
19322         UNION_TYPE.
19323         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
19324         (components_to_record): Test it.
19325         Fix improper usage of REFERENCE_CLASS_P.
19326
19327         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
19328         RECORD_TYPE.
19329
19330         * utils2.c: Minor reformatting.
19331
19332         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
19333         handle other cases like RECORD_TYPE.
19334
19335         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
19336
19337 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19338
19339         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
19340         component of an array of arrays in an assignment context, and the
19341         aggregate has component associations that require sliding on
19342         assignment, force reanalysis of the aggregate to generate a temporary
19343         before the assignment.
19344         (Must_Slide): Make global to the package, for use in Gen_Assign.
19345
19346 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19347
19348         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
19349         unchecked union with no inferable discriminants, return a
19350         Raise_Program_Error node, rather than inserting it at the point the
19351         type is frozen.
19352         (Expand_Record_Equality, Component_Equality): Handle properly the case
19353         where some subcomponent is an unchecked union whose generated equality
19354         code raises program error.
19355
19356 2005-02-09  Doug Rupp  <rupp@adacore.com>
19357
19358         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
19359         [VMS] (#define exit hack): Remove.
19360
19361 2005-02-09  Pascal Obry  <obry@adacore.com>
19362             Arnaud Charlet <charlet@adacore.com>
19363
19364         * init.c (__gnat_initialize): Add a new parameter eh which contains the
19365         address of the exception registration. The Win32 version of this
19366         routine calls __gnat_install_SEH_handler() to initialize the SEH
19367         (Structured Exception Handling) handler.
19368         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
19369         SEH (Structured Exception Handling) now.
19370         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
19371         (__gnat_initialize for ppc-vxworks): Adjust comments and the
19372         preprocessor condition protecting the call to the extra eh setup
19373         subprogram, which is only available for the ppc target.
19374         (__gnat_clear_exception_count): replaced reference to
19375         variable taskIdCurrent by call to taskIdSelf(), cleaner.
19376
19377         * seh_init.c: New file.
19378
19379         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
19380         (GNATBIND_OBJS): Idem.
19381
19382         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
19383         routine takes a new parameter (a pointer to the exception registration
19384         for the SEH (Structured Exception Handling) support.
19385
19386         * raise.h: (__gnat_install_SEH_handler): New prototype.
19387         Update copyright notice.
19388
19389         * s-tassta.adb (Task_Wrapper): Declare the exception registration
19390         record and initialize it by calling __gnat_install_SEH_handler.
19391
19392 2005-02-09  Vincent Celier  <celier@adacore.com>
19393
19394         * make.adb (Gnatmake): Do not fail when the main project has no object
19395         directory.
19396
19397 2005-02-09  Doug Rupp  <rupp@adacore.com>
19398
19399         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
19400         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
19401         [VMS]: Add translations for g-enblsp.adb.
19402
19403         * s-asthan-vms.adb: Removed.
19404         * s-asthan-vms-alpha.adb: Added.
19405
19406 2005-02-09  Pascal Obry  <obry@adacore.com>
19407
19408         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
19409         (LIBGNAT_OBJS): Add seh_init.o.
19410
19411 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19412
19413         PR ada/16592
19414         * Makefile.in: Link all gnat tools with -static-libgcc, since
19415         -shared-libgcc is now used by default on some systems (e.g. linux with
19416         recent binutils).
19417         Remove references to Makefile.prolog/generic, no longer used.
19418
19419 2005-02-09  Vincent Celier  <celier@adacore.com>
19420
19421         * prj-makr.adb (Process_Directory): Put file name in canonical case
19422         before matching against the patterns.
19423         If gnatname has been invoked as <prefix>-gnatname
19424         then invoke the compiler as <prefix>-gcc, not just "gcc".
19425
19426 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19427
19428         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
19429         with expansion disabled. The actual subtype is needed among other
19430         places when the selected component appears in the context of a loop
19431         bound, and denotes a packed array.
19432         (Operator_Check): Always use the first subtype in the
19433         error message, to avoid the appearance of internal base types.
19434         (Transform_Object_Operation): Copy each actual in full
19435         to the parameter associations of the constructed call, rather than
19436         using the shallow copy mechanism of New_Copy_List. This ensures that
19437         the chaining of named associations is done properly.
19438         (Complete_Object_Operation): Rewrite node, rather than
19439         replacing it, so that we can trace back to the original selected
19440         component.
19441
19442         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
19443         and calls that use object notation, if the called function is not
19444         declared  in a withed unit, place the elaboration constraint on the
19445         unit in the context that makes the function accessible.
19446         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
19447         imposes an elaboration constraint between two packages.
19448
19449 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19450
19451         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
19452         views of a private type after handling its private dependents, to
19453         maintain proper stack discipline between entry and exit from the
19454         package.
19455
19456 2005-02-09  Cyrille Comar  <comar@adacore.com>
19457
19458         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
19459         Minor reformatting.
19460
19461 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19462
19463         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
19464         fields for foreign threads.
19465
19466 2005-02-09  Doug Rupp  <rupp@adacore.com>
19467
19468         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
19469         recursion warnings when compiled with -gnatdm.
19470
19471 2005-02-09  Robert Dewar  <dewar@adacore.com>
19472
19473         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
19474         Slight fix to documentation of -gnaty with no parameters
19475
19476         * xr_tabls.ads: Add ??? comment for missing overall comment
19477
19478         * xsinfo.adb: Make default file name be sinfo.h, since this is what
19479         we now use by default.
19480
19481         * xsnames.adb: Adjust end of file test to look for five space followed
19482         by '#' instead of six spaces. The format of xsnames.adb was modified
19483         in the last update.
19484
19485         * a-numeri.ads: Add reference to AI-388 for greek letter pi
19486         identifier.
19487
19488         * clean.adb: Minor reformatting.
19489
19490         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
19491         gnatname.adb: Minor reformatting
19492         Add 2005 to copyright output when utility is run
19493
19494         * csets.adb: Eliminate obsolete comment
19495
19496         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
19497         Update comments.
19498
19499         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
19500
19501 2005-02-09  Sergey Rybin  <rybin@adacore.com>
19502
19503         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
19504         the difference between compact and incompact layout and add the record
19505         representation clause to the example illustrating different layouts.
19506         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
19507         component clauses").
19508
19509 2005-02-09  Florian Villoing  <villoing@adacore.com>
19510
19511         * gnat_ugn.texi: Fix typos.
19512         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
19513         @file.
19514         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
19515         in the generated documentation.
19516
19517 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19518
19519         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
19520         longer supported.
19521         Update linker wrapper when linking with non GNU C++.
19522
19523 2005-02-09  Pascal Obry  <obry@adacore.com>
19524
19525         * gnat_ugn.texi:
19526         Document the procedure to debug the DllMain routine on Windows.
19527         Add note about -funwind-tables and mixed Ada and C/C++ programming in
19528         ZCX mode.
19529         Document new BIND qualifer /RETURN_CODES=VMS.
19530
19531 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
19532
19533         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
19534         Edited gnatmetric chapter
19535
19536 2005-02-09  Robert Dewar  <dewar@adacore.com>
19537
19538         * gnat_rm.texi:
19539         Changes to document new wide wide character support
19540         For AI-285
19541         Update documentation on Normalize_Scalars and Initialize_Scalars
19542
19543 2005-02-09  Pascal Obry  <obry@adacore.com>
19544
19545         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
19546
19547 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
19548
19549         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
19550         from the VxWorks kernel) that is needed for getting the active
19551         priority of the different tasks.
19552
19553         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
19554         Use a pragma Elaborate_Body in the spec file instead.
19555         Noticed by code reading.
19556
19557 2005-02-09  Thomas Quinot  <quinot@adacore.com>
19558
19559         * exp_util.ads: Minor correction in comment.
19560
19561 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19562
19563         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
19564         since this procedure is now too complex to be worth inlining.
19565
19566 2005-02-09  Richard Henderson  <rth@redhat.com>
19567
19568         * utils.c (gnat_define_builtin): Remove.
19569         (gnat_install_builtins): Use build_common_builtin_nodes.
19570
19571 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19572
19573         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
19574         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
19575         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
19576         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
19577         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
19578         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
19579         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
19580         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
19581         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
19582         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
19583         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
19584         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
19585         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
19586         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
19587         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
19588         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
19589         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
19590         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
19591         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
19592         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
19593         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
19594         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
19595         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
19596         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
19597         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
19598         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
19599         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
19600         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
19601         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
19602         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
19603         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
19604         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
19605         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
19606         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
19607         library.
19608
19609 2005-01-27  Laurent GUERBY <laurent@guerby.net>
19610
19611         * Makefile.in: Fix a-intnam.ads from previous commit,
19612         add 2005 to copyright.
19613         * a-intman-rtems.ads: Renamed to...
19614         * a-intnam-rtems.ads:
19615
19616 2005-01-27  Laurent GUERBY <laurent@guerby.net>
19617
19618         * Makefile.in: Rename GNAT RTEMS specific files.
19619         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
19620         5rosinte.ads, 5rparame.adb: Replaced by files below.
19621         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
19622         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
19623
19624 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
19625             Laurent GUERBY <laurent@guerby.net>
19626
19627         PR ada/19488
19628         * 5rosinte.ads: Add No_Key constant.
19629         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
19630         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
19631
19632 2005-01-26  Laurent GUERBY <laurent@guerby.net>
19633
19634         PR ada/19414
19635         * i-cobol.adb (Valid_Numeric): Handle zero length case.
19636
19637 2005-01-20  Richard Henderson  <rth@redhat.com>
19638
19639         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
19640         a-intnam-linux.ads and system-linux-alpha.ads.
19641         * a-intnam-linux-alpha.ads: Remove file.
19642         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
19643         * system-linux-alpha.ads: New file.
19644
19645 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
19646
19647         PR ada/13470
19648         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
19649         set to the new string.
19650
19651 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
19652
19653         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
19654         to True.
19655
19656 2005-01-18  Richard Henderson  <rth@redhat.com>
19657
19658         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
19659         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
19660         for alpha-linux.
19661         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
19662
19663 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
19664
19665         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
19666         (GCC_ZCX_Support): Likewise.
19667
19668 2005-01-11  Bastian Blank  <waldi@debian.org>
19669
19670         * system-linux-s390.ads: Define Preallocated_Stacks.
19671         * system-linux-s390x.ads: Likewise.
19672
19673 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
19674
19675         * gnat_ugn.texi: Fix texi errors with null variables.
19676
19677 2005-01-03  Thomas Quinot  <quinot@adacore.com>
19678
19679         * gen-soccon.c: New utility program to generate g-soccon.ads
19680         automatically.
19681
19682         * socket.c, gsocket.h: Split inclusion of system header files into a
19683         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
19684
19685         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
19686         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
19687         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
19688         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
19689         should not be edited by hand anymore, but should be regenerated using
19690         gen-soccon.
19691
19692 2005-01-03  Robert Dewar  <dewar@adacore.com>
19693             Ed Schonberg  <schonberg@adacore.com>
19694             Vincent Celier  <celier@adacore.com>
19695
19696         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
19697         on/off, since this is an obsolescent feature, for which we now generate
19698         a warning.
19699
19700         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
19701         warning mode is set and obsolescent usage of this attribute occurs.
19702         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
19703         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
19704         predates, and partly motivates, the adoption of the AI.
19705         Implement new Ada 2005 attribute Mod
19706
19707         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
19708         attribute Mod.
19709
19710         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
19711
19712         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
19713         pragma restrictions.
19714         New entry for Ada 2005 attribute Mod.
19715
19716         * par-prag.adb:
19717         Add recognition of new pragma Restrictions No_Dependence
19718         Recognize restriction No_Obsolescent_Features at parse time
19719
19720         * bcheck.adb: Add circuitry for checking for consistency of
19721         No_Dependence restrictions.
19722
19723         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
19724         restrictions.
19725
19726         * restrict.ads, restrict.adb: Add subprograms to deal with
19727         No_Dependence restrictions.
19728
19729         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
19730         restrictions.
19731
19732         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
19733         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
19734
19735         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
19736         dummy parameter to scng instantiation.
19737         Needed for new restriction No_Obsolescent_Features
19738
19739         * scn.adb: (Obsolescent_Check): New procedure
19740         Needed for new restriction No_Obsolescent_Features
19741
19742         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
19743         specified by AI-285, needed for implementation of AI-388 (adding greek
19744         pi to Ada.Numerics).
19745         Add new generic formal to scng, needed for new restriction
19746         No_Obsolescent_Features.
19747
19748         * s-rident.ads: Add new restriction No_Obsolescent_Features.
19749
19750         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
19751         restrictions lines.
19752         (Scan_ALI): When finding an unexpected character on an R line, raise
19753         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
19754         Ignore_Errors is True, default restrictions are set and scanning of the
19755         ALI file continues with the next line. Also, when Bad_R_Line is raised
19756         and Ignore_Errors is True, skip to the end of le line.
19757
19758         * sem_ch10.adb: Check that explicit with's do not violate
19759         No_Dependence restrictions.
19760         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
19761         illegal context clauses containing child units of instance.
19762
19763         * sem_prag.adb: Processing and checking for new No_Dependence
19764         restrictions.
19765         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
19766         analyze and check the External argument.
19767
19768         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
19769
19770 2005-01-03  Robert Dewar  <dewar@adacore.com>
19771
19772         * atree.adb: Add a fifth component to entities
19773         This allows us to add 32 flags and four new fields
19774
19775         * atree.ads: Add a fifth component to entities
19776         This allows us to add 32 flags and four new fields
19777
19778         * einfo.ads, einfo.adb: Document new fields and new flags now available
19779         Add routines for printing new fields
19780
19781         * treepr.adb: Call routines to print out additional fields if present
19782
19783 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
19784
19785         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
19786         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
19787
19788         * Makefile.in: Add support to build shared Ada libraries on solaris x86
19789         Remove gpr2make, replaced by gprmake.
19790         Remove references to gnatmem and libaddr2line.
19791         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
19792         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
19793         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
19794         a-numaux-darwin.ads and a-numaux-darwin.adb
19795         Enable mlib-tgt-lynxos.adb on lynxos.
19796
19797         * Make-lang.in: Remove rules for gpr2make.
19798         When generating sdefault.adb, do not call Relocate_Path
19799         on S3 for function Target_Name, as it is not a path.
19800         Remove references to gnatmem and libaddr2line.
19801
19802         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
19803         files.
19804
19805 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
19806
19807         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
19808         address is incompatible with its base type alignment constraints when
19809         this can be decided statically.
19810
19811 2005-01-03  Olivier Hainque  <hainque@adacore.com>
19812
19813         * decl.c (compatible_signatures_p): New function. The intended purpose
19814         is to check if two function signatures for a call-site and a callee are
19815         compatible enough for the call to be valid. The underlying purpose is
19816         to check if a call to a mapped builtin is using the right interface.
19817         The current code actually does not check antyhing - this a placeholder
19818         for future refinements.
19819         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
19820         builtin calls for convention Intrinsic.
19821
19822         * gigi.h (builtin_decl_for): Declare (new function).
19823
19824         * utils.c (gnat_install_builtins): Install the target specific builtins.
19825         (builtin_decl_for): New function, provide a dummy body for now.
19826
19827 2005-01-03  Geert Bosch  <bosch@adacore.com>
19828
19829         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
19830         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
19831         (Pred): Implement in terms of Succ.
19832
19833         * trans.c (convert_with_check): Reimplement conversion of float to
19834         integer.
19835
19836 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
19837             Vincent Celier  <celier@adacore.com>
19838
19839         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
19840         bounds can be negative, and must be declared Int, not Nat.
19841
19842         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
19843         array is checked after using the index in the array.
19844
19845         * makegpr.adb (Add_Switches): Check if there is a package for the
19846         processor. If there is no package, do not look for switches.
19847
19848 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
19849
19850         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
19851         generation of predefined stream operations (specs and bodies) should
19852         proceed. Under various restrictions these subprograms must not be
19853         generated.
19854
19855 2005-01-03  Thomas Quinot  <quinot@adacore.com>
19856
19857         * exp_dist.adb:
19858         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
19859         amount of PCS-specific code in RACW stubs generation.
19860         (Copy_Specification): Set Etype on copied formal parameter entities, as
19861         this information is needed for PolyORB stubs generation.
19862         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
19863         variable Dynamic_Async.
19864         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
19865         (Build_RPC_Receiver_Specification): Make generic again, as recent
19866         changes have allowed RPC receivers to have the same profile for both
19867         variants of the PCS.
19868         Reorganise RPC receiver generation to reduce differences between the
19869         structure of GARLIC and PolyORB RPC receivers.
19870         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
19871         PCS-specific.
19872         Simplify elaboration code for RCI packages.
19873
19874         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
19875         generation to reduce differences between the structure of GARLIC and
19876         PolyORB RPC receivers.
19877
19878         * s-stratt.adb: Fix typo in comment.
19879
19880 2005-01-03  Thomas Quinot  <quinot@adacore.com>
19881
19882         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
19883         copied from Make_Init_Call).
19884
19885         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
19886         reads and assignments on a temporary variable declared with appropriate
19887         discriminants.
19888
19889 2005-01-03  Robert Dewar  <dewar@adacore.com>
19890
19891         * i-c.adb (To_C): Raise CE if string is null and Append_Null
19892
19893 2005-01-03  Robert Dewar  <dewar@adacore.com>
19894
19895         * i-cstrin.adb (Update): Do not append a null in form called with a
19896         String. This avoids unintended behavior.
19897
19898 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
19899
19900         PR ada/17527
19901         * init.c: Fix warnings on Free BSD section.
19902
19903 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
19904
19905         PR ada/16949
19906         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
19907         xsinfo.adb).
19908
19909 2005-01-03  Vincent Celier  <celier@adacore.com>
19910
19911         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
19912         libraries when Unique_Compile is True (-u switch).
19913         (Gnatmake): ditto.
19914
19915 2005-01-03  Robert Dewar  <dewar@adacore.com>
19916
19917         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
19918         upper case letter or underscore after W, as allowed by spec.
19919
19920 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
19921
19922         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
19923         darwin port by using proper type definitions from header files.
19924         Use SIGTERM instead of SIGABRT for SIGADAABORT.
19925
19926 2005-01-03  Robert Dewar  <dewar@adacore.com>
19927
19928         * par.adb: Enhance error message handling for configuration file
19929         pragmas.
19930
19931 2005-01-03  Robert Dewar  <dewar@adacore.com>
19932
19933         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
19934         removed during the previous update (test properly for case of dividing
19935         largest negative number by -1, which generates overflow).
19936
19937 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
19938             Sergey Rybin  <rybin@adacore.com>
19939
19940         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
19941         to use as the defining identifier for a formal package.
19942         (Remove_Parent): If the instance takes place within (an instance of)
19943         a sibling, preserve private declarations of common parent.
19944
19945 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
19946
19947         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
19948         to determine whether one of the operands is a fixed-point type for
19949         which a user-defined multiplication or division operation might be
19950         defined.
19951
19952         * sem_res.adb (Valid_Conversion): The legality rules for conversions
19953         of access types are symmetric in Ada 2005: either designated type can
19954         be unconstrained.
19955
19956 2005-01-03  Vincent Celier  <celier@adacore.com>
19957
19958         * s-fileio.adb (Temp_File_Record): Change length of string component
19959         Name from L_tmpnam + 1 to max_path_len + 1.
19960
19961 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
19962
19963         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
19964         Self_Id.Deferral_Level = 0.
19965         (Do_Pending_Action): Move this function to the spec.
19966
19967         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
19968         Do_Pending_Action explicitely when needed, in case we're using
19969         No_Abort restrictions.
19970
19971         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
19972         deferral level since it will not get changed by the generated code.
19973         Keeping a default value of 1 would prevent some operations (e.g.
19974         select or delay) to proceed successfully.
19975
19976 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
19977             Robert Dewar  <dewar@adacore.com>
19978             Cyrille Comar  <comar@adacore.com>
19979
19980         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
19981         porting guide chapter (vms version).
19982         Revised doc title (removed "for native platforms") and subtitle.
19983         Add discussion on warning flag for obsolescent features. First we
19984         note that it applies to obsolete GNAT features, which was previously
19985         omitted. Second we contrast the behavior with that of the new
19986         Ada 2005 AI-368 restriction No_Obsolescent_Features.
19987         Preliminary rewriting of GNAT & libraries chapter in order to take
19988         into account default project locations & new project manager
19989         capabilities.
19990
19991 2005-01-03  Robert Dewar  <dewar@adacore.com>
19992
19993         * cstand.adb (Create_Operators): Clean up format and documentation of
19994         unary and binary operator result tables. No change in code, just
19995         reformatting and addition of comments.
19996
19997         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
19998         sem_ch2.adb: Minor reformatting
19999
20000         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
20001         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
20002         comments for Tree_Read and Tree_Write.
20003
20004 2005-01-03  Pascal Obry  <obry@adacore.com>
20005
20006         * exp_attr.ads: Minor reformatting.
20007
20008 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
20009
20010         * comperr.adb (Compiler_Abort): Add specialized message for GAP
20011         versions.
20012
20013 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
20014
20015         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
20016         whether the ancestor type is private, as may be the case with nested
20017         instantiations.
20018
20019 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
20020
20021         PR ada/19128
20022         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
20023
20024 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
20025
20026         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
20027         * utils2.c (build_unary_op): Likewise.
20028
20029 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20030
20031         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
20032
20033 2004-12-19  Richard Henderson  <rth@redhat.com>
20034
20035         * trans.c (gigi): Update gimplify_body call.
20036
20037 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
20038
20039         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
20040
20041 2004-12-07  Ed Falis  <falis@adacore.com>
20042
20043         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
20044         current task being suspended.
20045
20046         * init.c (__gnat_clear_exception): added to reset VxWorks exception
20047         count.
20048         (__gnat_map_signal): removed test for current task being suspended.
20049
20050 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
20051
20052         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
20053         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
20054         targets (such as AAMP).
20055
20056 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20057
20058         * atree.adb (Visit_Itype): Create a new name for the generated itype,
20059         because the back-end may otherwise treat it as a redefinition of the
20060         old symbol.
20061
20062 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
20063
20064         * back_end.adb (Scan_Back_End_Switches): Accept --param.
20065
20066         * lang-specs.h: Accept --param.
20067
20068 2004-12-07  Vincent Celier  <celier@adacore.com>
20069
20070         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
20071         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
20072         Current_Body_Suffix => Ada_Body_Suffix).
20073         Take into account Externally_Built attribute.
20074
20075         * clean.adb (In_Extension_Chain): Always return False when one of the
20076         parameter is No_Project.
20077         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
20078         Ada_Language_Index).
20079         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
20080         Process_Languages for procedure Parse).
20081
20082         * gnatcmd.adb (Carg_Switches): New table.
20083         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
20084         Adapt to name changes in package Prj (Current_Spec_Suffix =>
20085         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
20086
20087         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
20088         Header_Num and function Hash are now declared in package Prj,
20089         not Prj.Com.
20090
20091         * prj.adb (Suffix_Of): New function.
20092         (Set (Suffix)): New procedure.
20093         (Hash): One function moved from Prj.Com
20094         (Is_Present, Language_Processing_Data_Of): New functions
20095         (Set): Two new procedures
20096         (Add_Language_Name, Display_Language_Name): New procedures
20097
20098         * prj.ads: (Suffix_Of): New function
20099         (Set (Suffix)): New procedure
20100         Add several types and tables for multi-language support.
20101         (Header_Num): Type moved from Prj.Com
20102         (Hash): Two functions moved from Prj.Com
20103         (Is_Present, Language_Processing_Data_Of): New functions
20104         (Set): Two new procedures
20105         (Add_Language_Name, Display_Language_Name): New procedures
20106         (Naming): Component name changes:
20107         Current_Spec_Suffix => Ada_Spec_Suffix,
20108         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
20109         Impl_Suffixes, Supp_Suffixes.
20110         (Project_Data): New components: Externally_Built, Supp_Languages,
20111         First_Language_Processing, Supp_Language_Processing, Default_Linker,
20112         Default_Linker_Path.
20113
20114         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
20115         new package Language_Processing with its attributes (Compiler_Driver,
20116         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
20117         Binder_Driver, Default_Linker).
20118
20119         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
20120         (Header_Num): Type moved to package Prj
20121
20122         * prj-env.adb: Adapt to name changes in package Prj
20123         (Current_Spec_Suffix => Ada_Spec_Suffix,
20124         Current_Body_Suffix => Ada_Body_Suffix).
20125
20126         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
20127         default to the project path, except the "-" is one of the directories
20128         in env var ADA_PROJECT_PATH.
20129         (Current_Project_Path): Global variable, replacing Project_Path
20130         that was in the body of Prj.Part.
20131         (Project_Path): New function
20132         (Set_Project_Path): New procedure
20133         Initialize Current_Project_Path during elaboration of the package
20134         Remove dependency on Prj.Com, no longer needed
20135
20136         * prj-ext.ads (Project_Path): New function
20137         (Set_Project_Path): New procedure
20138
20139         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
20140         suffix is defined for language <lang>.
20141         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
20142         accessing directly the components of Naming.
20143         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
20144         Reorganise of this package.
20145         Break procedure Check in several procedures.
20146
20147         * prj-nmsc.ads: Replace all procedures (Ada_Check,
20148         Other_Languages_Check and Language_Independent_Check) with a single
20149         procedure Check.
20150
20151         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
20152         Process_Languages, no longer needed.
20153
20154         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
20155         Current_Project_Path.
20156         Remove elaboration code, moved to the body of Prj.Ext
20157         Use new function Prj.Ext.Project_Path instead of old variable
20158         Project_Path.
20159         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
20160         When comparing with project paths on the stack, first put the resolved
20161         path in canonical case.
20162         (Parse_Single_Project): Set the path name of the project file in the
20163         tree to the normalized path.
20164
20165         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
20166         parameter Process_Languages, no longer needed.
20167         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
20168         Other_Languages_Check.
20169
20170         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
20171         to store the resolved canonical path of the project file.
20172         Remove dependency to Prj.Com, no longer needed
20173
20174         * prj-util.adb: Adapt to name changes in package Prj
20175         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
20176         Ada_Body_Suffix).
20177
20178         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
20179         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
20180         Externally_Built, Include_Option, Language_Processing.
20181
20182         * makegpr.adb: Numerous changes due to changes in packages
20183         Prj and Prj.Nmsc.
20184
20185         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
20186         default to the project path, except whe "-" is one of the directories
20187         in env var ADA_PROJECT_PATH.
20188         (Gnatls): In verbose mode, add the new section "Project Search Path:"
20189
20190 2004-12-07  Robert Dewar  <dewar@adacore.com>
20191
20192         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
20193
20194         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
20195         set -gnatR3m mode.
20196
20197         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
20198         flag. No longer needed now that we handle this in gnat1drv.adb.
20199
20200         * repinfo.ads: Minor reformatting
20201
20202 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20203             Olivier Hainque  <hainque@adacore.com>
20204             Eric Botcazou  <ebotcazou@adacore.com>
20205
20206         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
20207         TYPE_SIZE_UNIT of result type if SIZE is not specified.
20208         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
20209         of a bitfield, which we know is useless and causes trouble because of
20210         alignment implications.
20211
20212         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
20213         BSS sections.
20214         (process_attributes): Clear DECL_COMMON again when a section attribute
20215         is present.
20216         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
20217         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
20218         (create_field_decl): Special case ADDRESSABLE negative to mean
20219         "no bitfield creation", to be used by make_aligning_type. Don't
20220         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
20221         fields claimed addressable still have to be bitfields. Use
20222         value_factor_p instead of a raw binop construction to check for the
20223         position's alignment.
20224
20225 2004-12-07  Geert Bosch  <bosch@adacore.com>
20226
20227         * eval_fat.adb: Revert previous change.
20228
20229 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20230             Ed Schonberg  <schonberg@adacore.com>
20231
20232         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
20233         with an implicit dereference as its prefix, use
20234         Insert_Explicit_Dereference instead of merely rewriting the prefix into
20235         an explicit dereference. This ensures that a reference to the original
20236         prefix is generated, if appropriate.
20237
20238         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
20239         dereference is rewritten to an explicit one, generate a reference to
20240         the entity denoted by its prefix using the original prefix node, so
20241         the dereference can be properly recorded as a read of the denoted
20242         access value, if appropriate.
20243
20244         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
20245         emitting 'assigned but never read' warning on a variable on the basis
20246         that it has an access type.
20247         (Check_References): Emit unreferenced warning when the scope is a
20248         subprogram body.
20249
20250 2004-12-07  Robert Dewar  <dewar@adacore.com>
20251             Ed Schonberg  <schonberg@adacore.com>
20252
20253         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
20254         intrinsic
20255
20256         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
20257         leaving call unchanged.
20258         This deals with the case where the pragma Import specified
20259         an external name, to be handled by the back end.
20260
20261         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
20262         subprogram which is Imported with convention Intrinsic if an
20263         External_Name argument is specified.
20264         (Process_Import_Or_Interface): Properly diagnose link name argument.
20265         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
20266         with Sem_Ch6.Cannot_Inline.
20267         (Process_Inline): Provide separate warning for inapplicable inline
20268         pragma.
20269         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
20270         treatment is uniform on different targets.
20271
20272 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20273
20274         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
20275         construct is rewritten, preserve end label to permit source navigation.
20276
20277 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20278
20279         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
20280         Specific_Build_Stub_Target): New subprograms.
20281         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
20282         the PCS implementation used, using the above PCS-customized subprograms.
20283         Minor reformatting.
20284         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
20285         for generation of DSA code targeted to the PolyORB PCS.
20286         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
20287         implementation of the partition communication subsystem in ancillary
20288         subprograms.
20289         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
20290         PolyORB_Support.Build_Stub_Type): New subrograms containing the
20291         PCS-specific part of Add_Stub_Type.
20292         (Insert_Partition_Check): Use runtime library function to perform
20293         E.4(19) check.
20294
20295         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
20296         (RE_Same_Partition): New entity, from s-parint.
20297
20298         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
20299
20300 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
20301
20302         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
20303         Output the copyright message on a separate line from the version
20304         message.
20305
20306 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
20307
20308         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
20309         compile-time warning.
20310
20311 2004-12-07  Robert Dewar  <dewar@adacore.com>
20312
20313         * g-regpat.adb: (Match): Change a misuse of or to or else
20314
20315 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20316
20317         * lib-xref.adb:
20318         (Generate_Reference): Handle properly a reference to an entry formal,
20319          when an accept statement has a pragma Unreferenced for it.
20320
20321         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
20322         and the Has_Pragma_Unreferenced flag for each formal before analyzing
20323         the body, to ensure that warnings are properly emitted for each accept
20324         statement of a given task entry.
20325
20326 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
20327
20328         * Makefile.in: Add support for foreign threads on VMS.
20329
20330 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20331
20332         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
20333         Remove.
20334         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
20335
20336         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
20337
20338         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
20339         exception.
20340         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
20341
20342 2004-12-07  Robert Dewar  <dewar@adacore.com>
20343
20344         * nlists.adb (Prepend_Debug): Remove parameters and nest within
20345         Prepend.
20346         (Remove_Next_Debug): Same fix
20347
20348         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
20349         maintain back pointers now, though we did not used to, and comments
20350         were out of date).
20351         (Prepend): Remove pragma Inline.
20352         (Remove_Next): Same cleanup
20353
20354 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20355
20356         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
20357         used to record an implicit dereference as a read operation on its
20358         prefix when operating under -gnatc. Necessary to avoid spurious
20359         'variable assigned but never read' warnings in that mode.
20360         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
20361         is a non-overloaded implicit dereference, call the above subprogram to
20362         ensure proper recording of references.
20363
20364 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
20365
20366         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
20367         to be resolved later as part of Analyze_Iteration_Scheme's call to
20368         Make_Index.
20369
20370 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20371
20372         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
20373         prefix is not a scalar type, place error message on prefix, not on
20374         type entity.
20375
20376 2004-12-07  Bernard Banner  <banner@adacore.com>
20377
20378         * vxaddr2line.adb: Add support for x86 vxworks
20379
20380 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20381
20382         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
20383         documentation of the behaviour of these functions when passed an IP
20384         address that has no record in the system hosts database and no reverse
20385         record in the DNS.
20386
20387         * cstand.adb, a-tags.ads: Fix typos in comment.
20388
20389 2004-12-07  Robert Dewar  <dewar@adacore.com>
20390
20391         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
20392         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
20393         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
20394         s-poosiz.ads: Minor reformatting
20395
20396         * make.adb: Minor reformatting
20397         Add some ??? comments asking for more comments
20398
20399         * s-poosiz.adb: Minor reformatting
20400         Add comments on alignment requirement
20401
20402         * sinfo.ads: Remove obsolete comment and fix typo.
20403
20404 2004-12-07  Vincent Celier  <celier@adacore.com>
20405             Sergey Rybin  <rybin@adacore.com>
20406
20407         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
20408         Files" with the new tool and package names.
20409         Reformatting to suppress most of the warnings for line too long
20410         Document the new section "Project Search Path:" in the output of
20411         gnatls -v.
20412         Add gnatmetric section
20413
20414 2004-12-07  Vincent Celier  <celier@adacore.com>
20415
20416         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
20417         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
20418         and -eit to -ept. Added qualifier
20419         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
20420
20421 2004-11-27  Andreas Schwab  <schwab@suse.de>
20422
20423         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
20424
20425 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
20426
20427         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
20428         internal implementation unit GNAT.Sockets.Thin,
20429         as their usage for sockets is non-portable (using the read and write
20430         functions from the system runtime library is fine on UNIX but won't
20431         work under Windows).
20432
20433         * mingw32.h: Update copyright notice.
20434
20435 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
20436
20437         * ada-tree.h: Minor reformatting of previous change to avoid lines
20438         longer than 79 characters.
20439
20440 2004-11-25  Olivier Hainque  <hainque@adacore.com>
20441
20442         * tb-gcc.c: GCC infrastructure based implementation of
20443         __gnat_backtrace.
20444
20445 2004-11-24  Steven Bosscher  <stevenb@suse.de>
20446
20447         * misc.c (gnat_post_options): Don't clear
20448         flag_inline_functions.
20449
20450 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
20451
20452         PR ada/17986
20453         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
20454         tree.
20455
20456 2004-11-21  Andreas Jaeger  <aj@suse.de>
20457
20458         * stylesw.adb: Change Style_Check_Subprogram_Order to
20459         Style_Check_Order_Subprograms.
20460
20461 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
20462
20463         * adaint.h, adaint.c
20464         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
20465         to avoid warnings.
20466         Add also a cast to kill another warning.
20467         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
20468         parameter with the priority class of the parent process instead of
20469         always using the NORMAL_PRIORITY_CLASS.
20470         (__gnat_dup): New function.
20471         (__gnat_dup2): New function.
20472         (__gnat_is_symbolic_link): Enable the effective body of this
20473         function when __APPLE__ is defined.
20474
20475         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
20476         Update comments.
20477
20478 2004-11-18  Olivier Hainque  <hainque@adacore.com>
20479
20480         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
20481         address of which may be used to represent "others" and "all others"
20482         choices in exception tables, instead of the current harcoded
20483         (void *)0 and (void *)1.
20484         (Setup_Exception): Do nothing in the GNAT SJLJ case.
20485
20486         * gigi.h (others_decl, all_others_decl): New decls representing the
20487         new Others_Value and All_Others_Value objects.
20488         (struct attrib): Rename "arg" component as "args", since GCC expects a
20489         list of arguments in there.
20490
20491         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
20492         corresponding objects exported by a-exexpr, instead of hardcoded dummy
20493         addresses.
20494
20495         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
20496         others_decl and all_others_decl instead of hardcoded dummy addresses
20497         to represent "others" and "all others" choices, which is cleaner and
20498         more flexible with respect to the possible eh pointer encoding policies.
20499
20500         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
20501         (process_attributes): Account for the naming change of the "args"
20502         attribute list entry component.
20503
20504         * decl.c (build_attr_list): Rename into prepend_attributes to allow
20505         cumulating attributes for different entities into a single list.
20506         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
20507         attributes for the current entity and propagate first subtype
20508         attributes to other subtypes.
20509         <E_Procedure>: Attribute arguments are attr->args and not
20510         attr->arg any more.
20511         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
20512         argument provided, as this is what GCC expects. Use NULL_TREE instead
20513         of 0 for trees.
20514
20515 2004-11-18  Robert Dewar  <dewar@adacore.com>
20516
20517         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
20518         Minor reformatting througout (including new function specs)
20519         Add ??? comments asking for clarification.
20520
20521 2004-11-18  Thomas Quinot  <quinot@adacore.com>
20522
20523         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
20524         incomplete duplicate implementation of this subprogram from butil.
20525
20526 2004-11-18  Thomas Quinot  <quinot@adacore.com>
20527
20528         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
20529         procedures factors the common processing for building an RPC receiver
20530         for an RCI package or an RACW type.
20531         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
20532         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
20533         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
20534         in use.
20535         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
20536         Add_RACW_Features.
20537         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
20538         Add_RAST_Features.
20539         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
20540         distribution subprogram identifiers that are either subprogram numbers
20541         or strings.
20542         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
20543         string distribution identifiers assigned to a given subprogram.
20544         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
20545         (Add_RAS_Dereference_TSS): Add comments.
20546         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
20547         is not referenced yet because it will be used by the PolyORB DSA
20548         implementation.
20549         (Insert_Partition_Check): Remove fossile code.
20550         (First_RCI_Subprogram_Id): Document this constant.
20551         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
20552         RAS_Access TSS.
20553         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
20554         replaced with calls to Get_Library_Unit_Name_String. Previously there
20555         were several instances of the same code in different locations in the
20556         compiler; this checkin completes the replacement of all of these
20557         instances with calls to a common subprogram.
20558         Minor reformatting.
20559
20560         * sem_dist.adb: Remove comment noting that RPC receiver generation
20561         should be disabled for RACWs that implement RASs.
20562         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
20563
20564         * sem_util.ads, sem_util.adb (Has_Stream): New function
20565         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
20566         qualified name of a library unit into the name buffer.
20567         (Note_Possible_Modification): Generate a reference only
20568         if the context comes from source.
20569
20570         * snames.ads (PCS_Names): New subtype corresponding to names of
20571         supported implementations of the Partition Communication Subsystem
20572         (PCS) (i.e. the runtime library support modules for the distributed
20573         systems annex).
20574
20575 2004-11-18  Robert Dewar  <dewar@adacore.com>
20576             Ed Schonberg  <schonberg@adacore.com>
20577
20578         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
20579         (Has_Rep_Pragma): New function
20580         (Has_Attribute_Definition_Clause): New function
20581         (Record_Rep_Pragma): Moved here from sem_ch13.adb
20582         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
20583
20584         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
20585
20586         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
20587         (Expand_Pragma_Psect_Object): New procedure
20588         These procedures contain the revised and cleaned up processing for
20589         these two pragmas. This processing was formerly in Sem_Prag, but
20590         is more appropriately moved here. The cleanup involves making sure
20591         that the pragmas are properly attached to the tree, and that no
20592         nodes are improperly shared.
20593
20594         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
20595         pragmas to Exp_Prag, which is more appropriate.
20596         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
20597         check for duplicates Remove use of Is_Psected flag, no longer needed.
20598         Use new Make_String_Literal function with string.
20599
20600         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
20601         that are functions return universal values, that have to be converted
20602         to the context type.
20603         Use new Make_String_Literal function with string.
20604         (Get_Stream_Convert_Pragma): New function, replaces the use of
20605         Get_Rep_Pragma, which had to be kludged to work in this case.
20606
20607         * freeze.adb: Use new Has_Rep_Pragma function
20608
20609         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
20610         function with string.
20611         Use new Has_Rep_Pragma function.
20612
20613         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
20614         string argument.
20615
20616 2004-11-18  Robert Dewar  <dewar@adacore.com>
20617
20618         * errout.ads, errout.adb: (First_Sloc): New function
20619
20620         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
20621         check (-gnatyx) instead of being included as a redundant construct
20622         warning.
20623
20624         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
20625         Style_Check_Order_Subprograms.
20626
20627         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
20628         stylesw.adb: Add Style_Check_Xtra_Parens
20629
20630         * usage.adb: Add line for -gnatyx (check extra parens)
20631
20632         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
20633
20634 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
20635             Robert Dewar  <dewar@adacore.com>
20636
20637         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
20638         discriminant of a constrained subtype, analyze the copy of the
20639         corresponding constraint, because in some cases it may be only
20640         partially analyzed.
20641         Removes long-lived ??? comments.
20642
20643         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
20644         handled controlled or secondary-stack expressions within the
20645         iteration_scheme of a loop.
20646
20647         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
20648         bounds that may contain functions calls, to prevent memory leaks when
20649         the bound contains a call to a function that uses the secondary stack.
20650         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
20651         generate temporaries for loop bounds that might contain function calls
20652         that require secondary stack and/or finalization actions.
20653
20654         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
20655         selected component and the selector is overloadable (not just a
20656         function) treat as function call, Analyze_Call will disambiguate if
20657         necessary.
20658         (Analyze_Selected_Component): Do not generate an actual subtype for the
20659         selected component if expansion is disabled. The actual subtype is only
20660         needed for constraint checks.
20661         (Analyze_Allocator): If restriction No_Streams is set, then do
20662         not permit objects to be declared of a stream type, or of a
20663         composite type containing a stream.
20664
20665         * restrict.ads: Remove the a-stream entry from Unit_Array, since
20666         No_Streams no longer prohibits with'ing this package.
20667
20668         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
20669         discriminants, but the parent base has unknown discriminants, there is
20670         no discriminant constraint to inherit. Such a discrepancy can arise
20671         when the actual for a formal type with unknown discriminants is a
20672         similar private type whose full view has discriminants.
20673         (Analyze_Object_Declaration): If restriction No_Streams is set, then
20674         do not permit objects to be declared of a stream type, or of a
20675         composite type containing a stream.
20676
20677 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
20678
20679         * exp_dbug.ads: Update documentation to reflect simpler encoding for
20680         protected operations.
20681
20682         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
20683         generated name, it complicates decoding in gdb and hinders debugging
20684         of protected operations.
20685         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
20686         flag for the protected entry barrier function.
20687         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
20688         flag for the protected entry function.
20689
20690 2004-11-18  Nicolas Setton  <setton@adacore.com>
20691
20692         * expect.c: Define __unix__ when __APPLE__ is defined.
20693
20694         * Makefile.in: Inform the value of the variable GMEM_LIB in the
20695         Darwin-specific section.
20696
20697         * lang-specs.h: Change the placement of the %1 marker.
20698         Works around the fact that gcc adds -fPIC by default under Darwin.
20699
20700 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
20701
20702         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
20703         type of the object with the packed array type, set the Analyzed flag
20704         on the object if it is an entity or simple indexed component, to avoid
20705         spurious type errors.
20706
20707 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
20708
20709         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
20710         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
20711         separate line from the version message.
20712
20713 2004-11-18  Ed Falis  <falis@adacore.com>
20714
20715         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
20716         vthreads.
20717         (init_float): Eliminate initialization of floating point status for
20718         AE653. The instructions have no effect for vThreads.
20719
20720 2004-11-18  Vincent Celier  <celier@adacore.com>
20721
20722         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
20723         gnatbind is invoked with -shared.
20724
20725 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
20726
20727         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
20728         for Detect_Blocking which is redundant with the check done within the
20729         procedure Protected_Single_Entry_Call.
20730         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
20731         Detect_Blocking which is redundant with the check done within the
20732         procedure Protected_Single_Entry_Call.
20733
20734 2004-11-18  Vincent Celier  <celier@adacore.com>
20735
20736         * makegpr.adb (Compile): Put the compiling switches (in package
20737         Compiler and on the command line) immediately after "-c", instead of
20738         at the end of the command line invocation of the compiler, when
20739         compiling a non-Ada file.
20740         (Build_Global_Archive): When there is no need to rebuild the archive,
20741         set Global_Archive_Exists, so that the archive is passed to the linker
20742         if one is needed.
20743
20744 2004-11-18  Robert Dewar  <dewar@adacore.com>
20745             Sergey Rybin  <rybin@adacore.com>
20746
20747         * gnat_ugn.texi:
20748         Remove extra paren check from list of checks for redundant constructs
20749         Add documentation of new -gnatyx style check (check extra parens)
20750         Remove paragraph about gnatelim debug options.
20751
20752         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
20753         objects rather than forbidding dependencies on the package Ada.Streams.
20754
20755         * sinfo.ads: Add ??? note that we should document pragmas passed to
20756         back end.
20757
20758         * g-expect.ads: Fix a few typos in the comments.
20759
20760 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
20761
20762         * misc.c (gnat_handle_option): Use %< and %> for quoting in
20763         warning message.
20764
20765 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20766
20767         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
20768
20769 2004-11-07  Andreas Schwab  <schwab@suse.de>
20770
20771         * Makefile.in (install-gnatlib): Remove spurious hyphen.
20772
20773 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
20774
20775         PR ada/18228
20776         * Makefile.in (darwin): Set soext to .dylib.
20777
20778 2004-10-26  Vincent Celier  <celier@gnat.com>
20779             Thomas Quinot   <quinot@act-europe.fr>
20780
20781         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
20782         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
20783         there is no use of GNAT.Sockets.Constants.
20784         Remove remaining pragma Import for C_Write
20785         Remove C_Read and C_Write from internal implementation unit
20786         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
20787         the read and write functions from the system runtime library is fine
20788         on UNIX but won't work under Windows).
20789
20790         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
20791         (Check_Selector): Use C_Recv instead of C_Read.
20792         Selectors are the GNAT.Sockets abstraction to perform a select()
20793         call on a set of descriptors. To allow abortion of an ongoing
20794         select operation, some data is written to a dedicated socket that
20795         is always monitored.
20796         Under Windows, the write and read library functions cannot operate
20797         on sockets, so we need to use send and recv instead, which is portable
20798         across all supported platforms.
20799
20800         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
20801         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
20802         (using the read and write functions from the system runtime library is
20803         fine on UNIX but won't work under Windows).
20804
20805 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
20806
20807         * mlib-tgt-darwin.adb: New file.
20808
20809         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
20810         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
20811         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
20812         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
20813         subprogram body.
20814
20815         * Makefile.in: Add support for building shared libraries under Darwin.
20816         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
20817         the low level EH init subprogram to be called from __gnat_initialize.
20818
20819         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
20820         indicates which options to pass to the archive indexer.
20821
20822         * mlib-utl.adb: Add support for calling ranlib with additional
20823         options. This is needed for instance under Mac OS X.
20824         (Ranlib_Options): New global variable, used to store the potential
20825         options to pass to ranlib.
20826         (Ar): Use Ranlib_Options when spawning ranlib.
20827         (Initialize): Set the value of ranlib option.
20828
20829 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
20830
20831         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
20832         instead of 8K, to reflect the real potential needs for stack-checking
20833         in the ZCX case.
20834
20835 2004-10-26  Pascal Obry  <obry@gnat.com>
20836
20837         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
20838
20839         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
20840         Windows only the initial thread stack size can be set so it is good to
20841         start we a low stack size.
20842         The OS will adjust the size as needed.
20843
20844 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
20845             Nicolas Setton  <setton@act-europe.fr>
20846
20847         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
20848         "__unix__" instead of "unix".
20849         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
20850         sections were just mistakenly ignored. The former is
20851         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
20852         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
20853         of hpux. This prevents an unwanted definition of the symbol
20854         convert_addresses in adaint.o.
20855
20856 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
20857
20858         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
20859         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
20860
20861 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
20862
20863         * a-filico.ads, a-filico.adb: fix incorrect header.
20864
20865 2004-10-26  Javier Miranda  <miranda@gnat.com>
20866
20867         * a-ststio.ads: Fix typo in identifier
20868
20869 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
20870
20871         * sem_ch4.adb: Minor reformatting.
20872
20873 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
20874
20875         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
20876         enabled, check the result of unary and binary operations when the
20877         expression is the right-hand side of an assignment.
20878
20879 2004-10-26  Vincent Celier  <celier@gnat.com>
20880
20881         * clean.adb (Delete): Do not output warnings when in quiet output and
20882         not in verbose mode.
20883         (Force_Deletions): New Boolean flag, defaulted to False
20884         (Delete): Only delete a file if it is writable, and when
20885         Force_Deletions is True.
20886         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
20887         (Usage): Line for new switch -f
20888         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
20889         own.
20890
20891 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
20892
20893         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
20894         JM type only if its size matches that of the wrapper.  When a size is
20895         prescribed and the field is not aliased, remove the wrapper of a JM
20896         type only if the size is not greater than that of the packed array.
20897         (gnat_to_gnu_entity): Change the extension of packed array wrappers
20898         from LJM to JM.
20899
20900 2004-10-26  Geert Bosch  <bosch@gnat.com>
20901
20902         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
20903         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
20904         (Pred): Implement in terms of Succ.
20905
20906 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
20907
20908         * exp_aggr.adb (Safe_Component): An aggregate component that is an
20909         unchecked conversion is safe for in-place use if the expression of the
20910         conversion is safe.
20911         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
20912         be expandable in place even if the aggregate does not come from source.
20913         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
20914         designated object of an allocator in place, rather than building it
20915         first on the stack. The previous scheme forces a full copy of the array,
20916         and may be altogether unsusable if the size of the array is too large
20917         for stack allocation.
20918
20919 2004-10-26  Robert Dewar  <dewar@gnat.com>
20920
20921         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
20922         compares if the component is atomic.
20923
20924         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
20925         array assignment if the component type is atomic.
20926
20927 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
20928             Eric Botcazou  <ebotcazou@act-europe.fr>
20929
20930         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
20931         is aliased and is a by_reference type, do not pass by copy.
20932         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
20933         detect whether the call is in the right side of an assignment or
20934         the expression of an object declaration.  Recurse on component
20935         association within aggregates.
20936         Call it in the condition that determines whether the temporary is
20937         necessary for correct stack-checking.
20938
20939 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
20940
20941         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
20942         RACW_Type, used in the PolyORB version.
20943         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
20944         version and the GARLIC version.
20945
20946         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
20947         Rename RCI_Info to RCI_Locator for better consistency between the
20948         GARLIC and PolyORB versions of the distributed systems annex.
20949         (DSA_Implementation_Name): This enumeration lists the possible
20950         implementations of the Partition Communication Subsystem for the
20951         Distributed Systems Annex (DSA). The three available implementations
20952         are the dummy stub implementation (No_DSA), and two versions based on
20953         two different distribution runtime libraries: GARLIC and PolyORB. Both
20954         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
20955         technology.
20956         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
20957         that organization.
20958
20959         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
20960         between the GARLIC and PolyORB versions of the distributed systems
20961         annex.
20962         Remove RE_Unbounded_Reclaim_Pool since it is unused.
20963
20964 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
20965
20966         * gnat1drv.adb: Suppress calling the back end when
20967         Frontend_Layout_On_Target is true.
20968
20969 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
20970
20971         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
20972         Set_Read_Only): New subprograms.
20973         These new routines allow the user to set or unset the Owner execute
20974         and Owner write permission flags on a file.
20975
20976         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
20977         GNAT.OS_Lib.Set_Executable instead of rolling our own.
20978
20979 2004-10-26  Matthew Gingell  <gingell@gnat.com>
20980
20981         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
20982
20983 2004-10-26  Pascal Obry  <obry@gnat.com>
20984
20985         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
20986         memory before the faulting page we properly test the process read
20987         access for this address using appropriate Win32 routine.
20988         (HPUX sections): guard with "__hpux__" instead of "hpux".
20989
20990 2004-10-26  Robert Dewar  <dewar@gnat.com>
20991
20992         * lib-xref.adb (Generate_Reference): Don't complain about reference to
20993         entry parameter if pragma Unreferenced set, since we do not properly
20994         handle the case of multiple parameters.
20995
20996 2004-10-26  Vincent Celier  <celier@gnat.com>
20997
20998         * prj-env.adb: (Contains_ALI_Files): New Boolean function
20999         (Ada_Objects_Path.Add): For a library project, add to the object path
21000         the library directory only if there is no object directory or if the
21001         library directory contains ALI files.
21002         (Set_Ada_Paths.Add.Recursive_Add): Ditto
21003
21004 2004-10-26  Vincent Celier  <celier@gnat.com>
21005
21006         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
21007         extension of library projects.
21008
21009         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
21010         path defaults to ".:<prefix>/lib/gnat".
21011         (Parse): For an extending all project, allow direct import of a project
21012         that is virtually extended.
21013
21014         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
21015         the specified name is directly imported, return its ID. Otherwise, if
21016         an extension of this project is imported, return the ID of the
21017         extension.
21018
21019 2004-10-26  Robert Dewar  <dewar@gnat.com>
21020
21021         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
21022         (Sub3): New procedure, used by Scaled_Divide
21023         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
21024         correct more than one instance of failure to propagate carries
21025         correctly.
21026         (Double_Divide): Handle overflow case of largest negative number
21027         divided by minus one.
21028
21029         * s-arit64.ads (Double_Divide): Document that overflow can occur in
21030         the case of a quotient value out of range.
21031         Fix comments.
21032
21033 2004-10-26  Robert Dewar  <dewar@gnat.com>
21034
21035         * s-bitops.adb (Bit_Eq): Remove redundant check.
21036
21037         * s-bitops.ads: Minor comment updates
21038         Change some occurrences of Address to System.Address
21039
21040         * s-carsi8.ads: Fix minor cut-and-paste error in comments
21041
21042 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21043
21044         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
21045         accessibility check to prefix that is a protected operation.
21046
21047 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21048
21049         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
21050         empty, post message on stub.
21051
21052 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21053             Javier Miranda  <miranda@gnat.com>
21054
21055         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
21056         current instance appears within a unit that is directly in the context
21057         of the main unit.
21058         Used to determine whether the body of the instance should be analyzed
21059         immediately after its spec, to make its subprogram bodies available
21060         for front-end inlining.
21061         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
21062         constraint is not allowed on the component type (AARM 12.5.3(3))
21063
21064 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
21065
21066         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
21067         'Storage_Pool): enhance, document & limit detection of non-sharable
21068         internal pools.
21069
21070         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
21071
21072         * s-pooglo.ads: Add more documentation now that this pool is properly
21073         documented.
21074
21075 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21076
21077         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
21078         or protected type with discriminants, do not constrain the
21079         corresponding record type if the subtype declaration has no
21080         discriminant constraints. This can be the case in source code, or in
21081         the subtype declaration created to rename an actual type within an
21082         instantiation.
21083
21084 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21085
21086         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
21087         different kind of stub (possibly wrong name for file), do not check
21088         for conformance.
21089         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
21090         includes call to some function that returns an unconstrained type, do
21091         not inline.
21092
21093 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21094
21095         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
21096         appear in the code for the main unit. Dependencies among units in the
21097         context of the main unit are established when those other units are
21098         compiled. Otherwise spurious elaboration constraints can generate
21099         incorrect elaboration circularities.
21100
21101 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
21102             Ed Schonberg   <schonberg@gnat.com>
21103
21104         * sem_util.adb (Is_Aliased_View): Defend against the case where this
21105         subprogram is called with a parameter that is not an object name. This
21106         situation arises for some cases of illegal code, which is diagnosed
21107         later, and in this case it is wrong to call Is_Aliased, as that might
21108         cause a compiler crash.
21109         (Explain_Limited_Type): Refine previous fix to include
21110         inherited components of derived types, to provide complete information.
21111
21112         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
21113         is the prival for a protected object.
21114         It is necessary to mark this entity as a variable, in addition to
21115         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
21116         modified to avoid checking the Aliased flag on entities that are not
21117         objects. (Checking that flag for non-objects is erroneous and could
21118         lead to a compiler crash).
21119
21120 2004-10-26  Robert Dewar  <dewar@gnat.com>
21121
21122         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
21123         X_Frac = 0.5, then we know that the number X must be positive.
21124         (Succ): Remove the same redundant test, and also fix the primary test
21125         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
21126         Minor reformatting
21127         (Decompose): Add fuller comments to spec
21128
21129 2004-10-26  Pascal Obry  <obry@gnat.com>
21130
21131         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
21132         validity (process must have read access). Set to 0 in all other cases.
21133         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
21134         violation on Win32.
21135         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
21136         segmentation violation.
21137
21138 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
21139
21140         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
21141         whose type is a constructed subtype of an aliased object with an
21142         unconstrained nominal subtype, convert the actual to the constructed
21143         subtype before taking its address.
21144
21145 2004-10-26  Vincent Celier  <celier@gnat.com>
21146
21147         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
21148         (Is_Path_Name_Case_Sensitive): New function
21149
21150         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
21151         (Base_Name, Simple_Name, Current_Directory, Compose,
21152         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
21153         the result.
21154
21155 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
21156             Vasiliy Fofanov  <fofanov@act-europe.fr>
21157             Vincent Celier   <celier@gnat.com>
21158
21159         * gnat_ugn.texi: Generalize "finding memory problems" section into a
21160         "memory management issues" section and document some of the useful
21161         memory pools provided as part of the GNAT library.
21162         Remove "virtual" from declaration of A::method2 in
21163         the simple example of Ada/C++ mixed system.
21164         Library Projects may be virtually extended: their virtual extensions
21165         are not Library Projects.
21166         Added section on extending project hierarchies.
21167
21168 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
21169
21170         * adaint.c (__gnat_get_libraries_from_registry): Cast value
21171         to LPBYTE.
21172         (__gnat_portable_spawn): Remove const.
21173
21174         * mingw32.h (MAXPATHLEN): Check for previous definition.
21175
21176 2004-10-17  Matthias Klose  <doko@debian.org>
21177
21178         * gnatvsn.ads: Set gnat library version to 4.0.
21179
21180 2004-10-05  Vincent Celier  <celier@gnat.com>
21181
21182         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
21183
21184 2004-10-04  Laurent GUERBY <laurent@guerby.net>
21185
21186         PR ada/15156
21187         * Makefile.in: Define and use RANLIB_FLAGS.
21188
21189 2004-10-04  Pascal Obry  <obry@gnat.com>
21190
21191         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
21192         other x86 platforms).
21193
21194 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
21195
21196         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
21197         in general and triggers stack alignment adjustment for thread entry
21198         points on targets where this is necessary.
21199
21200 2004-10-04  Bernard Banner  <banner@gnat.com>
21201
21202         PR ada/13897
21203         * Makefile.in: Add section for powerpc linux
21204         Add variant i-vxwork-x86.ads
21205
21206         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
21207
21208 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
21209
21210         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
21211         table registration calls when need be. Ensures no reference to the crt
21212         ctors symbol are issued in the SJLJ case, which avoids possible
21213         undefined symbol errors in the case of modules to be statically linked
21214         with the kernel.
21215
21216 2004-10-04  Javier Miranda  <miranda@gnat.com>
21217
21218         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
21219         in-line the code corresponding to subprogram Analyze_Actuals. In
21220         addition, analyze the actuals only in case of subprogram call.
21221
21222 2004-10-04  Ed Falis  <falis@gnat.com>
21223
21224         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
21225
21226 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
21227
21228         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
21229         in the documentation.
21230
21231 2004-10-04  Robert Dewar  <dewar@gnat.com>
21232
21233         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
21234         IF and CASE.
21235         (Analyze_Block_Statement): Add circuitry to detect following dead code
21236         (Check_Unreachable_Code): Handle case of block exit
21237
21238 2004-10-04  Robert Dewar  <dewar@gnat.com>
21239
21240         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
21241         (XMatchD): Avoid warning for Logic_Error call
21242
21243 2004-10-04  Robert Dewar  <dewar@gnat.com>
21244
21245         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
21246         consider expressions buried within a procedure actual to be an actual.
21247         This caused some blowups with uses of packed slices within a procedure
21248         actual.
21249
21250 2004-10-04  Robert Dewar  <dewar@gnat.com>
21251
21252         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
21253         longer need to be initialized to zero.
21254         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
21255         initialized to zero.
21256
21257         * checks.adb (Expr_Known_Valid): Packed arrays are now always
21258         considered valid, even if the representation is modular. That's correct
21259         now that we no longer initialize packed modular arrays to zero.
21260
21261         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
21262         suffixes. These are now documented as the only cases in which the
21263         debugger ignores outer records.
21264         Previously, the spec allowed arbitrary suffixes for this purpose.
21265         Change name of LJM to JM for packed array pad records
21266         Create separate section on packed array handling, and add a whole new
21267         set of comments to this section describing the situation with packed
21268         modular types and justification requirements depending on endianness.
21269
21270 2004-10-04  Robert Dewar  <dewar@gnat.com>
21271
21272         * a-except.adb: Add a comment for last change
21273
21274         * einfo.ads: Minor spelling correction in comment
21275
21276         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
21277
21278         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
21279         messages.
21280
21281         * sem_util.ads: Minor comment update
21282
21283 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21284
21285         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
21286         Inline_Always when in Configurable_Run_Time mode.
21287
21288         * sem_prag.adb (Process_Convention): If entity is an inherited
21289         subprogram, apply convention to parent subprogram if in same scope.
21290         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
21291         when in Configurable_Run_Time mode.
21292
21293 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21294
21295         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
21296         class_wide type after component list has been inherited.
21297
21298 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21299
21300         * sem_ch12.adb (Check_Generic_Actuals): New predicate
21301         Denotes_Previous_Actual, to handle properly the case of a private
21302         actual that is also the component type of a subsequent array actual.
21303         The visibility status of the first actual is not affected when the
21304         second is installed.
21305         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
21306         make fully recursive the treatment of formals of packages declared
21307         with a box.
21308         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
21309         the above on exit from an instantiation.
21310         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
21311         current instantiation which is now complete.
21312         (Analyze_Package_Instantiation): No instantiated body is needed if the
21313         main unit is generic. Efficient, and avoid anomalies when a instance
21314         appears in a package accessed through rtsfind.
21315
21316 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21317
21318         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
21319         do not generate a declaration for a temporary if the call is part of a
21320         library-level instantiation.
21321
21322 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21323
21324         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
21325         searching for a limited component to flag.
21326
21327         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
21328         expansion of Input, to account for the fact that the implicit call
21329         generated by the attribute reference must freeze the user-defined
21330         stream subprogram. This is only relevant to 'Input, because it can
21331         appear in an object declaration, prior to the body of the subprogram.
21332
21333         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
21334         expansion can proceed and further errors uncovered.
21335         (Minor clean up): Fix cases of using | instead of \ for continuation
21336         messages.
21337
21338 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21339
21340         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
21341
21342         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
21343         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
21344         Use gcc_assert and gcc_unreachable.
21345
21346         * decl.c (gnat_to_gnu_entity, case object): Check and process a
21347         specified alignment before validating size.
21348         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
21349         stripped-down declaration for the type of the inner field when making
21350         a JM type.
21351
21352         * utils.c (finish_record_type): Do not compute the size in units
21353         incrementally. Instead compute it once for the rep clause case.
21354         Use gcc_assert and gcc_unreachable.
21355
21356 2004-10-04  Vincent Celier  <celier@gnat.com>
21357
21358         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
21359         in file name.
21360         (Is_Valid_Path_Name): Take '/' as a directory separator.
21361
21362 2004-10-04  Vincent Celier  <celier@gnat.com>
21363
21364         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
21365         (Extended_Project) only if Extended_Project is defined, to avoid
21366         assertion error.
21367         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
21368         resolved path.
21369         (Parse_Single_Project): Ditto.
21370
21371         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
21372         Add_To_Project_Path for virtual projects.
21373
21374 2004-10-04  Vincent Celier  <celier@gnat.com>
21375
21376         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
21377         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
21378         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
21379         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
21380         parameter Options_2.
21381
21382         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
21383         Build_Dynamic_Library with an empty Options_2.
21384
21385         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
21386         default anymore.
21387
21388         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
21389         directory separator, if any.
21390         (Gprmake): Do not allow mains on the command line for library projects.
21391         Do not attempt to link when the project is a library project.
21392         (Library_Opts): New table to store Library_Options.
21393         (Build_Library): If Library_Options is specified, pass these options
21394         when building a shared library.
21395
21396 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
21397
21398         * s-tposen.adb (Service_Entry): The object must be always unlocked at
21399         the end of this procedure now that the unlock operation was inserted
21400         by the expander.
21401
21402 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
21403
21404         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
21405         corresponding to the Preallocated_Stacks flags in System.
21406         (Get_Target_Parameters): Including the processing for
21407         Preallocated_Stacks.
21408
21409         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
21410         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
21411         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
21412         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
21413         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
21414         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
21415         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
21416         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
21417         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
21418         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
21419         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
21420         used to signal whether the compiler creates the required stacks and
21421         descriptors for the different tasks (when True) or it is done by the
21422         underlying operating system at run time (when False).
21423         It is initially set to False in all targets.
21424
21425         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
21426         if it is supported by the target.
21427         (Make_Task_Create_Call): Pass the stack address if it has been
21428         previously created. Otherwise pass a Null_Address.
21429
21430         * snames.adb: Add _stack.
21431
21432         * snames.ads: Add Name_uStack. Required to allow the expander to
21433         statically allocated task stacks.
21434
21435         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
21436         Stack_Address argument.
21437         Check that its value is equal to Null_Address because this target does
21438         not support the static stack allocation.
21439
21440 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
21441
21442         * usage.adb: Change "pragma inline" to "pragma Inline" in information
21443         and error messages
21444
21445 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
21446
21447         * exp_dist.adb: Split declaration of asynchronous flag out of
21448         Add_RACW_Read_Attribute.
21449         Minor reformatting for better alignment with PolyORB version.
21450         Store the entity for the asynchronous flag of an RACW, rather than the
21451         expression, in the asynchronous flags table. This will allow this flag
21452         to be used in other subprograms beside Add_RACW_Read_Attribute.
21453
21454 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
21455
21456         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
21457         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
21458         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
21459         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
21460         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
21461         sockets constant MSG_NOSIGNAL (Linux-specific).
21462         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
21463         all Send operations.
21464         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
21465         from trigerring SIGPIPE.
21466         Rename components to avoid clash with Ada 2005 possible reserved
21467         word 'interface'.
21468         (Check_Selector): When the select system call returns with an error
21469         condition, propagate Socket_Error to the caller.
21470
21471 2004-10-01  Jan Hubicka  <jh@suse.cz>
21472
21473         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
21474
21475 2004-09-23  Robert Dewar  <dewar@gnat.com>
21476
21477         PR ada/17540
21478         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
21479         instead do this at freeze time (we won't do it if there is an address
21480         clause).
21481         Change "pragma inline" to "pragma Inline" in information and error
21482         messages.
21483         Minor reformatting.
21484
21485         * freeze.adb (Check_Address_Clause): Remove previous change, not the
21486         right way of doing things after all.
21487         (Freeze_Entity): For object, set Is_Public for imported entities
21488         unless there is an address clause present.
21489
21490 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
21491
21492         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
21493         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
21494         ensures proper handling of types with rep clauses, which might have
21495         their TYPE_SIZE set already.
21496
21497 2004-09-21  Robert Dewar  <dewar@gnat.com>
21498
21499         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
21500         packed array types in both little- and big-endian cases. This change
21501         ensures that we no longer count on the unused bits being initialized
21502         for such types (and in particular ensures that equality testing will
21503         only read the relevant bits).
21504         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
21505         These changes mean that we no longer need to initialize small packed
21506         arrays.
21507         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
21508         optimization to an LJM field as to its parent field.
21509
21510         * ada-tree.h, trans.c, utils.c, utils2.c:
21511         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
21512
21513 2004-09-20  Jan Hubicka  <jh@suse.cz>
21514
21515         * utils.c (gnat_finalize): Remove.
21516         (end_subprog_body): Directly call cgraph_finalize_function;
21517         do not lower the nested functions.
21518
21519 2004-09-20  Robert Dewar  <dewar@gnat.com>
21520
21521         PR ada/17540
21522         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
21523         if an address clause is present, since that means that the Import
21524         should be ignored.
21525
21526 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
21527
21528         * 5tsystem.ads: Removed, no longer used.
21529
21530 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
21531             Zack Weinberg  <zack@codesourcery.com>
21532
21533         * ada-tree.def: Use tree_code_class enumeration constants
21534         instead of code letters.
21535         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
21536         Update for new tree-class enumeration constants.
21537
21538 2004-09-17  Vincent Celier  <celier@gnat.com>
21539
21540         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
21541         capabilities of the general project manager.
21542
21543 2004-09-09  Vincent Celier  <celier@gnat.com>
21544
21545         * a-direct.ads: Add pragma Ada_05
21546         (Directory_Entry_Type): Give default value to component Kind to avoid
21547         not initialized warnings.
21548
21549         * a-direct.adb (Current_Directory): Remove directory separator at the
21550         end.
21551         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
21552         an existing directory.
21553         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
21554         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
21555         Convert the result to File_Size.
21556
21557         * prj.ads: (Project_Error): New exception
21558
21559         * prj-attr.adb: Except in procedure Initialize, Fail comes from
21560         Prj.Com, not from Osint.
21561         (Attrs, Package_Attributes): Tables moved to private part of spec
21562         (Add_Attribute, Add_Unknown_Package): Moved to new child package
21563         Prj.Attr.PM.
21564         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
21565         Prj.Project_Error after call to Fail.
21566         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
21567         Fail. Check that package name is not already in use.
21568
21569         * prj-attr.ads: Comment updates to indicate that all subprograms may be
21570         used by tools, not only by the project manager, and to indicate that
21571         exception Prj.Prj_Error may be raised in case of problem.
21572         (Add_Unknown_Package, Add_Attribute): Moved to new child package
21573         Prj.Attr.PM.
21574         (Attrs, Package_Attributes): Table instantiations moved from the body to
21575         the private part to be accessible from Prj.Attr.PM body.
21576
21577         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
21578         from new package Prj.Attr.PM.
21579         (Parse_Attribute_Declaration): Call Add_Attribute from new package
21580         Prj.Attr.PM.
21581
21582         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
21583
21584         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
21585         instead of Elaboration_Checks).
21586
21587         * a-calend.adb: Minor reformatting
21588
21589 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21590
21591         * gigi.h (maybe_pad_type): New declaration.
21592         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
21593
21594         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
21595
21596         * cuintp.c: Convert to use buildN.
21597
21598         * decl.c (maybe_pad_type): No longer static.
21599         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
21600         target pointer.
21601         Convert to use buildN.
21602
21603         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
21604         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
21605         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
21606         RHS.
21607         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
21608         (gnat_gimplify_expr, case ADDR_EXPR): New case.
21609         Convert to use buildN.
21610
21611         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
21612         TREE_READONLY for const.
21613         Convert to use buildN.
21614
21615         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
21616         (create_var_decl): Refine when TREE_STATIC is set.
21617         Convert to use buildN.
21618
21619 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
21620
21621         * gnat_ugn.texi: Delete text relating to checking of ali and object
21622         consistency.
21623
21624         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
21625         routines.
21626
21627 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
21628
21629         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
21630         pragmas recognized by GNAT.
21631
21632         * gnat_rm.texi: Document pragma Detect_Blocking.
21633
21634         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
21635         raise Program_Error if called from a protected operation.
21636
21637         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
21638         the protected action nesting level.
21639         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
21640         protected action nesting level.
21641         (Unlock): When pragma Detect_Blocking is active decrease the protected
21642         action nesting level.
21643
21644         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
21645         Protected_Action_Nesting.
21646
21647         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
21648         Common_ATCB record. It contains the dynamic level of protected action
21649         nesting for each task. It is needed for checking whether potentially
21650         blocking operations are called from protected operations.
21651         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
21652         Detect_Blocking is active or not in the partition.
21653
21654         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
21655         raise Program_Error if called from a protected operation.
21656         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
21657         Program_Error if called from a protected operation.
21658         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
21659         Program_Error if called from a protected operation.
21660
21661         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
21662         raise Program_Error if called from a protected operation.
21663
21664         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
21665         raise Program_Error if called from a protected operation, and increase
21666         the protected action nesting level.
21667         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
21668         Program_Error if called from a protected operation, and increase the
21669         protected action nesting level.
21670         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
21671         protected action nesting level.
21672
21673         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
21674         raise Program_Error if called from a protected operation, and increase
21675         the protected action nesting level.
21676         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
21677         Program_Error if called from a protected operation, and increase the
21678         protected action nesting level.
21679         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
21680         raise Program_Error if called from a protected operation.
21681         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
21682         active, raise Program_Error if called from a protected operation.
21683         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
21684         protected action nesting level.
21685
21686         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
21687         insertion of the statement raising Program_Error. The run time
21688         contains the required machinery for handling that.
21689
21690         * sem_util.ads: Change comment associated to procedure
21691         Check_Potentially_Blocking_Operation.
21692         This procedure does not insert a call for raising the exception because
21693         that is currently done by the run time.
21694
21695         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
21696
21697         * init.c: Add the global variable __gl_detect_blocking that indicates
21698         whether pragma Detect_Blocking is active (1) or not (0). Needed for
21699         making the pragma available at run time.
21700         (__gnat_set_globals): Pass and update the detect_blocking parameter.
21701
21702         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
21703         pragma Detect_Blocking is active.
21704
21705         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
21706
21707         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
21708         DB is found in the ali file. Any unit compiled with pragma
21709         Detect_Blocking active forces its effect in the whole partition.
21710
21711         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
21712         Detect_Blocking is active and delay is called from a protected
21713         operation.
21714
21715         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
21716         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
21717         Detect_Blocking is active (0 otherwise).
21718         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
21719         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
21720         otherwise).
21721
21722 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
21723
21724         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
21725         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
21726         package.
21727
21728         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
21729         (Register_Receiving_Stub): Add Subp_Info formal parameter.
21730         Update API in placeholder implemetation of s-parint to reflect changes
21731         in distribution runtime library.
21732
21733         * sem_ch3.adb (Expand_Derived_Record): Rename to
21734         Expand_Record_Extension.
21735
21736         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
21737         primitive operations of potentially distributed object types that have
21738         non-controlling anonymous access formals.
21739
21740         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
21741         subprogram.
21742         New implementation of expansion for remote access-to-subprogram types,
21743         based on the RACW infrastructure.
21744         This version of sem_dist is compatible with PolyORB/DSA as well as
21745         GLADE.
21746
21747         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
21748         Asynchrronous that applies to a remote access-to-subprogram type, mark
21749         the underlying RACW type as asynchronous.
21750
21751         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
21752          __gnat_using_gnu_linker to 1.
21753
21754         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
21755         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
21756         GNAT.Perfect_Hash_Generators, and remove the empty
21757         GNAT.Perfect_Hash package.
21758
21759         * atree.adb: Minor reformatting
21760
21761         * exp_ch3.adb (Expand_Derived_Record): Rename to
21762         Expand_Record_Extension.
21763         (Build_Record_Init_Proc.Build_Assignment): The default expression in
21764         a component declaration must remain attached at that point in the
21765         tree so New_Copy_Tree copies it if the enclosing record type is derived.
21766         It is therefore necessary to take a copy of the expression when building
21767         the corresponding assignment statement in the init proc.
21768         As a side effect, in the case of a derived record type, we now see the
21769         original expression, without any rewriting that could have occurred
21770         during expansion of the ancestor type's init proc, and we do not need
21771         to go back to Original_Node.
21772
21773         * exp_ch3.ads (Expand_Derived_Record): Rename to
21774         Expand_Record_Extension.
21775
21776         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
21777         Returns the RACW type used to implement a remote access-to-subprogram
21778         type.
21779         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
21780         New subprograms. Used to create a proxy tagged object for a remote
21781         subprogram. The proxy object is used as the designated object
21782         for RAS values on the same partition (unless All_Calls_Remote applies).
21783         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
21784         System.Partition_Interface.Get_Unique_Remote_Pointer.
21785         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
21786         Renamed from Add_RAS_*_Attribute.
21787         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
21788         subprograms.
21789         New implementation of expansion for remote access-to-subprogram types,
21790         based on the RACW infrastructure.
21791
21792         * exp_dist.ads (Copy_Specification): Update comment to note that this
21793         function can copy the specification from either a subprogram
21794         specification or an access-to-subprogram type definition.
21795
21796 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
21797
21798         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
21799         in an instance, between an explicit subprogram an one inherited from a
21800         type derived from an actual.
21801
21802         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
21803         add a polling call if the subprogram is to be inlined by the back-end,
21804         to avoid repeated calls with multiple inlinings.
21805
21806         * checks.adb (Apply_Alignment_Check): If the expression in the address
21807         clause is a call whose name is not a static entity (e.g. a dispatching
21808         call), treat as dynamic.
21809
21810 2004-09-09  Robert Dewar  <dewar@gnat.com>
21811
21812         * g-trasym.ads: Minor reformatting
21813
21814         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
21815         packed arrays, since unused bits are expected to be zero for a
21816         comparison.
21817
21818 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
21819
21820         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
21821         comment.
21822
21823 2004-09-09  Pascal Obry  <obry@gnat.com>
21824
21825         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
21826         enable map file generation. Add the right option to generate the map
21827         file if Map_File is set to True.
21828
21829         * gnatdll.adb (Gen_Map_File): New variable.
21830         (Syntax): Add info about new -m (Map_File) option.
21831         (Parse_Command_Line): Add support for -m option.
21832         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
21833         Minor reformatting.
21834
21835 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
21836
21837         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
21838         new gnatdist implementation.
21839         Define a subpackage isolating the output routines specific to this
21840         verbose mode.
21841
21842 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
21843
21844         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
21845
21846         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
21847
21848 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
21849
21850         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
21851         internal unit.
21852
21853         * opt.ads: Add Ada_Version_Runtime constant used to decide which
21854         version of the language is used to compile the run time.
21855
21856 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
21857
21858         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
21859         of variable length temporaries for function return now that the
21860         back-end and gigi support it.
21861
21862 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21863
21864         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
21865
21866         * trans.c (struct stmt_group): Delete field GLOBAL.
21867         (gnat_init_stmt_group): Do not initialize it.
21868         (call_to_gnu): Use save_expr, not protect_multiple_eval.
21869         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
21870         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
21871         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
21872         (start_stmt_group): Likewise.
21873         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
21874
21875         * utils2.c (ggc.h): Include.
21876         (build_call_raise): Call build_int_cst, not build_int_2.
21877
21878         * utils.c (gnat_init_decl_processing): Fix arg to
21879         build_common_tree_nodes.
21880         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
21881         (gnat_define_builtin): Set built_in_decls.
21882         (init_gigi_decls): Call build_int_cst, not build_int_2.
21883
21884         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
21885         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
21886         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
21887         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
21888         SET_TYPE_MODULE): Use them.
21889         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
21890         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
21891         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
21892         SET_TYPE_ADA_SIZE): Likewise.
21893         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
21894         (DECL_CONST_CORRESPONDING_VAR,
21895         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
21896         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
21897         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
21898         (TYPE_RM_SIZE_NUM): New macro.
21899         (TYPE_RM_SIZE): Modified to use above.
21900
21901         * cuintp.c: (build_cst_from_int): New function.
21902         (UI_To_gnu): Use it.
21903
21904         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
21905         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
21906         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
21907         MIN_EXPR for the size, copy it into new.
21908
21909 2004-09-01  Robert Dewar  <dewar@gnat.com>
21910
21911         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
21912         packed indexed component where array is an IN OUT formal. This
21913         generated garbage code previously.
21914
21915         * gnat_ugn.texi: Document -fverbose-asm
21916
21917         * gnat-style.texi: Minor updates (note that boolean constants and
21918         variables are joined with AND/OR rather than short circuit forms).
21919
21920 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
21921
21922         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
21923         it is an upward conversion of an untagged type with no representation
21924         change.
21925
21926 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
21927
21928         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
21929         System.Partition_Interface.
21930
21931         * checks.adb (Apply_Access_Checks): Do not generate checks when
21932         expander is not active (but check for unset reference to prefix of
21933         dereference).
21934
21935         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
21936         pragma Debug as an if statement with a constant condition, for
21937         consistent treatment of entity references contained within the
21938         enclosed procedure call.
21939
21940 2004-09-01  Vincent Celier  <celier@gnat.com>
21941
21942         * bindgen.adb: (Set_EA_Last): New procedure
21943         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
21944         Set_EA_Last.
21945         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
21946         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
21947         linked without errors.
21948         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
21949         ST and EA.
21950         (Gen_Exception_Table_C): Correct same bugs
21951
21952         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
21953
21954         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
21955         on Windows, make sure that the drive letter is in upper case.
21956
21957         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
21958         Windows, when the drive letter is added and Case_Sensitive is True, the
21959         drive letter is forced to upper case.
21960
21961         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
21962         to Options_2 for the call to MLib.Utl.Gcc.
21963
21964         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
21965         directory separator when defining BASE_DIR.
21966
21967 2004-09-01  Pascal Obry  <obry@gnat.com>
21968
21969         * gprcmd.adb (Extend): Do not output trailing directory separator. This
21970         is not needed and it confuses Windows GNU/make which does not report
21971         directory terminated by a slash as a directory.
21972         (gprcmd): Idem for "pwd" internal command.
21973
21974         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
21975         target names rewrite to fix regressions with recent version of
21976         GNU/make. Starting with GNU/make 3.80 the pipe character was not
21977         handled properly anymore.
21978
21979 2004-09-01  Andreas Schwab  <schwab@suse.de>
21980
21981         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
21982         * raise.c [!IN_RTS]: Undef abort.
21983
21984 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
21985
21986         * utils2.c (build_allocator): Use ssize_int.
21987
21988         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
21989
21990 2004-08-27  Andreas Schwab  <schwab@suse.de>
21991
21992         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
21993
21994 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
21995             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21996
21997         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
21998
21999 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
22000
22001         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
22002         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
22003         * utils.c (init_gigi_decls): Likewise.
22004         * utils2.c (build_call_raise, build_allocator): Likewise.
22005
22006 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
22007
22008         * utils.c (gnat_init_decl_processing): Adjust
22009         build_common_tree_nodes call.
22010
22011 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
22012
22013         * utils2.c (build_allocator): Use build_int_cst for negative
22014         size types.
22015
22016 2004-08-18  Richard Henderson  <rth@redhat.com>
22017
22018         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
22019
22020 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
22021
22022         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
22023         call.s
22024         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
22025         (gnat_to_gnu): Likewise.
22026
22027 2004-08-16  Pascal Obry  <obry@gnat.com>
22028
22029         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
22030         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
22031         option and not mdll anymore. Update comment.
22032
22033 2004-08-16  Pascal Obry  <obry@gnat.com>
22034
22035         * bld.adb (Put_Include_Project): Properly handle directory separators
22036         on Windows.
22037
22038 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
22039
22040         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
22041         decreasing the number of allocated junk nodes while searching for the
22042         appropriate subprogram.
22043
22044 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
22045
22046         * cuintp.c (UI_To_gnu): Use build_int_cst..
22047         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
22048         * utils.c (init_gigi_decls): Likewise.
22049         * utils2.c (build_call_raise): Likewise.
22050
22051 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
22052
22053         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
22054         for a global aliased object with a variable size and an unconstrained
22055         nominal subtype, pretend there is no initializer if the one we have is
22056         incomplete, and avoid referencing an inexistant component in there. The
22057         part we have will be rebuilt anyway and the reference may confuse
22058         further operations.
22059
22060 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
22061
22062         * einfo.ads: Minor reformatting
22063
22064         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
22065         restrictions in the ALI if we only want to warn about violations.
22066
22067 2004-08-13  Vincent Celier  <celier@gnat.com>
22068
22069         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
22070         when creating a new Unit_Record in table Units.
22071
22072         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
22073         that are violated, if any.
22074
22075         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
22076         add directory separator if path already ends with a directory separator.
22077
22078 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
22079
22080         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
22081         unit, this is an attempt to inline a construct that is not available in
22082         the current restricted mode, so abort rather than trying to continue.
22083
22084         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
22085         discriminants that rename those of the parent, recover names of
22086         original discriminants for the constraint on the full view of the
22087         parent.
22088         (Complete_Private_Subtype): Do not create a subtype declaration if the
22089         subtype is an itype.
22090
22091         * gnat_rm.texi: Added section on implementation of discriminated
22092         records with default values for discriminants.
22093
22094 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
22095
22096         PR ada/15601
22097         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
22098         the second operand is overloaded.
22099
22100 2004-08-10  Richard Henderson  <rth@redhat.com>
22101
22102         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
22103         add __builtin_alloca.
22104
22105 2004-08-10  Richard Henderson  <rth@redhat.com>
22106
22107         * config-lang.in (boot_language): Yes.
22108
22109 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
22110
22111         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
22112         from complaining on potential uninitialized reference.
22113         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
22114         new specification and test explicitly for non-zero return value.
22115
22116         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
22117         returning C.int, to avoid using a derived boolean type.
22118
22119         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
22120         Duplicate_Subexpr_No_Checks in preference to direct use of
22121         Remove_Side_Effects and New_Copy_Tree.
22122         Clear Comes_From_Source on prefix of 'Size attribute reference.
22123
22124         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
22125         g-socthi-vxworks.adb: Change calls to
22126         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
22127         and test explicitly for non-zero return value.
22128
22129         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
22130         (Is_Socket_In_Set): Declare imported function as returning C.int, to
22131         avoid using a derived boolean type.
22132
22133 2004-08-09  Albert Lee  <lee@gnat.com>
22134
22135         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
22136
22137 2004-08-09  Pascal Obry  <obry@gnat.com>
22138
22139         * gnat_ugn.texi: Document new way to build DLLs on Windows using
22140         GCC's -shared option.
22141
22142         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
22143         Options_2 parameter (options put after object files).
22144
22145 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
22146
22147         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
22148         ignore overflows on low and high bounds of an index to also account for
22149         differences in signedness between sizetype and gnu_index_subtype.
22150         These are as legitimate as the ones caused by a lower TYPE_PRECISION
22151         on sizetype.
22152
22153 2004-08-09  Robert Dewar  <dewar@gnat.com>
22154
22155         * s-solita.ads, s-solita.adb: Minor reformatting
22156
22157         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
22158         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
22159         obsolescent section
22160         Add note that No_Implicit_Conditionals does not suppress
22161         run time constraint checks.
22162
22163         * vms_conv.ads: Minor reformatting
22164
22165         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
22166         and necessary for following change).
22167         (Mark): Return new format Mark_Id containing sec stack address
22168         (Release): Use sec stack address from Mark_Id avoiding Self call
22169
22170         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
22171         pointer (cleanup and necessary for following change).
22172         Define Mark_Id as record containing address of secondary stack, that way
22173         Release does not need to find the stack again, decreasing the number of
22174         calls to Self and improving efficiency.
22175
22176         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
22177
22178         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
22179         case variable into the individual case branches when possible.
22180
22181         * sem_ch11.adb: Minor reformatting
22182
22183         * prj.ads: Correct spelling of suffixs
22184
22185         * prj-nmsc.adb: Minor reformatting
22186         Correct spelling suffixs throughout (also in identifiers)
22187
22188         * freeze.adb: Minor spelling correction
22189
22190         * exp_ch2.adb: Cleanups to handling of Current_Value
22191         (no functional effect).
22192
22193         * bld.adb: Correct spelling of suffixs
22194
22195         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
22196
22197 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
22198
22199         PR ada/15408
22200         * sem_ch7.adb (Install_Private_Declarations): In the body of the
22201         package or of a child, private entities are both immediately_visible
22202         and not hidden.
22203
22204 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
22205
22206         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
22207         there are no range checks on the value of the literal.
22208
22209         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
22210         wrapped is the triggering alternative of an asynchronous select, action
22211         statements mustbe inserted before the select itself.
22212
22213         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
22214         case where the prefix is a protected function call.
22215         (Resolve_Attribute, case 'Access): The attribute reference on a
22216         subprogram is legal in a generic body if the subprogram is declared
22217         elsewhere.
22218
22219 2004-08-09  Vincent Celier  <celier@gnat.com>
22220
22221         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
22222         languages, otherwise building the library may fail with unresolved
22223         symbols.
22224         (Compile_Sources): Do not build libraries if -c switch is used
22225
22226         * gnatlink.adb (Process_Args): New switches -M and -Mmap
22227         (Write_Usage): If map file creation is supported, output new switches
22228         -M and -Mmap.
22229         (Gnatlink): When -M is specified, add the necessary switch(es) to the
22230         gcc call, when supported.
22231
22232         * Makefile.in: Added indepsw.o to the object list for gnatlink
22233         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
22234
22235         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
22236         indepsw.adb, indepsw.ads: New files.
22237
22238 2004-08-09  Bernard Banner  <banner@gnat.com>
22239
22240         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
22241
22242         * Makefile.in: add section for vxworks x86
22243
22244 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
22245
22246         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
22247         per-object constrained components where the discriminant is of an
22248         Access type.
22249         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
22250         the parent initialization procedure for derived Unchecked_Unions.
22251         Instead, derived Unchecked_Unions build their own initialization
22252         procedure.
22253         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
22254         Check the body of the subprogram for details.
22255         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
22256         functions for derived Unchecked_Union types by introducing a condition.
22257         Allow the creation of TSS equality functions for Unchecked_Unions.
22258         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
22259         Add formal parameter Discr to function signature. Discr is used to
22260         control the generated case statement for Unchecked_Union types.
22261         (Make_Eq_If): Rename formal parameter Node to E in function signature.
22262
22263         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
22264         Unchecked_Unions.
22265         Check the body of the subprogram for details.
22266         (Expand_Composite_Equality): Augment composite type equality to include
22267         correct handling of Unchecked_Union components.
22268         (Expand_N_In): Add condition to detect illegal membership tests when the
22269         subtype mark is a constrained Unchecked_Union and the expression lacks
22270         inferable discriminants, and build a Raise_Program_Error node.
22271         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
22272         to detect types that contain components of unconstrained Unchecked_Union
22273         subtype. Add condition to detect equality between types that have an
22274         unconstrained Unchecked_Union component, and build a Raise_Program_Error
22275         node. Add condition to detect equality between Unchecked_Union types
22276         that lack inferable discriminants, and build a Raise_Program_Error node.
22277         Otherwise build a TSS equality function call.
22278         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
22279         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
22280         with the operand lacking inferable discriminants, and build a Raise_
22281         Program_Error node.
22282         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
22283         composite equality.
22284         (Has_Inferable_Discriminants): Implement new predicate for objects and
22285         expressions of Unchecked_Union type. Check the body of subprogram for
22286         details.
22287         (Has_Unconstrained_UU_Components): Add function
22288         Component_Is_Unconstrained_UU. It is used to detect whether a single
22289         component is of an unconstrained Unchecked_Union subtype. Add function
22290         Variant_Is_Unconstrained_UU. It is used to detect whether a single
22291         component inside a variant is of an unconstrained Unchecked_Union type.
22292
22293         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
22294         inferred discriminant values. Add condition to generate a case
22295         statement with an inferred discriminant as the switch.
22296         (Make_Component_List_Assign): Introduce a Boolean flag that determines
22297         the behaviour of the subprogram in the presence of an Unchecked_Union.
22298         Add condition to trigger the usage of the inferred discriminant value
22299         as the generated case statement switch.
22300         (Make_Field_Assign): Introduce a Boolean flag that determines the
22301         behaviour of the subprogram in the presence of an Unchecked_Union. Add
22302         condition to trigger the usage of the inferred discriminant value as
22303         the right-hand side of the generated assignment.
22304
22305         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
22306         parameter generation when dealing with Unchecked_Unions.
22307
22308         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
22309         checks for Unchecked_Unions.
22310
22311         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
22312
22313         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
22314         Raise_Program_Error nodes for the execution of Read and Write
22315         attributes of Unchecked_Union types and the execution of Input and
22316         Output attributes of Unchecked_Union types that lack default
22317         discriminant values.
22318
22319         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
22320         Unchecked_Union. Add procedure Check_Component. It is used to inspect
22321         per-object constrained components of Unchecked_Unions for being
22322         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
22323         check individual components withing a variant.
22324
22325         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
22326         comparison of Unchecked_Unions.
22327         (Resolve_Equality_OP): Remove guard that prevents equality between
22328         Unchecked_Unions.
22329
22330         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
22331         of component subtypes for Unchecked_Union components.
22332         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
22333         since it is the actual subtype.
22334
22335         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
22336         pass of Unchecked_Union subtypes as generic actuals to formal types
22337         that lack known_discriminant_parts or that are derived Unchecked_Union
22338         types, and do nothing. In any other case, produce an error message.
22339
22340         * sem_ch3.adb (Analyze_Component_Declaration): Add function
22341         Contains_POC. It determines whether a constraint uses the discriminant
22342         of an enclosing record type.
22343         Add condition to detect per-object constrained component and set the
22344         appropriate flag.
22345         (Derived_Type_Declaration): Remove guard that prevents derivation from
22346         Unchecked_Union types.
22347         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
22348         Union subtypes.
22349
22350         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
22351         references to Unchecked_Union discriminants.
22352
22353         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
22354         formal generation when dealing with Unchecked_Unions.
22355         (Set_Actual_Subtypes): Add condition to prevent generation of actual
22356         subtypes for Unchecked_Unions.
22357
22358         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
22359         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
22360         completions of discriminated partial views by Unchecked_Unions and
22361         produce an error message.
22362
22363 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22364
22365         * trans.c (struct stmt_group): New field, GLOBAL.
22366         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
22367         (struct elab_info): New struct.
22368         (elab_info_list, gnu_elab_proc_stack): New variables.
22369         (Compilation_Unit_to_gnu): New procedure.
22370         (gigi): Call it and also handle elaboration procs we've saved.
22371         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
22372         global field from parent.
22373         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
22374         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
22375         (start_stmt_group): Initialize global field from parent.
22376         (add_decl_expr): Set to global for current statement group.
22377         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
22378         post.
22379
22380         * utils.c (global_bindings_p): True when no current_function_decl; no
22381         longer check current_binding_level.
22382
22383 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
22384
22385         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
22386         choice.
22387
22388         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
22389
22390 2004-08-06  Andreas Schwab  <schwab@suse.de>
22391
22392         * utils.c (gnat_define_builtin): Remove second parameter of
22393         make_decl_rtl.
22394         (begin_subprog_body): Likewise.
22395
22396 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
22397
22398         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
22399         optimization, not supported by the tree-ssa back-end.
22400
22401 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
22402
22403         * s-mastop-irix.adb: Update comments.
22404
22405         * a-except.adb (Exception_Information): Raise Constraint_Error if
22406         exception Id is Null_Id.
22407         This is required behavior, which is more reliably and clearly checked
22408         at the top level interface level.
22409
22410 2004-07-26  Javier Miranda  <miranda@gnat.com>
22411
22412         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
22413         call if a component has no default_expression and the box is used.
22414
22415         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
22416         default_expression and you use box, it behaves as if you had declared a
22417         stand-alone object.
22418         (Resolve_Record_Aggregate): If a component has no default_expression and
22419         you use box, it behaves as if you had declared a stand-alone object.
22420
22421         * sem_ch10.adb (Install_Siblings): Do not make visible the private
22422         entities of private-with siblings.
22423
22424 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
22425
22426         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
22427         for a component of an itype, set the parent pointer for analysis,
22428         there is no list in which to insert it.
22429
22430         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
22431         bona-fide renamings, not for inherited operations.
22432
22433         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
22434         actual for a formal that is an access parameter, create local
22435         finalization list even if the expression is not an aggregate.
22436
22437 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
22438
22439         PR ada/16213
22440         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
22441         Diagnose properly illegal subprogram renamings that are library units.
22442
22443 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
22444
22445         PR ada/15588
22446         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
22447         conversion rewritten as an unchecked conversion, check that original
22448         expression is a variable.
22449
22450         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
22451         unchecked_conversion, create new node rather than rewriting in place,
22452         to preserve original construct.
22453
22454 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22455
22456         * gigi.h (gnat_expand_body): Deleted.
22457
22458         * Make-lang.in: (trans.o): Depends on function.h.
22459
22460         * misc.c: (gnat_expand_body): Moved to here.
22461
22462         * trans.c (gnat_expand_body_1): Deleted.
22463         (gnat_expand_body): Moved from here.
22464         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
22465         (add_stmt): Check for marked visited with global_bindings_p.
22466         (gnat_gimplify_expr, case COMPONENT_REF): New case.
22467         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
22468
22469         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
22470         VIEW_CONVERT_EXPR if not operation type.
22471
22472         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
22473         fat pointer.
22474
22475         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
22476         changes: reformatting of negation operators, removing unneeded
22477         inequality comparison with zero, converting equality comparisons with
22478         zero to negations, changing int/0/1 to bool/false/true, replace calls
22479         to gigi_abort with abort, and various other similar changes.
22480
22481 2004-07-26  Vincent Celier  <celier@gnat.com>
22482
22483         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
22484         "setup".
22485
22486         * make.adb (Gnatmake): Fail when a library is not present and there is
22487         no object directory.
22488
22489         * mlib-prj.adb (Check_Library): No need to check if the library needs
22490         to be rebuilt if there is no object directory, hence no object files
22491         to build the library.
22492
22493         * opt.ads (Setup_Projects): New Boolean flag.
22494
22495         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
22496         Location.
22497         Create directory when Kind /= "" and in "gnat setup". Report error if
22498         directory cannot be created.
22499         (Ada_Check): Create library interface copy dir if it does not exist
22500         and we are in "gnat setup".
22501         (Find_Sources): No error if in "gnat setup" and no Ada sources were
22502         found.
22503         (Language_Independent_Check): Create object directory, exec directory
22504         and/or library directory if they do not exist and we are in
22505         "gnat setup".
22506
22507         * vms_conv.ads: (Command_Type): New command Setup.
22508
22509         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
22510
22511         * vms_data.ads: Add qualifiers/switches for new built-in command
22512         "setup".
22513
22514 2004-07-25  Richard Henderson  <rth@redhat.com>
22515
22516         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
22517         DECL_IGNORED_P on RESULT_DECL.
22518
22519 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
22520
22521         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
22522         allocation and potentially overflowing update with
22523         Tailored_Exception_Information. Use the sec-stack free procedural
22524         interface to output Exception_Information instead.
22525
22526         * a-except.adb (To_Stderr): New subprogram for character, and string
22527         version moved from a-exextr to be visible from other separate units.
22528         (Tailored_Exception_Information): Remove the procedural version,
22529         previously used by the default Last_Chance_Handler and not any more.
22530         Adjust various comments.
22531
22532         * a-exexda.adb: Generalize the exception information procedural
22533         interface, to minimize the use of secondary stack and the need for
22534         local buffers when the info is to be output to stderr:
22535         (Address_Image): Removed.
22536         (Append_Info_Character): New subprogram, checking for overflows and
22537         outputing to stderr if buffer to fill is of length 0.
22538         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
22539         (Append_Info_Address, Append_Info_Exception_Name,
22540         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
22541         Append_Info_Basic_Exception_Traceback,
22542         Append_Info_Exception_Information): New subprograms.
22543         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
22544         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
22545         Exception_Info_Maxlength, Exception_Name_Length,
22546         Exception_Message_Length): New subprograms.
22547         (Exception_Information): Use Append_Info_Exception_Information.
22548         (Tailored_Exception_Information): Use
22549         Append_Info_Basic_Exception_Information.
22550         Export services for the default Last_Chance_Handler.
22551
22552         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
22553         other separate units.
22554
22555 2004-07-20  Vincent Celier  <celier@gnat.com>
22556
22557         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
22558
22559 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
22560
22561         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
22562         emit itype references for the designated types of component types that
22563         are declared outside of the full record declaration, and that may
22564         denote a partial view of that record type.
22565
22566 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
22567
22568         PR ada/15607
22569         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
22570         which is the designated type in an access component declaration, to the
22571         list of incomplete dependents of the parent type, to avoid elaboration
22572         issues with out-of-scope subtypes.
22573         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
22574         full view of the parent.
22575
22576 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
22577
22578         PR ada/15610
22579         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
22580         entities that are hidden, such as references to generic actuals
22581         outside an instance.
22582
22583 2004-07-20  Javier Miranda  <miranda@gnat.com>
22584
22585         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
22586         support to the new notation.
22587         (Analyze_Selected_Component): Add call to Try_Object_Operation.
22588
22589 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
22590
22591         * s-taprob.adb: Adding the elaboration code required for initializing
22592         the tasking soft links that are common to the full and the restricted
22593         run times.
22594
22595         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
22596         restricted run time has been moved to the package
22597         System.Soft_Links.Tasking.
22598
22599         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
22600         restricted run time has been moved to the package
22601         System.Soft_Links.Tasking.
22602
22603         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
22604
22605         * s-solita.ads, s-solita.adb: New files.
22606
22607 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22608
22609         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
22610         Case_Statement_to_gnu): Split off from gnat_to_gnu.
22611         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
22612         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
22613         Exception_Handler_to_gnu_zcx): Likewise.
22614
22615 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
22616
22617         * gigi.h (builtin_function): Declare.
22618
22619 2004-07-15  Robert Dewar  <dewar@gnat.com>
22620
22621         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
22622         reformatting
22623
22624         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
22625         access values as an example of a warning.
22626
22627         * gnat_rm.texi: Document new attribute Has_Access_Values
22628
22629         * gnat-style.texi: Document that box comments belong on nested
22630         subprograms
22631
22632         * sem_util.ads (Has_Access_Values): Improved documentation
22633
22634         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
22635
22636         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
22637         (Process_Interface_Name): Call to this new procedure
22638         (Set_Extended_Import_Export_External_Name): Call to this new procedure
22639
22640         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
22641
22642         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
22643
22644         * einfo.ads: Minor comment typo fixed
22645
22646 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
22647
22648         * snames.adb: Add _atcb.
22649
22650         * snames.ads: Add Name_uATCB.
22651
22652         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
22653         (in the expanded code) when using the restricted run time.
22654
22655         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
22656         a in parameter in order to allow ATCBs to be preallocated (in the
22657         expanded code).
22658
22659         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
22660         order to allow ATCBs to be preallocated. In case of error, the ATCB is
22661         deallocated in System.Tasking.Stages.
22662
22663         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
22664         order to allow ATCBs to be preallocated.
22665
22666         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
22667         here. It was previously done in Initialize_ATCB.
22668
22669         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
22670
22671         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
22672         Restricted run time.
22673
22674         * exp_ch3.adb: When using the Restricted run time, pass the
22675         preallocated Ada_Task_Control_Block when creating a task.
22676
22677 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
22678
22679         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
22680         function call that is itself an actual in an enclosing call, diagnose
22681         problem here rather than assuming that resolution will catch it.
22682
22683         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
22684         the local copy of a generic unit for a formal package, and the generic
22685         is a child unit, install private part of ancestors before compiling
22686         private part of spec.
22687
22688         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
22689         use scope entities rather than tree structures, to handle properly
22690         parent units that are instances rewritten as bodies for inlining
22691         purposes.
22692
22693         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
22694         Remove_Parents): Handle properly a parent unit that is an
22695         instantiation, when the unit has been rewritten as a body for inlining
22696         purposes.
22697
22698         * par.adb (Goto_List): Global variable to collect goto statements in a
22699         given unit, for use in detecting natural loops.
22700
22701         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
22702         use in detecting natural loops.
22703
22704         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
22705         backwards goto's, and rewrite as a infinite loop, to improve locality
22706         of temporaries.
22707
22708         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
22709         subcomponent that includes an indexed reference, to prevent the
22710         generation of copies that would miscompile the desired assignment
22711         statement.
22712         (Build_Task_Image_Decls): Add a numeric suffix to
22713         generated name for string variable, to avoid spurious conflicts with
22714         the name of the type of a single protected object.
22715
22716         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
22717         loop with an explicit exit statement, to avoid generating an
22718         out-of-range value with 'Succ leading to spurious constraint_errors
22719         when compiling with -gnatVo.
22720
22721 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
22722
22723         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
22724         might not be analyzed yet, even if its Etype is already set (case of an
22725         unchecked conversion built using Unchecked_Convert_To, for example).
22726         If the prefix has already been analyzed, this will be a nop anyway.
22727
22728         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
22729         controller type, or an assignment of a record type with controlled
22730         components, copy only user data, and leave the finalization chain
22731         pointers untouched.
22732
22733 2004-07-15  Vincent Celier  <celier@gnat.com>
22734
22735         * make.adb (Collect_Arguments): Improve error message when attempting
22736         to compile a source not part of any project, when -x is not used.
22737
22738         * prj.ads: (Defined_Variable_Kind): New subtype
22739
22740         * prj-attr.adb (Register_New_Package): Two new procedures to register
22741         a package with or without its attributes.
22742         (Register_New_Attribute): Mew procedure to register a new attribute in a
22743         package.
22744         New attribute oriented subprograms: Attribute_Node_Id_Of,
22745         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
22746         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
22747         Next_Attribute.
22748         New package oriented subprograms: Package_Node_Id_Of,
22749         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
22750
22751         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
22752         type.
22753         (Package_Node_Id): Now a private, self initialized type
22754         (Register_New_Package): New procedure to register a package with its
22755         attributes.
22756         New attribute oriented subprograms: Attribute_Node_Id_Of,
22757         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
22758         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
22759         Next_Attribute.
22760         New package oriented subprograms: Package_Node_Id_Of,
22761         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
22762
22763         * prj-dect.adb (Parse_Attribute_Declaration,
22764         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
22765
22766         * prj-makr.adb (Make): Parse existing project file before creating
22767         other files. Fail if there was an error during parsing.
22768
22769         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
22770         new spec of Prj.Attr.
22771
22772         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
22773         to new spec of Prj.Attr.
22774
22775 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22776
22777         * utils2.c: Fix typo in comment.
22778
22779 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22780
22781         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
22782         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
22783
22784 2004-07-14  Andreas Schwab  <schwab@suse.de>
22785
22786         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
22787
22788 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22789
22790         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
22791         object type.
22792         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
22793         TYPE_STUB_DECL.
22794
22795         * misc.c (gnat_types_compatible_p): New function.
22796         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
22797         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
22798
22799         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
22800         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
22801         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
22802         (mark_visited): Don't mark dummy type.
22803         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
22804         parameter, we must remove any LJM building from GNU_NAME.
22805         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
22806         (pos_to_constructor): Use int_const_binop.
22807         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
22808         PARM_DECL.
22809
22810         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
22811         (gnat_pushlevel): Set TREE_USE on BLOCK node.
22812         (gnat_install_builtins): Add __builtin_memset.
22813
22814 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
22815
22816         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
22817         for a renaming, stabilize the initialization expression if we are at a
22818         local level.  At the local level, uses of the renaming may be performed
22819         by a direct dereference of the initializing expression, and we don't
22820         want possible variables there to be evaluated for every use.
22821
22822         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
22823         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
22824         them on the way.  Account for the fact that we may introduce side
22825         effects in the process.
22826
22827 2004-07-13  Richard Henderson  <rth@redhat.com>
22828
22829         * misc.c (default_pass_by_ref): Use pass_by_reference.
22830
22831 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
22832
22833         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
22834         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
22835
22836 2004-07-08  Richard Henderson  <rth@redhat.com>
22837
22838         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
22839         commentary.
22840
22841 2004-07-06  Vincent Celier  <celier@gnat.com>
22842
22843         * vms_conv.ads: Minor reformatting.
22844         Alphabetical order for enumerated values of type Command_Type, to have
22845         the command in alphabetical order for the usage.
22846
22847         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
22848         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
22849
22850         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
22851
22852         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
22853         (Add_Archive_Path): Only add the global archive if there is one.
22854         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
22855         or not any object file to put in the global archive, and don't build
22856         a global archive if there is none.
22857         (X_Switches): New table
22858         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
22859         in the X_Switches table, if any.
22860         (Initialize): Make sure the X_Switches table is empty
22861         (Scan_Arg): Record -X switches in table X_Switches
22862
22863         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
22864
22865         * make.adb: Minor comment fix
22866
22867         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
22868         invoked with directory information, add the directory in front of the
22869         path.
22870
22871         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
22872         invoked with directory information, add the directory in front of the
22873         path.
22874
22875         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
22876         when Keep_Temporary_Files is False.
22877         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
22878         directory information, add the directory in front of the path.
22879         When not on VMS, handle new switch -dn before the command to set
22880         Keep_Temporary_Files to True.
22881         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
22882         everywhere.
22883
22884         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
22885         invoked with directory information, add the directory in front of the
22886         path.
22887
22888 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
22889
22890         * snames.ads, snames.adb (Name_Stub): New name for the distributed
22891         systems annex.
22892
22893         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
22894         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
22895
22896         * g-socket.adb (To_Timeval): Fix incorrect conversion of
22897         Selector_Duration to Timeval for the case of 0.0.
22898
22899         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
22900         documentation from Evolve_And_Then.
22901
22902 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
22903
22904         * s-taprop-tru64.adb, s-taprop-os2.adb,
22905         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
22906
22907 2004-07-06  Robert Dewar  <dewar@gnat.com>
22908
22909         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
22910         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
22911         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
22912         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
22913         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
22914         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
22915         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
22916         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
22917         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
22918         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
22919         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
22920         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
22921         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
22922         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
22923         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
22924         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
22925         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
22926         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
22927         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
22928         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
22929         vms_data.ads: Minor reformatting,
22930         Fix bad box comment format.
22931
22932         * gnat_rm.texi: Fix minor grammatical error
22933
22934         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
22935
22936         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
22937         more cases of discriminated records to be recognized as not needing a
22938         secondary stack.
22939         (Has_Access_Values): New function.
22940
22941         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
22942
22943         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
22944         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
22945         with LRM terminology).
22946         Change terminology in comments primitive type => elementary type.
22947
22948 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
22949
22950         PR ada/15602
22951         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
22952         parameters do not impose any requirements on the presence of a body.
22953
22954 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
22955
22956         PR ada/15593
22957         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
22958         compilation unit and is in an open scope at the point of instantiation,
22959         assume that a body may be present later.
22960
22961 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
22962
22963         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
22964         Improve error message when specified size is not supported.
22965
22966         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
22967         is never a primitive operation.
22968
22969 2004-07-05  Andreas Schwab  <schwab@suse.de>
22970
22971         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
22972         RECORD_OR_UNION_CHECK.
22973         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
22974
22975 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
22976
22977         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
22978         dependency on xgnatugn, instead build it via a submake.
22979         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
22980
22981 2004-07-04  Richard Henderson  <rth@redhat.com>
22982
22983         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
22984
22985 2004-07-01  Richard Henderson  <rth@redhat.com>
22986
22987         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
22988         * utils.c (max_size): Likewise.
22989
22990 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22991
22992         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
22993         and rest_of_type_compilation; add arg to create_*_decl.
22994         (annotate_decl_with_node): Deleted.
22995         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
22996         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
22997         (get_current_block_context, gnat_pushdecl): New declarations.
22998         (gnat_init_stmt_group): Likewise.
22999         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
23000         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
23001         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
23002         (gnat_init): Call gnat_init_stmt_group.
23003         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
23004         (gnu_pending_elaboration_list): Deleted.
23005         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
23006         (gigi): Rearrange initialization calls and move some to last above.
23007         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
23008         Delete calls to add_decl_expr; add arg to create_*_decl.
23009         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
23010         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
23011         begin_subprog_body and call it.
23012         Don't push and pop ggc context.
23013         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
23014         (add_stmt): Remove handling of DECL_EXPR from here.
23015         If not in function, mark visited.
23016         (add_decl_expr): Put global at top level.
23017         Check for cases of DECL_INITIAL we have to handle here.
23018         (process_type): Add extra arg to create_type_decl.
23019         (build_unit_elab): Rework to just gimplify.
23020         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
23021         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
23022         (get_pending_elaborations, pending_elaborations_p): Likewise.
23023         (push_pending_elaborations, pop_pending_elaborations): Likewise.
23024         (get_elaboration_location, insert_elaboration_list): Likewise.
23025         (gnat_binding_level): Renamed from ada_binding_level.
23026         (init_gnat_to_gnu): Don't clear pending_elaborations.
23027         (global_bindings_p): Treat as global if no current_binding_level.
23028         (set_current_block_context): New function.
23029         (gnat_pushdecl): Renamed from pushdecl; major rework.
23030         All callers changed.
23031         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
23032         (finish_record_type): Call call pushdecl for stub decl.
23033         (function_nesting_depth): Deleted.
23034         (begin_subprog_body): Delete obsolete code.
23035         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
23036
23037 2004-06-28  Robert Dewar  <dewar@gnat.com>
23038
23039         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23040         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
23041         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
23042         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
23043         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
23044
23045         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
23046         deal with problem of inefficient slices on machines with strict
23047         alignment, when the slice is a component of a composite.
23048
23049         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
23050         machines, we need the check there as well.
23051
23052 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
23053
23054         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
23055         determine safe copying direction for overlapping slice assignments
23056         when component is controlled.
23057
23058         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
23059         formal derived type in the actual for a formal package are visible in
23060         the enclosing instance.
23061
23062 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
23063
23064         PR ada/15600
23065         * sem_util.adb (Trace_Components): Diagnose properly an illegal
23066         circularity involving a private type whose completion includes a
23067         self-referential component.
23068         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
23069         renaming or an instantiation from an implicit derived operation.
23070
23071 2004-06-28  Pascal Obry  <obry@gnat.com>
23072
23073         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
23074         DLL.
23075         (Library_File_Name_For): Idem.
23076
23077 2004-06-28  Matthew Gingell  <gingell@gnat.com>
23078
23079         * g-traceb.ads: Add explanatory note on the format of addresses
23080         expected by addr2line.
23081
23082 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
23083
23084         * Makefile.in: Force debugging information on s-tasdeb.adb,
23085         a-except.adb and s-assert.adb needed by the debugger.
23086
23087 2004-06-28  Vincent Celier  <celier@gnat.com>
23088
23089         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
23090         Need_To_Build_Lib.
23091         (Gnatmake): Ditto.
23092
23093         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
23094
23095         * prj.adb: Minor reformatting
23096         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
23097
23098         * prj.ads: Comment updates
23099         Minor reformatting
23100         (Project_Data): Change Flag1 to Need_To_Build_Lib.
23101         Remove Flag2: not used.
23102
23103         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
23104         declaration.
23105
23106         * gnat_ugn.texi: Put a "null;" declaration in one project file example
23107
23108         * gnat_rm.texi: Document Empty declarations "null;".
23109
23110         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
23111         front of the linker options.
23112         (Link_Foreign): Put the global archives and the libraries in front of
23113         the linker options.
23114
23115 2004-06-28  Javier Miranda  <miranda@gnat.com>
23116
23117         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
23118         (RTU_Loaded): Code cleanup
23119         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
23120         withed predefined units.
23121
23122         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
23123         explicitly withed predefined units.
23124         Fix typo in comment
23125
23126         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
23127         explicitly withed predefined units.
23128
23129 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23130
23131         * ada-tree.def (DECL_STMT): Deleted.
23132         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
23133         (DECL_STMT_VAR): Deleted.
23134         * decl.c: add_decl_stmt now add_decl_expr.
23135         * gigi.h: Likewise.
23136         * trans.c: Likewise.
23137         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
23138         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
23139         (add_stmt): Only handle padded type here.
23140         (add_stmt_with_node): Allow gnat_node to not be present.
23141         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
23142         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
23143         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
23144         make a SAVE_EXPR for the entire fat pointer.
23145         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
23146         (create_index_type): Make a DECL_EXPR.
23147         (end_subprog_body): Don't call allocate_struct_function here but
23148         do clear cfun.
23149
23150 2004-06-25  Pascal Obry  <obry@gnat.com>
23151
23152         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
23153         Relocatable from Build_Dynamic_Library call.
23154
23155         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
23156         Relocatable are now synonym.
23157
23158         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
23159
23160         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
23161         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
23162         call.
23163
23164         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
23165         Lib_Address and Relocatable.
23166         (Default_DLL_Address): Removed.
23167
23168         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23169         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23170         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
23171         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
23172         (Default_DLL_Address): Removed.
23173
23174         * mlib-tgt-mingw.adb: Ditto.
23175         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
23176
23177         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
23178         the initial thread stack size.
23179
23180         * a-strmap.ads: Move package L to private part as it is not used in
23181         the spec. Found while reading code.
23182
23183 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
23184
23185         * tracebak.c: Introduce support for a GCC infrastructure based
23186         implementation of __gnat_backtrace.
23187
23188         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
23189         any more. Use accessors instead. This eases maintenance and relaxes
23190         some alignment constraints.
23191         (_GNAT_Exception structure): Remove the Ada specific fields
23192         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
23193         a-exexpr.adb.
23194         (is_handled_by, __gnat_eh_personality): Replace component references to
23195         exception structure by use of the new accessors.
23196
23197         * init.c (__gnat_initialize): Adjust comments to match the just
23198         reverted meaning of the -static link-time option.
23199
23200         * adaint.c (convert_addresses): Arrange not to define a stub for
23201         mips-irix any more, as we now want to rely on a real version from a
23202         recent libaddr2line.
23203
23204         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
23205         the personality routine can use them and not have to rely on a C
23206         counterpart of the record anymore. This simplifies maintenance and
23207         relaxes the constraint of having Standard'Maximum_Alignment match
23208         BIGGEST_ALIGNMENT.
23209         Update comments, and add a section on the common header alignment issue.
23210
23211 2004-06-25  Geert Bosch  <bosch@gnat.com>
23212
23213         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
23214         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
23215
23216 2004-06-25  Robert Dewar  <dewar@gnat.com>
23217
23218         * gnat_rm.texi: Fix section on component clauses to indicate that the
23219         restriction on byte boundary placement still applies for bit packed
23220         arrays.
23221         Add comment on stack usage from Initialize_Scalars
23222
23223         * gnat_ugn.texi: Add documentation for -gnatyLnnn
23224
23225         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
23226         limiting nesting level.
23227
23228         * usage.adb: Add line for -gnatyLnnn switch
23229
23230         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
23231         sem_ch13.adb, exp_aggr.adb: Minor reformatting
23232
23233         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
23234         type as well as on the subtype. This corrects a problem in freeze in
23235         setting alignments of atomic types.
23236
23237         * sem_eval.ads: Minor comment typo fixed
23238
23239         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
23240         level.  Minor reformatting.
23241
23242         * fname.adb (Is_Predefined_File_Name): Require a letter after the
23243         minus sign. This means that file names like a--b.adb will not be
23244         considered predefined.
23245
23246         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
23247         record Test new flag and give diagnostic for bad component clause.
23248         (Freeze_Entity): Set alignment of array from component alignment in
23249         cases where this is safe to do.
23250
23251         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
23252         arrays.
23253
23254         * cstand.adb: (Create_Standard): Set alignment of String to 1
23255
23256         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
23257
23258         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
23259         code in the common constrained array cases.
23260
23261         * a-storio.adb: Change implementation to avoid possible alignment
23262         problems on machines requiring strict alignment (data should be moved
23263         as type Buffer, not type Elmt).
23264
23265         * checks.adb (Apply_Array_Size_Check): Improve these checks by
23266         killing the overflow checks which we really do not need (64-bits is
23267         enough).
23268
23269 2004-06-25  Vincent Celier  <celier@gnat.com>
23270
23271         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
23272         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
23273         inconditionally for the main project.
23274         (Recursive_Add_Archives.Add_Archive_Path): New procedure
23275         (Link_Executables.Check_Time_Stamps): New procedure
23276         (Link_Executables.Link_Foreign): New procedure
23277         Changes made to reduce nesting level of this package
23278         (Check): New procedure
23279         (Add_Switches): When not in quiet output, check that a switch is not
23280         the concatenation of several valid switches. If it is, issue a warning.
23281         (Build_Global_Archive): If the global archive is rebuilt, linking need
23282         to be done.
23283         (Compile_Sources): Rebuilding a library archive does not imply
23284         rebuilding the global archive.
23285         (Build_Global_Archive): New procedure
23286         (Build_Library): New name for Build_Archive, now only for library
23287         project
23288         (Check_Archive_Builder): New procedure
23289         (Create_Global_Archive_Dependency_File): New procedure
23290         (Gprmake): Call Build_Global_Archive before linking
23291         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
23292         throughout.
23293         (Scan_Arg): Display the Copyright notice when -v is used
23294
23295         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
23296         for gnatls.
23297
23298         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
23299         COMPILE.
23300         Add new GNAT LIST qualifier /FILES=
23301         Added qualifier /DIRECTORY= to GNAT METRIC
23302         Added qualifier /FILES= to GNAT METRIC
23303         Added qualifier /FILES to GNAT PRETTY
23304
23305         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
23306         to take into account both versions of the switch.
23307
23308         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
23309         always be the last switch to the gcc driver. Disable switch storing so
23310         that switches automatically added by the gcc driver are not put in the
23311         ALI file.
23312
23313         * prj.adb (Project_Empty): Take into account changes in components of
23314         Project_Data.
23315
23316         * prj.ads (Languages_Processed): New enumaration value All_Languages.
23317
23318         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
23319         used. Split Boolean component Ada_Sources_Present in two Boolean
23320         components Ada_Sources_Present and Other_Sources_Present.
23321         Minor reformatting
23322
23323         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
23324         instead of Sources_Present.
23325         (Set_Ada_Paths.Add.Recursive_Add): Ditto
23326
23327         * prj-nmsc.adb: Minor reformatting
23328         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
23329         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
23330         Check_Ada_Naming_Scheme.
23331         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
23332         throughout.
23333
23334         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
23335         In_Limited.
23336         Make sure that all cycles where there is at least one "limited with"
23337         are detected.
23338         (Parse_Single_Project): New Boolean parameter In_Limited
23339
23340         * prj-proc.adb (Recursive_Check): When Process_Languages is
23341         All_Languages, call first Prj.Nmsc.Ada_Check, then
23342         Prj.Nmsc.Other_Languages_Check.
23343
23344         * prj-proc.adb (Process): Use Ada_Sources_Present or
23345         Other_Sources_Present (instead of Sources_Present) depending on
23346         Process_Languages.
23347
23348         * lang-specs.h: Keep -g and -m switches in the same order, and as the
23349         last switches.
23350
23351         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
23352         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
23353         False.
23354         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
23355         False.
23356
23357         * lib.ads (Disable_Switch_Storing): New procedure.
23358
23359         * make.adb: Modifications to reduce nesting level of this package.
23360         (Check_Standard_Library): New procedure
23361         (Gnatmake.Check_Mains): New procedure
23362         (Gnatmake.Create_Binder_Mapping_File): New procedure
23363         (Compile_Sources.Compile): Add switch -gnatez as the last option
23364         (Display): Never display -gnatez
23365
23366         * Makefile.generic:
23367         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
23368
23369         * gnatcmd.adb (Check_Project): New function
23370         (Process_Link): New procedure to reduce nesting depth
23371         (Check_Files): New procedure to reduce the nesting depth.
23372         For GNAT METRIC, include the inherited sources in extending projects.
23373         (GNATCmd): When GNAT LS is invoked with a project file and no files,
23374         add the list of files from the sources of the project file. If this list
23375         is too long, put it in a temp text files and use switch -files=
23376         (Delete_Temp_Config_Files): Delete the temp text file that contains
23377         a list of source for gnatpp or gnatmetric, if one has been created.
23378         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
23379         in the project file is too large, create a temporary text file that
23380         list them and pass it to the tool with "-files=<temp text file>".
23381         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
23382
23383         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
23384         generated file is in not in Ada.
23385
23386         * gnatls.adb: Remove all parameters And_Save that are no longer used.
23387         (Scan_Ls_Arg): Add processing for -files=
23388         (Usage): Add line for -files=
23389
23390         * g-os_lib.adb (On_Windows): New global constant Boolean flag
23391         (Normalize_Pathname): When on Windows and the path starts with a
23392         directory separator, make sure that the resulting path will start with
23393         a drive letter.
23394
23395         * clean.adb (Clean_Archive): New procedure
23396         (Clean_Project): When there is non-Ada code, delete the global archive,
23397         the archive dependency files, the object files and their dependency
23398         files, if they exist.
23399         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
23400
23401 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
23402
23403         * sinfo.ads: Fix typo in comment.
23404
23405         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
23406         the TSS for remote access-to-subprogram types, since these TSS are
23407         always present once the type has been analyzed.
23408         (RAS_E_Dereference): Same.
23409
23410         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
23411         reference raises Bad_Attribute, mark the reference as analyzed so the
23412         node (and any children resulting from rewrites that could have occurred
23413         during the analysis that ultimately failed) is not analyzed again.
23414
23415         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
23416
23417         * exp_dist.adb: Minor comment fix.
23418
23419         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
23420         type is an anonymous access type, no unchecked deallocation of the
23421         allocated object can occur. If the object is controlled, attach it with
23422         a count of 1. This allows attachment to the Global_Final_List, if
23423         no other relevant list is available.
23424         (Get_Allocator_Final_List): For an anonymous access type that is
23425         the type of a discriminant or record component, the corresponding
23426         finalisation list is the one of the scope of the type.
23427
23428 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
23429
23430         * sem_ch3.adb (Replace_Type): When computing the signature of an
23431         inherited subprogram, use the first subtype if the derived type
23432         declaration has no constraint.
23433
23434         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
23435         before applying previous optimization. Minor code cleanup.
23436
23437         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
23438         placed at the beginning of an unpacked record without explicit
23439         alignment, a slice of it will be aligned and does not need a copy when
23440         used as an actual.
23441
23442 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
23443
23444         PR ada/15591
23445         PR ada/15592
23446         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
23447         reference is written with expressions mimicking parameters.
23448
23449 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
23450
23451         PR ada/15589
23452         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
23453         STEP 2a. The constraints of a full type declaration of a derived record
23454         type are checked for conformance with those declared in the
23455         corresponding private extension declaration. The message
23456         "not conformant with previous declaration" is emitted if an error is
23457         detected.
23458
23459 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
23460
23461         * g-traceb.ads: Document the need for -E binder switch in the spec.
23462
23463         * g-trasym.ads: Document the need for -E binder switch in the spec.
23464
23465 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
23466
23467         * sem_prag.adb: Add handling of pragma Detect_Blocking.
23468
23469         * snames.h, snames.ads, snames.adb: Add entry for pragma
23470         Detect_Blocking.
23471
23472         * s-rident.ads: Change reference to pragma Detect_Blocking.
23473
23474         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
23475         system.ads.
23476
23477         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
23478         to indicate whether pragma Detect_Blocking is active.
23479
23480         * par-prag.adb: Add entry for pragma Detect_Blocking.
23481
23482         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
23483         of not handling WITH.
23484         Note that this replaces the previous update which was incorrect.
23485
23486 2004-06-25  Javier Miranda  <miranda@gnat.com>
23487
23488         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
23489         use-clauses to have a clean environment.
23490
23491         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
23492         the installation of the use-clauses to stablish a clean environment in
23493         case of compilation of a separate unit; otherwise the call to
23494         use_one_package is protected by the barrier Applicable_Use.
23495
23496         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
23497         the installation of the use-clauses to stablish a clean environment in
23498         case of compilation of a separate unit.
23499         (End_Use_Clauses): Minor comment cleanup.
23500
23501 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
23502
23503         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
23504
23505 2004-06-23  Richard Henderson  <rth@redhat.com>
23506
23507         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
23508
23509 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23510
23511         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
23512         now bool instead of int.
23513         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
23514         * trans.c (gnu_switch_label_stack): New function.
23515         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
23516         elaboration of renamed entity returns.
23517         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
23518         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
23519         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
23520         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
23521         DECL_SIZE_UNIT and simplify variable-sized case.
23522         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
23523         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
23524         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
23525         (build_unit_elab): Disable for now.
23526         * utils.c (mark_visited): New function.
23527         (pushdecl): Walk tree to call it for global decl.
23528         (update_pointer_to): Update all variants of pointer and ref types.
23529         Add arg to COMPONENT_REF.
23530         (convert): Likewise.
23531         Move check for converting between variants lower down.
23532         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
23533         (build_allocator): Don't force type of MODIFY_EXPR.
23534         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
23535         put_var_into_stack.
23536
23537 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23538
23539         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
23540         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
23541         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
23542         subprograms.
23543         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
23544         all callers changed.
23545         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
23546         the way that EXIT_STMT finds the loop label.
23547         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
23548         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
23549         (add_stmt): Use annotate_with_locus insted of setting directly.
23550         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
23551         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
23552         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
23553         (build_vms_descriptor): Add extra args to ARRAY_REF.
23554         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
23555         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
23556         New cases.
23557         (build_binary_op): Don't make explicit CONVERT_EXPR.
23558         Add extra rgs to ARRAY_REF.
23559
23560 2004-06-14  Pascal Obry  <obry@gnat.com>
23561
23562         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
23563         Windows.  Fix minor typo.
23564
23565         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
23566         which is now supported on Windows. With this implementation using the
23567         Library Project feature is no different on Windows than on UNIX.
23568
23569 2004-06-14  Vincent Celier  <celier@gnat.com>
23570
23571         * makegpr.adb (Compile_Sources): Nothing to do when there are no
23572         non-Ada sources.
23573
23574         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
23575
23576         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
23577         found, show the project name and the path of the previously parsed
23578         project file.
23579
23580 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
23581
23582         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
23583         array, avoid copying the actual before the call.
23584
23585 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
23586
23587         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
23588         Instead, allocate memory on worst-case alignment assumptions, and then
23589         return an aligned address within the allocated zone.
23590
23591 2004-06-14  Robert Dewar  <dewar@gnat.com>
23592
23593         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
23594         elab entities in predefined units in No_Run_Time_Mode.
23595         (Gen_Adainit_C): Same fix
23596         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
23597         units in No_Run_Time_Mode
23598         (Gen_Elab_Calls_C): Same fix
23599
23600         * symbols-vms-alpha.adb: Minor reformatting
23601
23602         * g-debpoo.ads: Minor reformatting
23603
23604         * lib.adb (In_Same_Extended_Unit): Version working on node id's
23605
23606         * lib.ads (In_Same_Extended_Unit): Version working on node id's
23607
23608         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
23609         working on nodes.
23610
23611         * make.adb: Minor reformatting
23612
23613         * par-ch12.adb: Minor reformatting
23614
23615         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
23616
23617         * prj-strt.adb: Minor reformatting
23618
23619         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
23620         be more general.
23621
23622         * sem_attr.adb: Minor reformatting
23623
23624         * sem_ch7.adb: Minor reformatting
23625
23626         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
23627         for type in the same unit as the object declaration.
23628
23629         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
23630         static string expressions and not just string literals.
23631         Minor reformatting
23632         (Set_Warning): Reset restriction warning flag for restriction pragma
23633         Implement pragma Profile_Warnings
23634         Implement pragma Profile (Restricted)
23635         Give obolescent messages for old restrictions and pragmas
23636
23637         * snames.h, snames.ads, snames.adb: Add new entry for pragma
23638         Profile_Warnings.
23639
23640         * s-rident.ads: Add declarations for restrictions required by profile
23641         Restricted and profile Ravenscar.
23642
23643         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
23644
23645         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
23646         configuration pragmas.
23647
23648 2004-06-11  Vincent Celier  <celier@gnat.com>
23649
23650         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
23651         gnatsym, when symbol policy is Restricted.
23652
23653         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
23654         gnatsym, when symbol policy is Restricted.
23655
23656         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
23657         read the symbol file.
23658         (Finalize): Fail in symbol policy Restricted if a symbol in the original
23659         symbol file is not in the object files. Do not create a new symbol file
23660         when symbol policy is Restricted.
23661
23662         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
23663         in Scng.
23664
23665         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
23666         Restricted.
23667         (Usage): Line for new switch -R
23668
23669         * make.adb (Initialize): When the platform is not VMS, add the
23670         directory where gnatmake is invoked in the front of the path, if
23671         gnatmake is invoked with directory information.  Change the Scan_Args
23672         while loop to a for loop.
23673         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
23674         if Depth is equal or greater than the proposed depth, there is nothing
23675         to do.
23676         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
23677         instead of 0.
23678
23679         * prj.ads: Add new symbol policy Restricted.
23680
23681         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
23682         with the new parameters Check_All_Labels and Case_Location.
23683
23684         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
23685         (Library_Symbol_File needs to be defined).
23686
23687         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
23688         and Case_Location If Check_All_Labels is True, check that all values of
23689         the string type are used, and output warning(s) if they are not.
23690
23691         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
23692         and Case_Location.
23693
23694         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
23695
23696         * gnat_ugn.texi: Update documentation about the library directory in
23697         Library Projects.
23698
23699         * makegpr.adb (Display_Command): In verbose mode, also display the
23700         value of the CPATH env var, when the compiler is gcc.
23701         (Initialize): Change the Scan_Args while loop to a for loop
23702         (Compile_Individual_Sources): Change directory to object directory
23703         before compilations.
23704
23705         * symbols.ads: New symbol policy Restricted.
23706
23707 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
23708
23709         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
23710         is now taken care of internally in the Exception_Propagation package
23711         and does not require clients assistance any more.
23712
23713         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
23714         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
23715         functions. Helpers to maintain a predicate required in the handling of
23716         occurrence transfer between tasks.
23717         This is now handled internally and does not require clients assistance
23718         for the setup/propagate separation anymore.
23719         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
23720         allocation strategy, handle the Setup_And_Not_Propagated predicate and
23721         document.
23722
23723         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
23724         raise_after_setup, now that everything is handled internally within the
23725         setup/propagation engine.
23726
23727 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
23728
23729         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
23730         Add additional conditions for the case of an actual being a simple
23731         name or literal. Improve inlining by preventing the generation
23732         of temporaries with a short lifetime (one use).
23733
23734 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
23735
23736         PR ada/15587
23737         * einfo.ads: Minor comment updates for Has_Completion and
23738         E_Constant list of flags.
23739
23740         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
23741         and constant redeclarations now set the Has_Completion flag of their
23742         defining identifiers.
23743
23744         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
23745         Inspect_Deferred_Constant_Completion.
23746         Used to detect private deferred constants that have not been completed
23747         either by a constant redeclaration or pragma Import. Emits error message
23748         "constant declaration requires initialization expression".
23749
23750         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
23751         completes a deferred constant.
23752
23753 2004-06-11  Geert Bosch  <bosch@gnat.com>
23754
23755         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
23756
23757         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
23758         calculating exponent for scaling denormal numbers.
23759         (Leading_Part): Properly raise Constraint_Error for zero or negative
23760         Adjustment.
23761         (Remainder): Properly raise Constraint_Error for zero divisor.
23762
23763 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
23764
23765         * sem_util.adb: Minor reformatting.
23766
23767         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
23768         dereference when accessing the entry parameter record.
23769         (Check_Array_Type): Always check for possible implicit dereference.
23770         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
23771         Abort if a pointer is still present (denoting that an implicit
23772         dereference was left in the tree by the front-end).
23773
23774         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
23775         dereference when accessing the entry parameter record.
23776         (Check_Array_Type): Always check for possible implicit dereference.
23777         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
23778         Abort if a pointer is still present (denoting that an implicit
23779         dereference was left in the tree by the front-end).
23780
23781 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
23782
23783         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
23784         message, like the compiler itself does. Easier to parse the output.
23785
23786         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
23787
23788         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
23789         be base names, and not includes directories.
23790
23791 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
23792
23793         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
23794         so that dependencies are properly taken into account by make.
23795
23796 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
23797
23798         PR ada/15622
23799         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
23800         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
23801
23802 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
23803
23804         * Makefile.in (install-gnatlib): install target-specific run-time files.
23805
23806         * Make-lang.in: Remove obsolete targets.
23807
23808 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
23809
23810         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
23811         specification, to catch misuses of program unit names.
23812
23813         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
23814         superfluous conversions in an instance.
23815
23816 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
23817
23818         PR ada/15403
23819         * sem_ch12.adb (Save_References): If operator node has been folded to
23820         enumeration literal, associated_node must be discarded.
23821
23822 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
23823
23824         * s-stchop-vxworks.adb: Add required pragma Convention to
23825         Task_Descriptor because it is updated by a C function.
23826
23827 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
23828
23829         PR ada/15568
23830         * Makefile.in: Remove target specific SO_OPT on IRIX
23831
23832 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23833
23834         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
23835         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
23836         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
23837         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
23838         (STMT_STMT, USE_STMT): New statement codes.
23839         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
23840         * ada-tree.h: Reflect above changes.
23841         (struct tree_loop_id): Deleted.
23842         (union lang_tree_node, struct lang_decl, struct lang_type):
23843         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
23844         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
23845         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
23846         (IS_ADA_STMT): New macro.
23847         * decl.c (annotate_decl_with_node): New function.
23848         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
23849         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
23850         Call add_stmt_with_node to do needed assignments.
23851         Add call to update setjmp buffer directly, not via EXPR_STMT.
23852         (maybe_variable): Argment GNAT_NODE deleted.
23853         * gigi.h (maybe_variable): Likewise.
23854         (make_transform, add_stmt_with_node, set_block_for_group): New.
23855         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
23856         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
23857         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
23858         (set_lineno, set_lineno_from_sloc): Likewise.
23859         (record_code_position, insert_code_for): Likewise.
23860         (gnat_poplevel): Now returns void.
23861         (end_subprog_body): Now takes argument.
23862         * misc.c (cgraph.h, tree-inline.h): New includes.
23863         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
23864         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
23865         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
23866         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
23867         (gnat_parse_file): Don't set immediate_size_expand.
23868         Call cgraph functions.
23869         (gnat_expand_expr): Remove most cases.
23870         (record_code_position, insert_code_for): Remove from here.
23871         * trans.c (toplev.h, tree-gimple.h): Now included.
23872         (discard_file_names): Deleted.
23873         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
23874         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
23875         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
23876         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
23877         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
23878         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
23879         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
23880         (set_block_for_group, add_stmt_list): Likewise.
23881         (start_stmt_group): Renamed from start_block_stmt.
23882         (end_stmt_group): Likewise, from end_block_stmt.
23883         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
23884         (gigi): Don't set discard_file_names or call set_lineno.
23885         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
23886         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
23887         Numerous changes throughout to reflect new names and complete
23888         function-at-a-time implementation.
23889         (gnat_expand_stmt): Delete or comment out all cases.
23890         (process_inlined_subprograms): Use add_stmt.
23891         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
23892         call set_lineno; also remove unneeded block handling.
23893         (process_type): Remove unneeded block handling.
23894         (build_unit_elab): Remove calls to deleted functions.
23895         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
23896         (tree-dump.h): Likewise.
23897         (struct ada_binding_level): Add field jmpbuf_decl.
23898         (gnat_define_builtin, gnat_install_builtins): New.
23899         (gnat_gimplify_function, gnat_finalize): Likewise.
23900         (gnat_poplevel): No longer return BLOCK, set it instead.
23901         Remove code dealing with nested functions.
23902         (gnat_init_decl_processing): Also set size_type_node.
23903         Call gnat_install_builtins.
23904         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
23905         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
23906         Remove special-case for "main".
23907         (end_subprog_body): Add arg and rework for tree-ssa.
23908         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
23909         Add case for BOOLEAN_TYPE.
23910         * utils2.c (rtl.h): Now include.
23911         (build_call_raise): Test Debug_Flag_NN directly.
23912         (build_call_alloc_dealloc): Don't use local stack allocation for now.
23913         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
23914         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
23915
23916 2004-06-07  Robert Dewar  <dewar@gnat.com>
23917
23918         * a-direct.ads, einfo.ads: Minor comment updates
23919
23920         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
23921         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
23922         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
23923         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
23924         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
23925
23926         * s-interr-sigaction.adb: Remove unreferenced variable
23927         (Attached_Interrupts).  Minor reformatting.
23928         Avoid use of variable I (replace by J).
23929
23930         * par-ch10.adb: Fix text of one error message
23931
23932         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
23933         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
23934         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
23935         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
23936         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
23937         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
23938         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
23939         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
23940         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
23941         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
23942         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
23943         2005 support.
23944
23945 2004-06-07  Doug Rupp  <rupp@gnat.com>
23946
23947         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
23948
23949         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
23950
23951         * mlib-tgt-vms-ia64.adb: New file.
23952
23953         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
23954         Add mlib-tgt-vms-ia64.adb
23955         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
23956         Move to alpha specific ifeq section.
23957         Add VMS specific versions of symbols.adb
23958         Renaming of 5q vms files.
23959
23960         * 5qsystem.ads renamed to system-vms_64.ads.
23961
23962 2004-06-07  Vincent Celier  <celier@gnat.com>
23963
23964         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
23965         explain that when a time of day corresponding to the non existing hour
23966         on the day switching to DST is specified, Split may return a different
23967         value for Seconds.
23968
23969         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
23970         to GNAT PRETTY.
23971
23972         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
23973         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
23974
23975         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
23976         to False.
23977         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
23978         the linking options.
23979         (Build_Library.Check_Libs): On VMS, if there is a dependency on
23980         g-trasym.ads, set Gtrasymobj_Needed to True.
23981
23982         * prj-attr.adb: Add new package Metrics for gnatmetric
23983
23984         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
23985         canonical case to take into account files with upper case characters on
23986         Windows.
23987         (Ada_Check): Load the reference symbol file name in the name buffer to
23988         check it, not the symbol file name.
23989
23990         * snames.ads, snames.adb: Add standard name Metrics (name of project
23991         file package for gnatmetric).
23992
23993         * vms_conv.ads: Add Metric to Comment_Type
23994
23995         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
23996
23997         * vms_data.ads: Add qualifiers for GNAT METRIC
23998
23999         * makegpr.adb (Link_Executables): Take into account the switches
24000         specified in package Linker of the main project.
24001
24002 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
24003
24004         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
24005         the index of the last element is Units.Last, not Units.Table'Last
24006         (which is usually not a valid index within the actually allocated
24007         storage for the table).
24008
24009         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
24010         determines whether to generate a call to a checked storage pool
24011         Dereference action.
24012         Generate such a call only for a dereference that either comes from
24013         source, or is the result of rewriting a dereference that comes from
24014         source.
24015
24016 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
24017
24018         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
24019
24020 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
24021
24022         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
24023         file level, elaborate the stride for inner dimensions in alignment
24024         units, not bytes.
24025
24026         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
24027         in a comment.
24028
24029 2004-06-07  Javier Miranda  <miranda@gnat.com>
24030
24031         * exp_ch6.adb: Correct wrong modification in previous patch
24032
24033 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
24034
24035         * g-trasym.ads: Corrected comment to properly reflect level of support
24036         on VMS.
24037
24038 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
24039
24040         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
24041         includes case of a variable referenced on the left hand side of an
24042         assignment, therefore remove redundant code. Variables and prefixes of
24043         indexed or selected components are now marked as referenced on left
24044         hand side. Warnings are now properly emitted when variables or prefixes
24045         are assigned but not read.
24046
24047         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
24048         left hand side referenced variables. Private access types do not
24049         produce the warning "variable ... is assigned but never read".
24050         Add also additional checks to left hand side referenced variables.
24051         Aliased, renamed objects and access types do not produce the warning
24052         "variable ... is assigned but never read" since other entities may read
24053         the memory location.
24054
24055 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
24056
24057         * Makefile.in: In the powerpc/vxworks-specific section, restore
24058         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
24059         by mistake).
24060
24061 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
24062
24063         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
24064         predefined operators.
24065         Removes spurious type errors from g-trasym-vms.adb.
24066
24067         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
24068         distinct from the operator appearing in the source, call appropriate
24069         routine to insert conversions when needed, and complete resolution of
24070         node.
24071         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
24072         interpretations for rewritten right operand.
24073         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
24074         the other operand is overloaded and the context is a type conversion.
24075
24076 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24077
24078         * ada-tree.def (BLOCK_STMT): Now has two operands.
24079         (BREAK_STMT): New.
24080
24081         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
24082
24083         * gigi.h: (gnat_poplevel): Now returns a tree.
24084
24085         * trans.c (end_block_stmt): Add arg; all callers changed.
24086         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
24087         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
24088         (add_stmt): Set TREE_TYPE.
24089         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
24090         (gnat_expand_stmt, case BREAK_STMT): New case.
24091
24092         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
24093
24094 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
24095
24096         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
24097         procedure Set_Stack_Size that is not needed.
24098
24099 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
24100
24101         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
24102         used for gnatpp input file and for the files upon which it depends
24103
24104 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
24105
24106         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
24107
24108 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
24109
24110         * gnatvsn.ads: Bump version numbers appropriately.
24111         Add new build type.
24112
24113 2004-06-07  Pascal Obry  <obry@gnat.com>
24114
24115         * gnat_ugn.texi: Improve comments about imported names and link names
24116         on Windows. Add a note about the requirement to use -k gnatdll's option
24117         when working with a DLL which has stripped stdcall symbols (no @nn
24118         suffix).
24119
24120 2004-05-27  Vincent Celier  <celier@gnat.com>
24121
24122         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
24123         COMMENTS_LAYOUT=UNTOUCHED
24124
24125         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
24126         symbols-vms-alpha.adb
24127
24128 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
24129
24130         * sem.ads: Clarify documentation on checks suppression.
24131
24132         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
24133
24134 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
24135
24136         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
24137         the case of multiple derivations.
24138         (Is_Object_Reference): For a selected component, verify that the prefix
24139         is itself an object and not a value.
24140
24141         * sem_ch12.adb (Same_Instantiated_Constant): New name for
24142         Same_Instantiated_Entity.
24143         (Same_Instantiated_Variable): Subsidiary to
24144         Check_Formal_Package_Instance, to recognize actuals for in-out generic
24145         formals that are obtained from a previous formal package.
24146         (Instantiate_Subprogram_Body): Emit proper error when
24147         generating code and the proper body of a stub is missing.
24148
24149         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
24150         has a universal interpretation, do the disambiguation here.
24151
24152         * exp_ch4.adb (Expand_N_Type_Conversion,
24153         Expand_N_Unchecked_Type_Conversion): Special handling when target type
24154         is Address, to avoid typing anomalies when Address is a visible integer
24155         type.
24156
24157         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
24158         to determine whether a subprogram should not be marked Pure, even when
24159         declared in a pure package.
24160
24161 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
24162
24163         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
24164
24165         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
24166         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
24167         Update the documentation about the Ravenscar profile, following the
24168         definition found in AI-249.
24169
24170         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
24171         setting the Profile (Ravenscar). This must be done in addition to
24172         setting the required restrictions.
24173
24174         * rtsfind.ads: Add the set of operations defined in package
24175         Ada.Interrupts.
24176
24177         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
24178         restriction.
24179
24180 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
24181
24182         lang-specs.h: Always require -c or -S and always redirect to /dev/null
24183         if -gnatc or -gnats is passed.
24184
24185 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
24186
24187         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
24188         a significant reference. Warnings are now properly emitted when a
24189         discriminated type is not referenced.
24190
24191         * lib-xref.adb (Generate_Reference): A deferred constant completion,
24192         record representation clause or record type discriminant does not
24193         produce a reference to its corresponding entity. Warnings are now
24194         properly emitted when deferred constants and record types are not
24195         referenced.
24196
24197 2004-05-27  Geert Bosch  <bosch@gnat.com>
24198
24199         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
24200         Fixes ACATS Annex G tests.
24201
24202 2004-05-27  Robert Dewar  <dewar@gnat.com>
24203
24204         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
24205         handling WITH
24206
24207 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
24208
24209         * s-interr.adb (Server_Task): Take into account case of early return
24210         from sigwait under e.g. linux.
24211
24212 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
24213
24214         * gnat_ugn.texi: Add description for the new gnatpp options:
24215          -rnb - replace the original source without creating its backup copy
24216          -c0 - do not format comments
24217
24218 2004-05-24  Geert Bosch  <bosch@gnat.com>
24219
24220         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
24221         with 192 bits of precision, sufficient to reduce a double-extended
24222         arguments X with a maximum relative error of T'Machine_Epsilon, for X
24223         in -2.0**32 .. 2.0**32.
24224         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
24225         reduction by the processor, which only uses a 68-bit approximation of
24226         Pi.
24227         (Tan): Always reduce arguments and compute function either using
24228         the processor's fptan instruction, or by dividing sin and cos as needed.
24229
24230 2004-05-24  Doug Rupp  <rupp@gnat.com>
24231
24232         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
24233         gcc error on 32/64 bit VMS.
24234
24235 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
24236
24237         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
24238         since this is what we get for stack overflows although not documented
24239         as such.
24240         Document the issues which may require adjustments to our signal
24241         handlers.
24242
24243 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
24244
24245         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
24246         enclosing dynamic scope if the instantiation is within a generic unit.
24247
24248 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
24249
24250         * exp_dbug.ads: Fix typo.
24251
24252         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
24253         Rename it to its proper name: system-linux-ia64.ads
24254         (stamp-gnatlib1): Remove extra target specific run time files when
24255         setting up the rts directory.
24256
24257 2004-05-24  Javier Miranda  <miranda@gnat.com>
24258
24259         * einfo.ads, einfo.adb (Limited_Views): Removed.
24260         (Limited_View): New attribute that replaces the previous one. It is
24261         now a bona fide package with the limited-view list through the
24262         first_entity and first_private attributes.
24263
24264         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
24265         limited-private-with clause.
24266         (Install_Limited_Withed_Unit): Install the private declarations of a
24267         limited-private-withed package. Update the installation of the shadow
24268         entities according to the new structure (see Build_Limited_Views)
24269         (Build_Limited_Views): Replace the previous implementation of the
24270         limited view by a package entity that references the first shadow
24271         entity plus the first shadow private entity (required for limited-
24272         private-with clause)
24273         (New_Internal_Shadow_Entity): Code cleanup.
24274         (Remove_Limited_With_Clause): Update the implementation to undo the
24275         new work carried out by Build_Limited_Views.
24276         (Build_Chain): Complete documentation.
24277         Replace Ada0Y by Ada 0Y in comments
24278         Minor reformating
24279
24280         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
24281         types the level of accessibility depends on the enclosing type
24282         declaration.
24283
24284         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
24285         entities. Complete documentation of previous change.
24286
24287 2004-05-24  Robert Dewar  <dewar@gnat.com>
24288
24289         * namet.adb: Minor reformatting
24290         Avoid use of name I (replace by J)
24291         Minor code restructuring
24292
24293         * sem_ch6.adb: Minor reformatting
24294
24295         * lib-writ.adb: Do not set restriction as active if this is a
24296         Restriction_Warning case.
24297
24298         * sem_prag.adb: Reset restriction warning flag if real pragma
24299         restriction encountered.
24300
24301         * s-htable.adb: Minor reformatting
24302         Change rotate count to 3 in Hash (improves hash for small strings)
24303
24304         * 5qsystem.ads: Add comments for type Address (no literals allowed).
24305
24306         * gnat_ugn.texi: Add new section of documentation "Code Generation
24307         Control", which describes the use of -m switches.
24308
24309 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
24310
24311         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
24312         through the DECL_INITIAL for renamed variables.
24313
24314 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
24315
24316         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
24317
24318 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
24319
24320         * exp_dbug.ads: Correct comments concerning handling of overloading,
24321         since we no longer use $ anymore.
24322
24323 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
24324
24325         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
24326         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
24327         with illegal subunits.
24328
24329 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
24330
24331         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
24332         body with front-end inlining enabled, check whether an inline pragma
24333         appears immediately after the body and applies to it.
24334
24335         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
24336         enabled and the pragma appears after the body of the subprogram.
24337
24338 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24339
24340         Part of function-at-a-time conversion
24341
24342         * misc.c (adjust_decl_rtl): Deleted.
24343         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
24344         Define.
24345
24346         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
24347         (add_decl_stmt, add_stmt, block_has_vars): New functions.
24348         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
24349
24350         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
24351         when making a decl.
24352         (gnat_to_gnu_entity): Likewise.
24353         Use add_stmt to update setjmp buffer.
24354         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
24355         flush_addressof.
24356         No longer call adjust_decl_rtl.
24357         (DECL_INIT_BY_ASSIGN_P): New macro.
24358         (DECL_STMT_VAR): Likewise.
24359
24360         * trans.c (gigi): Call start_block_stmt to make the outermost
24361         BLOCK_STMT.
24362         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
24363         Call start_block_stmt and end_block_stmt temporarily.
24364         Use gnat_expand_stmt instead of expand_expr_stmt.
24365         (add_decl_stmt): New function.
24366         (tree_transform): Call it.
24367         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
24368         (end_block_stmt): Set type and NULL_STMT.
24369         (gnat_expand_stmt): Make recursize call instead of calling
24370         expand_expr_stmt.
24371         (gnat_expand_stmt, case DECL_STMT): New case.
24372         (set_lineno_from_sloc): Do nothing if global.
24373         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
24374         (start_block_stmt, add_stmt, end_block_stmt): New functions.
24375         (build_block_stmt): Call them.
24376         (gnat_to_code): Don't expand NULL_STMT.
24377         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
24378         args.
24379         (tree_transform): Likewise.
24380         (tree_transform, case N_Null_Statement): Return NULL_STMT.
24381         (gnat_expand_stmt, case NULL_STMT): New case.
24382         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
24383         IF_STMT_TRUE.
24384
24385         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
24386         TREE_ADDRESSABLE.
24387
24388         * utils.c (create_var_decl): Do not call expand_decl or
24389         expand_decl_init.
24390         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
24391         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
24392         here.
24393         (struct e_stack): Add chain_next to GTY.
24394         (struct binding_level): Deleted.
24395         (struct ada_binding_level): New struct.
24396         (free_block_chain): New.
24397         (global_binding_level, clear_binding_level): Deleted.
24398         (global_bindings_p): Rework to see if no chain.
24399         (kept_level_p, set_block): Deleted.
24400         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
24401         new data structure and work directly on BLOCK node.
24402         (gnat_poplevel): Similarly.
24403         (get_decls): Look at BLOCK_VARS.
24404         (insert_block): Work directly on BLOCK node.
24405         (block_has_var): New function.
24406         (pushdecl): Rework for new binding structures.
24407         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
24408         poplevel.
24409         (build_subprog_body): Likewise.
24410         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
24411
24412         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
24413
24414         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
24415         (DECL_STMT_VAR): Likewise.
24416
24417 2004-05-17  Robert Dewar  <dewar@gnat.com>
24418
24419         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
24420         procedure
24421
24422         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
24423         of restriction synonyums by using
24424         Restrict.Process_Restriction_Synonyms.
24425
24426         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
24427
24428         * s-restri.ads (Tasking_Allowed): Correct missing comment
24429
24430         * s-rident.ads: Add entries for restriction synonyms
24431
24432         * ali.adb: Fix some problems with badly formatted ALI files that can
24433         result in infinite loops.
24434
24435         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
24436         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
24437         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
24438         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
24439         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
24440         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
24441         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
24442         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
24443         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
24444         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
24445         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
24446         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
24447         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
24448         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
24449         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
24450         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
24451         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
24452         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
24453         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
24454         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
24455         to Task_Id (minor cleanup).
24456
24457 2004-05-17  Vincent Celier  <celier@gnat.com>
24458
24459         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
24460         directory separator.
24461
24462         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
24463         project being extended, if Languages is not declared in extending
24464         project.
24465
24466 2004-05-17  Javier Miranda  <miranda@gnat.com>
24467
24468         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
24469         limited view of a visible sibling.
24470
24471 2004-05-14  Robert Dewar  <dewar@gnat.com>
24472
24473         * gnat_ugn.texi: Minor change to -gnatS documentation
24474
24475         * sprint.adb: Remove some instances of Assert (False) and for this
24476         purpose replace them by output of a ??? string.
24477
24478         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
24479         Assert (False).
24480
24481         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
24482         flag processing. This was suppressing required dependencies in
24483         No_Run_Time mode and is not needed since the binder does not generate
24484         references for things in libgnat anyway.
24485
24486         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
24487         warning.
24488
24489 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
24490
24491         * gnat_ugn.texi: Document AIX-specific issue with initialization of
24492         resolver library.
24493
24494         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
24495         action for the case of an actual parameter in an init proc call.
24496
24497 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
24498
24499         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
24500         subtype, check visible entities in base type.
24501
24502         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
24503         actions if the object is a renaming.
24504
24505         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
24506         Check_Formal_Package_Instance, to determine more precisely when the
24507         formal and the actual denote the same entity.
24508
24509 2004-05-14  Javier Miranda  <miranda@gnat.com>
24510
24511         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
24512
24513         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
24514         corresponding to a private_with must be removed from visibility; it
24515         will be made visible later, just before we analyze the private part of
24516         the package.
24517         (Check_Private_Child_Unit): Allow private_with clauses in public
24518         siblings.
24519         (Install_Siblings): Make visible the private entities of private-withed
24520         siblings.
24521         (Install_Withed_Unit): Do not install the private withed unit if we
24522         are compiling a package declaration and the Private_With_OK flag was
24523         not set by the caller. These declarations will be installed later,
24524         just before we analyze the private part of the package.
24525
24526         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
24527         during the evaluation of the expression that initializes the object,
24528         decorate it with the expected type to avoid cascade errors.
24529         Code cleanup.
24530
24531         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
24532         subprogram we have to install the private_with clauses after its
24533         specification has been analyzed (as documented in AI-262.TXT).
24534
24535         * sem_ch8.adb (Has_Private_With): New function. Determines if the
24536         current compilation unit has a private with on a given entity.
24537         (Find_Direct_Name): Detect the Beaujolais problem described in
24538         AI-262.TXT
24539
24540         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
24541         provides the functionality of the function Is_Ancestor that was
24542         previously available in sem_ch10. It has been renamed to avoid
24543         overloading.
24544
24545         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
24546
24547 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24548
24549         * utils.c (build_vms_descriptor): Use SImode pointers.
24550
24551 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
24552
24553         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
24554
24555 2004-05-14  GNAT Script  <nobody@gnat.com>
24556
24557         * Make-lang.in: Makefile automatically updated
24558
24559 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
24560
24561         Renaming of target specific files for clarity
24562
24563         * Makefile.in: Rename GNAT target specific files.
24564
24565         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
24566         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
24567         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
24568         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
24569         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
24570         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
24571         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
24572         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
24573         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
24574         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
24575         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
24576         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
24577         51osinte.adb, 51osinte.ads, 51system.ads,
24578         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
24579         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
24580         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
24581         56tpopsp.adb, 57system.ads, 58system.ads,
24582         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
24583         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
24584         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
24585         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
24586         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
24587         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
24588         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
24589         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
24590         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
24591         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
24592         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
24593         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
24594         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
24595         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
24596         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
24597         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
24598         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
24599         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
24600         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
24601         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
24602         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
24603         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
24604         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
24605         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
24606         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
24607         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
24608         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
24609         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
24610         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
24611         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
24612         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
24613         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
24614         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
24615         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
24616         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
24617         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
24618         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
24619         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
24620         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
24621         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
24622
24623         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
24624         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
24625         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
24626         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
24627         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
24628         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
24629         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
24630         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
24631         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
24632         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
24633         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
24634         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
24635         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
24636         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
24637         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
24638         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
24639         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
24640         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
24641         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
24642         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
24643         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
24644         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
24645         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
24646         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
24647         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
24648         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
24649         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
24650         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
24651         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
24652         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
24653         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
24654         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
24655         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
24656         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
24657         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
24658         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
24659         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
24660         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
24661         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
24662         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
24663         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
24664         s-osinte-vms.ads, s-osinte-vxworks.adb,
24665         s-osinte-vxworks.ads, s-osprim-mingw.adb,
24666         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
24667         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
24668         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
24669         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
24670         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
24671         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
24672         s-stchop-vxworks.adb, s-taprop-dummy.adb,
24673         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
24674         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
24675         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
24676         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
24677         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
24678         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
24679         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
24680         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
24681         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
24682         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
24683         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
24684         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
24685         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
24686         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
24687         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
24688         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
24689         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
24690         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
24691         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
24692         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
24693         system-irix-o32.ads, system-linux-x86_64.ads,
24694         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
24695         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
24696         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
24697         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
24698         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
24699         system-vxworks-mips.ads, system-vxworks-ppc.ads,
24700         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
24701         above.
24702
24703 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
24704
24705         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
24706
24707 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
24708
24709         Merge from tree-ssa-20020619-branch.
24710
24711         * config-lang.in (boot_language, build_by_default): Set
24712         to no.
24713         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
24714         (max_size): Add static chain op for call_expr.
24715
24716 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
24717
24718         PR target/15331
24719         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
24720
24721 2004-05-11  Roger Sayle  <roger@eyesopen.com>
24722
24723         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
24724         COND_EXPR.
24725
24726 2004-05-10  Doug Rupp  <rupp@gnat.com>
24727
24728         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
24729         system.aux_dec.
24730
24731         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
24732
24733         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
24734
24735         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
24736         Fixes undefined symbols in IA64 gnatlib.
24737
24738         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
24739
24740         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
24741         Short_Address). This will be moved to system.auxdec.
24742
24743 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
24744
24745         * sem_util.adb: Replace test for presence of a node that is always
24746         present with a call to Discard_Node.
24747
24748         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
24749         Analyze on the library unit node after generation of distribution stub
24750         constructs.  The call was a no-op because Unit_Node has already been
24751         Analyzed, and the tree fragments for the distribution stubs are
24752         analyzed as they are inserted in Exp_Dist.
24753         Update comment regarding to distribution stubs to reflect that we
24754         do not generate stub in separate files anymore.
24755
24756         * einfo.ads: Clarify the fact that a tagged private type has the
24757         E_Record_Type_With_Private Ekind.
24758
24759         * erroutc.adb: Minor reformatting
24760
24761         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
24762         values if line length is increased using -gnatyM (noticed during code
24763         reading).
24764
24765         * eval_fat.adb: Minor reformatting
24766         Put spaces around exponentiation operator
24767
24768 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
24769
24770         PR ada/15005
24771         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
24772         has been rewritten as an explicit dereference, retrieve type of
24773         original node to check for possibly unconstrained record type.
24774
24775 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
24776
24777         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
24778         overriding, use the operation of the parent unconditionally.
24779
24780         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
24781         operation when either operand is a literal, to avoid further
24782         ambiguities.
24783
24784         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
24785         overridden by a previous explicit declaration, mark the previous entity
24786         as overriding.
24787
24788         * sem_disp.adb (Check_Dispatching_Operation): New predicate
24789         Is_Visibly_Controlled, to determine whether a declaration of a
24790         primitive control operation for a derived type overrides an inherited
24791         one. Add warning if the explicit declaration does not override.
24792
24793 2004-05-10  Vincent Celier  <celier@gnat.com>
24794
24795         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
24796         some cases when the sources are no longer present.
24797
24798         * make.adb (Collect_Arguments): Fail if an external source, not part
24799         of any project need to be compiled, when switch -x has not been
24800         specified.
24801
24802         * makeusg.adb: Document new switch -x
24803
24804         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
24805         defaulted to False.
24806
24807         * switch-m.adb (Scan_Make_Switches): New switch -x
24808
24809         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
24810         gnatmake switch -x.
24811
24812         * gnat_ugn.texi: Document new gnatmake switch -x
24813
24814 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
24815
24816         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
24817
24818         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
24819         (process_attributes): Likewise.
24820
24821 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
24822
24823         * s-inmaop.ads: Fix spelling mistake in one of the comments.
24824
24825 2004-05-10  Robert Dewar  <dewar@gnat.com>
24826
24827         * gnat_ugn.texi: Document that for config pragma files, the maximum
24828         line length is always 32767.
24829
24830         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
24831         literals is now allowed.
24832
24833         * gnat-style.texi: Remove statement about splitting long lines before
24834         an operator rather than after, since we do not follow this rule at all.
24835         Clarify rule (really lack of rule) for spaces around exponentiation
24836
24837         * sem_elim.adb: Allow concatenation of string literals as well as a
24838         single string literal for pragma arguments.
24839
24840         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
24841
24842         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
24843         written for append case.
24844
24845         * frontend.adb: Changes to avoid checking max line length in config
24846         pragma files.
24847
24848         * g-os_lib.ads: Minor reformatting
24849
24850         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
24851         wrong in any case. Instead use standard value. Noticed during code
24852         reading.
24853
24854         * opt.ads (Max_Line_Length): New field, used to implement removal of
24855         limitation on length of lines when scanning config pragma files.
24856
24857         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
24858         makeutl.ads, makeutl.adb: Minor reformatting
24859
24860         * scn.adb: Do not check line length while scanning config pragma files
24861         Do not check line length while scanning out license information
24862
24863         * scng.adb: Changes to avoid line length checks while parsing config
24864         pragma files.
24865
24866 2004-05-10  GNAT Script  <nobody@gnat.com>
24867
24868         * Make-lang.in: Makefile automatically updated
24869
24870 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
24871
24872         * osint.adb (Find_Program_Name): Fix handling of VMS version
24873         number.
24874
24875 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
24876
24877         * g-os_lib.ads (Invalid_Time): New constant
24878
24879         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
24880         return OS_Time instead of time_t to match what is imported by Ada.
24881         Now return -1 if the file doesn't exist, instead of a random value
24882
24883 2004-05-05  Robert Dewar  <dewar@gnat.com>
24884
24885         * usage.adb: Add line for -gnatR?s switch
24886
24887         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
24888
24889         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
24890         and for Match (Data_First, Data_last)
24891
24892         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
24893         written when we are dealing with multi-unit files.
24894
24895 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
24896
24897         * Makefile.in: Remove unused targets and variables.
24898
24899 2004-05-05  Vincent Celier  <celier@gnat.com>
24900
24901         * switch-m.adb: New gnatmake switch -eI
24902
24903         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
24904         of new gnatmake switch -eInnn.
24905
24906         * makegpr.adb: Take into account new parameters Index and Src_Index in
24907         Prj.Util.
24908
24909         * clean.adb: Implement support for multi-unit sources, including new
24910         switch -i.
24911
24912         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
24913         Src_Index.
24914
24915         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
24916         (Extract_From_Q): New out parameter Index
24917         (Mark, Is_Marked): Subprograms moved to Makeutl
24918         (Switches_Of): New parameter Source_Index
24919         (Add_Switch): New parameter Index
24920         (Check): New parameter Source_Index
24921         (Collect_Arguments): New parameter Source_Index
24922         (Collect_Arguments_And_Compile): New parameter Source_Index
24923         (Compile): New parameter Source_Index
24924         Put subprograms in alphabetical order
24925         Add support for multi-source sources, including in project files.
24926
24927         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
24928         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
24929         Make.
24930
24931         * makeusg.adb: New gnatmake switch -eInnn
24932
24933         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
24934         Prj.Util.Value_Of.
24935
24936         * opt.ads (Main_Index): New variable, defaulted to 0.
24937
24938         * osint.ads, osinte.adb (Add_File): New parameter Index
24939         (Current_Source_Index): New function
24940
24941         * prj.adb: Take into account new components Index and Src_Index
24942
24943         * prj.ads (String_Element): New component Index
24944         (Variable_Value): New component Index
24945         (Array_Element): New component Src_Index
24946
24947         * prj-attr.adb: Indicate that optional index may be specified for
24948         attributes Main, Executable, Spec, Body and some of Switches.
24949
24950         * prj-attr.ads (Attribute_Kind): New values for optional indexes
24951         (Attribute_Record): New component Optional_Index
24952
24953         * prj-com.ads (File_Name_Data): New component Index
24954
24955         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
24956
24957         * prj-env.adb (Put): Output optional index
24958
24959         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
24960         attributes Spec and Body.
24961
24962         * prj-nmsc.adb: Process optional indexes
24963
24964         * prj-pp.adb: Ouput "at" for optional indexes
24965
24966         * prj-proc.adb: Take into account optional indexes
24967
24968         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
24969         Optional_Index. For string literal,
24970         process optional index when Optional_Index is True.
24971         (Parse_Expresion): New Boolean parameter Optional_Index
24972
24973         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
24974         (Set_Source_Index_Of): New procedure
24975
24976         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
24977         index.
24978
24979         * prj-util.ads (Executable_Of): New parameter Index
24980         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
24981         New parameter Src_Index, defaulted to 0.
24982
24983 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
24984
24985         PR ada/15257
24986         * sem_ch3.adb (Access_Definition): If this is an access parameter
24987         whose designated type is imported through a limited_with clause, do
24988         not add the enclosing subprogram to the list of private dependents of
24989         the type.
24990
24991 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
24992
24993         PR ada/15258
24994         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
24995         a limited_with clause, and the other is its non-limited view.
24996
24997 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
24998
24999         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
25000
25001         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
25002         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
25003         Stand.Boolean_Literals to produce references to entities
25004         Standard_False and Standard_True from compile-time computed boolean
25005         values.
25006
25007         * stand.ads (Boolean_Literals): New variable, provides the entity
25008         values for False and True, for use by the expander.
25009
25010 2004-05-05  Doug Rupp  <rupp@gnat.com>
25011
25012         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
25013         5vinmaop.adb: Unchecked convert Short_Address vice Address
25014
25015         * adaint.c, raise.c: Caste CRTL function return value
25016         to avoid gcc error on 32/64 bit IVMS.
25017
25018         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
25019         target = IA64/VMS.
25020
25021         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
25022
25023         * 5qsystem.ads (Address): Declare as Long_Integer
25024         (Short_Address): Declare as 32 bit subtype of Address
25025         Declare  abstract address operations to avoid gratuitous ambiguities.
25026
25027 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
25028
25029         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
25030         instead of the old Boolean_Entry_Barriers.
25031         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
25032
25033 2004-05-05  GNAT Script  <nobody@gnat.com>
25034
25035         * Make-lang.in: Makefile automatically updated
25036
25037 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
25038
25039         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
25040
25041 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
25042
25043         PR ada/15152
25044         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
25045         alone. Replacing object references by literals is inappropriate in a
25046         so low level context.
25047
25048 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
25049
25050         * a-exexpr.adb: Add comments
25051
25052 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
25053
25054         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
25055         declare the Ancestor_Tags array in Type_Specific_Data with a small size
25056         without risking a bounds check error when accessing one of its
25057         components.
25058         (Type_Specific_Data): Define Ancestor_Tags as a small array.
25059         This prevents us from hitting a limitation during the debug info
25060         generation when using stabs.
25061
25062         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
25063         small array.
25064         This prevents us from hitting a limitation during the debug info
25065         generation when using stabs.
25066
25067 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
25068
25069         lang-specs.h: Remove -gnatz* from specs.
25070
25071 2004-05-03  Vincent Celier  <celier@gnat.com>
25072
25073         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
25074
25075         * Make-lang.in, Makefile.in: Add gprmake
25076
25077 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
25078
25079         * sem_aggr.adb: Fix typo in comment.
25080
25081 2004-05-03  Robert Dewar  <dewar@gnat.com>
25082
25083         * make.adb: Minor reformatting
25084
25085         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
25086
25087         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
25088         so that it works when address is not a private type.
25089
25090         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
25091         properly with rewritten unchecked conversions. This prevents
25092         order-of-elaboration issues that can otherwise arise.
25093         (Minimum_Size): Don't check size of access types under VMS
25094
25095         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
25096         interpretations of integer literals as type System.Address.
25097
25098         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
25099         (Is_Descendent_Of): New function
25100
25101 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
25102
25103         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
25104         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
25105         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
25106
25107         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
25108         of the old Max_Entry_Queue_Depth.
25109
25110         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
25111         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
25112         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
25113
25114         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
25115         New entry for proper handling of Max_Entry_Queue_Depth.
25116         New entry for proper handling of No_Dynamic_Interrupts.
25117
25118         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
25119         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
25120         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
25121         the GNAT specific restriction Max_Entry_Queue_Depth.
25122         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
25123         the GNAT specific restriction No_Dynamic_Interrupts.
25124
25125         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
25126         instead of the old Boolean_Entry_Barriers.
25127         Use the new restriction No_Dynamic_Attachment instead of the old
25128         No_Dynamic_Interrupts.
25129
25130         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
25131         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
25132
25133         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
25134         of the old Max_Entry_Queue_Depth.
25135
25136 2004-05-03  GNAT Script  <nobody@gnat.com>
25137
25138         * Make-lang.in: Makefile automatically updated
25139
25140 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
25141
25142         * checks.adb (Enable_Range_Check): If the prefix of an index component
25143         is an access to an unconstrained array, perform check unconditionally.
25144
25145 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25146
25147         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
25148         Component_Clause.
25149
25150 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
25151
25152         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
25153         alternate stack setting. There was no support for the tasking cases
25154         and the changes eventually caused a number of side-effect failures in
25155         the non-tasking case too.
25156
25157 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
25158
25159         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
25160         -gnats is passed.
25161
25162 2004-04-29  Vincent Celier  <celier@gnat.com>
25163
25164         * make.adb (Gnatmake): Increase max size of argument array for
25165         gnatbind for the potential addition of -F.
25166         If there are Stand-Alone Library projects, invoke gnatbind with -F to
25167         be sure that elaboration flags will be checked.
25168
25169         * switch-c.adb: Correct call to Scan_Pos for -gnateI
25170
25171 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
25172
25173         * sem_warn.adb (Check_References): Move '<access-variable> may be
25174         null' warning out of under Warn_On_No_Value_Assigned.
25175
25176 2004-04-29  Ed Falis  <falis@gnat.com>
25177
25178         * gnat_ugn.texi: Fixed texi error
25179
25180 2004-04-29  Robert Dewar  <dewar@gnat.com>
25181
25182         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
25183         abstract operations if they come from predefined files.
25184
25185         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
25186         Dynamic, not RM).
25187
25188         * s-addope.adb: Correct obvious error in mod function
25189
25190 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
25191
25192         * Makefile.in: Add target pairs for powerpc darwin*
25193         tasking support.
25194
25195         * a-intnam-darwin.ads, s-osinte-darwin.adb,
25196         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
25197
25198 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
25199
25200         * Makefile.in: Add target macro definitions for s390*-linux*.
25201         * system-linux-s390.ads: New file.
25202         * system-linux-s390x.ads: New file.
25203
25204 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
25205
25206         * gnat_ugn.texi: Correct argument to @setfilename.
25207
25208 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
25209
25210         * a-exexpr.adb (Unwind_Word): New data type.
25211         (Unwind_Exception): Use it as type of Private1 and Private2.
25212
25213         * raise.c (db_action_for): Fix debug printf.
25214
25215 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
25216
25217         * a-wtmoio.ads: Formal type must be a modular type, not a signed
25218         integer type.
25219
25220 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25221
25222         * decl.c (gnat_to_gnu_entity, case object): Call
25223         __builtin_update_setjmp_buf.
25224
25225         * gigi.h (update_setjmp_buf): Deleted.
25226         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
25227
25228         * misc.c: (update_setjmp_buf): Deleted.
25229
25230         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
25231         around block of RTL.
25232
25233         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
25234
25235 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
25236
25237         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
25238         subprogram for which no pragma All_Calls_Remote applies, store the
25239         address of the real subprogram in the underlying record type, so local
25240         dereferences do not go through the PCS.
25241
25242 2004-04-26  Robert Dewar  <dewar@gnat.com>
25243
25244         * i-c.ads: Add some type qualifications to avoid ambiguities when
25245         compiling with s-auxdec.ads and a non-private address type.
25246
25247 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
25248
25249         * Makefile.rtl: Fix error in previous check-in:
25250         Add s-addope.o to non tasking object list (rather than tasking object
25251         list).
25252
25253 2004-04-26  Javier Miranda  <miranda@gnat.com>
25254
25255         * sem_aggr.adb: Fix typo in comments
25256         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
25257         Required to check the null-exclusion attribute.
25258
25259         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
25260         case of anonymous access types in record and array components. For a
25261         component definition the level is the same of the enclosing composite
25262         type.
25263
25264         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
25265         that are anonymous access types the level of accessibility depends on
25266         the enclosing type declaration. In order to have this information, set
25267         the scope of the anonymous access type to the enclosing record type
25268         declaration.
25269         (Array_Type_Declaration): In case of components that are anonymous
25270         access types the level of accessibility depends on the enclosing type
25271         declaration. In order to have this information, set the scope of the
25272         anonymous access type to the enclosing array type declaration.
25273
25274         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
25275         access type.
25276
25277         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
25278         renaming of anonymous access-to-constant types allowed if and only if
25279         the renamed object is access-to-constant.
25280
25281         * sem_util.adb (Type_Access_Level): In case of anonymous access types
25282         that are component_definition or discriminants of a nonlimited type,
25283         the level is the same as that of the enclosing component type.
25284
25285 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
25286
25287         * sem_elim.adb: Some minor code reorganization from code reading. Fix
25288         misprint in the function name (File_Name_Match).
25289
25290 2004-04-23  Laurent GUERBY <laurent@guerby.net>
25291
25292         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
25293         install.
25294
25295 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
25296
25297         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
25298
25299 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
25300
25301         * adaint.c (__gnat_try_lock): No longer requires that the parent
25302         directory be writable, the directory itself is enough.
25303         (gnat_is_absolute_path): Change profile, so that the call from
25304         GNAT.OS_Lib can be made more efficient.
25305
25306         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
25307         from GNAT.OS_Lib can be made more efficient.
25308
25309         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
25310         one copy of the file name. Found by code reading.
25311
25312 2004-04-23  Vincent Celier  <celier@gnat.com>
25313
25314         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
25315         Correct documentation on gnatmake switches transmitted to the compiler
25316
25317         * ali.ads: Minor comment fix
25318
25319 2004-04-23  Javier Miranda  <miranda@gnat.com>
25320
25321         * sem_ch6.adb: (Confirming Types): Code cleanup
25322
25323         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
25324         subprogram types: E_Anonymous_Access_Subprogram_Type and
25325         E_Anonymous_Access_Protected_Subprogram_Type.
25326
25327 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
25328
25329         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
25330         whether a pragma All_Calls_Remote applies to the subprogram on which
25331         'Access is taken.
25332         No functional change is introduced by this revision; the new parameter
25333         will be used to allow calls to local RCI subprograms to be optimized
25334         to not use the PCS in the case where no pragma All_Calls_Remote applies,
25335         as is already done in the PolyORB implementation of the DSA.
25336
25337         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
25338         whether a pragma All_Calls_Remote applies to the subprogram on which
25339         'Access is taken.
25340         No functional change is introduced by this revision; the new parameter
25341         will be used to allow calls to local RCI subprograms to be optimized
25342         to not use the PCS in the case where no pragma All_Calls_Remote applies,
25343         as is already done in the PolyORB implementation of the DSA.
25344
25345 2004-04-23  Robert Dewar  <dewar@gnat.com>
25346
25347         * Makefile.rtl: Add entry for s-addope.o in run time library list
25348         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
25349         * s-addope.ads, s-addope.adb: New files.
25350
25351         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
25352         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
25353         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
25354         System.Address to be non-private and signed.
25355
25356         * sem_elim.adb: Minor reformatting (fairly extensive)
25357         Some minor code reorganization from code reading
25358         Add a couple of ??? comments
25359
25360 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25361
25362         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
25363         (tree_transform, case N_If_Statement): Remove non-determinism.
25364
25365         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
25366
25367 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
25368
25369         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
25370         Eliminate' section.
25371
25372         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
25373         no longer used as a parameter name for Eliminate pragma).
25374
25375 2004-04-22  Laurent GUERBY <laurent@guerby.net>
25376
25377         PR optimization/14984
25378         PR optimization/14985
25379         * trans.c (gigi): Fix non determinism leading to bootstrap
25380         comparison failures.
25381
25382 2004-04-21  Pascal Obry  <obry@gnat.com>
25383
25384         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
25385         passed to spawnvp() to properly handle program pathname with spaces on
25386         Win32.
25387
25388 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
25389
25390         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
25391         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
25392         unlocked in case of exceptions.
25393
25394 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
25395
25396         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
25397         This function does not exist anymore.
25398
25399 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
25400
25401         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
25402
25403         * link.c: Move variables to the __gnat name space.
25404
25405         * Makefile.in: list link.o explicitly when needed.
25406
25407         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
25408
25409 2004-04-21  Javier Miranda  <miranda@gnat.com>
25410
25411         * einfo.adb (Original_Access_Type): New subprogram
25412         (Set_Original_Access_Type): New subprogram
25413         (Write_Field21_Name): Write the name of the new field
25414
25415         * einfo.ads (Original_Access_Type): New field present in access to
25416         subprogram types.
25417         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
25418         E_Anonymous_Access_Protected_Subprogram_Type.
25419
25420         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
25421         subprogram types.
25422
25423         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
25424         to anonymous access to subprogram types.
25425
25426         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
25427         to subprogram types.
25428
25429         * sem_ch3.adb (Access_Definition): Complete decoration of entities
25430         corresponding to anonymous access to subprogram types.
25431         (Analyze_Component_Declaration): Add new actual to the call to
25432         subprogram replace_anonymous_access_to_protected_subprogram.
25433         (Array_Type_Declaration): Add new actual to the call to subprogram
25434         replace_anonymous_access_to_protected_subprogram.
25435         (Process_Discriminants): Add new actual to the call to subprogram
25436         replace_anonymous_access_to_protected_subprogram.
25437         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
25438
25439         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
25440         formal.
25441
25442         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
25443         access to subprogram types.
25444
25445         * sem_util.adb (Has_Declarations): Addition of package_specification
25446         nodes.
25447
25448 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
25449
25450         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
25451         inlined flags to renamed entity only if in current unit.
25452
25453 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
25454
25455         * s-parint.ads: Add DSA implementation marker.
25456
25457         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
25458         value of System.Partition_Interface.DSA_Implementation to determine
25459         what version of the distributed systems annex is available (no
25460         implementation, GLADE, or PolyORB).
25461
25462 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
25463
25464         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
25465
25466 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25467
25468         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
25469         with new type if alias sets differ.
25470         Fixes ACATS c41103b.
25471
25472 2004-04-21  Vincent Celier  <celier@gnat.com>
25473
25474         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
25475         Add array Lang_Args for the language specific compiling argument
25476         switches.
25477
25478         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
25479
25480 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
25481
25482         * gnat_rm.texi: Update the descripton of the Eliminate pragma
25483         according to the recent changes in the format of the parameters of the
25484         pragma (replacing Homonym_Number with Source_Location).
25485
25486 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
25487
25488         * 5isystem.ads: Removed, unused.
25489
25490         * gnat_rm.texi: Redo 1.13 change.
25491
25492 2004-04-19  Robert Dewar  <dewar@gnat.com>
25493
25494         * s-stoele.ads: Clean up definition of Storage_Offset (the new
25495         definition is cleaner, avoids the kludge of explicit Standard operator
25496         references, and also is consistent with a visible System.Address with
25497         no visible operations.
25498
25499         * s-geveop.adb: Add declarations to avoid assumption of visible
25500         operations on type System.Address (since these might not be available
25501         if Address is a non-private type for which the operations
25502         are made abstract).
25503
25504         * sem_eval.adb: Minor reformatting
25505
25506         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
25507         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
25508         reformatting (new function spec format).
25509
25510         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
25511         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
25512         s-caun64.adb: Add declarations to avoid assumption of visible
25513         operations on type System.Address (since these might not be available
25514         if Address is a non-private type for which the operations are made
25515         abstract).
25516
25517         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
25518
25519         * exp_intr.adb: Minor comment update
25520
25521         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
25522
25523         * 5omastop.adb: Add declarations to avoid assumption of visible
25524         operations on type System.Address (since these might not be available
25525         if Address is a non-private type for which the operations
25526         are made abstract).
25527
25528 2004-04-19  Vincent Celier  <celier@gnat.com>
25529
25530         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
25531
25532         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
25533         defaulted to Ada.
25534
25535         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
25536         defaulted to Ada.
25537         Call Check with Process_Languages.
25538         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
25539         with Process_Languages.
25540         (Recursive_Check): New Boolean parameter Process_Languages. Call
25541         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
25542         Process_Languages.
25543
25544         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
25545
25546         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
25547         parameter Ada_Main, defaulted to True.
25548         Check for Ada specific characteristics only when Ada_Main is True.
25549
25550         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
25551
25552         * prj.adb: (Project_Empty): Add new Project_Data components.
25553
25554         * prj.ads: New types and tables for non Ada languages.
25555         (Project_Data): New components Languages, Impl_Suffixes,
25556         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
25557         Include_Path, Include_Data_Set.
25558
25559         * prj-env.ads, prj-env.adb: Minor reformatting
25560
25561         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
25562         Put subprograms in alphabetical order
25563
25564         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
25565         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
25566         Opt.Follow_Links.
25567
25568         * mlib-prj.adb: Back out modification in last version, as they are
25569         incorrect.
25570         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
25571
25572         * make.adb: (Mains): Moved to package Makeutl
25573         (Linker_Opts): Moved to package Makeutl
25574         (Is_External_Assignment): Moved to package Makeutl
25575         (Test_If_Relative_Path): Moved to package Makeutl
25576         (Gnatmake): Move sorting of linker options to function
25577         Makeutl.Linker_Options_Switches.
25578
25579         * makeutl.ads, makeutl.adb: New files.
25580
25581         * Makefile.in: Add makeutl.o to the object files for gnatmake
25582
25583         * makeusg.adb: Add line for new switch -eL.
25584
25585         * gnatls.adb (Image): New function.
25586         (Output_Unit): If in verbose mode, output the list of restrictions
25587         specified by pragmas Restrictions.
25588
25589         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
25590         Text_IO.
25591
25592         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
25593         needed, to put it in the range 1970 (included) - 2026 (excluded).
25594         (Time_Of): Do not shift Unix_Min_Year (1970).
25595         Shift the date by multiple of 56 years, if needed, to put it in the
25596         range 1970 (included) - 2026 (excluded).
25597
25598         * adaint.h, adaint.c (__gnat_set_executable): New function.
25599
25600 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25601
25602         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
25603         and pop GC context.
25604         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
25605         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
25606         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
25607         (tree_transform, case N_Code_Statement): Likewise.
25608         (gnat_expand_stmt, case LABEL_STMT): Don't look at
25609         LABEL_STMT_FIRST_IN_EH.
25610         (gnat_expand_stmt, case ASM_STMT): New case.
25611
25612         * utils2.c (build_unary_op): Properly set TREE_READONLY of
25613         UNCONSTRAINED_ARRAY_REF.
25614
25615         * utils.c (poplevel): Temporarily push/pop GC context around inline
25616         function expansion.
25617
25618         * decl.c (maybe_variable): Properly set TREE_READONLY of
25619         UNCONSTRAINED_ARRAY_REF.
25620         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
25621
25622         * ada-tree.def: (ASM_STMT): New.
25623
25624         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
25625         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
25626         ASM_STMT_INPUT): New.
25627         (ASM_STMT_CLOBBER): Likewise.
25628
25629 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
25630
25631         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
25632         general rcheck mechanism to raise Program_Error for E.4(18), instead
25633         of a custom raiser in System.Partition_Interface.
25634         Part of general cleanup work before PolyORB integration.
25635
25636         * snames.ads, snames.adb: Add new runtime library entities and names
25637         for PolyORB DSA.
25638
25639         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
25640         exp_dist.
25641         (Build_Subprogram_Id): New subprogram provided by exp_dist
25642         Code reorganisation in preparation for PolyORB integration.
25643
25644         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
25645         exp_dist.
25646         (Build_Subprogram_Id): New subprogram provided by exp_dist
25647
25648         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
25649         actual parameter types for call to dereference of an
25650         access-to-subprogram type.
25651
25652         * rtsfind.ads: Add new runtime library entities and names for PolyORB
25653         DSA.
25654
25655         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
25656         instead, which has the same behaviour here since we never pass it a
25657         NULL pointer.
25658
25659         * link.c (run_path_option, Solaris case): Use -Wl, as for other
25660         platforms.
25661
25662         * Makefile.in: adjust object file lists for gnatlink and gnatmake
25663         to account for new dependency upon Interfaces.C.Strings + link.o
25664         For x86 FreeBSD, use 86numaux.
25665
25666         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
25667         from Mlib.Tgt to Mlib.
25668
25669         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
25670         target-independent.
25671
25672         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
25673         target-specific versions of this subprogram, now implemented as a
25674         target-independent function in Mlib.
25675
25676         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
25677         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
25678         (Linker_Library_Path_Option): Remove target-specific versions of this
25679         subprogram, now implemented as a target-independent function in Mlib.
25680
25681         * atree.adb: (Allocate_Initialize_Node): New subprogram.
25682         Factors out node table slots allocation.
25683         (Fix_Parents): New subprogram.
25684         Encapsulate the pattern of fixing up parent pointers for syntactic
25685         children of a rewritten node.
25686         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
25687         (Rewrite): Use New_Copy when creating saved copy of original node.
25688         (Replace): Use Copy_Node to copy nodes.
25689
25690 2004-04-19  Javier Miranda  <miranda@gnat.com>
25691
25692         * sprint.adb (Sprint_Node_Actual): Give support to the new
25693         Access_To_Subprogram node available in Access_Definition nodes. In
25694         addition, give support to the AI-231 node fields: null-exclusion,
25695         all-present, constant-present.
25696
25697         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
25698
25699         * sinfo.ads, sinfo.adb:
25700         New field Access_To_Subprogram_Definition in Access_Definition nodes
25701
25702         * sem_ch6.adb (Process_Formals): Move here the code that creates and
25703         decorates internal subtype declaration corresponding to the
25704         null-excluding formal. This code was previously in Set_Actual_Subtypes.
25705         In addition, carry out some code cleanup on this code. In case of
25706         access to protected subprogram call
25707         Replace_Anonymous_Access_To_Protected_Subprogram.
25708         (Set_Actual_Subtypes): Code cleanup.
25709
25710         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
25711         Find_Type in case of anonymous access renamings. Add warning in case of
25712         null-excluding attribute used in anonymous access renaming.
25713
25714         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
25715         subprogram
25716
25717         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
25718         subprogram.
25719         (Access_Definition): In case of anonymous access to subprograms call
25720         the corresponding semantic routine to decorate the node.
25721         (Access_Subprogram_Declaration): Addition of some comments indicating
25722         some code that probably should be added here. Detected by comparison
25723         with the access_definition subprogram.
25724         (Analyze_Component_Declaration): In case of access to protected
25725         subprogram call Replace_Anonymous_Access_To_Protected.
25726         (Array_Type_Declaration): In case of access to protected subprogram call
25727         Replace_Anonymous_Access_To_Protected_Subprogram.
25728         (Process_Discriminants): In case of access to protected subprogram call
25729         Replace_Anonymous_Access_To_Protected_Subprogram.
25730
25731         * par.adb (P_Access_Definition): New formal that indicates if the
25732         null-exclusion part was present.
25733         (P_Access_Type_Definition): New formal that indicates if the caller has
25734         already parsed the null-excluding part.
25735
25736         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
25737         (P_Identifier_Declarations): Code cleanup and give support to renamings
25738         of anonymous access to subprogram types.
25739         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
25740         (P_Array_Type_Definition): Give support to AI-254.
25741         (P_Component_Items): Give support to AI-254.
25742         (P_Access_Definition): New formal that indicates if the header was
25743         already parsed by the caller.
25744         (P_Access_Type_Definition): New formal that indicates if the caller has
25745         already parsed the null-excluding part.
25746
25747         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
25748         call to P_Access_Definition.
25749
25750 2004-04-19  Geert Bosch  <bosch@gnat.com>
25751
25752         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
25753         the delicate semantics of floating-point to integer conversion.
25754         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
25755
25756         * eval_fat.adb (Machine_Mantissa): Moved to spec.
25757         (Machine_Radix): New function.
25758
25759         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
25760         conversion checks.
25761         (Machine_Radix): New function also for use in conversion checks.
25762
25763 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
25764
25765         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
25766
25767         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
25768         to decorate the access-to-protected subprogram and the equivalent type.
25769
25770         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
25771         to anonymous access to subprogram types.
25772
25773         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
25774         constant-folding, for legality checks in contexts that require an RM
25775         static expression.
25776
25777         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
25778         temporary but stack checking is not enabled, increment serial number
25779         to so that symbol generation is consistent with and without stack
25780         checking.
25781
25782         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
25783         independent on whether stack checking is enabled, caller must check
25784         the corresponding flag.
25785
25786         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
25787         range checks.
25788         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
25789         parent if it has discriminants.
25790         (Build_Derived_Private_Type): Constructed full view does
25791         not come from source.
25792         (Process_Discriminants): Default discriminants on a tagged type are
25793         legal if this is the internal completion of a private untagged
25794         derivation.
25795
25796         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
25797         no constraint checks, because it corresponds to an existing object.
25798
25799         * sem_prag.adb (Process_Convention): Pragma applies
25800         only to subprograms in the same declarative part, i.e. the same unit,
25801         not the same scope.
25802
25803         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
25804         ignore type mismatch on a numeric conversion if expression comes from
25805         expansion.
25806
25807 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
25808
25809         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
25810         Homonym_Number parameter, add processing for Source_Location parameter
25811         corresponding.
25812         (Check_Eliminated): Remove the check for homonym numbers, add the check
25813         for source location traces.
25814
25815         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
25816         with Arg_Source_Location corresponding to the changes in the format of
25817         the pragma.
25818
25819         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
25820         Eliminate pragma corresponding to the changes in the format of the
25821         pragma: Homonym_Number is replaced with Source_Location, two ways of
25822         distinguishing homonyms are mutially-exclusive.
25823
25824 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
25825
25826         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
25827
25828         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
25829         No_Dollar_In_Label, no longer necessary, as it is always True.
25830         (Strip_Suffixes): Likewise.
25831
25832 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
25833
25834         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
25835         modulus for compatibility with size clause on targets with 16-bit
25836         Integer.
25837
25838         * layout.adb (Discrimify): In the case of private types, set Vtyp to
25839         full type to fix type mismatches on calls to size functions for
25840         discriminant-dependent array components.
25841
25842 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
25843
25844         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
25845         lib.
25846
25847 2004-04-19  Pascal Obry  <obry@gnat.com>
25848
25849         * mdll-utl.adb (Locate): New version is idempotent.
25850
25851 2004-04-17  Laurent Guerby <laurent@guerby.net>
25852
25853         PR ada/14988 (partial)
25854         * impunit.adb: Fix typo.
25855
25856 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
25857
25858         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
25859         and install-rts-cert targets.  Remove all gnatlib and gnattools
25860         targets and all other rts-* targets (moved to libada).  Remove (now)
25861         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
25862         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
25863
25864 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25865
25866         * trans.c (tree_transform): Shortcut returning error_mark_node for
25867         statements in annotate_only_mode.
25868         (tree_transform, case N_Label, case N_Return_Statement,
25869         N_Goto_Statement): Make statement tree instead of generating code.
25870         (tree_transform, case N_Assignment_Statement): No longer check
25871         type_annotate_only.
25872         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
25873         RETURN_STMT): New.
25874         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
25875         New fcns.
25876         (gnat_to_gnu): Collect any RTL generated and deal with it.
25877         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
25878         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
25879         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
25880
25881         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
25882
25883         * ada-tree.def (EXPR_STMT): Fix typo in name.
25884         (BLOCK_STMT, IF_STMT): New nodes.
25885
25886         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
25887         LABEL_STMT_FIRST_IN_EH): New macros.
25888         (RETURN_STMT_EXPR): Likewise.
25889
25890         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
25891         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
25892
25893 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
25894
25895         * atree.ads: Correct documentation on extended nodes.
25896
25897         * link.c: Set run_path_option for FreeBSD.
25898
25899 2004-04-08  Vincent Celier  <celier@gnat.com>
25900
25901         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
25902         one of the ALI file, do not link with DEC lib.
25903
25904         * par.adb Remove the last two characters ("%s" or "%b") when checking
25905         if a language defined unit may be recompiled.
25906
25907 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
25908
25909         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
25910         removal of abstract operation leaves no possible interpretation for
25911         expression.
25912
25913         * sem_eval.adb (Eval_Qualified_Expression): Use
25914         Set_Raises_Constraint_Error on node when needed, so that it does not
25915         get optimized away by subsequent optimizations.
25916
25917         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
25918         operands even when they are not wrapped in a type conversion.
25919
25920 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
25921
25922         * sem_prag.adb (Set_Exported): Warn about making static as result of
25923         export only when the export is coming from source. This may be not
25924         be true e.g. on VMS where we expand export pragmas for exception codes
25925         together with imported or exported exceptions, and we don't want the
25926         user to be warned about something he didn't write.
25927
25928 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
25929
25930         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
25931         duplication between normal entities and those declared as renamings.
25932         No functional change.
25933
25934         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
25935         inline functions returning an unconstrained result.
25936
25937 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
25938
25939         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
25940         conform to what other front-ends do.
25941
25942 2004-04-08  Doug Rupp  <rupp@gnat.com>
25943
25944         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
25945         libraries.
25946
25947 2004-04-06  Pascal Obry  <obry@gnat.com>
25948
25949         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
25950
25951         * osint.adb (Program_Name): Do not look past a directory separator.
25952
25953 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
25954
25955         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
25956
25957         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
25958         requirement for preserving a copy of the original assignment node.
25959
25960         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
25961
25962 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
25963
25964         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
25965         when supported.
25966
25967 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
25968
25969         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
25970         operator calls in functional notation, and apply
25971         Universal_Interpretation to operands, not to their type.
25972
25973 2004-04-06  Robert Dewar  <dewar@gnat.com>
25974
25975         * 5wdirval.adb: Minor reformatting
25976
25977 2004-04-06  Ed Falis  <falis@gnat.com>
25978
25979         * gnat_rm.texi: Improve a reference to the GCC manual
25980
25981 2004-04-05  Vincent Celier  <celier@gnat.com>
25982
25983         * adaint.h, adaint.c: Add function __gnat_named_file_length
25984
25985         * impunit.adb: Add Ada.Directories to the list
25986
25987         * Makefile.in: Add VMS and Windows versions of
25988         Ada.Directories.Validity package body.
25989
25990         * Makefile.rtl: Add a-direct and a-dirval
25991
25992         * mlib-tgt.ads: Minor comment update.
25993
25994         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
25995         a-direct.ads, a-direct.adb: New files.
25996
25997 2004-04-05  Vincent Celier  <celier@gnat.com>
25998
25999         PR ada/13620
26000         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
26001         just to the compiler.
26002
26003 2004-04-05  Robert Dewar  <dewar@gnat.com>
26004
26005         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
26006         returned string is 1.
26007
26008         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
26009
26010         * eval_fat.ads: Minor reformatting
26011
26012         * g-curexc.ads: Document that lower bound of returned string values
26013         is always one.
26014
26015         * gnatlink.adb: Add ??? comment for previous change
26016         (need to document why this is VMS specific)
26017
26018         * s-stoele.ads: Minor reformatting
26019
26020         * tbuild.ads: Minor reformatting throughout (new function specs)
26021
26022         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
26023         after WITH.
26024
26025         * scng.adb: Minor reformatting
26026
26027 2004-04-05  Geert Bosch  <bosch@gnat.com>
26028
26029         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
26030         (Leading_Part): Still perform truncation to machine number if the
26031         specified radix_digits is greater or equal to machine_mantissa.
26032
26033 2004-04-05  Javier Miranda  <miranda@gnat.com>
26034
26035         * par-ch3.adb: Complete documentation of previous change
26036         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
26037         (aliased must appear before constant).
26038
26039         * par-ch4.adb: Complete documentation of previous change.
26040
26041         * par-ch6.adb: Complete documentation of previous change.
26042
26043         * sinfo.ads: Fix typo in commment.
26044
26045 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
26046
26047         * sem_ch3.adb (Inherit_Components): If derived type is private and has
26048         stored discriminants, use its discriminants to constrain parent type,
26049         as is done for non-private derived record types.
26050
26051         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
26052         Ada 2005 AI-310: an abstract non-dispatching operation is not a
26053         candidate interpretation in an overloaded call.
26054
26055         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
26056         expression is Null and target type is not an access type (e.g. a
26057         non-private address type).
26058
26059 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
26060
26061         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
26062         statement whose right-hand side is an inlined call, save a copy of the
26063         original assignment subtree to preserve enough consistency for
26064         Analyze_Assignment to proceed.
26065
26066         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
26067         complete assignment subtree which is now unnecessary, as the expansion
26068         of inlined call has been improved to preserve a consistent assignment
26069         tree.  Note_Possible_Modification must be called only
26070         after checks have been applied, or else unnecessary checks will
26071         be generated.
26072
26073         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
26074         of explicit dereferences that do not Come_From_Source:
26075          - be selective on cases where we must go back to the dereferenced
26076            pointer (an assignment to an implicit dereference must not be
26077            recorded as modifying the pointer);
26078          - do not rely on Original_Node being present (Analyze_Assignment
26079            calls Note_Possible_Modification on a copied tree).
26080
26081         * sem_warn.adb (Check_References): When an unset reference to a pointer
26082         that is never assigned is encountered, prefer '<pointer> may be null'
26083         warning over '<pointer> is never assigned a value'.
26084
26085 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
26086
26087         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
26088         the ABI.
26089
26090 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
26091
26092         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
26093         libexc. We currently don't reference anything in this library and
26094         linking it in triggers linker warnings we don't want to see.
26095
26096         * init.c: Update comments.
26097
26098 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26099
26100         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
26101         * utils.c (create_field_decl): Likewise.
26102         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
26103
26104 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
26105
26106         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
26107         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
26108         Add info directory entry and category.
26109
26110 2004-04-02  Jan Hubicka  <jh@suse.cz>
26111
26112         * utils.c: Include function.h
26113         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
26114
26115 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
26116
26117         PR ada/14150
26118         * Make-lang.in: Clean up generation of documentation
26119
26120         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
26121
26122         * xgnatug.adb: Removed, replaced by xgnatugn.adb
26123
26124         * xgnatugn.adb: Replaces xgnatug.adb
26125
26126         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
26127
26128         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
26129
26130         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
26131         gnat_ug_wnt.texi: Removed.
26132
26133 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
26134
26135         * utils2.c: Update copyright notice.
26136
26137 2004-04-01  Robert Dewar  <dewar@gnat.com>
26138
26139         * checks.adb: Minor reformatting throughout
26140         Note that prev checkin added RM reference to alignment warning
26141
26142 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
26143
26144         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
26145         non-static when building aggregate for bit-packed array.
26146
26147         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
26148         function call that is itself the actual in a procedure call, build
26149         temporary for it.
26150
26151         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
26152         a string literal, create a temporary for it, constant folding only
26153         handles scalars here.
26154
26155 2004-04-01  Vincent Celier  <celier@gnat.com>
26156
26157         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
26158         Error_Msg_SP): New empty procedures to instantiate the Scanner.
26159         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
26160         tokens.
26161         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
26162         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
26163         and get the checksum.
26164
26165         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
26166         already in the Q.
26167         Increase the Marking_Label at the end of the Multiple_Main_Loop,
26168         instead of at the beginning.
26169
26170         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
26171         directly.
26172         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
26173         on VMS.
26174
26175         * osint.ads (Multi_Unit_Index_Character): New Character global variable
26176
26177         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
26178         not '~' directly.
26179
26180         * par.adb: Remove test on file name to detect language defined units.
26181         Add test on unit name, after parsing, to detect language defined units
26182         that are not compiled with -gnatg (except System.RPC and its children)
26183
26184         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
26185         following units without style checking.
26186
26187         * switch-c.adb: Change -gnatC to -gnateI
26188
26189         * usage.adb: Document new switch -gnateInnn
26190
26191         * scng.adb (Accumulate_Token_Checksum): New procedure
26192         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
26193         word or literal number.
26194         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
26195         numbers.
26196
26197 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
26198
26199         * a-tasatt.adb,
26200         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
26201         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
26202         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
26203         5vtpopde.adb: Add missing 'constant' keywords.
26204
26205 2004-04-01  Javier Miranda  <miranda@gnat.com>
26206
26207         * par-ch4.adb: (P_Allocator): Code cleanup
26208
26209         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
26210         attribute.
26211
26212         * sinfo.ads: Complete documentation of previous change
26213
26214 2004-04-01  Pascal Obry  <obry@gnat.com>
26215
26216         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
26217         only on VMS.  This special handling was done because an old GNU/ld bug
26218         on Windows which has been fixed.
26219
26220 2004-04-01  GNAT Script  <nobody@gnat.com>
26221
26222         * Make-lang.in: Makefile automatically updated
26223
26224 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26225
26226         * decl.c (gnat_to_gnu_entity, make_type_from_size):
26227         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
26228         * trans.c (tree_transform, convert_with_check): Likewise.
26229         * utils.c (gnat_signed_or_unsigned_type): Likewise.
26230         (build_vms_descriptor, unchecked_convert): Likewise.
26231         * utils2.c (nonbinary_modular_operation): Likewise.
26232
26233 2004-03-29  Javier Miranda  <miranda@gnat.com>
26234
26235         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
26236         (Install_Null_Excluding_Check): Local subprogram that determines whether
26237         an access node requires a runtime access check and if so inserts the
26238         appropriate run-time check.
26239         (Apply_Access_Check): Call Install_Null_Excluding check if required
26240         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
26241
26242         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
26243
26244         * einfo.ads: Fix typo in comment
26245
26246         * exp_ch3.adb (Build_Assignment): Generate conversion to the
26247         null-excluding type to force the corresponding run-time check.
26248         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
26249         type to force the corresponding run-time check.
26250
26251         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
26252         the null-excluding type to force the corresponding run-time check.
26253
26254         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
26255         case of access types unless they have the null-excluding attribute.
26256
26257         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
26258         part.
26259
26260         * exp_util.ads: Fix typo in comment
26261
26262         * par.adb (P_Null_Exclusion): New subprogram
26263         (P_Subtype_Indication): New formal that indicates if the null-excluding
26264         part has been scanned-out and it was present
26265
26266         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
26267
26268         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
26269         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
26270         type to force the corresponding run-time check
26271         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
26272         components
26273         (Resolve_Array_Aggregate): Carry out some static checks
26274         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
26275
26276         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
26277         attribute must be set only if specified by means of the null-excluding
26278         part. In addition, we must also propagate the access-constant attribute
26279         if present.
26280         (Access_Subprogram_Declaration, Access_Type_Declaration,
26281         Analyze_Component_Declaration, Analyze_Object_Declaration,
26282         Array_Type_Declaration, Process_Discriminants,
26283         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
26284         and carry out some static checks.
26285         (Build_Derived_Access_Type): Set the null-excluding attribute
26286         (Derived_Type_Declaration, Process_Subtype): Carry out some static
26287         checks.
26288
26289         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
26290
26291         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
26292
26293         * sem_ch6.adb (Process_Formals): Carry out some static checks.
26294         (Set_Actual_Subtypes): Generate null-excluding subtype if the
26295         null-excluding part was present; it is not required to be done here in
26296         case of anonymous access types.
26297         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
26298         value.
26299
26300         * sem_res.adb (Resolve_Actuals): Carry out some static check
26301         (Resolve_Null): Allow null in anonymous access
26302
26303         * sinfo.adb: New subprogram Null_Exclusion_Present
26304         All_Present and Constant_Present available on access_definition nodes
26305
26306         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
26307         object_declaration, derived_type_definition, component_definition,
26308         discriminant_specification, access_to_object_definition,
26309         access_function_definition, allocator, access_procedure_definition,
26310         access_definition, parameter_specification, All_Present and
26311         Constant_Present flags available on access_definition nodes.
26312
26313 2004-03-29  Robert Dewar  <dewar@gnat.com>
26314
26315         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
26316         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
26317         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
26318         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
26319         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
26320         sem_prag.adb: Updates to handle multiple units/file
26321
26322         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
26323
26324         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
26325         sem_util.adb: Minor reformatting
26326
26327         * sem_ch12.adb: Add comment for previous change
26328
26329 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
26330
26331         * osint.adb (Executable_Prefix): Set Exec_Name to the current
26332         executable name when not initialized. Otherwise, use its current value.
26333
26334         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
26335         initialize it to another executable name than the current one. This
26336         allows to configure paths for an executable name (gnatmake) different
26337         from the current one (gnatdist).
26338
26339 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
26340
26341         * exp_ch6.adb (Expand_Call): A call to a function declared in the
26342         current unit cannot be inlined if it appears in the body of a withed
26343         unit, to avoid order of elaboration problems in gigi.
26344
26345         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
26346         information for protected (wrapper) operation as well, to simplify gdb
26347         use.
26348
26349         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
26350         protected body, indicate that the entity for the generated spec comes
26351         from source, to ensure that references are properly generated for it.
26352         (Build_Body_To_Inline): Do not inline a function that returns a
26353         controlled type.
26354
26355         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
26356         apply convention to homonyms that are declared explicitly.
26357
26358         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
26359         that renames an equality operator and the operands are overloaded,
26360         resolve them with the declared formal types, before rewriting as an
26361         operator.
26362
26363 2004-03-29  GNAT Script  <nobody@gnat.com>
26364
26365         * Make-lang.in: Makefile automatically updated
26366
26367 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
26368
26369         * memtrack.adb: Log realloc calls, which are treated as free followed
26370         by alloc.
26371
26372 2004-03-25  Vincent Celier  <celier@gnat.com>
26373
26374         * prj-makr.adb (Process_Directories): Detect when a file contains
26375         several units. Do not include such files in the config pragmas or
26376         in the naming scheme.
26377
26378         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
26379         Resolve links only when not in Trusted_Mode.
26380         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
26381         Do not resolve links for the display names.
26382
26383         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
26384         resolve links when computing the display names.
26385
26386 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
26387
26388         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
26389         attribute reference does not denote a subtype, it can be any
26390         expression that has a classwide type, potentially after an implicit
26391         dereference.  In particular, the prefix can be a view conversion for
26392         a classwide type (for which Is_Object_Reference holds), but it can
26393         also be a value conversion for an access-to-classwide type. In the
26394         latter case, there is an implicit dereference, and the original node
26395         for the prefix does not verify Is_Object_Reference.
26396
26397         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
26398         conversion of a discriminant-dependent component of a mutable object
26399         is one itself.
26400
26401 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
26402
26403         * freeze.adb (Freeze_Entity): When an inherited subprogram is
26404         inherited, has convention C, and has unconstrained array parameters,
26405         place the corresponding warning on the derived type declaration rather
26406         than the original subprogram.
26407
26408         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
26409         indication on renaming declaration, if formal has a box and actual
26410         is absent.
26411
26412         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
26413         determine whether to generate an implicit or explicit reference to
26414         the renamed entity.
26415
26416         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
26417         subprogram renaming comes from a defaulted formal subprogram in an
26418         instance.
26419
26420 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
26421
26422         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
26423         value expressions to ensure that calls within a component definition
26424         will be checked (since those are evaluated during the record type's
26425         elaboration).
26426
26427 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
26428
26429         * s-tpobop.adb: Code clean up:
26430         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
26431         code.
26432         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
26433
26434 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
26435
26436         * Makefile.in: Clean up in the ravenscar run time.
26437
26438 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26439
26440         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
26441         of No_Strict_Aliasing to build_pointer_type_for_mode.
26442         * utils.c (update_pointer_to): Walk pointer and ref chains.
26443
26444 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
26445
26446         * ali.ads: Fix Comment about Dynamic_Elab.
26447
26448         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
26449         Has_RACW, Is_Generic, etc.)
26450         (Output_Object, Gnatls): Take into account ALI files not attached to
26451         an object.
26452
26453 2004-03-22  Vincent Celier  <celier@gnat.com>
26454
26455         * gprep.adb: Change all String_Access to Name_Id
26456         (Is_ASCII_Letter): new function
26457         (Double_File_Name_Buffer): New procedure
26458         (Preprocess_Infile_Name): New procedure
26459         (Process_Files): New procedure
26460         (Gnatprep): Check if output and input are existing directories.
26461         Call Process_Files to do the real job.
26462
26463 2004-03-22  Robert Dewar  <dewar@gnat.com>
26464
26465         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
26466         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
26467
26468 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
26469
26470         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
26471         case when the source contains only comments.
26472
26473 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
26474
26475         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
26476         declaration for a child subprogram body that acts as a spec, indicate
26477         that the entity in the declaration needs debugging information.
26478
26479         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
26480         full view if the subtype is created for a constrained record component;
26481         gigi has enough information to construct the record, and there is no
26482         place in the tree for the declaration.
26483
26484         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
26485         serial number for the dummy body that is built for analysis, to avoid
26486         inconsistencies in the generation of internal names when compiling
26487         with -gnatN.
26488
26489 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
26490
26491         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
26492         object.
26493
26494 2004-03-22  GNAT Script  <nobody@gnat.com>
26495
26496         * Make-lang.in: Makefile automatically updated
26497
26498 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26499
26500         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
26501         * trans.c (tree_transform, emit_index_check): Likewise.
26502         * utils.c (build_template): Likewise.
26503         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
26504         (maybe_unconstrained_array, unchecked_convert): Likewise.
26505         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
26506         (build_unary_op): Likewise.
26507         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
26508         (fill_vms_descriptor): Likewise.
26509         (build_call_alloc_dealloc): Likewise.
26510         ALIGN is unsigned.
26511         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
26512
26513 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
26514
26515         PR other/14630
26516         * gnat_ug.texi: Add info directory category and entry.
26517         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
26518         gnat_ug_wnt.texi: Regenerate.
26519
26520 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
26521
26522         * ada-tree.h: Update copyright notice.
26523         Minor reformatting.
26524
26525 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
26526
26527         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
26528         as regular exception objects and not as mere integers representing the
26529         condition code.  The latter approach required some dynamics to mask off
26530         severity bits, which did not fit well into the GCC table based model.
26531         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
26532         exception data objects. We don't it and it would conflict with the other
26533         external symbol we have to generate for such exceptions.
26534
26535         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
26536         the special code for VMS exceptions, since these are now represented
26537         as regular exceptions objects.
26538
26539 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26540
26541         * decl.c (debug_no_type_hash): Remove.
26542         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
26543         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
26544
26545 2004-03-19  Laurent Guerby <laurent@guerby.net>
26546
26547         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
26548         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
26549
26550 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26551
26552         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
26553         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
26554         (TYPE_RM_SIZE_INT): Directly use type.values.
26555         (TREE_LOOP_ID): Clean up check.
26556         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
26557         TYPE_VALUES, not TYPE_FIELDS.
26558         * trans.c (convert_with_check): Delay access of bounds of basetype
26559         until sure is numeric.
26560
26561 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
26562
26563         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
26564
26565         Code clean up:
26566         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
26567         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
26568         Specific.Set instead of direct call to e.g pthread_setspecific.
26569
26570 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
26571
26572         * adaint.c: Update comments.
26573
26574         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
26575         GNATLIB_SHARED for FreeBSD.
26576
26577 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
26578
26579         * init.c [VxWorks]: Do not fix the stack size for the environment task.
26580         When needed (stack checking) the stack size is retrieved
26581         from the VxWorks kernel.
26582
26583         * Makefile.in: Flag -nostdinc is required when building the run time
26584         for avoiding looking for files in the base compiler.
26585         Add the VxWorks specific version of the package body for
26586         System.Stack_checking.Operations (5zstchop.adb).
26587
26588         * Make-lang.in: Add the object file for
26589         System.Stack_Checking.Operations.
26590
26591         * Makefile.rtl: Add object file for the package
26592         System.Stack_Checking.Operations.
26593
26594         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
26595
26596         * s-stache.ads, s-stache.adb: Move the operations related to stack
26597         checking from this package to package System.Stack_Checking.Operations.
26598         This way, stack checking operations are only linked in the final
26599         executable when using the -fstack-check flag.
26600
26601 2004-03-18  Doug Rupp  <rupp@gnat.com>
26602
26603         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
26604         Reorganize ifeq's.
26605
26606         * 5qsystem.ads, 5xcrtl.ads: New files.
26607
26608 2004-03-18  Vincent Celier  <celier@gnat.com>
26609
26610         * prj.adb (Reset): Reset hash table Files_Htable
26611
26612         * prj-env.adb (Source_Paths, Object_Paths): New tables.
26613         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
26614         the procedures Add_To_Path_File.
26615         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
26616         making sure that each directory is present only once and, for object
26617         dirs, when a directory already present is added, the duplicate is
26618         removed and the directory is always put as the last in the table.
26619         Write the path files at the end of these accumulations.
26620
26621         * prj-nmsc.adb (Record_Source): Add source file name in hash table
26622         Files_Htable for all sources.
26623
26624         * prj-proc.adb (Process): Remove restrictions between not directly
26625         related extending projects.
26626
26627 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
26628
26629         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
26630         (Find_Sources): Minor speed optimization.
26631
26632         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
26633         parameter Trusted_Mode.
26634
26635 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
26636
26637         * scn.adb (Determine_License): Take into account a degenerated case
26638         when the source contains only comments.
26639
26640 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
26641
26642         * sem_warn.adb (Check_References): For a warning on a selected
26643         component that does not come from source, locate an uninitialized
26644         component of the record type to produce a more precise error message.
26645
26646 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
26647
26648         * 3zsoccon.ads: Fix multicast options.
26649
26650         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
26651         in the spec.
26652
26653 2004-03-15  Robert Dewar  <dewar@gnat.com>
26654
26655         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
26656         pragma used for a private type.
26657
26658         * lib-xref.adb (Generate_Reference): Do not generate warning if
26659         reference is in a different unit from the pragma Unreferenced.
26660
26661         * 5vtpopde.adb: Minor reformatting
26662         Fix casing of To_Task_ID
26663
26664         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
26665         flag if we have an unchecked conversion to an access type in the same
26666         unit.
26667
26668 2004-03-15  Geert Bosch  <bosch@gnat.com>
26669
26670         * a-ngcoty.adb (Modulus): In alternate formula for large real or
26671         imaginary parts, use Double precision throughout.
26672
26673         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
26674         we want to be able to compile run-time with -gnata for testing, but
26675         this may also be instantiated in user code that is compiled with -gnata.
26676
26677 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
26678
26679         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
26680         codes. Having a separate type for this is useful to enforce consistency
26681         throughout the various run-time units.
26682         (Exception_Data): Use Exception_Code for Import_Code.
26683
26684         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
26685         Natural and Integer in various places.
26686         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
26687         with the severity bits masked off.
26688         (Register_VMS_Exception): Handle the additional exception data pointer
26689         argument.
26690
26691         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
26692         component, now reflected by an exported accessor.
26693         (is_handled_by): New routine to compute whether the propagated
26694         occurrence matches some handler choice specification. Extracted out of
26695         get_action_description_for, and expanded to take care of the VMS
26696         specifities.
26697         (get_action_description_for): Use is_handled_by instead of an explicit
26698         complex condition to decide if the current choice at hand catches the
26699         propagated occurrence.
26700
26701         * raise.h (Exception_Code): New type for C.
26702
26703         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
26704         System.Standard_Library.Exception_Code, to allow references from the
26705         pragma import/export expander.
26706
26707         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
26708         New accessors to allow easy access to GNAT exception data
26709         characteristics.
26710         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
26711         redundant Handled_By_Others component, helper for the personality
26712         routine which will now be able to call the appropriate exception data
26713         accessor instead.
26714
26715         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
26716         component of Standard_Exception_Type to be the closest possible to
26717         Exception_Code in System.Standard_Library, that we cannot get at this
26718         point. Expand a ??? comment to notify that this type node should
26719         probably be rewritten later on.
26720
26721         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
26722         registration call to include a pointer to the exception object in the
26723         arguments.
26724
26725         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
26726         instead of int and explicit bitmasks.
26727
26728 2004-03-15  Vincent Celier  <celier@gnat.com>
26729
26730         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
26731         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
26732
26733         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
26734         longer needed now that it is in the spec of
26735         System.Tasking.Task_Attributes.
26736
26737         * adaint.h, adaint.c: (__gnat_create_output_file): New function
26738
26739         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
26740
26741         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
26742
26743         * make.adb (Gnatmake): Do not check the executable suffix; it is being
26744         taken care of in Scan_Make_Arg.
26745         (Scan_Make_Arg): Add the executable suffix only if the argument
26746         following -o, in canonical case, does not end with the executable
26747         suffix.  When in verbose mode and executable file name does not end
26748         with executable suffix, output the executable name, in canonical case.
26749
26750         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
26751         to avoid warnings when instantiating Ada.Task_Attributes.
26752         Minor reformating.
26753
26754         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
26755         in the correct order.
26756
26757         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
26758         redirect standard output and error to a file for the invocation of the
26759         compiler, then read the file.
26760
26761         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
26762         directory, instead of the Value.
26763         (Find_Source_Dirs): Remove useless code & comments.
26764
26765 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
26766
26767         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
26768         tagged type is inherited, and the parent operation is not frozen yet,
26769         force generation of a freeze node for the inherited operation, so the
26770         corresponding dispatch entry is properly initialized.
26771         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
26772         when looking for user-defined equality operation.
26773
26774         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
26775         boolean when locating primitive equality of tagged component.
26776
26777         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
26778         bit-aligned field and the right-hand side a string literal, introduce
26779         a temporary before expanding assignment into a loop.
26780
26781         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
26782         priority in full, to ensure that any expanded subepxressions of it are
26783         elaborated in the scope of the init_proc.
26784
26785         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
26786         after object declaration, skipping over code that may have been
26787         generated for validity checks.
26788
26789         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
26790         discriminants, ignore the known discriminants of its full view, if
26791         any, to check legality.
26792
26793         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
26794         component if type has unknown discriminants.
26795         (Analyze_Private_Extension_Declaration): Discriminant constraint is
26796         null if type has unknown discriminants.
26797
26798         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
26799         for end label when present.
26800
26801         * s-fileio.adb (Open): When called with a C_Stream, use given name for
26802         temporary file, rather than an empty string.
26803
26804 2004-03-15  Ed Falis  <falis@gnat.com>
26805
26806         * s-thread.adb: Removed, no longer used.
26807
26808 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26809
26810         * decl.c (target.h): Now include.
26811         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
26812         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
26813         (validate_size): For POINTER_TYPE, get smallest size permitted on
26814         machine.
26815
26816         * fe.h: Sort Einfo decls and add Set_Mechanism.
26817
26818         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
26819         (ada/decl.o): Depends on target.h.
26820
26821         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
26822         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
26823
26824 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
26825
26826         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
26827
26828         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
26829         Insert_Dereference_Action when rewriting an implicit dereference into
26830         an explicit one, this will be taken care of during expansion of the
26831         explicit dereference.
26832         (Expand_N_Slice): Same. Always do the rewriting, even for the case
26833         of non-packed slices, since the dereference action generated by
26834         expansion of the explicit dereference is needed in any case.
26835         (Expand_N_Selected_Component): When rewriting an implicit dereference,
26836         analyze and resolve the rewritten explicit dereference so it is seen
26837         by the expander.
26838         (Insert_Dereference_Action): This procedure is now called only for the
26839         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
26840         dereferences that do not come from source (including explicit
26841         dereferences resulting from rewriting implicit ones), but do not
26842         recursively insert a check for the dereference nodes contained within
26843         the check.
26844         (Insert_Dereference_Action): Clarify and correct comment.
26845
26846 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
26847
26848         PR ada/14131
26849         Move language detection to the top level.
26850         * config-lang.in: Build by default.
26851
26852 2004-03-05  Robert Dewar  <dewar@gnat.com>
26853
26854         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
26855
26856         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
26857         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
26858         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
26859         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
26860         unchecked conversion to spec to avoid warnings.
26861
26862         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
26863         to Task_ID
26864
26865         * 7stpopsp.adb: Correct casing in To_Task_ID call
26866
26867         * a-strsea.ads, a-strsea.adb: Minor reformatting
26868
26869         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
26870
26871         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
26872         Adjust Max_Msg_Length to be clearly large enough.
26873
26874         * fe.h: Define In_Same_Source_Unit
26875
26876         * osint.adb: Add pragma Warnings Off to suppress warnings
26877         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
26878         aliasing warnings.
26879
26880         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
26881
26882         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
26883
26884         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
26885
26886         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
26887
26888         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
26889
26890         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
26891         node. We now do generate them for gcc back end.
26892
26893         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
26894         warning.
26895
26896         * sinput-c.adb: Fix bad name in header.
26897         Add pragma Warnings Off to suppress aliasing warning.
26898
26899         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
26900
26901         * snames.h, snames.ads, snames.adb: Add entry for pragma
26902         No_Strict_Aliasing.
26903
26904 2004-03-05  Vincent Celier  <celier@gnat.com>
26905
26906         * prj-com.ads: Add hash table Files_Htable to check when a file name
26907         is already a source of another project.
26908
26909         * prj-nmsc.adb (Record_Source): Before recording a new source, check
26910         if its file name is not already a source of another project. Report an
26911         error if it is.
26912
26913         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
26914         source file name, call gnatpp with all the sources of the main project.
26915
26916         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
26917         of file names.
26918
26919         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
26920         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
26921         /RUNTIME_SYSTEM=, converted to --RTS=
26922         /NOTABS, converted to -notabs
26923
26924 2004-03-05  Pascal Obry  <obry@gnat.com>
26925
26926         * make.adb: Minor reformatting.
26927
26928 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
26929
26930         Part of implemention of AI-262.
26931         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
26932
26933         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
26934         procedure.
26935
26936         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
26937         when component type is a partially constrained class-wide subtype.
26938         (Constrain_Discriminated_Type): If parent type has unknown
26939         discriminants, a constraint is illegal, even if full view has
26940         discriminants.
26941         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
26942         with unknown discriminants whose full view is a discriminated record.
26943
26944         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
26945         flag, to handle properly derivations of tagged types with unknown
26946         discriminants.
26947         (Analyze_Package_Spec, Analyze_Package_Body): Install
26948         Private_With_Clauses before analyzing private part or body.
26949
26950         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
26951         Has_Discriminants can be true for a given type (documentation).
26952
26953 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
26954
26955         * s-restri.ads: Fix license (GPL->GMGPL).
26956
26957         * s-tassta.adb: Minor reformatting.
26958
26959         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
26960         by calls to Exit_One_ATC_Level, since additional clean up is performed
26961         by this function.
26962
26963         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
26964         by calls to Exit_One_ATC_Level, since additional clean up is performed
26965         by this function.
26966
26967 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26968
26969         * trans.c: Reflect GCC changes to fix bootstrap problem.
26970         Add warning for suspicious aliasing unchecked conversion.
26971
26972 2004-03-05  GNAT Script  <nobody@gnat.com>
26973
26974         * Make-lang.in: Makefile automatically updated
26975
26976 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
26977
26978         * ali.adb (Read_Instantiation_Instance): Do not modify the
26979         current_file_num when reading information about instantiations, since
26980         this corrupts files in later references.
26981
26982 2004-03-02  Vincent Celier  <celier@gnat.com>
26983
26984         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
26985         before checking if it is read-only.
26986
26987         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
26988         of SRC_DIRS and eliminate duplicates.
26989
26990         * gprcmd.adb: Replace command "path" with command "path_sep" to return
26991         the path separator.
26992         (Usage): Document path_sep
26993
26994         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
26995         C++ compiler. No need for a script.
26996         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
26997         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
26998         subst.
26999
27000         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
27001         where there are Ada sources.
27002         (Set_Ada_Paths): Only add to the include path the source dirs of project
27003         with Ada sources.
27004         (Add_To_Path): Add the Display_Values of the directories, not their
27005         Values.
27006
27007         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
27008         data.
27009
27010         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
27011         is not No_Name.
27012         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
27013         Value is canonicalized.
27014         (Language_Independent_Check): Do not copy Value to Display_Value when
27015         canonicalizing Value.
27016
27017         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
27018         path to find limited with cycles.
27019         (Parse_Single_Project): Use canonical cased path to find the end of a
27020         with cycle.
27021
27022 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
27023
27024         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
27025         and not a child unit.
27026
27027         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
27028         appear in a with_clause.
27029
27030         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
27031         only happen in type_annotate mode, do not try to elaborate it.
27032
27033         * exp_util.adb (Force_Evaluation): If expression is a selected
27034         component on the left of an assignment, use a renaming rather than a
27035         temporary to remove side effects.
27036
27037         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
27038         inlined instance body, which is analyzed before the end of the
27039         enclosing scope.
27040
27041 2004-03-02  Robert Dewar  <dewar@gnat.com>
27042
27043         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
27044         sem_ch4.adb: Use new feature for substitution of keywords in VMS
27045
27046         * errout.ads, errout.adb: Implement new circuit for substitution of
27047         keywords in VMS.
27048
27049         * sem_case.adb (Analyze_Choices): Place message properly when case is
27050         a subtype reference rather than an explicit range.
27051
27052         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
27053
27054 2004-03-02  Doug Rupp  <rupp@gnat.com>
27055
27056         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
27057
27058 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
27059
27060         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
27061
27062 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27063
27064         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
27065         BLKmode bitfield.
27066
27067 2004-02-25  Robert Dewar  <dewar@gnat.com>
27068
27069         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
27070         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
27071         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
27072         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
27073         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
27074         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
27075         the defining instance of the type to avoid aliasing problems.
27076         Fix copyright header.  Fix bad comments in package header.
27077
27078         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
27079
27080 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
27081
27082         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
27083         rewritten as references when aliased through an address clause.
27084
27085         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
27086         whether call can be interpreted as an indirect call to the result of a
27087         parameterless function call returning an access subprogram.
27088
27089 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
27090
27091         Code clean up:
27092         * exp_ch7.adb (Make_Clean): Remove generation of calls to
27093         Unlock[_Entries], since this is now done by Service_Entries directly.
27094
27095         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
27096
27097         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
27098         Requeue_Call for better code readability. Change spec and update calls:
27099         PO_Service_Entries now unlock the PO on exit.
27100         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
27101         PO_Service_Entries.
27102
27103         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
27104
27105         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
27106
27107 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
27108
27109         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
27110         protected subprogram call and analyzing the result of such expanding
27111         in case when the called protected subprogram is eliminated.
27112
27113         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
27114         names.
27115
27116 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
27117
27118         * Makefile.in: Clean ups.
27119
27120 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
27121
27122         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
27123         protected operations if original subprogram is flagged as eliminated.
27124         (Expand_N_Subprogram_Body): For a protected operation, create
27125         discriminals for next operation before checking whether the operation
27126         is eliminated.
27127
27128         * exp_ch9.adb (Expand_N_Protected_Body,
27129         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
27130         for internal protected operations if the original subprogram is
27131         eliminated.
27132
27133         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
27134         declared in a single protected object.
27135
27136 2004-02-23  Vincent Celier  <celier@gnat.com>
27137
27138         * prj-attr.adb: Make attribute Builder'Executable an associative array,
27139         case insensitive if file names are case insensitive, instead of a
27140         standard associative array.
27141
27142         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
27143         them as case insensitive on platforms where the file names are case
27144         sensitive.
27145
27146         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
27147         project file has already been parsed that canonical path are compared.
27148
27149 2004-02-23  Robert Dewar  <dewar@gnat.com>
27150
27151         * sinput-c.ads: Correct bad unit title in header
27152
27153         * freeze.adb: Minor reformatting
27154
27155 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27156
27157         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
27158         nonaddressable COMPONENT_REF that is removing padding that we are
27159         taking the address of, take the address of the padded record instead
27160         if item is variable size.
27161
27162 2004-02-20  Robert Dewar  <dewar@gnat.com>
27163
27164         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
27165
27166 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
27167
27168         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
27169         itype references for the constrained designated type of a component
27170         whose base type is already frozen.
27171
27172 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
27173
27174         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
27175         avoid GCC warnings.
27176
27177 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
27178
27179         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
27180         identifier for a phantom package that rewrites the formal package
27181         declaration with a box. The Add semantic decorations for the defining
27182         identifier from the original node (that represents the formal package).
27183
27184 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
27185
27186         * Make-lang.in (ada/stamp-sdefault): Use the top level
27187         move-if-change.
27188
27189 2004-02-19  Richard Henderson  <rth@redhat.com>
27190
27191         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
27192
27193 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
27194
27195         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
27196         Scan_ALI can be used for multiple ALI files without reinitializing
27197         between calls.
27198
27199 2004-02-18  Robert Dewar  <dewar@gnat.com>
27200
27201         * debug.adb: Minor reformatting.
27202
27203 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27204
27205         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
27206         to zero if there is an address clause.
27207
27208 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
27209
27210         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
27211
27212 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
27213
27214         * layout.adb (Layout_Component_List): Revise generation of call to
27215         discriminant-checking function to pass selections of all of the type's
27216         discriminants rather than just the variant-controlling discriminant.
27217
27218 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
27219
27220         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
27221         fail in the current setup and triggers spurious system error messages.
27222         Pretend it occurred and failed instead.
27223
27224 2004-02-18  Vincent Celier  <celier@gnat.com>
27225
27226         * bld.adb: Mark FLDFLAGS as saved
27227         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
27228         it is not the root project.  Put each directory to be
27229         extended between double quotes to prevent it to be expanded on Windows.
27230         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
27231         the project file. Set them back to their initial values if they have not
27232         been set in the project file.
27233
27234         * gprcmd.adb: (Gprdebug, Debug): New global variables
27235         (Display_Command): New procedure
27236         (Usage): Document new command "linkopts"
27237         Call Display_Command when env var GPRDEBUG has the value "TRUE"
27238         Implement new command "linkopts"
27239         Remove quotes that may be around arguments for "extend"
27240         Always call Normalize_Pathname with arguments formatted for the platform
27241
27242         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
27243         Change @echo to @$(display) in target clean to be able to clean silently
27244
27245         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
27246
27247         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
27248         canonical case.
27249
27250         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
27251         = Extending_All when current project is an extending all project.
27252
27253         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
27254         set to True only for LINK command, after Unix switch -o.
27255         (Process_Arguments): Set Output_File_Expected to True for LINK command
27256         after Unix switch -o. When Output_File_Expected is True, never add an
27257         extension to a file name.
27258
27259         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
27260         option file name, only to the --for-linker= switch.
27261         (Option_File_Name): If option file name do not end with ".opt", append
27262         "/OPTIONS".
27263
27264 2004-02-18  GNAT Script  <nobody@gnat.com>
27265
27266         * Make-lang.in: Makefile automatically updated
27267
27268 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
27269
27270         * Make-lang.in (stamp-sdefault): Do not depend on
27271         move-if-change.
27272
27273 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
27274
27275         * config-lang.in: Disable Ada by default until probe logic for
27276         a bootstrap Ada compiler can be moved to the top level configure
27277         script.
27278
27279 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
27280
27281         * decl.c (components_to_record): Don't claim that the internal fields
27282         we make to hold the variant parts are semantically addressable, because
27283         they are not.
27284
27285         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
27286         adjust the comment describing the modular type form when we can use it.
27287         (Install_PAT): Account for the Esiz renaming.
27288
27289         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
27290         sc_onstack context indication before raising the exception to which
27291         the signal is mapped. Allows better handling of later signals possibly
27292         triggered by the resumed user code if the exception is handled.
27293
27294 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
27295
27296         * 5zinit.adb: Removed, no longer used.
27297
27298 2004-02-12  Robert Dewar  <dewar@gnat.com>
27299
27300         * ali.adb: Remove separating space between parameters on R line. Makes
27301         format consistent with format used by the binder for Set_Globals call.
27302
27303         * atree.ads, atree.adb: Minor reformatting (new function header format)
27304
27305         * bindgen.adb: Add Run-Time Globals documentation section containing
27306         detailed documentation of the globals passed from the binder file to
27307         the run time.
27308
27309         * gnatls.adb: Minor reformatting
27310
27311         * init.c (__gnat_set_globals): Add note pointing to documentation in
27312         bindgen.
27313
27314         * lib-writ.ads, lib-writ.adb: Remove separating space between
27315         parameters on R line.
27316         Makes format consistent with format used by the binder for Set_Globals
27317         call.
27318
27319         * osint.ads: Add 2004 to copyright notice
27320         Minor reformatting
27321
27322         * snames.ads: Correct capitalization of FIFO_Within_Priorities
27323         Noticed during code reading, documentation issue only
27324
27325         * usage.adb: Remove junk line for obsolete C switch
27326         Noticed during code reading
27327
27328 2004-02-12  Vincent Celier  <celier@gnat.com>
27329
27330         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
27331         extend for each directory, so that multiple /** directories are
27332         extended individually.
27333         (Recursive_Process): Set the default for LANGUAGES to ada
27334
27335         * gprcmd.adb: Define new command "ignore", to do nothing.
27336         Implement new comment "path".
27337
27338         * Makefile.generic: Suppress output when SILENT is set
27339         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
27340         used, so that the correct compiler is invoked.
27341         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
27342         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
27343
27344 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
27345
27346         * Makefile.in: Clean ups and remove obsolete targets.
27347
27348 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
27349
27350         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
27351         predicate declared in exp_util.
27352
27353         * exp_util.adb: Add comments.
27354
27355         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
27356         visibility before compiling context of the subunit.
27357
27358         * sem_res.adb (Check_Parameterless_Call): If the context expects a
27359         value but the name is a procedure, do not attempt to analyze as a call,
27360         in order to obtain more telling diagnostics.
27361
27362         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
27363         'Access on parameterless function calls.
27364         (Normalize_Actuals): For a parameterless function call with missing
27365         actuals, defer diagnostic until resolution of enclosing call.
27366
27367         * sem_util.adb (Wrong_Type): If the context type is an access to
27368         subprogram and the expression is a procedure name, suggest a missing
27369         'attribute.
27370
27371 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
27372             Nathanael Nerode  <neroden@gcc.gnu.org>
27373
27374         PR ada/6637
27375         PR ada/5911
27376         Merge with libada-branch:
27377         * config-lang.in: Build libada only when ada is built.
27378
27379 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
27380
27381         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
27382         for a tagged type, verify that both formals have the same type.
27383
27384         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
27385         temporary when the formal is an in-parameter and the actual a possibly
27386         unaligned slice.
27387
27388         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
27389         when expansion is disabled, to ensure proper name capture with
27390         overloaded literals.  Condition can be of any boolean type, resolve
27391         accordingly.
27392
27393         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
27394         renaming is for a formal subprogram with a default operator name, and
27395         there is a usable operator that is visible at the point of
27396         instantiation.
27397
27398 2004-02-09  Robert Dewar  <dewar@gnat.com>
27399
27400         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
27401         rewrite to ignore errors in ali files, intended to allow tools downward
27402         compatibility with new versions of ali files.
27403
27404         * ali.ads: Add new parameter Ignore_Errors
27405
27406         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
27407         duplicating the error message giving the file with restrictions.
27408
27409         * debug.adb: Add debug flag I for gnatbind
27410
27411         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
27412         operators for the case where the operator is a defining operator.
27413
27414         * exp_ch3.adb: Minor reformatting (new function spec format).
27415
27416         * exp_ch4.adb: Add comment for previous change, and make minor
27417         adjustment to loop to always check for improper loop termination.
27418         Minor reformatting throughout (new function spec format).
27419
27420         * gnatbind.adb: Implement -di debug flag for gnatbind
27421
27422         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
27423
27424         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
27425
27426         * lib-load.adb: Fix bad assertion.
27427         Found by testing and code reading.
27428         Minor reformatting.
27429
27430         * lib-load.ads: Minor reformatting.
27431
27432         * lib-writ.adb: There is only one R line now.
27433
27434         * lib-writ.ads: Add documentation on making downward compatible changes
27435         to ali files so old tools work with new ali files.
27436         There is only one R line now.
27437         Add documentation on format incompatibilities (with special GPS note)
27438
27439         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
27440
27441         * par-load.adb: Minor reformatting
27442
27443         * sem_ch8.adb: Fix to error message from last update
27444         Minor reformatting and restructuring of code from last update
27445
27446         * par-prag.adb, snames.adb, snames.ads, snames.h,
27447         sem_prag.adb: Implement pragma Profile.
27448
27449         * stylesw.adb: Implement -gnatyN switch to turn off all style check
27450         options.
27451
27452         * usage.adb: Add line for -gnatyN switch
27453
27454         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
27455
27456 2004-02-09  Albert Lee  <lee@gnat.com>
27457
27458         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
27459
27460 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
27461
27462         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
27463         slices.
27464
27465         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
27466         is nested in an instance that is not frozen yet, to avoid
27467         order-of-elaboration problems in gigi.
27468
27469         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
27470         body the attribute is legal.
27471
27472 2004-02-09  Robert Dewar  <dewar@gnat.com>
27473
27474         * s-rident.ads: Minor comment correction
27475
27476         * targparm.adb: Remove dependence on uintp completely. There was
27477         always a bug in Make in that it called Targparm before initializing
27478         the Uint package. The old code appeared to get away with this, but
27479         the new code did not! This caused an assertion error in gnatmake.
27480
27481         * targparm.ads: Fix bad comment, restriction pragmas with parameters
27482         are indeed fully supported.
27483
27484 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
27485
27486         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
27487
27488 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
27489
27490         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
27491         with targetm.calls.promote_prototypes.
27492
27493 2004-02-04  Robert Dewar  <dewar@gnat.com>
27494
27495         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
27496         ali.ads, gprcmd.adb: Minor reformatting
27497
27498         * bindgen.adb: Output restrictions string for new style restrictions
27499         handling
27500
27501         * impunit.adb: Add s-rident.ads (System.Rident) and
27502         s-restri (System.Restrictions)
27503
27504         * lib-writ.adb: Fix bug in writing restrictions string (last few
27505         entries wrong)
27506
27507         * s-restri.ads, s-restri.adb: Change name Restrictions to
27508         Run_Time_Restrictions to avoid conflict with package name.
27509         Add circuit to read and acquire run time restrictions.
27510
27511 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
27512
27513         * restrict.ads, restrict.adb: Use the new restriction
27514         No_Task_Attributes_Package instead of the old No_Task_Attributes.
27515
27516         * sem_prag.adb: No_Task_Attributes is a synonym of
27517         No_Task_Attributes_Package.
27518
27519         * snames.ads, snames.adb: New entry for proper handling of
27520         No_Task_Attributes.
27521
27522         * s-rident.ads: Adding restriction No_Task_Attributes_Package
27523         (AI-00249) that supersedes the GNAT specific restriction
27524         No_Task_Attributes.
27525
27526 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
27527
27528         * sem_prag.adb:
27529         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
27530          body, an identifier may be wrapped in an unchecked conversion.
27531
27532 2004-02-04  Vincent Celier  <celier@gnat.com>
27533
27534         * lib-writ.ads: Comment update for the W lines
27535
27536         * bld.adb: (Expression): An empty string list is static
27537
27538         * fname-uf.adb: Minor comment update
27539
27540         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
27541
27542         * gnatbind.adb: Initialize Cumulative_Restrictions with the
27543         restrictions on the target.
27544
27545 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
27546
27547         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
27548         gen_rtx.
27549
27550 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
27551
27552         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
27553
27554 2004-02-02  Vincent Celier  <celier@gnat.com>
27555
27556         * gprcmd.adb (Check_Args): If condition is false, print the invoked
27557         comment before the usage.
27558         Gprcmd: Fail when command is not recognized.
27559         (Usage): Document command "prefix"
27560
27561         * g-md5.adb (Digest): Process last block.
27562         (Update): Do not process last block. Store remaining characters and
27563         length in Context.
27564
27565         * g-md5.ads (Update): Document that several call to update are
27566         equivalent to one call with the concatenated string.
27567         (Context): Add fields to allow new Update behaviour.
27568
27569         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
27570         defaulted to False.
27571         When May_Fail is True and no existing file can be found, return No_File.
27572
27573         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
27574         functions.
27575
27576         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
27577         spec file name instead on the W line.
27578
27579 2004-02-02  Robert Dewar  <dewar@gnat.com>
27580
27581         * ali.adb: Read and acquire info from new format restrictions lines
27582
27583         * bcheck.adb: Add circuits for checking restrictions with parameters
27584
27585         * bindgen.adb: Output dummy restrictions data
27586         To be changed later
27587
27588         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
27589         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
27590         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
27591         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
27592         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
27593
27594         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
27595         the warning message on access to possibly uninitialized variable S)
27596         Minor changes for new restrictions handling.
27597
27598         * gnatbind.adb: Minor reformatting
27599         Minor changes for new restrictions handling
27600         Move circuit for -r processing here from bcheck (cleaner)
27601
27602         * gnatcmd.adb, gnatlink.adb: Minor reformatting
27603
27604         * lib-writ.adb: Output new format restrictions lines
27605
27606         * lib-writ.ads: Document new R format lines for new restrictions
27607         handling.
27608
27609         * s-restri.ads/adb: New files
27610
27611         * Makefile.rtl: Add entry for s-restri.ads/adb
27612
27613         * par-ch3.adb: Fix bad error messages starting with upper case letter
27614         Minor reformatting
27615
27616         * restrict.adb: Major rewrite throughout for new restrictions handling
27617         Major point is to handle restrictions with parameters
27618
27619         * restrict.ads: Major changes in interface to handle restrictions with
27620         parameters. Also generally simplifies setting of restrictions.
27621
27622         * snames.ads/adb: New entry for proper handling of No_Requeue
27623
27624         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
27625         restriction counting.
27626         Other minor changes for new restrictions handling
27627
27628         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
27629         Restriction_Warnings now allows full parameter notation
27630         Major rewrite of Restrictions for new restrictions handling
27631
27632 2004-02-02  Javier Miranda  <miranda@gnat.com>
27633
27634         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
27635         syntax rule for object renaming declarations.
27636         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
27637         component definitions.
27638
27639         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
27640         components.
27641         (Array_Type_Declaration): Give support to access components. In addition
27642         it was also modified to reflect the name of the object in anonymous
27643         array types. The old code did not take into account that it is possible
27644         to have an unconstrained anonymous array with an initial value.
27645         (Check_Or_Process_Discriminants): Allow access discriminant in
27646         non-limited types.
27647         (Process_Discriminants): Allow access discriminant in non-limited types
27648         Initialize the new Access_Definition field in N_Object_Renaming_Decl
27649         node.  Change Ada0Y to Ada 0Y in comments
27650
27651         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
27652         equality operators.
27653         Change Ada0Y to Ada 0Y in comments
27654
27655         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
27656         renamings Change Ada0Y to Ada 0Y in comments
27657
27658         * sem_type.adb (Find_Unique_Type): Give support to the equality
27659         operators for universal access types
27660         Change Ada0Y to Ada 0Y in comments
27661
27662         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
27663
27664         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
27665         field.
27666         (N_Object_Renaming_Declaration): Addition of Access_Definition field
27667         Change Ada0Y to Ada 0Y in comments
27668
27669         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
27670         component definition and object renaming nodes
27671         Change Ada0Y to Ada 0Y in comments
27672
27673 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
27674
27675         * restrict.adb: Use the new restriction identifier
27676         No_Requeue_Statements instead of the old No_Requeue for defining the
27677         restricted profile.
27678
27679         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
27680         No_Requeue_Statements.
27681
27682         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
27683         that supersedes the GNAT specific restriction No_Requeue. The later is
27684         kept for backward compatibility.
27685
27686 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
27687
27688         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
27689         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
27690         pragma and fix incorrect ones.
27691
27692         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
27693         warning if the pragma is redundant.
27694
27695 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
27696
27697         * 5staprop.adb: Add missing 'constant' keywords.
27698
27699         * Makefile.in: use consistent value for SYMLIB on
27700         platforms where libaddr2line is supported.
27701
27702 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27703
27704         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
27705         annotating types.
27706
27707 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
27708
27709         * init.c (__gnat_install_handler): Setup an alternate stack for signal
27710         handlers in the environment thread. This allows proper propagation of
27711         an exception on stack overflows in this thread even when the builtin
27712         ABI stack-checking scheme is used without support for a stack reserve
27713         region.
27714
27715         * utils.c (create_field_decl): Augment the head comment about bitfield
27716         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
27717         here, because the former is not accurate enough at this point.
27718         Let finish_record_type decide instead.
27719         Don't make a bitfield if the field is to be addressable.
27720         Always set a size for the field if the record is packed, to ensure the
27721         checks for bitfield creation are triggered.
27722         (finish_record_type): During last pass over the fields, clear
27723         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
27724         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
27725         from DECL_BIT_FIELD.
27726
27727 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
27728
27729         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
27730         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
27731         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
27732
27733 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
27734
27735         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
27736
27737         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
27738         (ZCX_By_Default): Likewise.
27739         (Front_End_ZCX_Support): Likewise.
27740
27741         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
27742         (Initialize_Lock): Mark Level unreferenced.
27743         (Sleep): Mark Reason unreferenced.
27744         (Timed_Sleep): Likewise.
27745         (Wakeup): Likewise.
27746         (Exit_Task): Use Result.
27747         (Check_No_Locks): Mark Self_ID unreferenced.
27748
27749         * 5gtasinf.adb (New_Sproc): Make Attr constant.
27750         (Bound_Thread_Attributes): Make Sproc constant.
27751         (New_Bound_Thread_Attributes): Likewise.
27752
27753 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
27754
27755         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
27756         one-dimensional array an slice assignments, when component type is
27757         controlled.
27758
27759         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
27760         component type is controlled, and control_actions are in effect, use
27761         TSS procedure rather than generating inline code.
27762
27763         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
27764         arrays with controlled components.
27765
27766 2004-01-26  Vincent Celier  <celier@gnat.com>
27767
27768         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
27769         command line for the non VMS case.
27770
27771         * gnatlink.adb (Process_Binder_File): When building object file, if
27772         GNU linker is used, put all object paths between quotes, to prevent ld
27773         error when there are unusual characters (such as '!') in the paths.
27774
27775         * Makefile.generic: When there are sources in Ada and the main is in
27776         C/C++, invoke gnatmake with -B, instead of -z.
27777
27778         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
27779         from VMS_Conversion.
27780         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
27781         specification of argument file on the command line.
27782
27783 2004-01-26  Bernard Banner  <banner@gnat.com>
27784
27785         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
27786
27787 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
27788
27789         * snames.adb: Update copyright notice.
27790         Add info on slice assignment for controlled arrays.
27791
27792 2004-01-23  Robert Dewar  <dewar@gnat.com>
27793
27794         * exp_aggr.adb: Minor reformatting
27795
27796         * exp_ch9.adb: Minor code clean up
27797         Minor reformatting
27798         Fix bad character in comment
27799
27800         PR ada/13471
27801         * targparm.adb (Get_Target_Parameters): Give clean abort error on
27802         unexpected end of file, along with more detailed message.
27803
27804 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27805
27806         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
27807         PAT.
27808
27809         * decl.c (copy_alias_set): New function.
27810         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
27811
27812 2004-01-23  Doug Rupp  <rupp@gnat.com>
27813
27814         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
27815         lib$${file} in case subsequent character is not a separator.
27816
27817 2004-01-23  Vincent Celier  <celier@gnat.com>
27818
27819         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
27820         when the GCC version is at least 3.
27821
27822         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
27823         Remove all "Opt.", to prepare for opt split
27824
27825         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
27826         Extends_All. Set to True when the project parsed is an extending all
27827         project. Fails for importing an extending all project only when the
27828         imported project is an extending all project.
27829         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
27830         depending on the value of Extends_All returned.
27831
27832         * prj-proc.adb (Process): Check that no project shares its object
27833         directory with a project that extends it, directly or indirectly,
27834         including a virtual project.
27835         Check that no project extended by another project shares its object
27836         directory with another also extended project.
27837
27838         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
27839         Kind = N_With_Clause
27840
27841         * prj-tree.ads: Minor reformatting
27842         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
27843
27844 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
27845
27846         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
27847         applies to a type with an incomplete view, use full view in Name of
27848         clause, for consistency with uses of Get_Attribute_Definition_Clause.
27849
27850 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
27851
27852         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
27853         SCHED_RR, since other values are not supported by this policy.
27854         (Initialize): Move initialization of mutex attribute to package
27855         elaboration, to prevent early access to this variable.
27856
27857         * Makefile.in: Remove mention of Makefile.adalib, unused.
27858
27859         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
27860         1ssecsta.ads: Removed, unused.
27861
27862 2004-01-21  Javier Miranda  <miranda@gnat.com>
27863
27864         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
27865         entity if already built in the current scope.
27866
27867         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
27868         reminder in internal scopes. Required for nested limited aggregates.
27869
27870 2004-01-21  Doug Rupp  <rupp@gnat.com>
27871
27872         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
27873         VMS. Replace all occurences of libgnat- and libgnarl- with
27874         libgnat$(hyphen) and libgnarl$(hyphen).
27875         Fixed shared library build problem on VMS.
27876
27877 2004-01-21  Robert Dewar  <dewar@gnat.com>
27878
27879         * mlib-prj.adb: Minor reformatting
27880
27881 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
27882
27883         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
27884         'constant' keywords for declaration of pointers that are not modified.
27885
27886         * exp_pakd.adb: Fix English in comment.
27887
27888 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
27889
27890         PR ada/10889
27891         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
27892         copy all attributes of the parent, including the foreign language
27893         convention.
27894
27895 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
27896
27897         PR ada/10565
27898         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
27899         for 'delay until' statement.
27900
27901 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
27902
27903         * Make-lang.in: Replace $(docdir) with doc.
27904         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
27905         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
27906         to use consistent MAKEINFO rule.
27907         (ada.man, ada.srcman): Dummy entry.
27908         (ADA_INFOFILES): Define.
27909         (ada.info, ada.srcinfo): New rules.
27910
27911 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
27912
27913         * utils.c: Update copyright notice, missed in previous change.
27914
27915 2004-01-19  Vincent Celier  <celier@gnat.com>
27916
27917         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
27918         args if Bind is True. Set First_ALI, if not already done.
27919         (Build_Library): For Stand Alone Libraries, extract from one ALI file
27920         an eventual --RTS switch, for gnatbind, and all backend switches +
27921         --RTS, for linking.
27922
27923 2004-01-19  Robert Dewar  <dewar@gnat.com>
27924
27925         * sem_attr.adb, memtrack.adb: Minor reformatting
27926
27927 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
27928
27929         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
27930         that rename enumeration literals. This is properly done in sem_eval.
27931
27932         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
27933         to functions that rename enumeration literals.
27934
27935         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
27936         functions that rename enumeration literals.
27937
27938 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
27939
27940         * Make-lang.in (utils.o): Depend on target.h.
27941         * utils.c: Include target.h.
27942         (process_attributes): Use targetm.have_named_sections instead
27943         of ASM_OUTPUT_SECTION_NAME.
27944
27945 2004-01-16  Andreas Jaeger  <aj@suse.de>
27946
27947         * Makefile.in: Add $(DESTDIR).
27948
27949 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
27950
27951         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
27952         also when not defining if a Size clause applies. That information is
27953         not to be ignored.
27954
27955 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
27956
27957         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
27958         symbolic links for the shared gnat run time when needed.
27959
27960 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
27961
27962         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
27963         for writing, and terminate with an error message if not.
27964
27965 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
27966
27967         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
27968         warning on an access to subprogram in an instance, when the target
27969         type is declared in the same generic unit.
27970         (Eval_Attribute): If 'access is known to fail accessibility check,
27971         rewrite as a raise statement.
27972
27973 2004-01-15  GNAT Script  <nobody@gnat.com>
27974
27975         * Make-lang.in: Makefile automatically updated
27976
27977 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
27978
27979         * Make-lang.in (ada.srcextra): Dummy entry.
27980
27981 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
27982
27983         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
27984
27985 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
27986
27987         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
27988         components that are initialized with aggregates.
27989
27990 2004-01-13  Vincent Celier  <celier@gnat.com>
27991
27992         * gnatlink.adb (Process_Binder_File): To find directory of shared
27993         libgcc, if "gcc-lib" is not a subdirectory, look for the last
27994         subdirectory "lib" in the path of the shared libgnat or libgnarl.
27995
27996         * make.adb (Gnatmake): If GCC version is at least 3, link with
27997         -shared-libgcc, when there is at least one shared library project.
27998
27999         * opt.ads (GCC_Version): New integer constant.
28000
28001         * adaint.c (get_gcc_version): New function.
28002
28003 2004-01-13  Robert Dewar  <dewar@gnat.com>
28004
28005         * sem_dist.adb, sem_res.adb, sem_util.adb,
28006         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
28007         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
28008
28009 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
28010
28011         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
28012         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
28013         declarations.
28014
28015 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
28016
28017         * misc.c: Remove trailing spaces.
28018         Update copyright notice missed in previous change.
28019
28020         PR ada/13572
28021         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
28022         prefix/share/make
28023
28024         * Makefile.generic: Update copyright.
28025         Add license notice.
28026
28027         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
28028         of prefix/share/make.
28029
28030         * Makefile.prolog: Update copyright.
28031         Add license notice.
28032
28033 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
28034
28035         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
28036         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
28037         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
28038         instead of String.
28039
28040         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
28041         signature.
28042
28043 2004-01-12  Javier Miranda  <miranda@gnat.com>
28044
28045         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
28046         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
28047         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
28048         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
28049         Component_Definition node.
28050
28051 2004-01-12  Ed Falis  <falis@gnat.com>
28052
28053         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
28054
28055 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
28056
28057         * link.c: Change default libgnat kind to STATIC for FreeBSD.
28058
28059 2004-01-12  Bernard Banner  <banner@gnat.com>
28060
28061         * Makefile.in: map 86numaux to a-numaux for x86_64
28062
28063 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
28064
28065         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
28066         generated to rename a generic actual, go to the actual itself, the
28067         subtype is not a user-visible entity.
28068
28069         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
28070         part is a private subtype, reset the visibility of its full view, if
28071         any, to be consistent.
28072
28073         PR ada/13417
28074         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
28075         to use a generic package G as a formal package for another generic
28076         declared within G.
28077
28078 2004-01-12  Robert Dewar  <dewar@gnat.com>
28079
28080         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
28081
28082         * usage.adb: Remove mention of obsolete -gnatwb switch
28083         Noticed during code reading
28084
28085 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
28086
28087         * 1ssecsta.adb: Minor changes for -gnatwa warnings
28088
28089 2004-01-12  GNAT Script  <nobody@gnat.com>
28090
28091         * Make-lang.in: Makefile automatically updated
28092
28093 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
28094
28095         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
28096
28097 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
28098
28099         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
28100
28101 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
28102
28103         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
28104         Update comment and copyright date.
28105         * stamp-xgnatug: Delete.
28106
28107 2004-01-05  Robert Dewar  <dewar@gnat.com>
28108
28109         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
28110         be modified by the binder generated main program if the -D switch is
28111         used.
28112
28113         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
28114         imported functions (since now we expect this to be done for imported
28115         functions)
28116
28117         * 5vtaprop.adb: Add several ??? for sections requiring more comments
28118         Minor reformatting throughout
28119
28120         * 5zinit.adb: Minor reformatting
28121         Add 2004 to copyright date
28122         Minor changes to avoid -gnatwa warnings
28123         Correct some instances of using OR instead of OR ELSE (noted while
28124         doing reformatting)
28125
28126         * sprint.adb: Minor updates to avoid -gnatwa warnings
28127
28128         * s-secsta.ads, s-secsta.adb:
28129         (SS_Get_Max): New function to obtain high water mark for ss stack
28130         Default_Secondary_Stack is not a constant since it may be modified by
28131         the binder generated main program if the -D switch is used.
28132
28133         * switch-b.adb: New -Dnnn switch for binder
28134
28135         * switch-c.adb:
28136         Make -gnatg imply all warnings currently in -gnatwa
28137
28138         * vms_conv.adb: Minor reformatting
28139         Add 2004 to copyright notice
28140         Add 2004 to printed copyright notice
28141
28142         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
28143         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
28144         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
28145         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
28146         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
28147         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
28148         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
28149         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
28150         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
28151         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
28152         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
28153         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
28154         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
28155         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
28156         checks.adb, clean.adb, cstand.adb, einfo.ads,
28157         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
28158         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
28159         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
28160         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
28161         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
28162         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
28163         Minor reformatting and code clean ups.
28164         Minor changes to prevent -gnatwa warnings
28165
28166         * ali.adb: Minor reformatting and cleanup of code
28167         Acquire new SS indication of secondary stack use from ali files
28168
28169         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
28170         (since now we expect this to be done for imported functions)
28171
28172         * bindgen.adb: Generate call to modify default secondary stack size if
28173         -Dnnn switch given
28174
28175         * bindusg.adb: Add line for new -D switch
28176
28177         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
28178         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
28179         Add circuitry for both records and arrays to avoid gigi
28180         processing if the type involved has non-bit-aligned components
28181
28182         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
28183         N_String_Literal node always references an E_String_Literal_Subtype
28184         entity. This may not be true in the future.
28185         (Possible_Bit_Aligned_Component): Move processing of
28186         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
28187
28188         * exp_ch6.adb (Expand_Thread_Body): Pick up
28189         Default_Secondary_Stack_Size as variable so that we get value modified
28190         by possible -Dnnn binder parameter.
28191
28192         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
28193         (Type_May_Have_Bit_Aligned_Components): New function.
28194
28195         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
28196         (Type_May_Have_Bit_Aligned_Components): New function.
28197
28198         * fe.h: (Set_Identifier_Casing): Fix prototype.
28199         Add declaration for Sem_Elim.Eliminate_Error_Msg.
28200         Minor reformatting.
28201
28202         * freeze.adb (Freeze_Entity): Add RM reference to error message about
28203         importing constant atomic/volatile objects.
28204         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
28205         unless explicit Pure_Function pragma given, to avoid insidious bug of
28206         call to non-pure imported function getting eliminated.
28207
28208         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
28209         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
28210         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
28211         Add 2004 to printed copyright notice
28212
28213         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
28214         stack used.
28215
28216         * Makefile.rtl: Add entry for g-sestin.o
28217         g-sestin.ads: New file.
28218
28219         * mdll.adb: Minor changes to avoid -gnatwa warnings
28220
28221         * mlib-tgt.adb: Minor reformatting
28222
28223         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
28224         New switch Sec_Stack_Used (GNAT, GNATBIND)
28225         Make Default_Secondary_Stack_Size a variable instead of a constant,
28226         so that it can be modified by the new -Dnnn bind switch.
28227
28228         * rtsfind.adb (Load_Fail): Give full error message in configurable
28229         run-time mode if all_errors mode is set. This was not done in the case
28230         of a file not found, which was an oversight.
28231         Note if secondary stack unit is used by compiler.
28232
28233         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
28234         ineffective elaborate all pragmas on non-visible packages (this
28235         happened when a renamed subprogram was called). Now the elaborate all
28236         always goes on the package containing the renaming rather than the one
28237         containing the renamed subprogram.
28238
28239         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
28240         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
28241
28242         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
28243         has an Etype that references an E_String_Literal.
28244         (Eval_String_Literal): Avoid assumption that N_String_Literal node
28245         always references an E_String_Literal_Subtype entity. This may not
28246         be true in the future.
28247
28248         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
28249         pragma location.
28250
28251         * sem_res.adb (Resolve): Specialize msg for function name used in proc
28252         call.
28253
28254 2004-01-05  Ed Falis  <falis@gnat.com>
28255
28256         * g-debuti.adb: Replaced direct boolean operator with short-circuit
28257         form.
28258
28259 2004-01-05  Vincent Celier  <celier@gnat.com>
28260
28261         * bld.adb: Minor comment updates
28262         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
28263         of Item_Name).
28264
28265         * make.adb (Gnatmake): Special process for files to compile/check when
28266         -B is specified. Fail when there are only foreign mains in attribute
28267         Main of the project file and -B is not specified. Do not skip bind/link
28268         steps when -B is specified.
28269
28270         * makeusg.adb: Document new switch -B
28271
28272         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
28273
28274         * switch-m.adb: (Scan_Make_Switches): Process -B switch
28275
28276         * vms_data.ads: Add new GNAT PRETTY qualifier
28277         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
28278
28279 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28280
28281         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
28282         case.
28283
28284         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
28285         Set_Identifier_Casing.
28286
28287         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
28288         has size that overflows.
28289
28290 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
28291
28292         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
28293         -gnatwa warning on static condition.
28294
28295 2004-01-05  Doug Rupp  <rupp@gnat.com>
28296
28297         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
28298
28299 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
28300
28301         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
28302         all attributes, including read-only attribute.
28303
28304 2004-01-05  Pascal Obry  <obry@gnat.com>
28305
28306         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
28307         library naming scheme.
28308
28309         * mlib-prj.adb (Build_Library): Generate different names for the static
28310         or dynamic version of the GNAT runtime. This is needed to support the
28311         new shared library naming scheme.
28312         (Process_Binder_File): Add detection of shared library in binder file
28313         based on the new naming scheme.
28314
28315         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
28316         scheme for the shared runtime libraries.
28317
28318         * Makefile.in:
28319         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
28320         scheme.
28321         (install-gnatlib): Do not create symlinks for shared libraries.
28322         (gnatlib-shared-default): Idem.
28323         (gnatlib-shared-dual-win32): New target. Not used for now as the
28324         auto-import feature does not support arrays/records.
28325         (gnatlib-shared-win32): Do not create copy for the shared libraries.
28326         (gnatlib-shared-vms): Fix shared runtime libraries names.
28327
28328         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
28329         dependent runtime shared library name.
28330
28331 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
28332
28333         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
28334         than the object.
28335
28336 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
28337
28338         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
28339         protected objects when allocator has a subtype indication, not a
28340         qualified expression. Note that qualified expressions may have to be
28341         checked when limited aggregates are implemented.
28342
28343         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
28344         pure, emit warning.
28345         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
28346         subprogram is imported, remove warning.
28347
28348 2004-01-05  Geert Bosch  <bosch@gnat.com>
28349
28350         * s-poosiz.adb: Update copyright notice.
28351         (Allocate): Use Task_Lock to protect against concurrent access.
28352         (Deallocate): Likewise.
28353
28354 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
28355
28356         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
28357         comment.
28358
28359 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
28360
28361         * gnat_ug.texi: Force a CVS commit by updating copyright.
28362         * gnat_ug_vxw.texi: Regenerate.
28363         * gnat_ug_wnt.texi: Regenerate.
28364         * gnat_ug_vms.texi: Regenerate.
28365         * gnat_ug_unx.texi: Regenerate.
28366
28367 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
28368
28369         * trans.c: Remove uses of "register" specifier in
28370         declarations of local variables.
28371
28372 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
28373
28374         * stamp-xgnatug: New stamp file.
28375         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
28376         (ada/doctools/xgnatug): Add $(build_exeext).
28377         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
28378         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
28379
28380 2003-12-17  Ed Falis  <falis@gnat.com>
28381
28382         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
28383         eliminate warning.
28384
28385         * a-exextr.adb: Add context clause for
28386         Ada.Exceptions.Last_Chance_Handler.
28387
28388 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
28389
28390         * cstand.adb (Create_Standard): Change the way how the declaration of
28391         the Duration type is created (making it the same way as it is for all
28392         the other standard types).
28393
28394 2003-12-17  Robert Dewar  <dewar@gnat.com>
28395
28396         * s-crtl.ads: Fix header format
28397         Change Pure to Preelaborate
28398
28399 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
28400
28401         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
28402         the expression type only if it is declared in the current unit.
28403
28404         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
28405         are universal and already analyzed, as can occur in constrained
28406         subcomponents that depend on discriminants, when one constraint is a
28407         subtype mark.
28408
28409         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
28410         type Any_Fixed is legal as the argument of a conversion, if only one
28411         fixed-point type is in context.
28412
28413 2003-12-17  GNAT Script  <nobody@gnat.com>
28414
28415         * Make-lang.in: Makefile automatically updated
28416
28417 2003-12-15  Robert Dewar  <dewar@gnat.com>
28418
28419         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
28420         sec stack size.
28421
28422 2003-12-15  Vincent Celier  <celier@gnat.com>
28423
28424         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
28425         (Gnatchop): Do not set failure status when reporting the number of
28426         warnings.
28427
28428 2003-12-15  Doug Rupp  <rupp@gnat.com>
28429
28430         * s-ctrl.ads: New file.
28431
28432         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
28433
28434         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
28435         (GNATBIND_OBJS): Add ada/s-crtl.o.
28436
28437         * Makefile.in [VMS]: Clean up ifeq rules.
28438
28439         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
28440         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
28441         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
28442         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
28443         s-tasdeb.adb: Update copyright.
28444         Import System.CRTL.
28445         Make minor modifications to use System.CRTL declared functions instead
28446         of importing locally.
28447
28448 2003-12-15  GNAT Script  <nobody@gnat.com>
28449
28450         * Make-lang.in: Makefile automatically updated
28451
28452 2003-12-11  Ed Falis  <falis@gnat.com>
28453
28454         * 5zinit.adb: Clean up.
28455
28456         * 5zintman.adb (Notify_Exception): replaced case statement with a call
28457         to __gnat_map_signal, imported from init.c to support
28458         signal -> exception mappings that depend on the vxWorks version.
28459
28460         * init.c:
28461         Created and exported __gnat_map_signal to support signal -> exception
28462         mapping that is dependent on the VxWorks version.
28463         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
28464
28465 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
28466
28467         * 5wosinte.ads: Link with -mthreads switch.
28468
28469 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
28470
28471         * init.c (__gnat_install_handler [NetBSD]): Set
28472         __gnat_handler_installed, as done on all other platforms.
28473         Remove duplicated code.
28474
28475 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
28476
28477         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
28478
28479 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
28480
28481         * sinfo.ads: Fix inconsistent example code in comment.
28482
28483 2003-12-11  Robert Dewar  <dewar@gnat.com>
28484
28485         * a-tiinau.adb: Add a couple of comments
28486
28487         * sem_ch3.adb: Minor reformatting
28488
28489         * sem_prag.adb:
28490         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
28491         Minor reformatting throughout
28492
28493 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
28494
28495         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
28496         bounds of a loop, create a separate block in order to generate proper
28497         cleanup actions to prevent memory leaks.
28498
28499         * sem_res.adb (Resolve_Call): After a call to
28500         Establish_Transient_Scope, the call may be rewritten and relocated, in
28501         which case no further processing is needed.
28502
28503         * sem_util.adb: (Wrong_Type): Refine previous fix.
28504          Fixes ACATS regressions.
28505
28506         PR ada/13353
28507         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
28508         be inlined.
28509
28510 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
28511
28512         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
28513         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
28514         obsolete files.
28515
28516         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
28517         (rts-zfp): Ditto.
28518
28519 2003-12-08  Robert Dewar  <dewar@gnat.com>
28520
28521         * 7sintman.adb: Minor reformatting
28522
28523         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
28524         standard linker options to get standard libraries linked. We now plan
28525         to provide dummy versions of these libraries to match the appropriate
28526         configurable run-time (e.g. if a library is not needed at all, provide
28527         a dummy empty library).
28528
28529         * targparm.ads: Configurable_Run_Time mode no longer affects linker
28530         options (-L parameters and standard libraries). What we plan to do is
28531         to provide dummy libraries where the libraries are not required.
28532
28533         * gnatbind.adb: Minor comment improvement
28534
28535 2003-12-08  Javier Miranda  <miranda@gnat.com>
28536
28537         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
28538         aggregate in the parent. Otherwise constants with limited aggregates
28539         are not supported. Add new formal to pass the component type (Ctype).
28540         It is required to call the corresponding IP subprogram in case of
28541         default initialized components.
28542         (Gen_Assign): In case of default-initialized component, generate a
28543         call to the IP subprogram associated with the component.
28544         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
28545         of aggregate with default initialized components.
28546         (Has_Default_Init_Comps): Improve implementation to recursively check
28547         all the present expressions.
28548
28549         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
28550         to indicate that the initialization call corresponds to a
28551         default-initialized component of an aggregate.
28552         In case of default initialized aggregate with tasks this parameter is
28553         used to generate a null string (this is just a workaround that must be
28554         improved later). In case of discriminants, this parameter is used to
28555         generate a selected component node that gives access to the discriminant
28556         value.
28557
28558         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
28559         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
28560         allocated aggregates with default-initialized components.
28561
28562         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
28563         the box notation is used in positional aggregates.
28564
28565 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
28566
28567         * lib.ads: Fix typo in comment
28568
28569 2003-12-08  Vincent Celier  <celier@gnat.com>
28570
28571         * prj.adb (Project_Empty): New component Unkept_Comments
28572         (Scan): Remove procedure; moved to Prj.Err.
28573
28574         * prj.ads (Project_Data): New Boolean component Unkept_Comments
28575         (Scan): Remove procedure; moved to Prj.Err.
28576
28577         * prj-dect.adb: Manage comments for the different declarations.
28578
28579         * prj-part.adb (With_Record): New component Node
28580         (Parse): New Boolean parameter Store_Comments, defaulted to False.
28581         Set the scanner to return ends of line and comments as tokens, if
28582         Store_Comments is True.
28583         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
28584         comments are associated with these nodes. Store the node IDs in the
28585         With_Records.
28586         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
28587         With_Records.
28588         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
28589         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
28590         current project. Call Tree.Restore afterwards. Set the various nodes
28591         for comment storage (Next_End, End_Of_Line, Previous_Line,
28592         Previous_End).
28593
28594         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
28595         defaulted to False.
28596
28597         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
28598         to False. When Truncated is True, truncate the string, never go to the
28599         next line.
28600         (Write_End_Of_Line_Comment): New procedure
28601         (Print): Process comments for nodes N_With_Clause,
28602         N_Package_Declaration, N_String_Type_Declaration,
28603         N_Attribute_Declaration, N_Typed_Variable_Declaration,
28604         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
28605         Process nodes N_Comment.
28606
28607         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
28608         without comments and there are some comments, set the flag
28609         Unkept_Comments to True.
28610         (Scan): If there are comments, set the flag Unkept_Comments to True and
28611         clear the comments.
28612         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
28613         (Next_End_Nodes: New table
28614         (Comment_Zones_Of): New function
28615         (Scan): New procedure; moved from Prj. Accumulate comments in the
28616         Comments table and set end of line comments, comments after, after end
28617         and before end.
28618         (Add_Comments): New procedure
28619         (Save, Restore, Seset_State): New procedures
28620         (There_Are_Unkept_Comments): New function
28621         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
28622         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
28623         procedures.
28624         (First_Comment_After, First_Comment_After_End): New functions
28625         (First_Comment_Before, First_Comment_Before_End): New functions
28626         (Next_Comment): New function
28627         (End_Of_Line_Comment, Follows_Empty_Line,
28628         Is_Followed_By_Empty_Line): New functions
28629         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
28630         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
28631         (Set_Next_Comment): New procedure
28632         (Default_Project_Node): Associate comment before if the node can store
28633         comments.
28634
28635         * scans.ads (Token_Type): New enumeration value Tok_Comment
28636         (Comment_Id): New global variable
28637
28638         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
28639         defaulted to False.
28640         (Scan): Store position of start of comment. If comments are tokens, set
28641         Comment_Id and set Token to Tok_Comment when scanning a comment.
28642         (Set_Comment_As_Token): New procedure
28643
28644         * sinput-p.adb: Update Copyright notice
28645         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
28646         that no longer exists.
28647
28648 2003-12-08  Javier Miranda  <miranda@gnat.com>
28649
28650         * sem_aggr.adb: Add dependence on Exp_Tss package
28651         Correct typo in comment
28652         (Resolve_Aggregate): In case of array aggregates set the estimated
28653         type of the aggregate before calling resolve. This is needed to know
28654         the name of the corresponding IP in case of limited array aggregates.
28655         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
28656         in case of default initialized array components.
28657
28658         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
28659         types. Required to give support to limited aggregates in generic
28660         formals.
28661
28662 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
28663
28664         * sem_ch3.adb (Check_Initialization): For legality purposes, an
28665         inlined body functions like an instantiation.
28666         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
28667         until bounds are analyzed, to diagnose premature use of type.
28668
28669         * sem_util.adb (Wrong_Type): Improve error message when the type of
28670         the expression is used prematurely.
28671
28672 2003-12-08  GNAT Script  <nobody@gnat.com>
28673
28674         * Make-lang.in: Makefile automatically updated
28675
28676 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
28677
28678         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
28679         they are automatically generated by Make-lang.in and cause nothing but
28680         maintenance troubles.
28681
28682 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
28683
28684         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
28685         version of this unit).
28686
28687 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
28688
28689         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
28690         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
28691         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
28692         the body of System.Interrupt_Management common to several targets.
28693         Update copyright notice when appropriate.
28694
28695         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
28696         constant.
28697
28698         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
28699         to ensure that the kernel fills in the interrupted context structure
28700         before calling a signal handler, which is necessary to be able to
28701         unwind past it. Update the copyright notice.
28702
28703 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
28704
28705         * a-elchha.ads: New file.
28706
28707         * a-elchha.adb: New default last chance handler. Contents taken from
28708         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
28709
28710         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
28711         is moved to a-elchha.adb to provide a target-independent default last
28712         chance handler.
28713
28714         * Makefile.rtl: Add a-elchha.o
28715
28716         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
28717
28718 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
28719
28720         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
28721         declared in an instance, do not inline the call if the instance is not
28722         frozen yet, to prevent order of elaboration problems.
28723
28724         * sem_prag.adb: Add comments for previous fix.
28725
28726 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
28727
28728         * g-table.adb: Use the right variable in Set_Item.
28729         Update copyright notice.
28730
28731 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
28732
28733         * Makefile.in: Remove unused rules.
28734
28735 2003-12-05  Vincent Celier  <celier@gnat.com>
28736
28737         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
28738         -nostdlib. Not needed here after all.
28739
28740 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
28741
28742         PR ada/11724
28743         * adaint.h, adaint.c, g-os_lib.ads:
28744         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
28745         on some platforms (including FreeBSD), it is a 64 bit value.
28746         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
28747
28748 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
28749
28750         * gnatvsn.ads (Library_Version): Now contain only the relevant
28751         version info.
28752         (Verbose_Library_Version): New constant.
28753
28754         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
28755         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
28756         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
28757
28758         * gnatlbr.adb: Clean up: replace Library_Version by
28759         Verbose_Library_Version.
28760
28761         * make.adb, lib-writ.adb, exp_attr.adb:
28762         Clean up: replace Library_Version by Verbose_Library_Version.
28763
28764         * 5lintman.adb: Removed.
28765
28766         * Makefile.in:
28767         Update and simplify computation of LIBRARY_VERSION.
28768         Fix computation of GSMATCH_VERSION.
28769         5lintman.adb is no longer used: replaced by 7sintman.adb.
28770
28771 2003-12-03  Robert Dewar  <dewar@gnat.com>
28772
28773         * exp_ch5.adb:
28774         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
28775         name. Modified to consider small non-bit-packed arrays as troublesome
28776         and in need of component-by-component assigment expansion.
28777
28778 2003-12-03  Vincent Celier  <celier@gnat.com>
28779
28780         * lang-specs.h: Process nostdlib as nostdinc
28781
28782         * back_end.adb: Update Copyright notice
28783         (Scan_Compiler_Arguments): Process -nostdlib directly.
28784
28785 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
28786
28787         * Makefile.in:
28788         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
28789         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
28790         included in HIE_NONE_TARGET_PAIRS.
28791
28792 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
28793
28794         * sem_attr.adb:
28795         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
28796         is legal in an instance, because legality is cheched in the template.
28797
28798         * sem_prag.adb:
28799         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
28800         appplied to an unchecked conversion of a formal parameter.
28801
28802         * sem_warn.adb:
28803         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
28804         variables.
28805
28806 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
28807
28808         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
28809         routines. The second one is new functionality to deal with backtracing
28810         through signal handlers.
28811         (unwind): Split into the two separate subroutines above.
28812         Update the documentation, and deal properly with sizeof (REG) different
28813         from sizeof (void*).
28814
28815 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
28816
28817         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
28818         so that the debugger can reliably access the value of the parameter,
28819         and therefore is able to display the exception name when an exception
28820         breakpoint is reached.
28821
28822 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
28823
28824         * fmap.adb: Fix typo in warning message.
28825
28826         * g-socket.ads, g-socket.adb: Make Free a visible instance of
28827         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
28828
28829 2003-12-01  Vincent Celier  <celier@gnat.com>
28830
28831         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
28832         ther is no Afile.
28833         (Build_Library): Get the switches only if Default_Switches is declared
28834         in package Binder.
28835
28836 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
28837
28838         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
28839         actuals that are indexed components, reanalyze actual to ensure that
28840         packed array references are properly expanded.
28841
28842         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
28843         attempted assignment to a discriminant.
28844
28845 2003-12-01  Robert Dewar  <dewar@gnat.com>
28846
28847         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
28848         reformatting.
28849
28850         * switch-c.adb: Minor reformatting of comments
28851
28852 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
28853
28854         * Makefile.in: Clean ups.
28855
28856 2003-12-01  GNAT Script  <nobody@gnat.com>
28857
28858         * Make-lang.in: Makefile automatically updated
28859
28860 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
28861
28862         * 5wsystem.ads: Disable zero cost exception, not ready yet.
28863
28864 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
28865
28866         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
28867         to force serialization.
28868
28869 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
28870
28871         * g-socket.ads, g-socket.adb:
28872         Clarify documentation of function Stream. Introduce a Free procedure
28873         to release the returned Stream once it becomes unused.
28874
28875         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
28876
28877 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
28878
28879         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
28880         since NT 4 cannot handle timeout values that are too large,
28881         e.g. DWORD'Last - 1.
28882
28883 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
28884
28885         * exp_ch4.adb:
28886         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
28887         in procedure calls and whose expansion must be deferred.
28888
28889         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
28890         is in exp_ch4.
28891
28892         * sem_ch3.adb:
28893         (Build_Derived_Array_Type): Create operator for unconstrained type
28894         if ancestor is unconstrained.
28895
28896 2003-11-26  Vincent Celier  <celier@gnat.com>
28897
28898         * make.adb (Project_Object_Directory): New global variable
28899         (Change_To_Object_Directory): New procedure
28900         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
28901         of Change_Dir directly. Do not change working directory to object
28902         directory of main project after each compilation.
28903         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
28904         directly.
28905         Change to object directory of main project before binding step.
28906         (Initialize): Initialize Project_Object_Directory to No_Project
28907
28908         * mlib-prj.adb:
28909         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
28910         binding a Stand-Alone Library.
28911
28912         * output.adb: Update Copyright notice
28913         (Write_Char): Output buffer when full
28914
28915 2003-11-26  Robert Dewar  <dewar@gnat.com>
28916
28917         * sem_ch13.adb: (Check_Size): Reset size if size is too small
28918
28919         * sem_ch13.ads:
28920         (Check_Size): Fix documentation to include bit-packed array case
28921
28922         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
28923
28924         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
28925
28926         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
28927
28928 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
28929
28930         PR ada/13142
28931         * utils.c (init_gigi_decls): Change name of built-in setjmp to
28932         __builtin_setjmp, since this is apparently needed by recent
28933         non Ada changes.
28934
28935 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
28936
28937         * adadecode.c: Only include ctype.h if not IN_GCC.
28938         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
28939
28940 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
28941
28942         * Makefile.in:
28943         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
28944         signals and interrupts.
28945
28946         * 5zintman.ads: New File.
28947
28948         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
28949         add exception signals to the set of unmasked signals.
28950
28951         * 5ztaprop.adb:
28952         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
28953         between signals and interrupts.
28954         Add to Unblocked_Signal_Mask the set of signals that are in
28955         Keep_Unmasked.
28956
28957         * 7sinmaop.adb:
28958         Adding a check to see whether the Interrupt_ID we want to unmask is in
28959         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
28960         reason is that the index type of the Keep_Unmasked array is not always
28961         Interrupt_ID; it may be a subtype of Interrupt_ID.
28962
28963 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
28964
28965         * exp_util.adb:
28966         (Remove_Side_Effects): Condition constantness of object created for a
28967          an unchecked type conversion on the constantness of the expression
28968          to ensure the correct value for 'Constrained when passing components
28969          of view-converted class-wide objects.
28970
28971 2003-11-24  Robert Dewar  <dewar@gnat.com>
28972
28973         * par-load.adb (Load): Improve handling of misspelled and missing units
28974         Removes several cases of compilation abandoned messages
28975
28976         * lib.adb: (Remove_Unit): New procedure
28977
28978         * lib.ads: (Remove_Unit): New procedure
28979
28980         * lib-load.adb: Minor reformatting
28981
28982 2003-11-24  Vincent Celier  <celier@gnat.com>
28983
28984         * make.adb:
28985         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
28986         (Marking_Label): Label to mark processed source files. Incremented for
28987         each executable.
28988         (Gnatmake): Increase Marking_Labet for each executable
28989         (Is_Marked): Compare against marking label
28990         (Mark): Mark with marking label
28991
28992 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
28993
28994         * s-thread.ads:
28995         Move the declaration of the TSD for System.Threads to System.Soft_Links.
28996         Add some comments.
28997
28998         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
28999         (rts-cert): build a single relocatable object for the run-time lib.
29000         Fix perms.
29001
29002 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
29003
29004         * Make-lang.in:
29005         Use gnatls rather than gcc to obtain the location of GNAT RTL for
29006         crosstools build.
29007
29008 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
29009
29010         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
29011         can not use it as before (that is, as a variable) when dumping it into
29012         the tree file. Add a local variable to store the result of this
29013         function and to be used as the string to be written into the tree.
29014
29015         * scn.adb (Initialize_Scanner): Add comments explaining the recent
29016         changes.
29017
29018         * sinput.adb (Source_First, Source_Last): In case of
29019         Internal_Source_File, replace returning attributes of
29020         Internal_Source_Ptr (which is wrong) with returning attributes of
29021         Internal_Source.
29022
29023 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
29024
29025         * sem_ch3.adb:
29026         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
29027         used for implicit concatenation operators.
29028         Code cleanup.
29029
29030         * sem_elab.adb:
29031         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
29032         task bodies that are in the scope of a Suppress pragma.
29033         (Check_A Call): Use the flag to prevent spurious elaboration checks.
29034
29035         * sinfo.ads, sinfo.adb:
29036         New flag No_Elaboration_Check on function/procedure calls, to properly
29037         suppress checks on calls in task bodies that are within a local suppress
29038         pragma.
29039
29040         * exp_ch4.adb:
29041         (Expand_Concatenate_Other): Use the proper integer type for the
29042         expression for the upper bound, to avoid universal_integer computations
29043         when possible.
29044
29045 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
29046
29047         * .cvsignore: Delete.
29048
29049 2003-11-21  Andreas Schwab  <schwab@suse.de>
29050
29051         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
29052
29053 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
29054
29055         * 5wsystem.ads: Enable zero cost exception.
29056
29057 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
29058
29059         * 5ztiitho.adb: Remove an unreferenced variable.
29060
29061 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
29062
29063         * adaint.c: For FreeBSD, use mkstemp.
29064
29065 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
29066
29067         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
29068
29069 2003-11-21  Robert Dewar  <dewar@gnat.com>
29070
29071         * bld.adb: Remove useless USE of gnatvsn
29072
29073         * gnatchop.adb: Minor reformatting
29074         Clean up version handling to be more consistent
29075
29076         * gnatxref.adb: Minor reformatting
29077
29078         * gprcmd.adb: Minor reformatting
29079         Fix output of copyright to be more consistent with other tools
29080
29081 2003-11-21  Vincent Celier  <celier@gnat.com>
29082
29083         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
29084
29085 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
29086
29087         * atree.adb (Initialize): Add initializations for global variables
29088         used in New_Copy_Tree.
29089
29090         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
29091         Internal_Source_File as the actual).
29092         Put the set of statements creating Any_Character before the set of
29093         statements creating Any_Array to have Any_Character fully initialized
29094         when it is used in creating Any_Array.
29095
29096         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
29097         not call Scan in case if the actual is Internal_Source_File
29098         Add 2003 to copyright note.
29099
29100         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
29101         processing Internal_Source_File.
29102
29103         * types.ads: Add the constant Internal_Source_File representing the
29104         source buffer for artificial source-code-like strings created within
29105         the compiler (the definition of Source_File_Index is changed).
29106
29107 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
29108
29109         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
29110         56system.ads: New file, FreeBSD version.
29111
29112 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
29113
29114         * Make-lang.in (ada.extraclean): Delete.
29115
29116 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
29117
29118         * gnatmem.adb: Clean up verbose output.
29119
29120         * gprcmd.adb: Change copyright to FSF.
29121
29122 2003-11-19  Vincent Celier  <celier@gnat.com>
29123
29124         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
29125         and Version (ignored).
29126
29127         * symbols.ads: (Policy): New type
29128         (Initialize): New parameter Reference, Symbol_Policy and
29129         Library_Version.
29130         Remove parameter Force.
29131         Minor reformatting.
29132
29133         * snames.ads, snames.adbadb: New standard names
29134         Library_Reference_Symbol_File and Library_Symbol_Policy
29135
29136         * mlib-prj.adb:
29137         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
29138         project.
29139
29140         * mlib-tgt.adb:
29141         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
29142
29143         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
29144
29145         * prj.adb: (Project_Empty): New component Symbol_Data
29146
29147         * prj.ads: (Policy, Symbol_Record): New types
29148         (Project_Data): New component Symbol_Data
29149
29150         * prj-attr.adb:
29151         New attributes Library_Symbol_File, Library_Symbol_Policy and
29152         Library_Reference_Symbol_File.
29153
29154         * prj-nmsc.adb:
29155         (Ada_Check): When project is a Stand-Alone library project, process
29156         attribute Library_Symbol_File, Library_Symbol_Policy and
29157         Library_Reference_Symbol_File.
29158
29159         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
29160         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
29161         5sml-tgt.adb (Build_Dynamic_Library): New parameter
29162         Symbol_Data (ignored).
29163
29164         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
29165         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
29166         functions Option_File_Name and Version_String. Set new options of
29167         gnatsym related to symbol file, symbol policy and reference symbol
29168         file.
29169
29170         * 5vsymbol.adb:
29171         Extensive modifications to take into account the reference symbol file,
29172         the symbol policy, the library version and to put in the symbol file the
29173         minor and major IDs.
29174
29175         * bld.adb (Process_Declarative_Items): Put second argument of
29176         gprcmd to_absolute between single quotes, to avoid problems with
29177         Windows.
29178
29179         * bld-io.adb: Update Copyright notice.
29180         (Flush): Remove last character of a line, if it is a back slash, to
29181         avoid make problems.
29182
29183         * gnatsym.adb:
29184         Implement new scheme with reference symbol file and symbol policy.
29185
29186         * g-os_lib.ads: (Is_Directory): Clarify comment
29187
29188 2003-11-19  Robert Dewar  <dewar@gnat.com>
29189
29190         * atree.adb: Move New_Copy_Tree global variables to head of package
29191
29192         * errout.adb: Minor reformatting
29193
29194 2003-11-19  Javier Miranda  <miranda@gnat.com>
29195
29196         * sem_ch4.adb: (Diagnose_Call): Improve error message.
29197         Add reference to Ada0Y (AI-50217)
29198
29199         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
29200         sem_util.adb: Add reference to AI-50217
29201
29202         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
29203
29204         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
29205
29206         * sem_aggr.adb: Complete documentation of AI-287 changes
29207
29208         * par-ch4.adb: Document previous changes.
29209
29210         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
29211         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
29212         Ada0Y (AI-50217)
29213
29214         * exp_aggr.adb: Add references to AI-287 in previous changes
29215
29216 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
29217
29218         * exp_ch6.adb:
29219         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
29220         in the rewriting is the result of an inlined call.
29221
29222         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
29223         parameter is a type conversion, use original node to construct the
29224         post-call assignment, because expression may have been rewritten, e.g.
29225         if it is a packed array.
29226
29227         * sem_attr.adb:
29228         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
29229         body, just as it is in an instance.
29230         Categorization routines
29231
29232         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
29233         Instantiate_Object): Set proper sloc reference for message on missing
29234         actual.
29235
29236 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
29237
29238         * Makefile.in: Add FreeBSD libgnat pairs.
29239
29240         * usage.adb: Fix typo in usage message.
29241
29242 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
29243
29244         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
29245         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
29246         pragma Thread_Body.
29247         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
29248
29249         * s-thread.adb: This file is now a dummy implementation of
29250         System.Thread.
29251
29252 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
29253
29254         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
29255
29256 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
29257
29258         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
29259         instanciation references in the parent type description.
29260
29261 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29262
29263         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
29264
29265         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
29266         TYPE_PRECISION directly from esize.
29267
29268 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
29269
29270         * cstreams.c:
29271         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
29272
29273         * init.c: Initialization routines for FreeBSD
29274
29275         * link.c: Link info for FreeBSD
29276
29277         * sysdep.c: Add the case of FreeBSD
29278
29279 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
29280
29281         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
29282         already called in System.Threads.
29283
29284         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
29285         environment task, as it has been moved to System.Threads.Initialization.
29286
29287 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
29288
29289         * adaint.c (__gnatlib_install_locks): Only reference
29290         __gnat_install_locks on VMS, since other platforms can avoid using
29291         --enable-threads=gnat
29292
29293 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29294
29295         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
29296
29297         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
29298         TYPE_PACKED_ARRAY_TYPE_P.
29299         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
29300
29301         Part of PR ada/12806
29302         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
29303         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
29304
29305 2003-11-17  Vincent Celier  <celier@gnat.com>
29306
29307         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
29308         to False.
29309         Do not set exit status to Failure when Warning is True.
29310         (Gnatchop): Make errors "no compilation units found" and
29311         "no source files written" warnings only.
29312
29313         * make.adb (Gnatmake): When using a project file, set
29314         Look_In_Primary_Dir to False.
29315         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
29316         and Local_Configuration_Pragmas in the project where they are declared
29317         not an extending project which might have inherited them.
29318
29319         * osint.adb (Locate_File): If Name is already an absolute path, do not
29320         look for a directory.
29321
29322         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
29323         -gnats (Check_Syntax) is used, issue only a warning, not an error.
29324
29325         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
29326         in objects of type Variable_Value.
29327
29328         * prj.ads: (Variable_Value): New component Project
29329
29330         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
29331         is in a project extended by Project.
29332
29333         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
29334         Project of Variable_Values to this new parameter value.
29335         (Expression): Set component Project of Variable_Values.
29336         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
29337         Set the component Project in array elements.
29338
29339 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
29340
29341         * errout.adb: (Initialize): Add initialization for error nodes.
29342
29343         * sem_ch12.adb (Initialize): Add missing initializations for
29344         Exchanged_Views and Hidden_Entities.
29345
29346 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
29347
29348         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
29349         already instantiated tree for use in subsequent inlining.
29350         (Analyze_Associations, Instantiate_Formal_Subprogram,
29351         Instantiate_Object): improve error message for mismatch in
29352         instantiations.
29353
29354         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
29355         instantiations of subprograms declared in instances.
29356
29357 2003-11-17  Javier Miranda  <miranda@gnat.com>
29358
29359         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
29360         executed only under the Extensions_Allowed flag.
29361
29362 2003-11-17  Robert Dewar  <dewar@gnat.com>
29363
29364         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
29365         zeroes suppressed.
29366         (Address_Image): Fix bug of returning 0x instead of 0x0
29367         Minor reformatting (function specs).
29368
29369         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
29370         (missed case of 33-63)
29371
29372         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
29373
29374         * s-thread.adb: Add comments for pragma Restriction
29375
29376         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
29377         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
29378
29379 2003-11-17  Ed Falis  <falis@gnat.com>
29380
29381         * s-thread.adb: Added No_Tasking restriction for this implementation.
29382
29383 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
29384
29385         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
29386         instanciation references in the parent type description.
29387
29388 2003-11-17  GNAT Script  <nobody@gnat.com>
29389
29390         * Make-lang.in: Makefile automatically updated
29391
29392 2003-11-16  Jason Merrill  <jason@redhat.com>
29393
29394         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
29395         and TAGS files that include them for each front end.
29396
29397 2003-11-14  Andreas Jaeger  <aj@suse.de>
29398
29399         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
29400         is the canonical version.
29401         * misc.c (gnat_handle_option): Likewise.
29402
29403         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
29404
29405         * 5nsystem.ads: New file for x86_64-linux-gnu.
29406
29407 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
29408
29409         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
29410
29411         * comperr.adb: Fix logic in previous change.
29412
29413 2003-11-13  Vincent Celier  <celier@gnat.com>
29414
29415         * 5bml-tgt.adb (Build_Dynamic_Library): Use
29416         Osint.Include_Dir_Default_Prefix instead of
29417         Sdefault.Include_Dir_Default_Name.
29418
29419         * gnatlbr.adb: Update Copyright notice
29420         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
29421         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
29422         instead of Sdefault.Object_Dir_Default_Name
29423
29424         * gnatlink.adb:
29425         (Process_Binder_File): Never suppress the option following -Xlinker
29426
29427         * mdll-utl.adb:
29428         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
29429         Sdefault.Object_Dir_Default_Name.
29430
29431         * osint.ads, osint.adb:
29432         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
29433         Minor reformatting.
29434
29435         * vms_conv.ads: Minor reformating
29436         Remove GNAT STANDARD and GNAT PSTA
29437
29438         * vms_conv.adb:
29439         Allow GNAT MAKE to have several files on the command line.
29440         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
29441         Sdefault.Object_Dir_Default_Name.
29442         Minor Reformating
29443         Remove data for GNAT STANDARD
29444
29445         * vms_data.ads:
29446         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
29447         Remove data for GNAT STANDARD
29448         Remove options and documentation for -gnatwb/-gnatwB: these warning
29449         options no longer exist.
29450
29451 2003-11-13  Ed Falis  <falis@gnat.com>
29452
29453         * 5zthrini.adb: (Init_RTS): Made visible
29454
29455         * 5zthrini.adb:
29456         (Register): Removed unnecessary call to taskVarGet that checked whether
29457          an ATSD was already set as a task var for the argument thread.
29458
29459         * s-thread.adb:
29460         Updated comment to reflect that this is a VxWorks version
29461         Added context clause for System.Threads.Initialization
29462         Added call to System.Threads.Initialization.Init_RTS
29463
29464 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
29465
29466         * 5zthrini.adb:
29467         (Init_RTS): New procedure, for the initialization of the run-time lib.
29468
29469         * s-thread.adb:
29470         Remove dependancy on System.Init, so that this file can be used in the
29471         AE653 sequential run-time lib.
29472
29473 2003-11-13  Robert Dewar  <dewar@gnat.com>
29474
29475         * bindgen.adb: Minor reformatting
29476
29477 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
29478
29479         * checks.adb:
29480         (Apply_Discriminant_Check): Do no apply check if target type is derived
29481         from source type with no applicable constraint.
29482
29483         * lib-writ.adb:
29484         (Ensure_System_Dependency): Do not apply the style checks that may have
29485         been specified for the main unit.
29486
29487         * sem_ch8.adb:
29488         (Find_Selected_Component): Further improvement in error message, with
29489         RM reference.
29490
29491         * sem_res.adb:
29492         (Resolve): Handle properly the case of an illegal overloaded protected
29493         procedure.
29494
29495 2003-11-13  Javier Miranda  <miranda@gnat.com>
29496
29497         * exp_aggr.adb:
29498         (Has_Default_Init_Comps): New function to check the presence of
29499         default initialization in an aggregate.
29500         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
29501         extension aggregate of a limited record. In addition, a new formal
29502         was added to do not initialize the record controller (if any) during
29503         this recursive expansion of ancestors.
29504         (Init_Controller): Add support for limited record components.
29505         (Expand_Record_Aggregate): In case of default initialized components
29506         convert the aggregate into a set of assignments.
29507
29508         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
29509         describing the new syntax.
29510         Nothing else needed to be done because this subprogram delegates part of
29511         its work to P_Precord_Or_Array_Component_Association.
29512         (P_Record_Or_Array_Component_Association): Give support to the new
29513         syntax for default initialization of components.
29514
29515         * sem_aggr.adb:
29516         (Resolve_Aggregate): Relax the strictness of the frontend in case of
29517         limited aggregates.
29518         (Resolve_Record_Aggregate): Give support to default initialized
29519         components.
29520         (Get_Value): In case of default initialized components, duplicate
29521         the corresponding default expression (from the record type
29522         declaration). In case of default initialization in the *others*
29523         choice, do not check that all components have the same type.
29524         (Resolve_Extension_Aggregate): Give support to limited extension
29525         aggregates.
29526
29527         * sem_ch3.adb:
29528         (Check_Initialization): Relax the strictness of the front-end in case
29529         of aggregate and extension aggregates. This test is now done in
29530         Get_Value in a per-component manner.
29531
29532         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
29533         expression corresponds to a limited aggregate. This test is now done
29534         in Get_Value.
29535
29536         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
29537         Box_Present flag.
29538
29539         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
29540         present in an N_Component_Association node
29541
29542 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
29543
29544         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
29545         type-conformant entry only if they are homographs.
29546
29547 2003-11-13  GNAT Script  <nobody@gnat.com>
29548
29549         * Make-lang.in: Makefile automatically updated
29550
29551 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29552
29553         * adadecode.c: Use <> form of include for ctype.h.
29554         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
29555
29556 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29557
29558         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
29559         Works around PR middle-end/6552.
29560
29561 2003-11-10  Ed Falis  <falis@gnat.com>
29562
29563         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
29564
29565         * 5zinit.adb: (Install_Handler): Moved back to spec
29566         (Install_Signal_Handlers): Deleted
29567
29568         * 5zthrini.adb: Added context clause for System.Storage_Elements
29569         (Register): Only handles creation of taskVar; initialization moved to
29570         Thread_Body_Enter.
29571         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
29572         Added declaration of environment task secondary stack and
29573         initialization.
29574
29575         * s-thread.adb: Implement bodies for thread body processing
29576
29577         * s-thread.ads:
29578         Added comment identifying supported targets for pragma Thread_Body.
29579
29580 2003-11-10  Pascal Obry  <obry@gnat.com>
29581
29582         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
29583         GNAT_MAX_PATH_LEN.
29584
29585         * s-fileio.adb:
29586         (Open): Properly check for string length before copying into the buffer.
29587         Raises Name_Error if buffer is too small. Note that this was a potential
29588         buffer overflow.
29589
29590 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
29591
29592         * bindgen.adb, comperr.adb: Code clean ups.
29593         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
29594
29595 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
29596
29597         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
29598
29599 2003-11-10  Vincent Celier  <celier@gnat.com>
29600
29601         * gprcmd.adb:
29602         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
29603         installation.
29604
29605         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
29606
29607         * prj.adb: (Project_Empty): Add new boolean component Virtual
29608
29609         * prj.ads: (Virtual_Prefix): New constant string
29610         (Project_Data): New boolean component Virtual
29611
29612         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
29613         a library project is extended by a virtual extending project.
29614
29615         * prj-part.adb:
29616         Modifications throughout to implement extending-all project, including:
29617         (Virtual_Hash, Processed_Hash): New hash tables
29618         (Create_Virtual_Extending_Project): New procedure
29619         (Look_For_Virtual_Projects_For): New procedure
29620
29621         * prj-proc.adb:
29622         (Process): After checking the projects, if main project is an
29623         extending-all project, set the object directory of all virtual extending
29624         project to the object directory of the main project.
29625         Adjust error message when a virtual extending project has the same
29626         object directory as an project being extended.
29627         (Recursive_Process): If name starts with the virtual prefix, set Virtual
29628         to True in the project data.
29629
29630         * prj-tree.adb:
29631         (Default_Project_Node): Add new boolean component Extending_All
29632         (Is_Extending_All): New function
29633         (Set_Is_Extending_All): New procedure
29634
29635         * prj-tree.ads: (Is_Extending_All): New function
29636         (Set_Is_Extending_All): New procedure
29637         (Project_Node_Record): New boolean component Extending_All
29638
29639         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
29640
29641         * vms_data.ads:
29642         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
29643
29644         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
29645         "gprcmd prefix" to define it.
29646
29647 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
29648
29649         * einfo.ads: Fix a typo and remove an extraneous word in comments.
29650
29651         * lib-load.adb:
29652         (Create_Dummy_Package_Unit): Set the scope of the entity for the
29653         created dummy package to Standard_Standard, not to itself, to
29654         defend other parts of the front-end against encoutering a cycle in
29655         the scope chain.
29656
29657         * sem_ch10.adb:
29658         (Analyze_With_Clause): When setting the entities for the successive
29659         N_Expanded_Names that constitute the name of a child unit, do not
29660         attempt to go further than Standard_Standard in the chain of scopes.
29661         This case arises from the placeholder units created by
29662         Create_Dummy_Package_Unit in the case of a with_clause for a
29663         nonexistent child unit.
29664
29665 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
29666
29667         * exp_ch6.adb:
29668         (Expand_Thread_Body): Place subprogram on scope stack, so that new
29669         declarations are given the proper scope.
29670
29671         * sem_ch13.adb:
29672         (Check_Expr_Constants): Reject an expression that contains a constant
29673         created during expansion, and that appears after the object to which
29674         the address clause applies.
29675
29676         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
29677         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
29678         that uses 'Range of a function call with controlled components, so
29679         that the function result can be finalized before starting the loop.
29680
29681         * sem_ch8.adb:
29682         (Find_Selected_Component): Improve error message when prefix is
29683         an implicit dereference of an incomplete type.
29684
29685 2003-11-10  Robert Dewar  <dewar@gnat.com>
29686
29687         * opt.ads: New Print_Standard flag for -gnatS switch
29688
29689         * sem_ch13.adb: Remove some additional checks for unaligned arrays
29690
29691         * cstand.adb (Create_Standard): Print out package standard if -gnatS
29692         switch set
29693
29694         * debug.adb: Update doc for -gnatds to discuss relationship with new
29695         -gnatS flag
29696
29697         * sinfo.adb: Add new field Entity_Or_Associated_Node
29698
29699         * sinfo.ads: Add new field Entity_Or_Associated_Node
29700         Update documentation for Associated_Node and Entity fields to clarify
29701         relationship and usage.
29702
29703         * sprint.adb:
29704         (Write_Id): Properly process Associated_Node field in generic template
29705
29706         * switch-c.adb:
29707         Recognize new -gnatS switch for printing package Standard
29708         This replaces gnatpsta
29709
29710         * usage.adb:
29711         Add line for  new -gnatS switch for printing package Standard
29712         This replaces gnatpsta
29713
29714 2003-11-10  Andreas Jaeger  <aj@suse.de>
29715
29716         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
29717         integer.
29718
29719 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
29720
29721         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
29722         by gnat1.
29723
29724 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
29725
29726         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
29727         no longer needed.
29728
29729         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
29730
29731         * sysdep.c: Add handling of cygwin.
29732
29733 2003-11-10  GNAT Script  <nobody@gnat.com>
29734
29735         * Make-lang.in: Makefile automatically updated
29736
29737 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
29738
29739         PR 12950
29740         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
29741         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
29742         Replace GNAT_ROOT by GCC_ROOT.
29743
29744         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
29745
29746 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
29747
29748         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
29749         and update for changed meaning of GET_MODE_BITSIZE.
29750
29751 2003-11-04  Doug Rupp  <rupp@gnat.com>
29752
29753         * sysdep.c: Problem discovered during IA64 VMS port.
29754         [VMS] #include <unixio.h> to get proper prototypes.
29755
29756         * adaint.c:
29757         Issues discovered/problems fixed during IA64 VMS port.
29758         [VMS] #define _POSIX_EXIT for proper semantics.
29759         [VMS] #include <unixio.h> for proper prototypes.
29760         [VMS] (fork): #define IA64 version.
29761         (__gnat_os_exit): Remove unnecessary VMS specific code.
29762
29763 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29764
29765         Part of PR ada/12806
29766         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
29767         tree, not integer.
29768
29769         * decl.c:
29770         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
29771         not integer.
29772
29773         * targtyps.c, decl.c, misc.c,
29774         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
29775         routines to work around change in FP sizing semantics in GCC.
29776
29777         * utils.c:
29778         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
29779
29780         * gigi.h: (enumerate_modes): New function.
29781
29782         * Make-lang.in: (ada/misc.o): Add real.h.
29783
29784         * misc.c: (enumerate_modes): New function.
29785
29786 2003-11-04  Robert Dewar  <dewar@gnat.com>
29787
29788         * 3vtrasym.adb: Minor reformatting
29789         Use terminology encoded/decoded name, rather than C++ specific notion
29790         of mangling (this is the terminology used throughout GNAT).
29791
29792         * einfo.h: Regenerated
29793
29794         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
29795
29796         * exp_ch6.adb:
29797         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
29798
29799         * par-prag.adb: Add dummy entry for Thread_Body pragma
29800
29801         * rtsfind.ads:
29802         Add entries for System.Threads entities for thread body processing
29803
29804         * sem_attr.adb:
29805         (Analyze_Pragma, Access attributes): Check these are not applied to a
29806         thread body, since this is not permitted
29807
29808         * sem_prag.adb: Add processing for Thread_Body pragma.
29809         Minor comment fix.
29810
29811         * sem_res.adb:
29812         (Resolve_Call): Check for incorrect attempt to call a thread body
29813          procedure with a direct call.
29814
29815         * snames.ads, snames.adb: Add entry for Thread_Body pragma
29816         Add names associated with thread body expansion
29817
29818         * snames.h: Add entry for Thread_Body pragma
29819
29820         * s-thread.adb: Add entries for thread body processing
29821         These are dummy bodies so far
29822
29823         * s-thread.ads: Add documentation on thread body handling.
29824         Add entries for thread body processing.
29825
29826 2003-11-04  Javier Miranda  <miranda@gnat.com>
29827
29828         * sem_ch10.adb:
29829         (Build_Limited_Views): Return after posting an error in case of limited
29830         with_clause on subprograms, generics, instances or generic renamings
29831         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
29832         on subprograms, generics, instances or generic renamings
29833
29834 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
29835
29836         * raise.c (setup_to_install): Correct mistake in last revision; two
29837         arguments out of order.
29838
29839         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
29840         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
29841         notice, missed in previous change.
29842         Remove trailing blanks and other style errors introduced in previous
29843         change.
29844
29845 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
29846
29847         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
29848         rid of the wrapper for a LJM type, ensuring we don't do that if the
29849         field is addressable.  This avoids potential low level type view
29850         mismatches later on, for instance in a by-reference argument passing
29851         process.
29852
29853 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29854
29855         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
29856         aligned at byte boundary.
29857
29858 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
29859
29860         * decl.c (components_to_record): Do not delete the empty variants from
29861         the end of the union type.
29862
29863 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
29864
29865         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
29866         operation for a derived type, an explicit declaration may use a local
29867         subtype of Boolean.
29868
29869 2003-11-04  Vincent Celier  <celier@gnat.com>
29870
29871         * make.adb (Gnatmake): Allow main sources on the command line with a
29872         library project when it is only for compilation (no binding or
29873         linking).
29874
29875 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29876
29877         * Makefile.in: Remove many duplicate variables.
29878
29879 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
29880
29881         * Make-lang.in (dvi): Move targets to $(docobjdir).
29882         (gnat_ug_vms.dvi): Simplify rule and adjust target.
29883         (gnat_ug_wnt.dvi): Likewise.
29884         (gnat_ug_unx.dvi): Likewise.
29885         (gnat_ug_vxw.dvi): Likewise.
29886         (gnat_rm.dvi): Likewise.
29887         (gnat-style.dvi): Likewise.
29888
29889 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
29890
29891         * gigi.h: Missed commit from update for C90.
29892
29893 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
29894
29895         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
29896
29897 2003-10-31  Andreas Schwab  <schwab@suse.de>
29898
29899         * raise.c (get_action_description_for): Fix typo in last change.
29900
29901 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
29902
29903         PR ada/12761
29904         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
29905         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
29906
29907 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
29908
29909         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
29910         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
29911         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
29912         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
29913         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
29914
29915 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
29916
29917         * 3vtrasym.adb:
29918         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
29919         numbers when symbol name is too long.
29920
29921 2003-10-30  Ed Falis  <falis@gnat.com>
29922
29923         * g-signal.ads, g-signal.adb: New files
29924
29925         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
29926
29927         * Makefile.rtl: Introduce GNAT.Signals
29928
29929 2003-10-30  Robert Dewar  <dewar@gnat.com>
29930
29931         * freeze.adb: Minor reformatting
29932
29933         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
29934
29935         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
29936         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
29937         New handling of Id_Check parameter to improve recognition of keywords
29938         used as identifiers.
29939         Update copyright notice to include 2003
29940
29941 2003-10-29  Robert Dewar  <dewar@gnat.com>
29942
29943         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
29944         sem_ch10.adb: Minor reformatting
29945
29946         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
29947         (Expand_Assign_Record): Test right hand side for bit unaligned as well
29948
29949 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
29950
29951         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
29952         Support for TBK$SYMBOLIZE-based symbolic traceback.
29953
29954 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
29955
29956         * exp_disp.adb:
29957         Revert previous change, that did not work well when pragma No_Run_Time
29958         was used in conjunction with a run-time other than ZFP.
29959
29960 2003-10-29  Vincent Celier  <celier@gnat.com>
29961
29962         * make.adb:
29963         (Gnatmake): When there are no Ada mains in attribute Main, disable the
29964          bind and link steps only is switch -z is not used.
29965
29966 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
29967
29968         * Makefile.generic: Remove duplicated setting of CC.
29969
29970         * Makefile.prolog: Set CC to gcc by default, to override make's
29971         default (cc).
29972
29973         * einfo.h: Regenerated.
29974
29975 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
29976
29977         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
29978         current body, after compiling subunit.
29979
29980         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
29981         when in deleted code, because gigi needs properly ordered freeze
29982         actions to annotate types.
29983
29984         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
29985         prevent the premature freezing of record type that contains
29986         subcomponents with a private type that does not yet have a completion.
29987
29988 2003-10-29  Javier Miranda  <miranda@gnat.com>
29989
29990         * sem_ch12.adb:
29991         (Analyze_Package_Instantiation): Check that instances can not be used in
29992         limited with_clauses.
29993
29994         * sem_ch8.adb:
29995         (Analyze_Package_Renaming): Check that limited withed packages cannot
29996         be renamed. Improve text on error messages related to limited
29997         with_clauses.
29998
29999         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
30000
30001         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
30002         Update copyright notice.
30003
30004         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
30005         (Install_Limited_Context_Clauses): New subprogram that isolates all the
30006         checks required for limited context_clauses and installs the limited
30007         view.
30008         (Install_Limited_Withed_Unit): Complete its documentation.
30009         (Analyze_Context): Check that limited with_clauses are only allowed in
30010         package specs.
30011         (Install_Context): Call Install_Limited_Context_Clauses after the
30012         parents have been installed.
30013         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
30014         package as 'From_With_Type'; this mark indicates that the limited view
30015         is installed. Used to check bad usages of limited with_clauses.
30016         (Build_Limited_Views): Do not add shadow entities to the scope's list
30017         of entities. Do not add real entities to the Non_Limited_Views chain.
30018         Improve error notification.
30019         (Remove_Context_Clauses): Remove context clauses in two phases:
30020         limited views first and regular views later (to maintain the
30021         stack model).
30022         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
30023         its visible entities.
30024
30025 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
30026
30027         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
30028         with any type that Is_Fixed_Point_Type.
30029
30030         * sinfo.ads: Fix documentation for Associated_Node attribute.
30031
30032 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
30033
30034         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
30035         both '-gnatc' and '-gnatt' are specified.
30036
30037         * atree.adb (Initialize): Add initialization for Node_Count (set to
30038         zero).
30039
30040 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30041
30042         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
30043         do not consider as Pure.
30044
30045         Part of implementation of function-at-a-time:
30046
30047         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
30048         (tree_transform): Add new argument to build_component_ref.
30049         (tree_transform, case N_Assignment_Statement): Make and return an
30050         EXPR_STMT.
30051         (tree_transform): If result IS_STMT, set flags and return it.
30052         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
30053
30054         * utils2.c (build_simple_component_ref, build_component_ref): Add new
30055         arg, NO_FOLD_P.
30056         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
30057         (build_allocator): Likewise.
30058
30059         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
30060         Add new arg to build_component_ref.
30061         (maybe_unconstrained_array, unchecked_convert): Likewise.
30062
30063         * ada-tree.def (EXPR_STMT): New code.
30064
30065         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
30066
30067         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
30068         build_component_ref calls.
30069
30070         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
30071
30072         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
30073         (build_component_ref): Add new argument, NO_FOLD_P.
30074
30075 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
30076
30077         * Makefile.generic: Add missing substitution on object_deps handling.
30078
30079         PR ada/5909
30080         * Make-lang.in (check-ada): Enable ACATS test suite.
30081
30082 2003-10-27  Robert Dewar  <dewar@gnat.com>
30083
30084         * exp_ch3.adb:
30085         (Freeze_Array_Type): We do not need an initialization routine for types
30086         derived from String or Wide_String. They should be treated the same
30087         as String and Wide_String themselves. This caused problems with the
30088         use of Initialize_Scalars.
30089
30090         * exp_ch5.adb:
30091         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
30092         composites. This allows use of component clauses that are not byte
30093         aligned.
30094
30095         * sem_prag.adb:
30096         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
30097         is an attempt to pack an array of atomic objects.
30098
30099         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
30100
30101 2003-10-27  Pascal Obry  <obry@gnat.com>
30102
30103         * g-dirope.adb:
30104         (Basename): Check for drive letters in a pathname only on DOS based OS.
30105
30106 2003-10-27  Vincent Celier  <celier@gnat.com>
30107
30108         * make.adb:
30109         (Gnatmake): When unable to change dir to the object dir, display the
30110         content of the parent dir of the obj dir, to try to understand why this
30111         happens.
30112
30113 2003-10-27  GNAT Script  <nobody@gnat.com>
30114
30115         * Make-lang.in: Makefile automatically updated
30116
30117 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
30118
30119         * sem_ch12.adb:
30120         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
30121         should not be done in Save/Restore_Scope_Stack, because it is performed
30122         locally.
30123
30124         * sem_ch8.adb:
30125         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
30126         whether use clauses should be removed/restored.
30127
30128         * sem_ch8.ads:
30129         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
30130         whether use clauses should be removed/restored.
30131
30132 2003-10-26  Andreas Jaeger  <aj@suse.de>
30133
30134         * Makefile.in: Remove duplicated lines.
30135
30136 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
30137
30138         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
30139         minimize the differences with ACT tree.
30140
30141         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
30142         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
30143         Gnatvsn.Gnat_Static_Version_String to reduce differences between
30144         ACT and FSF trees.
30145
30146 2003-10-24  Pascal Obry  <obry@gnat.com>
30147
30148         PR ada/12014
30149         * adadecode.c (ostrcpy): New function.
30150         (__gnat_decode): Use ostrcpy of strcpy.
30151         (has_prefix): Set first parameter a const.
30152         (has_suffix): Set first parameter a const.
30153         Update copyright notice. Fix source name in header.
30154         Removes a trailing space.
30155
30156 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
30157
30158         * exp_disp.adb:
30159         Remove the test against being in No_Run_Time_Mode before generating a
30160         call to Register_Tag. It is redundant with the test against the
30161         availability of the function Register_Tag.
30162
30163 2003-10-24  Vincent Celier  <celier@gnat.com>
30164
30165         * g-catiio.adb: (Month_Name): Correct spelling of February
30166
30167         * make.adb: (Mains): New package
30168         (Initialize): Call Mains.Delete
30169         (Gnatmake): Check that each main on the command line is a source of a
30170         project file and, if there are several mains, each of them is a source
30171         of the same project file.
30172         (Gnatmake): When a foreign language is specified in attribute Languages,
30173         no main is specified on the command line and attribute Mains is not
30174         empty, only build the Ada main. If there is no Ada main, just compile
30175         the Ada sources and their closure.
30176         (Gnatmake): If a main is specified on the command line with directory
30177         information, check that the source exists and, if it does, that the path
30178         is the actual path of a source of a project.
30179
30180         * prj-env.adb:
30181         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
30182         Full_Path is True, return the full path instead of the simple file name.
30183         (Project_Of): New function
30184
30185         * prj-env.ads:
30186         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
30187         defaulted to False.
30188         (Project_Of): New function
30189
30190 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
30191
30192         * Makefile.generic:
30193         Ensure objects of main project are always checked and rebuilt if needed.
30194         Set CC to gcc by default.
30195         Prepare new handling of link by creating a global archive (not activated
30196         yet).
30197
30198         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
30199         stringt.h: Update copyright notice. Remove trailing blanks.
30200         Fix source name in header.
30201
30202 2003-10-24  Robert Dewar  <dewar@gnat.com>
30203
30204         * sem_ch12.adb: Minor reformatting
30205
30206         * sem_ch3.adb:
30207         Minor reformatting (including new function return style throughout)
30208
30209         * sem_ch3.ads:
30210         Minor reformatting (including new function return style throughout)
30211
30212 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
30213
30214         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
30215         stringt.h: Update copyright notice. Remove trailing blanks.
30216         Fix source name in header.
30217
30218 2003-10-24  GNAT Script  <nobody@gnat.com>
30219
30220         * Make-lang.in: Makefile automatically updated
30221
30222 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
30223
30224         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
30225         stringt.h: Convert to ISO C90 declarations and definitions.
30226
30227 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
30228
30229         PR ada/11978
30230         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
30231         External_Tag attribute definition clauses.
30232
30233 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
30234
30235         PR ada/7613
30236         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
30237         child unit, generate a fully qualified name to avoid spurious errors
30238         when the context contains renamings of different child units with
30239         the same simple name.
30240
30241         * exp_dbug.ads: Add documentation on name qualification for renamings
30242         of child units.
30243
30244 2003-10-23  Robert Dewar  <dewar@gnat.com>
30245
30246         * g-regpat.ads, g-regpat.adb: Minor reformatting
30247
30248 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
30249
30250         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
30251
30252 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30253
30254         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
30255         Machine call.
30256
30257         * urealp.h: (Machine): Update to proper definition.
30258
30259 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
30260
30261         * init.c, adaint.c: Minor reformatting.
30262
30263 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
30264
30265         * adaint.c (w32_epoch_offset): Define static const at file level.
30266         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
30267         rather than t_create, t_access in call to GetFileTime. Use union
30268         to convert between FILETIME and  unsigned long long.
30269         (__gnat_file_time_name): Test for invalid file handle.
30270         (__gnat_set_filetime_name): Support win32 targets using
30271         w32api SetFileTime.
30272
30273 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
30274
30275         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
30276
30277         * ctrl_c.c (__gnat_int_handler): Remove declaration.
30278
30279         * decl.c (creat_concat_name):  Const-ify prefix.
30280
30281         * adaint.c: Include ctype.h if __MINGW32__.
30282         (__gnat_readlink): Mark arguments as possibly unused.
30283         (__gnat_symlink): Likewise.
30284         (__gnat_is_symbolic_link): Likewise.
30285         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
30286         declaration
30287         (__gnat_file_time_name): Don't declare struct stat statbuf when
30288         not needed.
30289         (__gnat_is_absolute_path): Add parenthesis around condition of
30290         'if' statement to avoid warning.
30291         (__gnat_plist_init): Specify void as parameter.
30292         (plist_enter): Likewise.
30293         (plist_leave): Likewise.
30294         (remove_handle): Make static. Initialize prev.
30295
30296 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
30297
30298         PR ada/10110
30299         * Makefile.in: Disable build of gnatpsta.
30300         * cstreams.c (__gnat_full_name): Minor improvements and clean up
30301         of previous change.
30302
30303 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30304
30305         * tracebak.c (MAX): Avoid redefinition warning.
30306
30307         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
30308         Change msg to const char *.
30309         (__gnat_install_handler): Remove ss, unused.
30310         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
30311         to const char *.
30312         * cstreams.c (__gnat_full_name): Declare p only when used.
30313         (__gnat_full_name) [sgi] Return buffer.
30314
30315 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
30316
30317         * mingw32.h: New file.
30318         * gnat_wrapper.adb: New file.
30319
30320 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
30321
30322         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
30323         string match a pre compiled regular expression (the corresponding
30324         version of the function working on a raw regular expression)
30325         Fix typos in various comments
30326         Update copyright notice in spec
30327
30328 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
30329
30330         * exp_ch3.adb:
30331         (Component_Needs_Simple_Initialization): Return False when the type is a
30332         packed bit array. Revise spec comments to document this case.
30333
30334         * exp_prag.adb:
30335         (Expand_Pragma_Import): Set any expression on the imported object to
30336         empty to avoid initializing imported objects (in particular this
30337         covers the case of zero-initialization of bit arrays).
30338         Update copyright notice.
30339
30340 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
30341
30342         * sem_ch12.adb:
30343         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
30344         a subunit is missing.
30345         (Instantiate_Subprogram_Body): If body of function is missing, set type
30346         of return expression explicitly in dummy body, to prevent cascaded
30347         errors when a subunit is missing.
30348         Fixes PR 5677.
30349
30350         * sem_ch3.adb:
30351         (Access_Subprogram_Declaration): Verify that return type is valid.
30352         Fixes PR 8693.
30353
30354         * sem_elab.adb:
30355         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
30356         generic.
30357         Fixes PR 12318.
30358
30359         * sem_util.adb:
30360         (Corresponding_Discriminant): If the scope of the discriminant is a
30361         private type without discriminant, use its full view.
30362         Fixes PR 8247.
30363
30364 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
30365
30366         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
30367         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
30368         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
30369         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
30370         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
30371         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
30372         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
30373         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
30374         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
30375         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
30376         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
30377         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
30378         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
30379         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
30380         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
30381         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
30382         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
30383         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
30384         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
30385         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
30386         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
30387         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
30388         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
30389         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
30390         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
30391         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
30392         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
30393         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
30394         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
30395         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
30396         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
30397         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
30398         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
30399         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
30400         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
30401         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
30402         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
30403         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
30404         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
30405         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
30406         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
30407         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
30408         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
30409         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
30410         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
30411         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
30412         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
30413         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
30414         vms_conv.ads, vms_conv.adb, vms_data.ads,
30415         vxaddr2line.adb: Files added. Merge with ACT tree.
30416
30417         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
30418         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
30419         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
30420         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
30421         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
30422         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
30423         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
30424         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
30425         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
30426         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
30427
30428         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
30429         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
30430         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
30431         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
30432         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
30433         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
30434         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
30435         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
30436         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
30437         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
30438         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
30439         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
30440         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
30441         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
30442         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
30443         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
30444         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
30445         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
30446         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
30447         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
30448         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
30449         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
30450         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
30451         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
30452         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
30453         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
30454         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
30455         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
30456         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
30457         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
30458         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
30459         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
30460         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
30461         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
30462         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
30463         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
30464         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
30465         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
30466         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
30467         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
30468         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
30469         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
30470         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
30471         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
30472         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
30473         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
30474         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
30475         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
30476         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
30477         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
30478         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
30479         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
30480         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
30481         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
30482         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
30483         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
30484         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
30485         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
30486         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
30487         checks.adb, checks.ads, cio.c, comperr.adb,
30488         comperr.ads, csets.adb, cstand.adb, cstreams.c,
30489         debug_a.adb, debug_a.ads, debug.adb, decl.c,
30490         einfo.adb, einfo.ads, errout.adb, errout.ads,
30491         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
30492         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
30493         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
30494         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
30495         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
30496         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
30497         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
30498         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
30499         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
30500         fe.h, fmap.adb, fmap.ads, fname.adb,
30501         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
30502         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
30503         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
30504         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
30505         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
30506         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
30507         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
30508         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
30509         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
30510         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
30511         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
30512         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
30513         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
30514         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
30515         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
30516         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
30517         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
30518         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
30519         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
30520         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
30521         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
30522         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
30523         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
30524         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
30525         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
30526         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
30527         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
30528         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
30529         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
30530         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
30531         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
30532         layout.adb, lib.adb, lib.ads, lib-list.adb,
30533         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
30534         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
30535         link.c, live.adb, make.adb, make.ads,
30536         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
30537         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
30538         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
30539         misc.c, mkdir.c, mlib.adb, mlib.ads,
30540         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
30541         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
30542         namet.adb, namet.ads, namet.h, nlists.ads,
30543         nlists.h, nmake.adt, opt.adb, opt.ads,
30544         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
30545         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
30546         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
30547         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
30548         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
30549         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
30550         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
30551         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
30552         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
30553         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
30554         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
30555         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
30556         prj-util.adb, prj-util.ads, raise.c, raise.h,
30557         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
30558         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
30559         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
30560         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
30561         scans.ads, scn.adb, scn.ads, s-crc32.adb,
30562         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
30563         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
30564         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
30565         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
30566         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
30567         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
30568         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
30569         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
30570         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
30571         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
30572         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
30573         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
30574         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
30575         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
30576         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
30577         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
30578         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
30579         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
30580         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
30581         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
30582         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
30583         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
30584         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
30585         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
30586         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
30587         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
30588         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
30589         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
30590         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
30591         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
30592         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
30593         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
30594         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
30595         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
30596         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
30597         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
30598         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
30599         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
30600         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
30601         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
30602         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
30603         stringt.adb, stringt.ads, stringt.h, style.ads,
30604         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
30605         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
30606         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
30607         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
30608         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
30609         table.adb, table.ads, targparm.adb, targparm.ads,
30610         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
30611         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
30612         ttypes.ads, types.ads, types.h, uintp.adb,
30613         uintp.ads, uintp.h, uname.adb, urealp.adb,
30614         urealp.ads, urealp.h, usage.adb, utils2.c,
30615         utils.c, validsw.adb, validsw.ads, widechar.adb,
30616         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
30617         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
30618         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
30619         gnatvsn.ads: Merge with ACT tree.
30620
30621         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
30622
30623 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
30624
30625         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
30626         (gnat_ug_vmx.info): Likewise.
30627         (gnat_ug_vxw.info): Likewise.
30628         (gnat_ug_wnt.info): Likewise.
30629         (gnat_rm.info): Likewise.
30630         (gnat-style.info): Likewise.
30631
30632         * Make-lang.in (ada.install-info): Remove target.
30633         (info): New target.
30634         (install-info): Likewise.
30635         (gnat_ug_unx.info): Simplify rule.
30636         (gnat_ug_vmx.info): Likewise.
30637         (gnat_ug_vxw.info): Likewise.
30638         (gnat_ug_wnt.info): Likewise.
30639         (gnat_rm.info): Likewise.
30640         (gnat-style.info): Likewise.
30641
30642 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
30643
30644         * Make-lang.in: Replace uses of $(target_alias) with
30645         $(target_noncanonical).
30646         * ada/Makefile.in: Remove unused mention of $(target_alias).
30647
30648 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
30649
30650         * Make-lang.in (ada.info): Replace with ...
30651         (info): ... this.
30652         (ada.dvi): Replace with ...
30653         (dvi): ... this.
30654
30655 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
30656
30657         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
30658         initialize dconstp5 and dconstmp5.
30659
30660 2003-09-28  Richard Henderson  <rth@redhat.com>
30661
30662         * trans.c (tree_transform): Update call to expand_asm_operands.
30663
30664 2003-09-21  Richard Henderson  <rth@redhat.com>
30665
30666         * trans.c, utils.c: Revert.
30667
30668 2003-09-21  Richard Henderson  <rth@redhat.com>
30669
30670         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
30671         change to const.
30672
30673 2003-09-04  Michael Matz  <matz@suse.de>
30674
30675         * misc.c: Include "target.h".
30676         * Make-lang.in (misc.o): Add dependency on target.h.
30677
30678 2003-09-03  DJ Delorie  <dj@redhat.com>
30679
30680         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
30681         hook.
30682
30683 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
30684
30685         * Makefile.in: Update substitutions to match changes to
30686         configure.  Use include directives instead of @-insertions
30687         to read in host and target fragments.  Add a rule to
30688         regenerate ada/Makefile.
30689
30690 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
30691
30692         * lang-options.h: Remove.
30693         * lang.opt: Add help text.
30694
30695 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
30696
30697         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
30698         calls.
30699
30700 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
30701
30702         * misc.c (gnat_handle_option): Don't handle filenames.
30703
30704 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
30705
30706         * Make-lang.in: Replace PWD with PWD_COMMAND.
30707         * Makefile.adalib: Likewise.
30708         * Makefile.in: Likewise.
30709
30710 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
30711
30712         * misc.c (gnat_argv): Revert last change.
30713         (gnat_handle_option, gnat_init_options): Copy arguments.
30714
30715 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
30716
30717         * misc.c (gnat_argv): Make const.
30718
30719 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
30720
30721         * misc.c (save_argc, save_argv): Keep non-static!
30722
30723 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
30724
30725         * misc.c (save_argc, save_argv): Make static.
30726         (gnat_init_options): New prototype.
30727         (gnat_init_options): Update.
30728
30729 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
30730
30731         * gnat_ug.texi: Remove unlikely characters from @vars.
30732         * gnat_ug_vms.texi: Regenerate.
30733
30734 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
30735
30736         * misc.c (record_code_position): Adjust emit_note call.
30737
30738 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
30739
30740         * misc.c (gnat_handle_option): Don't check for missing arguments.
30741
30742 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
30743
30744         * utils.c (end_subprog_body): Adjust expand_function_end call.
30745
30746 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
30747
30748         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
30749         Bind_Main_Program.
30750
30751 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
30752
30753         * lang.opt: Declare Ada.
30754         * misc.c (gnat_init_options): Update.
30755
30756 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
30757
30758         * utils.c (begin_subprog_body): Adjust init_function_start call.
30759
30760 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
30761
30762         * Make-lang.in: Update to use options.c and options.h.
30763         * misc.c: Include options.h not aoptions.h.
30764         (gnat_handle_option): Abort on unrecognized switch.
30765         (gnat_init_options): Request Ada switches.
30766
30767 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
30768
30769         * lang.opt: Add -Wall.
30770         * misc.c (gnat_handle_option): Handle it.
30771
30772 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
30773
30774         * misc.c (gnat_handle_option): Fix warnings.
30775
30776 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
30777
30778         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
30779
30780 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
30781
30782         * Make-lang.in: Update to handle command-line options.
30783         * lang.opt: New file.
30784         * misc.c: Include aoptions.h.
30785         (cl_options_count, cl_options): Remove.
30786         (gnat_handle_option): New.
30787         (gnat_decode_option): Remove.
30788         (LANG_HOOKS_DECODE_OPTION): Remove.
30789         (LANG_HOOKS_HANDLE_OPTION): Override.
30790
30791 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
30792
30793         * init.c, misc.c, trans.c, utils.c: Remove dead code.
30794
30795 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
30796
30797         * Makefile.in: Replace "host_canonical" with "host" for autoconf
30798         substitution.
30799
30800 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
30801
30802         * Make-lang.in: Update.
30803         * misc.c: Include opts.h. Define cl_options_count and cl_options.
30804
30805 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
30806
30807         * misc.c (gnat_init_options): Update.
30808
30809 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
30810
30811         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
30812         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
30813         __attribute__ ((__unused__)).
30814
30815 2003-06-05  Jan Hubicka  <jh@suse.cz>
30816
30817         * Make-lang.in:  Add support for stageprofile and stagefeedback
30818
30819 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
30820
30821         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
30822         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
30823
30824 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
30825
30826         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
30827         Remove non-VMS directive.
30828         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
30829         alternatives.
30830         (Examples of gnatls Usage): Remove VMS alternative.
30831
30832 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
30833
30834         PR ada/9953
30835         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
30836         and turn ZCX_By_Default back to False since the underlying support
30837         is not quite there yet.
30838
30839 2003-06-01  Andreas Jaeger  <aj@suse.de>
30840
30841         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
30842         and ROUND_TYPE_SIZE_UNIT.
30843
30844 2003-05-22   Geert Bosch <bosch@gnat.com>
30845
30846         * gnat_rm.texi : Remove reference to Ada Core Technologies.
30847
30848 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
30849
30850         * trans.c (tree_transform): Use location_t and input_location
30851         directly.
30852         (build_unit_elab): Likewise.
30853         * utils.c (create_label_decl): Likewise.
30854
30855 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
30856
30857         * trans.c (tree_transform, build_unit_elab,
30858         set_lineno): Rename lineno to input_line.
30859         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
30860         end_subprog_body): Likewise.
30861         * utils2.c (build_call_raise): Likewise.
30862
30863 2003-05-01  Laurent Guerby <guerby@acm.org>
30864
30865         PR ada/10546
30866         * 5iosinte.ads: Increase pthread_cond_t size to match recent
30867         LinuxThread and NPTL version, merge from ACT.
30868
30869 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
30870
30871         * utils.c (convert): No need to clear TREE_CST_RTL.
30872
30873 2003-04-23   Geert Bosch <bosch@gnat.com>
30874
30875         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
30876         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
30877         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
30878         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
30879         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
30880         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
30881         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
30882         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
30883         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
30884         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
30885         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
30886         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
30887         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
30888         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
30889         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
30890         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
30891         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
30892         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
30893         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
30894         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
30895         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
30896         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
30897         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
30898         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
30899         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
30900         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
30901         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
30902         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
30903         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
30904         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
30905         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
30906         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
30907         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
30908         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
30909         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
30910         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
30911         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
30912         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
30913         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
30914         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
30915         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
30916         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
30917         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
30918         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
30919         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
30920         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
30921         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
30922         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
30923         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
30924         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
30925         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
30926         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
30927         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
30928         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
30929         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
30930         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
30931         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
30932         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
30933         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
30934         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
30935         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
30936         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
30937         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
30938         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
30939         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
30940         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
30941         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
30942         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
30943         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
30944         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
30945         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
30946         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
30947         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
30948         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
30949         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
30950         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
30951         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
30952         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
30953         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
30954         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
30955         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
30956         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
30957         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
30958         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
30959         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
30960         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
30961         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
30962         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
30963         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
30964         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
30965         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
30966         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
30967         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
30968         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
30969         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
30970         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
30971         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
30972         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
30973         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
30974         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
30975         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
30976         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
30977         ali.adb, ali.ads, alloc.ads, argv.c,
30978         atree.adb, atree.ads, atree.h, aux-io.c,
30979         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
30980         binde.adb, binde.ads, binderr.adb, binderr.ads,
30981         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
30982         butil.adb, butil.ads, cal.c, calendar.ads,
30983         casing.adb, casing.ads, ceinfo.adb, checks.adb,
30984         checks.ads, cio.c, comperr.adb, comperr.ads,
30985         config-lang.in, csets.adb, csets.ads, csinfo.adb,
30986         cstand.adb, cstand.ads, cuintp.c, debug.adb,
30987         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
30988         dec-io.ads, dec.ads, deftarg.c, directio.ads,
30989         einfo.adb, einfo.ads, elists.adb, elists.ads,
30990         elists.h, errno.c, errout.adb, errout.ads,
30991         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
30992         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
30993         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
30994         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
30995         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
30996         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
30997         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
30998         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
30999         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
31000         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
31001         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
31002         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
31003         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
31004         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
31005         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
31006         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
31007         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
31008         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
31009         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
31010         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
31011         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
31012         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
31013         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
31014         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
31015         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
31016         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
31017         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
31018         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
31019         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
31020         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
31021         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
31022         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
31023         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
31024         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
31025         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
31026         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
31027         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
31028         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
31029         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
31030         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
31031         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
31032         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
31033         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
31034         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
31035         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
31036         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
31037         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
31038         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
31039         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
31040         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
31041         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
31042         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
31043         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
31044         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
31045         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
31046         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
31047         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
31048         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
31049         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
31050         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
31051         lib.adb, lib.ads, live.adb, live.ads,
31052         machcode.ads, make.adb, make.ads, makeusg.adb,
31053         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
31054         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
31055         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
31056         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
31057         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
31058         mlib.ads, namet.adb, namet.ads, nlists.adb,
31059         nlists.ads, opt.adb, opt.ads, osint-b.adb,
31060         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
31061         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
31062         osint.ads, output.adb, output.ads, par-ch10.adb,
31063         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
31064         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
31065         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
31066         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
31067         par-tchk.adb, par-util.adb, par.adb, par.ads,
31068         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
31069         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
31070         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
31071         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
31072         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
31073         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
31074         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
31075         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
31076         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
31077         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
31078         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
31079         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
31080         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
31081         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
31082         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
31083         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
31084         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
31085         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
31086         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
31087         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
31088         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
31089         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
31090         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
31091         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
31092         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
31093         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
31094         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
31095         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
31096         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
31097         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
31098         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
31099         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
31100         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
31101         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
31102         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
31103         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
31104         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
31105         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
31106         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
31107         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
31108         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
31109         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
31110         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
31111         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
31112         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
31113         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
31114         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
31115         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
31116         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
31117         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
31118         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
31119         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
31120         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
31121         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
31122         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
31123         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
31124         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
31125         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
31126         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
31127         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
31128         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
31129         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
31130         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
31131         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
31132         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
31133         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
31134         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
31135         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
31136         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
31137         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
31138         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
31139         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
31140         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
31141         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
31142         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
31143         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
31144         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
31145         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
31146         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
31147         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
31148         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
31149         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
31150         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
31151         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
31152         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
31153         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
31154         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
31155         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
31156         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
31157         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
31158         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
31159         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
31160         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
31161         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
31162         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
31163         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
31164         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
31165         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
31166         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
31167         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
31168         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
31169         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
31170         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
31171         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
31172         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
31173         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
31174         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
31175         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
31176         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
31177         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
31178         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
31179         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
31180         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
31181         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
31182         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
31183         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
31184         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
31185         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
31186         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
31187         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
31188         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
31189         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
31190         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
31191         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
31192         snames.ads, sprint.adb, sprint.ads, stand.adb,
31193         stand.ads, stringt.adb, stringt.ads, style.adb,
31194         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
31195         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
31196         switch-m.ads, switch.adb, switch.ads, system.ads,
31197         table.adb, table.ads, targparm.adb, targparm.ads,
31198         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
31199         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
31200         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
31201         ttypef.ads, ttypes.ads, types.adb, types.ads,
31202         uintp.adb, uintp.ads, uname.adb, uname.ads,
31203         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
31204         usage.adb, usage.ads, validsw.adb, validsw.ads,
31205         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
31206         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
31207         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
31208         formatting and other trivial changes from ACT.
31209
31210 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
31211
31212         * gigi.h, utils2.c (build_constructor):
31213         Rename gnat_build_constructor. Use build_constructor.
31214         * decl.c (gnat_to_gnu_entity)
31215         * trans.c (tree_transform, pos_to_constructor, extract_values)
31216         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
31217         (unchecked_convert)
31218         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
31219         (fill_vms_descriptor):
31220         Update to match.
31221
31222 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
31223
31224         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
31225         * misc.c (gnat_tree_size): New function.
31226         (LANG_HOOKS_TREE_SIZE): Override.
31227
31228 2003-04-03  Jason Merrill  <jason@redhat.com>
31229
31230         * misc.c (gnat_adjust_rli): #if 0.
31231
31232 2003-03-31   Geert Bosch <bosch@gnat.com>
31233
31234         PR ada/10020
31235         * link.c : Fix misspelled "const" keyword
31236
31237 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
31238
31239         PR c++/7086
31240         * utils2.c: Adjust calls to put_var_into_stack.
31241
31242 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
31243
31244         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
31245
31246 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
31247
31248         * misc.c (gnat_init): Update for new prototype.
31249
31250 2003-03-05  Olivier Hainque  <hainque@gnat.com>
31251
31252         ada/9961
31253         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
31254         warning, and fix return type for the IN_RTS && !SJLJ case.
31255
31256 2003-03-04  Tom Tromey  <tromey@redhat.com>
31257
31258         * Make-lang.in (ada.tags): New target.
31259
31260 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
31261
31262         ada/9911
31263         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
31264         wrapper, which name remains constant whatever underlying GCC
31265         scheme.
31266
31267         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
31268         the stable interface needed for a-except.
31269
31270 2003-03-02  Andreas Jaeger  <aj@suse.de>
31271
31272         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31273         gnat_ug_wnt.texi: Regenerate.
31274
31275 2003-03-02  Laurent Guerby <guerby@acm.org>
31276
31277         * Makefile.in (install-gnatlib): Match previous change there
31278         so it works.
31279
31280 2003-02-28  Andreas Schwab  <schwab@suse.de>
31281
31282         * Make-lang.in (install-gnatlib): Change to ada directory before
31283         running make instead of using ada/Makefile directly.
31284
31285 2003-02-18  Ben Elliston  <bje@redhat.com>
31286
31287         Part of PR ada/9406
31288         * gnat_ug.texi (Binder output file): Grammar fix.
31289
31290 2003-02-18  Ben Elliston  <bje@redhat.com>
31291
31292         PR other/7350
31293         * 5qtaprop.adb (Sleep): Fix typo in comment.
31294
31295 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
31296
31297         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
31298         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31299         gnat_ug_wnt.texi: Regenerate.
31300
31301 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
31302
31303         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
31304         be created if necessary.
31305         (ada.install-common): Let $(DESTDIR)$(bindir) be created
31306         if necessary.  Remove erroneous and redundant gnatchop
31307         installation commands.  Test for gnatdll before attempting
31308         to install it.
31309         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
31310         and gnatdll from all plausible locations.
31311
31312 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
31313
31314         * utils2.c (build_unary_op): Don't check flag_volatile.
31315         * gnat_ug.texi: Remove -fvolatile from example.
31316         * gnat_ug_vxw.texi: Likewise.
31317
31318 2003-01-29  Laurent Guerby <guerby@acm.org>
31319
31320         PR ada/8344
31321         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
31322         * Makefile.in: match previous change.
31323         * Make-lang.in: match previous change.
31324
31325 2003-01-29      Joel Sherrill <joel@OARcorp.com>
31326
31327         * 5rosinte.ads: Add SIGXCPU.
31328         * 5rtpopsp.adb: New file.
31329         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
31330         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
31331         specific file 5rtpopsp.adb.
31332         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
31333         is likely needed for all newlib targets.
31334         * init.c: Add RTEMS specific version of __gnat_initialize().
31335
31336 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31337
31338         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
31339
31340 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31341
31342         * init.c (__gnat_error_handler): Make msg const.
31343
31344         * gmem.c (convert_addresses): Move declaration ...
31345         * adaint.h: ... here.
31346         * adaint.c (convert_addresses): Adapt addrs type to match
31347         prototype.
31348
31349         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
31350
31351 2003-01-24  Andreas Schwab  <schwab@suse.de>
31352
31353         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
31354         size_t to avoid warning.
31355
31356 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
31357
31358         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
31359
31360 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
31361
31362         * gnat_rm.texi: Remove RCS version number.
31363
31364         * ada-tree.h (union lang_tree_node): Add chain_next option.
31365
31366 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
31367
31368         * Make-lang.in (ada.install-info, ada.install-common,
31369         ada.uninstall): Prepend $(DESTDIR) to the destination
31370         directory in all (un)installation commands.
31371         * Makefile.in (install-gnatlib, install-rts): Ditto.
31372
31373 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
31374
31375         * gnat_rm.texi, gnat_ug.texi: Use @copying.
31376         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31377         gnat_ug_wnt.texi: Regenerate.
31378
31379 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
31380
31381         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
31382         only.
31383         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
31384         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
31385         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
31386         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
31387         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
31388         $(srcdir)/doc/include/gcc-common.texi.
31389
31390 2002-12-15   Geert Bosch <bosch@gnat.com>
31391
31392         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
31393
31394 2002-12-14   Geert Bosch <bosch@gnat.com>
31395
31396         PR ada/5690
31397         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
31398         case of a body created for a Renaming_As_Body, on which
31399         conformance checks are not performed.
31400
31401 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
31402
31403         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
31404         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
31405         not already included.
31406         * Make-lang.in: Update dependencies.
31407
31408 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
31409         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
31410         solution to buffer overflow bug on GNU/Linux.
31411
31412 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
31413
31414         PR ada/5856
31415         PR ada/6919
31416         * bindgen.adb: Remove all references to Public_Version.
31417         * comperr.adb: Remove all references to Public_Version and
31418         GNATPRO_Version; correct bug reporting instructions.
31419         * comperr.ads: Change to match bug box.
31420         * gnatvsn.ads: Remove all references to Public version and
31421         GNATPRO version.
31422
31423 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
31424
31425         PR ada/6919
31426         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
31427         GNU/Linux.
31428
31429         PR ada/6558
31430         * config-lang.in: Remove diff_excludes.
31431
31432 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
31433
31434         PR ada/8358
31435         * trans.c (gnu_pending_elaboration_lists): New GC root.
31436         (build_unit_elab): Use..
31437
31438 2002-10-30   Geert Bosch <bosch@gnat.com>
31439
31440         PR ada/6558
31441         * misc.c : Include optabs.h
31442
31443         * Make-lang.in (misc.o): Add dependency on optabs.h
31444
31445 2002-10-29   Geert Bosch <bosch@gnat.com>
31446
31447         PR ada/6558
31448         * Make-lang.in (gnatbind): Depend on CONFIG_H
31449
31450 2002-10-29  Geert bosch  <bosch@gnat.com>
31451
31452         PR ada/6558
31453         * misc.c: Unrevert misc.c (1.13)
31454
31455 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
31456
31457         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
31458         maintainership comments.
31459
31460 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
31461
31462         PR ada/5904
31463         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
31464         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
31465         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
31466         7staprop.adb: Correct statements in comments about
31467         maintainership of GNAT.
31468
31469         PR ada/5904
31470         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
31471         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
31472         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
31473         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
31474         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
31475         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
31476         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
31477         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
31478         comments about maintainership of GNAT.
31479
31480         PR ada/6919 (forward port of patch for PR ada/5904)
31481         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
31482         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
31483         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
31484         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
31485         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
31486         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
31487         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
31488         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
31489         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
31490         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
31491         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
31492         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
31493         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
31494         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
31495         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
31496         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
31497         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
31498         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
31499         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
31500         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
31501         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
31502         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
31503         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
31504         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
31505         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
31506         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
31507         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
31508         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
31509         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
31510         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
31511         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
31512         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
31513         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
31514         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
31515         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
31516         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
31517         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
31518         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
31519         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
31520         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
31521         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
31522         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
31523         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
31524         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
31525         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
31526         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
31527         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
31528         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
31529         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
31530         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
31531         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
31532         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
31533         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
31534         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
31535         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
31536         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
31537         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
31538         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
31539         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
31540         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
31541         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
31542         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
31543         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
31544         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
31545         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
31546         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
31547         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
31548         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
31549         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
31550         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
31551         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
31552         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
31553         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
31554         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
31555         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
31556         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
31557         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
31558         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
31559         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
31560         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
31561         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
31562         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
31563         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
31564         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
31565         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
31566         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
31567         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
31568         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
31569         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
31570         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
31571         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
31572         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
31573         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
31574         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
31575         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
31576         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
31577         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
31578         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
31579         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
31580         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
31581         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
31582         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
31583         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
31584         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
31585         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
31586         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
31587         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
31588         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
31589         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
31590         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
31591         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
31592         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
31593         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
31594         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
31595         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
31596         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
31597         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
31598         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
31599         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
31600         par-endh.adb par-labl.adb par-load.adb par-prag.adb
31601         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
31602         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
31603         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
31604         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
31605         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
31606         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
31607         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
31608         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
31609         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
31610         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
31611         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
31612         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
31613         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
31614         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
31615         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
31616         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
31617         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
31618         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
31619         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
31620         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
31621         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
31622         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
31623         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
31624         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
31625         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
31626         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
31627         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
31628         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
31629         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
31630         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
31631         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
31632         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
31633         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
31634         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
31635         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
31636         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
31637         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
31638         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
31639         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
31640         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
31641         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
31642         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
31643         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
31644         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
31645         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
31646         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
31647         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
31648         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
31649         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
31650         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
31651         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
31652         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
31653         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
31654         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
31655         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
31656         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
31657         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
31658         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
31659         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
31660         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
31661         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
31662         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
31663         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
31664         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
31665         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
31666         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
31667         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
31668         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
31669         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
31670         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
31671         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
31672         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
31673         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
31674         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
31675         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
31676         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
31677         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
31678         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
31679         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
31680         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
31681         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
31682         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
31683         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
31684         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
31685         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
31686         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
31687         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
31688         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
31689         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
31690         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
31691         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
31692         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
31693         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
31694         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
31695         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
31696         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
31697         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
31698         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
31699         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
31700         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
31701         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
31702         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
31703         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
31704         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
31705         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
31706         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
31707         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
31708         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
31709         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
31710         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
31711         stringt.ads stringt.h style.adb style.ads stylesw.adb
31712         stylesw.ads switch.adb switch.ads sysdep.c system.ads
31713         table.adb table.ads targparm.adb targparm.ads targtyps.c
31714         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
31715         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
31716         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
31717         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
31718         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
31719         usage.ads utils.c utils2.c validsw.adb validsw.ads
31720         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
31721         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
31722         xtreeprs.adb: Correct statements in comments about maintainership
31723         of GNAT.
31724
31725 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
31726
31727         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
31728         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
31729         * gnatvsn.ads: Gnat_Version_String is now a function.
31730         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
31731         copy the C version_string into a String and return it.
31732         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
31733         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
31734         Remove pragma Ident (Gnat_Version_String).  If this was the
31735         sole use of package Gnatvsn, remove the with statement too.
31736         * gnat1drv.adb: Tweak -gnatv output.
31737
31738 2002-09-17  Richard Henderson  <rth@redhat.com>
31739
31740         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
31741         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
31742         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
31743         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
31744         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
31745         and real_2expN instead of a loop.
31746         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
31747         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
31748
31749 2002-08-25  Andre Leis <a.leis@gmx.net>
31750             David Billinghurst (David.Billinghurst@riotinto.com>
31751
31752         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
31753
31754 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31755
31756         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
31757         Remove $(CONFIG_H) dependency.
31758
31759 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
31760
31761         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
31762
31763 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31764
31765         * adadecode.c (ada_demangle): Use xstrdup in lieu of
31766         xmalloc/strcpy.
31767         * misc.c (gnat_decode_option): Likewise.
31768
31769 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
31770
31771         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
31772         function approach did not work well because of a side effect (the
31773         function call could reallocate the table which was being indexed
31774         using its result). Fixes ada/4851. [RESURRECTED]
31775
31776 2002-07-01  Roger Sayle  <roger@eyesopen.com>
31777
31778         * ada/utils.c (builtin_function): Accept an additional parameter.
31779
31780 2002-06-28  Andreas Jaeger  <aj@suse.de>
31781
31782         PR ada/7144
31783         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
31784         <adi@thur.de>.
31785
31786 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31787
31788         * Makefile.in (SHELL): Set to @SHELL@.
31789
31790 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31791
31792         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
31793         array size calculation.
31794
31795 2002-06-04  Andreas Jaeger  <aj@suse.de>
31796
31797         * Make-lang.in (gnatbind): Readd rule that has been lost in last
31798         patch.
31799
31800 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
31801
31802         Merge from pch-branch:
31803
31804         * config-lang.in (gtfiles): Add ada-tree.h.
31805         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
31806         (SET_TYPE_MODULUS): New.
31807         (SET_TYPE_INDEX): New.
31808         (SET_TYPE_DIGITS_VALUE): New.
31809         (SET_TYPE_RM_SIZE): New.
31810         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
31811         (SET_TYPE_ADA_SIZE): New.
31812         (SET_TYPE_ACTUAL_BOUNDS): New.
31813         (SET_DECL_CONST_CORRESPONDING_VAR): New.
31814         (SET_DECL_ORIGINAL_FIELD): New.
31815         (TREE_LOOP_ID): Correct typo.
31816         * decl.c: Use new macros.
31817         * utils.c: Include debug.h, use new macros.
31818         * utils2.c: Use new macros.
31819
31820         * ada-tree.h: Update all macros for new tree description.
31821         (struct tree_loop_id): New.
31822         (union lang_tree_node): New.
31823         (struct lang_decl): New.
31824         (struct lang_type): New.
31825         * misc.c (gnat_mark_tree): Delete.
31826         (LANG_HOOKS_MARK_TREE): Delete.
31827         * trans.c (tree_transform): No longer any need to cast
31828         for TREE_LOOP_ID.
31829
31830         * utils.c (struct language_function): New dummy structure.
31831
31832         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
31833         (misc.o): Likewise.
31834         (utils.o): Likewise; also gtype-ada.h.
31835         * Make-lang.in (gnat1): Add dependency on s-gtype.
31836         (gnatbind): Add dependency on $(CONFIG_H).
31837         * utils.c: Correct last #include.
31838         (stuct e_stack): Remove unnecessary 'static'.
31839         (mark_e_stack): Remove unused prototype.
31840
31841         * scn-nlit.adb: Remove whitespace after version number to
31842         keep lines under 80 chars.
31843         * snames.adb: Likewise.
31844         * treepr.ads: Likewise.
31845
31846         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
31847         (misc.o): Likewise.
31848         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
31849         * config-lang.in (gtfiles): New.
31850         * decl.c: Use gengtype for roots.
31851         * gigi.h: Use gengtype for roots.
31852         * trans.c: Use gengtype for roots.
31853         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
31854
31855 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
31856
31857         * misc.c (gnat_init): Adjust setting of internal_error_function.
31858
31859 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
31860
31861         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
31862         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31863         gnat_ug_wnt.texi: Regenerate.
31864
31865 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
31866
31867         * 5ntaprop.adb (with System.OS_Primitives): Remove.
31868
31869         * cstreams.c (max_path_len): Move from here ...
31870         * adaint.c (__gnat_max_path_len): ... to here.
31871         * adaint.c (__gnat_max_path_len): Declare.
31872         * g-dirope.adb (Max_Path): Adjust.
31873         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
31874         * i-cstrea.ads (max_path_len): Adjust.
31875         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
31876         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
31877
31878         * Makefile.in, Make-lang.in: Documentation is now built in
31879         Make-lang.in.  Store Info and generated Texinfo files in the
31880         source directory.
31881         * gnat_ug.texi: Remove CVS keywords, correct version number.
31882         Set file name correctly.
31883
31884         * gnat_ug_*.texi: Add.
31885         * .cvsignore: Ignore generated Texinfo files.
31886
31887 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
31888
31889         * ada.h: Add MI guard macro.
31890         (SUBTYPE): Define constants with an anonymous enum, not static
31891         const variables.
31892         (IN): Cast constants to appropriate type before use.
31893
31894 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
31895
31896         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
31897         (experimental)".
31898
31899 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31900
31901         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
31902         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
31903         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
31904         (ALL_ADA_CFLAGS): Likewise.
31905         (ADA_INCLUDES): Likewise.
31906         Adapt for new working dir.
31907         (GNATBIND): Use Makefile.in version.
31908         (.SUFFIXES): Copy from Makefile.in.
31909         (ada-warn): Define.
31910         (.adb.o, .ads.o): Copy from Makefile.in.
31911         Added $(OUTPUT_OPTION).
31912         (GNAT1_C_OBJS): Moved from Makefile.in.
31913         Prefix with ada subdir.
31914         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
31915         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
31916         Adapt for new working dir.
31917         (EXTRA_GNATBIND_OBJS): Likewise.
31918         (ADA_BACKEND): Moved from Makefile.in.
31919         Renamed to avoid conflict with global BACKEND.
31920         Use that one.
31921         (TARGET_ADA_SRCS): Moved from Makefile.in.
31922         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
31923         Use ADA_BACKEND.
31924         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
31925         (ada_extra_files): Moved from Makefile.in.
31926         Prefix with ada subdir.
31927         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
31928         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
31929         (ada/nmake.ads): Likewise.
31930         (update-sources): Moved from Makefile.in.
31931         Prefix with ada subdir.
31932         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
31933         (ADA_TREE_H): Likewise.
31934         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
31935         (ada/memtrack.o): Likewise.
31936         (ada/adadecode.o): Likewise.
31937         Update dependencies.
31938         (ada/adaint.o): New.
31939         (ada/argv.o): Moved from Makefile.in.
31940         Prefix with ada subdir.
31941         Update dependencies.
31942         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
31943         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
31944         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
31945         Prefix with ada subdir.
31946         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
31947         (GNAT DEPENDENCIES): Regenerate.
31948         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
31949         toplevel Makefile.in.
31950         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
31951         (TARGET_ADA_SRCS): Removed.
31952         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
31953         (GNATBIND_OBJS): Likewise.
31954         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
31955         (BACKEND): Removed.
31956         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
31957         (TREE_H): Likewise.
31958         (ada_extra_files): Likewise.
31959         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
31960         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
31961         (update-sources): Likewise.
31962         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
31963         (ADA_TREE_H): Likewise.
31964         (adadecoce.o): Likewise.
31965         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
31966         (GNAT DEPENDENCIES): Likewise.
31967
31968 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31969
31970         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
31971         * Makefile.in: Likewise.
31972
31973 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31974
31975         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
31976         Restore $(CONFIG_H) and prefix.o dependencies.
31977         (ada.stage[1-4]): Depend on stage?-start.
31978
31979         * Makefile.in (b_gnatb.c): Depend on interfac.o.
31980
31981 2002-05-02  Jim Wilson  <wilson@redhat.com>
31982
31983         * utils.c (finish_record_type): Change record_size to record_type.
31984
31985 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
31986
31987         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
31988         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
31989         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
31990
31991 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
31992
31993         * misc.c (gnat_parse_file): Update.
31994
31995 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
31996
31997         * misc.c (gnat_init): Don't set lang_attribute_common.
31998
31999 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
32000
32001         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
32002
32003 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
32004
32005         * gnat_ug.texi: New file.
32006
32007         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
32008         instead of gfdl.texi
32009
32010         * xgnatug.adb, ug_words: New files.
32011
32012         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
32013         gnat_rm and gnat-style manuals.
32014
32015 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
32016
32017         * gigi.h (incomplete_type_error): Remove.
32018         * utils.c (incomplete_type_error): Remove.
32019
32020 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
32021
32022         * trans.c (tree_transform): Add has_scope argument to
32023         expand_start_stmt_expr.
32024
32025 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
32026
32027         * gigi.h (truthvalue_conversion): Rename.
32028         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
32029         * trans.c (tree_transform): Update.
32030         * utils2.c (truthvalue_conversion): Rename, update.
32031         (build_binary_op, build_unary_op): Update.
32032
32033 2002-04-04  Laurent Guerby  <guerby@acm.org>
32034
32035         * make.adb: Implement -margs, remove restriction about file name placement.
32036         * makeusg.adb: Documentation update.
32037         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
32038         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
32039
32040 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
32041
32042         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
32043         (builtin_function): Similarly.
32044
32045 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
32046
32047         * decl.c (gnat_to_gnu_entity): Update.
32048         * gigi.h (mark_addressable): Rename.
32049         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
32050         * trans.c (tree_transform): Update.
32051         * utils.c (create_var_decl): Update.
32052         * util2.c (build_binary_op, build_unary_op,
32053         fill_vms_descriptor): Update.
32054         (mark_addressable): Rename, update.
32055
32056 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
32057
32058         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
32059         Rename.
32060         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
32061         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
32062         * trans.c (tree_transform, convert_with_check): Update.
32063         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
32064         Rename.
32065
32066 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
32067
32068         * gigi.h (finish_incomplete_decl): Rename.
32069         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
32070         * utils.c (gnat_init_decl_processing): Don't set hook.
32071         (finish_incomplete_decl): Rename.
32072
32073 2002-03-29  Andreas Schwab  <schwab@suse.de>
32074
32075         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
32076         directory.
32077
32078 2001-03-28  Robert Dewar <dewar@gnat.com>
32079
32080         * checks.ads:
32081         (Remove_Checks): New procedure
32082
32083         * checks.adb:
32084         (Remove_Checks): New procedure
32085
32086         * exp_util.adb:
32087         Use new Duplicate_Subexpr functions
32088         (Duplicate_Subexpr_No_Checks): New procedure
32089         (Duplicate_Subexpr_No_Checks_Orig): New procedure
32090         (Duplicate_Subexpr): Restore original form (checks duplicated)
32091         (Duplicate_Subexpr): Call Remove_Checks
32092
32093         * exp_util.ads:
32094         (Duplicate_Subexpr_No_Checks): New procedure
32095         (Duplicate_Subexpr_No_Checks_Orig): New procedure
32096         Add 2002 to copyright notice
32097
32098         * sem_util.adb: Use new Duplicate_Subexpr functions
32099
32100         * sem_eval.adb:
32101         (Eval_Indexed_Component): This is the place to call
32102         Constant_Array_Ref and to replace the value. We simply merge
32103         the code of this function in here, since it is now no longer
32104         used elsewhere. This fixes the problem of the back end not
32105         realizing we were clever enough to see that this was
32106         constant.
32107         (Expr_Val): Remove call to Constant_Array_Ref
32108         (Expr_Rep_Val): Remove call to Constant_Array_Ref
32109         Minor reformatting
32110         (Constant_Array_Ref): Deal with string literals (patch
32111         suggested by Zack Weinberg on the gcc list)
32112
32113 2001-03-28  Ed Schonberg <schonber@gnat.com>
32114
32115         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
32116         Duplicate_Subexpr_Move_Checks.
32117
32118         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
32119         Duplicate_Subexpr_Move_Checks.
32120
32121         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
32122         value of array exists before retrieving it (it may a private
32123         protected component in a function).
32124
32125 2002-03-28   Geert Bosch <bosch@gnat.com>
32126
32127         * prj-pp.adb : New file.
32128
32129         * prj-pp.ads : New file.
32130
32131 2002-03-28  Andreas Jaeger  <aj@suse.de>
32132
32133         * Makefile.in (stamp-sdefault): Fix path for Makefile.
32134
32135 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
32136
32137         * misc.c (gnat_expand_expr): Move prototype.
32138
32139 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
32140
32141         * misc.c (insert_default_attributes): Remove.
32142
32143 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
32144
32145         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
32146         (gnat_init): Don't set hook.
32147         (gnat_expand_expr): Fix prototype.
32148
32149 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
32150
32151         * misc.c (ggc_p): Remove.
32152
32153 2002-03-27  Geert Bosch  <bosch@gnat.com>
32154
32155         * prj-makr.ads, prj-makr.adb : New files.
32156
32157 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
32158
32159         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
32160         (lang_mark_tree): Make static, rename.
32161
32162 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
32163
32164         * misc.c (maybe_build_cleanup): Remove.
32165
32166 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
32167
32168         * gigi.h (yyparse): Remove.
32169
32170 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
32171
32172         * gnat_rm.texi: Sync with ACT version.
32173           (From Ben Brosgol <brosgol@gnat.com>)
32174
32175 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
32176
32177         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
32178         (gnat_init): Remove old hook.
32179
32180 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
32181
32182         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
32183         (yyparse): Rename gnat_parse_file.
32184
32185 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
32186
32187         Delete all lines containing "$Revision:".
32188         * xeinfo.adb: Don't look for revision numbers.
32189         * xnmake.adb: Likewise.
32190         * xsinfo.adb: Likewise.
32191         * xsnames.adb: Likewise.
32192         * xtreeprs.adb: Likewise.
32193
32194 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32195
32196         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
32197         gnat_tree_code_name): Delete.
32198         (tree_code_type, tree_code_length, tree_code_name): Define.
32199         (gnat_init): Don't try to copy into the various tree_code
32200         arrays.
32201
32202 2002-03-11  Richard Henderson  <rth@redhat.com>
32203
32204         * Makefile.in (.NOTPARALLEL): Add fake tag.
32205
32206 2002-03-07  Geert Bosch  <bosch@gnat.com>
32207
32208         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
32209         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
32210         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
32211         switch-m.adb, switch-m.ads : New files.
32212
32213 2002-03-07  Geert Bosch  <bosch@gnat.com>
32214
32215         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
32216         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
32217         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
32218         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
32219         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
32220         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
32221         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
32222         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
32223         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
32224         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
32225         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
32226         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
32227         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
32228         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
32229         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
32230         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
32231         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
32232         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
32233         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
32234         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
32235         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
32236         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
32237         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
32238         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
32239         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
32240         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
32241         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
32242         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
32243         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
32244         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
32245         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
32246         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
32247         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
32248         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
32249         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
32250         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
32251         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
32252         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
32253         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
32254         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
32255         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
32256         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
32257         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
32258         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
32259         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
32260         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
32261         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
32262         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
32263         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
32264         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
32265         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
32266         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
32267         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
32268         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
32269         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
32270         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
32271         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
32272         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
32273         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
32274         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
32275         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
32276         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
32277         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
32278         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
32279         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
32280         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
32281         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
32282         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
32283         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
32284         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
32285         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
32286         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
32287         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
32288         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
32289         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
32290         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
32291         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
32292         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
32293         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
32294         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
32295         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
32296         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
32297         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
32298         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
32299         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
32300         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
32301         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
32302         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
32303         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
32304         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
32305         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
32306         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
32307         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
32308         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
32309         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
32310         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
32311         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
32312
32313         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
32314         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
32315         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
32316         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
32317
32318         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
32319         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
32320
32321         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
32322         to mdll-fil.ad[bs] and mdll-util.ad[bs]
32323
32324         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
32325         from mdllfile.ad[bs] and mdlltool.ad[bs]
32326
32327 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32328
32329         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
32330         lieu of explicit sizeof/sizeof.
32331
32332 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
32333
32334         * misc.c (copy_lang_decl): Remove.
32335
32336 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
32337
32338         * misc.c: Delete traditional-mode-related code copied from the
32339         C front end but not used, or used only to permit the compiler
32340         to link.
32341
32342 2002-02-07  Richard Henderson  <rth@redhat.com>
32343
32344         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
32345         * adaint.h (__gnat_to_gm_time): Update prototype.
32346
32347 2002-01-30  Richard Henderson  <rth@redhat.com>
32348
32349         * trans.c (tree_transform) [N_Loop_Statement]: Use
32350         expand_exit_loop_top_cond.
32351
32352 2001-12-23  Richard Henderson  <rth@redhat.com>
32353
32354         * utils.c (end_subprog_body): Push GC context around
32355         rest_of_compilation for nested functions.
32356
32357 2001-12-23  Richard Henderson  <rth@redhat.com>
32358
32359         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
32360
32361 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
32362
32363         * gnat-style.texi (Declarations and Types): Remove ancient style
32364         rule which was mandated by code generation issues.
32365
32366         * gnat-style.texi (header): Add @dircategory, @direntry.
32367         (title page): Remove date.
32368         (general) Add @./@: where approriate, and two spaces after the
32369         full stop at the end of a sentence.  Use @samp markup when
32370         referring concrete lexical entities (keywords, attribute names
32371         etc.), and @syntax for ARM grammar elements. Use @r for English
32372         text in comments.  Use @emph for emphasis.  Change "if-statements"
32373         etc. to "if statements" (without @samp). Break long lines.  Make
32374         casing of section names consistent.
32375         (Identifiers): Use @samp markup for variable names.
32376         (Comments): Use @samp markup for comment characters. Line-end
32377         comments may follow any Ada code, not just statements.  Fix
32378         misspelling of "Integer" as "integer".
32379         (Loop statements): Do not use variable name "I", use "J".
32380         (Subprogram Declarations): Document alignment.
32381         (Subprogram Bodies, Block statements): Document empty line before
32382         "begin".
32383
32384 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
32385
32386         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
32387         function approach did not work well because of a side effect (the
32388         function call could reallocate the table which was being indexed
32389         using its result). Fixes ada/4851.
32390
32391 2001-12-19  Robert Dewar <dewar@gnat.com>
32392
32393         * bindgen.adb: Minor reformatting
32394
32395         * cstand.adb: Minor reformatting
32396
32397         * fmap.adb: Minor reformatting
32398         Change name from Add for Add_To_File_Map (Add is much too generic)
32399         Change Path_Name_Of to Mapped_Path_Name
32400         Change File_Name_Of to Mapped_File_Name
32401         Fix copyright dates in header
32402
32403         * fmap.ads:
32404         Change name from Add for Add_To_File_Map (Add is much too generic)
32405         Change Path_Name_Of to Mapped_Path_Name
32406         Change File_Name_Of to Mapped_File_Name
32407         Fix copyright dates in header
32408
32409         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
32410         Add use clause for Fmap.
32411
32412         * make.adb: Minor reformatting
32413
32414         * osint.adb: Minor reformatting.  Change of names in Fmap.
32415         Add use clause for Fmap.
32416
32417         * prj-env.adb: Minor reformatting
32418
32419         * prj-env.ads: Minor reformatting
32420
32421         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
32422         error found (there were odd exceptions to this general rule in
32423         -gnatec/-gnatem processing)
32424
32425 2001-12-19  Olivier Hainque <hainque@gnat.com>
32426
32427         * raise.c (__gnat_eh_personality): Exception handling personality
32428         routine for Ada.  Still in rough state, inspired from the C++ version
32429         and still containing a bunch of debugging artifacts.
32430         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
32431         inspired from the C++ library.
32432
32433         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
32434         exception handling integration.
32435
32436 2001-12-19  Arnaud Charlet <charlet@gnat.com>
32437
32438         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
32439         (HIE_SOURCES): Add s-secsta.ad{s,b}.
32440         (HIE_OBJS): Add s-fat*.o
32441         (RAVEN_SOURCES): Remove files that are no longer required. Add
32442         interrupt handling files.
32443         (RAVEN_MOD): Removed, no longer needed.
32444
32445 2001-12-19  Robert Dewar <dewar@gnat.com>
32446
32447         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
32448         Add 2001 to copyright date
32449
32450         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
32451         need to force universal inlining for these cases.
32452
32453 2001-12-19  Arnaud Charlet <charlet@gnat.com>
32454
32455         * s-taprob.adb: Minor clean ups so that this unit can be used in
32456         Ravenscar HI.
32457
32458         * exp_ch7.adb: Allow use of secondary stack in HI mode.
32459         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
32460
32461 2001-12-19  Vincent Celier <celier@gnat.com>
32462
32463         * prj-tree.ads (Project_Node_Record): Add comments for components
32464         Pkg_Id and Case_Insensitive.
32465
32466 2001-12-19  Pascal Obry <obry@gnat.com>
32467
32468         * g-socket.adb: Minor reformatting. Found while reading code.
32469
32470 2001-12-19  Robert Dewar <dewar@gnat.com>
32471
32472         * prj-tree.ads: Minor reformatting
32473
32474 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
32475
32476         * config-lang.in (diff_excludes): Remove.
32477
32478 2001-12-17  Ed Schonberg <schonber@gnat.com>
32479
32480         * sem_res.adb (Resolve_Selected_Component): do not generate a
32481         discriminant check if the selected component is a component of
32482         the argument of an initialization procedure.
32483
32484         * trans.c (tree_transform, case of arithmetic operators): If result
32485         type is private, the gnu_type is the base type of the full view,
32486         given that the full view itself may be a subtype.
32487
32488 2001-12-17  Robert Dewar <dewar@gnat.com>
32489
32490         * sem_res.adb: Minor reformatting
32491
32492         * trans.c (tree_transform, case N_Real_Literal): Add missing third
32493         parameter in call to Machine (unknown horrible effects from this
32494         omission).
32495
32496         * urealp.h: Add definition of Round_Even for call to Machine
32497         Add third parameter for Machine
32498
32499 2001-12-17  Ed Schonberg <schonber@gnat.com>
32500
32501         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
32502         predefined units in No_Run_Time mode.
32503
32504 2001-12-17  Richard Kenner <kenner@gnat.com>
32505
32506         * misc.c (insn-codes.h): Now include.
32507
32508 2001-12-17  Olivier Hainque <hainque@gnat.com>
32509
32510         * a-except.adb: Preparation work for future integration of the GCC 3
32511         exception handling mechanism
32512         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
32513         to factorize previous code sequences and make them externally callable,
32514         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
32515         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
32516         Use the new notification routines.
32517
32518 2001-12-17  Emmanuel Briot <briot@gnat.com>
32519
32520         * prj-tree.ads (First_Choice_Of): Document the when others case
32521
32522 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32523
32524         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
32525         HI-E mode, in order to support Ravenscar profile properly.
32526
32527         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
32528         mode on 32 bits targets.
32529
32530 2001-12-17  Vincent Celier <celier@gnat.com>
32531
32532         * fmap.adb: Initial version.
32533
32534         * fmap.ads: Initial version.
32535
32536         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
32537         If search is successfully done, add to mapping.
32538
32539         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
32540
32541         * make.adb:
32542         (Gnatmake): Add new local variable Mapping_File_Name.
32543          Create mapping file when using project file(s).
32544          Delete mapping file before exiting.
32545
32546         * opt.ads (Mapping_File_Name): New variable
32547
32548         * osint.adb (Find_File): Use path name found in mapping, if any.
32549
32550         * prj-env.adb (Create_Mapping_File): New procedure
32551
32552         * prj-env.ads (Create_Mapping_File): New procedure.
32553
32554         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
32555         (Mapping_File)
32556
32557         * usage.adb: Add entry for new switch -gnatem.
32558
32559         * Makefile.in: Add dependencies for fmap.o.
32560
32561 2001-12-17  Ed Schonberg <schonber@gnat.com>
32562
32563         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
32564         is a package instantiation rewritten as a package body.
32565         (Install_Withed_Unit): Undo previous change, now redundant.
32566
32567 2001-12-17  Gary Dismukes <dismukes@gnat.com>
32568
32569         * layout.adb:
32570         (Compute_Length): Move conversion to Unsigned to callers.
32571         (Get_Max_Size): Convert Len expression to Unsigned after calls to
32572         Compute_Length and Determine_Range.
32573         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
32574         Compute_Length and Determine_Range.
32575         Above changes fix problem with length computation for supernull arrays
32576         where Max (Len, 0) wasn't getting applied due to the Unsigned
32577         conversion used by Compute_Length.
32578
32579 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32580
32581         * rtsfind.ads:
32582         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
32583          System.Secondary_Stack.
32584         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
32585          in HI-E mode.
32586         Remove unused entity RE_Exception_Data.
32587
32588         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
32589
32590         * rident.ads (No_Secondary_Stack): New restriction.
32591
32592 2001-12-17  Joel Brobecker <brobecke@gnat.com>
32593
32594         * gnat_rm.texi: Fix minor typos. Found while reading the section
32595         regarding "Bit_Order Clauses" that was sent to a customer.
32596         Very interesting documentation!
32597
32598 2001-12-17  Robert Dewar <dewar@gnat.com>
32599
32600         * sem_case.adb (Choice_Image): Avoid creating improper character
32601         literal names by using the routine Set_Character_Literal_Name. This
32602         fixes bombs in certain error message cases.
32603
32604 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32605
32606         * a-reatim.adb: Minor reformatting.
32607
32608 2001-12-17  Ed Schonberg <schonber@gnat.com>
32609
32610         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
32611         case where the formal is an extension of another formal in the current
32612         unit or in a parent generic unit.
32613
32614 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32615
32616         * s-tposen.adb: Update comments.  Minor reformatting.
32617         Minor code clean up.
32618
32619         * s-tarest.adb: Update comments.  Minor code reorganization.
32620
32621 2001-12-17  Gary Dismukes <dismukes@gnat.com>
32622
32623         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
32624         when Java_VM.
32625
32626 2001-12-17  Robert Dewar <dewar@gnat.com>
32627
32628         * exp_attr.adb: Minor reformatting
32629
32630 2001-12-17  Ed Schonberg <schonber@gnat.com>
32631
32632         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
32633         derivations nested within a child unit: verify that the parent
32634         type is declared in an outer scope.
32635
32636 2001-12-17  Robert Dewar <dewar@gnat.com>
32637
32638         * sem_ch12.adb: Minor reformatting
32639
32640 2001-12-17  Ed Schonberg <schonber@gnat.com>
32641
32642         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
32643         warning if current unit is a predefined one, from which bodies may
32644         have been deleted.
32645
32646 2001-12-17  Robert Dewar <dewar@gnat.com>
32647
32648         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
32649         Fix header format. Add 2001 to copyright date.
32650
32651         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
32652         which caused CE during compilation if checks were enabled.
32653
32654 2001-12-17  Vincent Celier <celier@gnat.com>
32655
32656         * make.adb:
32657         (Switches_Of): New function
32658         (Test_If_Relative_Path): New procedure
32659         (Add_Switches): Use new function Switches_Of
32660         (Collect_Arguments_And_Compile): Use new function Switches_Of.
32661         When using a project file, test if there are any relative
32662         search path. Fail if there are any.
32663         (Gnatmake): Only add switches for the primary directory when not using
32664         a project file. When using a project file, change directory to the
32665         object directory of the main project file. When using a project file,
32666         test if there are any relative search path. Fail if there are any.
32667         When using a project file, fail if specified executable is relative
32668         path with directory information, and prepend executable, if not
32669         specified as an absolute path, with the exec directory.  Make sure
32670         that only one -o switch is transmitted to the linker.
32671
32672         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
32673
32674         * prj-nmsc.adb:
32675         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
32676         when using a non standard naming scheme.
32677         (Check_Ada_Naming_Scheme): Make sure that error messages
32678         do not raise exceptions.
32679         (Is_Illegal_Append): Return True if there is no dot in the suffix.
32680         (Language_Independent_Check): Check the exec directory.
32681
32682         * prj.adb (Project_Empty): Add new component Exec_Directory
32683
32684         * prj.ads:
32685         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
32686         (Project_Data): Add component Exec_Directory
32687
32688         * snames.adb: Updated to match snames.ads revision 1.215
32689
32690         * snames.ads: Added Exec_Dir
32691
32692 2001-12-17  Robert Dewar <dewar@gnat.com>
32693
32694         * make.adb: Minor reformatting
32695
32696         * prj-nmsc.adb: Minor reformatting
32697
32698         * snames.adb: Updated to match snames.ads
32699
32700         * snames.ads: Alphebetize entries for project file
32701
32702 2001-12-17  Ed Schonberg <schonber@gnat.com>
32703
32704         * trans.c (process_freeze_entity): Do nothing if the entity is a
32705         subprogram that was already elaborated.
32706
32707 2001-12-17  Richard Kenner <kenner@gnat.com>
32708
32709         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
32710         and Esize if object is referenced via pointer.
32711
32712 2001-12-17  Ed Schonberg <schonber@gnat.com>
32713
32714         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
32715         is discrete before analyzing choices.
32716
32717 2001-12-17  Joel Brobecker <brobecke@gnat.com>
32718
32719         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
32720         containing the name of the Ada Main Program. This string is mainly
32721         intended for the debugger.
32722         (Gen_Output_File_C): Do the equivalent change when generating a C file.
32723
32724 2001-12-17  Robert Dewar <dewar@gnat.com>
32725
32726         * ali.adb: Set new Dummy_Entry field in dependency entry
32727
32728         * ali.ads: Add Dummy_Entry field to source dependency table
32729
32730         * bcheck.adb (Check_Consistency): Ignore dummy D lines
32731
32732         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
32733
32734         * lib-writ.ads: Document dummy D lines for missing files.
32735
32736         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
32737
32738 2001-12-17  Robert Dewar <dewar@gnat.com>
32739
32740         * ali.adb: Type reference does not reset current file.
32741
32742         * ali.adb: Recognize and scan renaming reference
32743
32744         * ali.ads: Add spec for storing renaming references.
32745
32746         * lib-xref.ads: Add documentation for handling of renaming references
32747
32748         * lib-xref.adb: Implement output of renaming reference.
32749
32750         * checks.adb:
32751         (Determine_Range): Document local variables
32752         (Determine_Range): Make sure Hbound is initialized. It looks as though
32753          there could be a real problem here with an uninitialized reference
32754          to Hbound, but no actual example of failure has been found.
32755
32756 2001-12-17  Laurent Pautet <pautet@gnat.com>
32757
32758         * g-socket.ads:
32759         Fix comment of Shutdown_Socket and Close_Socket. These functions
32760         should not fail silently because if they are called twice, this
32761         probably means that there is a race condition in the user program.
32762         Anyway, this behaviour is consistent with the rest of this unit.
32763         When an error occurs, an exception is raised with the error message
32764         as exception message.
32765
32766 2001-12-17  Robert Dewar <dewar@gnat.com>
32767
32768         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
32769         that it happens before modification of Sloc values for -gnatD.
32770
32771         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
32772         so that it happens before modification of Sloc values for -gnatD.
32773
32774         * switch.adb: Minor reformatting
32775
32776 2001-12-15  Richard Henderson  <rth@redhat.com>
32777
32778         * sem_ch7.adb: Wrap comment.
32779
32780 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
32781
32782         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
32783         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
32784         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
32785         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
32786         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
32787         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
32788         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
32789         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
32790         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
32791         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
32792         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
32793         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
32794         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
32795         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
32796         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
32797         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
32798         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
32799         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
32800         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
32801         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
32802         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
32803         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
32804         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
32805         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
32806         spelling errors.
32807
32808 2001-12-14  Vincent Celier <celier@gnat.com>
32809
32810         * osint.adb(Create_Debug_File): When an object file is specified,
32811         put the .dg file in the same directory as the object file.
32812
32813 2001-12-14  Robert Dewar <dewar@gnat.com>
32814
32815         * osint.adb: Minor reformatting
32816
32817         * lib-xref.adb (Output_Instantiation): New procedure to generate
32818         instantiation references.
32819
32820         * lib-xref.ads: Add documentation of handling of generic references.
32821
32822         * ali.adb (Read_Instantiation_Ref): New procedure to read
32823         instantiation references
32824
32825         * ali.ads: Add spec for storing instantiation references
32826
32827         * bindusg.adb: Minor reformatting
32828
32829         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
32830
32831         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
32832
32833         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
32834
32835         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
32836
32837         * csets.ads:
32838         Fix header format
32839         Add 2001 to copyright date
32840         Add entry for Latin-5 (Cyrillic ISO-8859-5)
32841
32842 2001-12-14  Matt Gingell <gingell@gnat.com>
32843
32844         * adaint.c: mktemp is a macro on Lynx and can not be used as an
32845         expression.
32846
32847 2001-12-14  Richard Kenner <kenner@gnat.com>
32848
32849         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
32850         if operand is CONSTRUCTOR.
32851
32852 2001-12-14  Ed Schonberg <schonber@gnat.com>
32853
32854         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
32855         before emiting check on right-hand side, so that exception information
32856         is correct.
32857
32858 2001-12-14  Richard Kenner <kenner@gnat.com>
32859
32860         * utils.c (create_var_decl): Throw away initializing expression
32861         if just annotating types and non-constant.
32862
32863 2001-12-14  Vincent Celier <celier@gnat.com>
32864
32865         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
32866         Default_Ada_...
32867
32868         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
32869         Remove functions.
32870         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
32871
32872         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
32873         Remove functions.
32874         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
32875
32876 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
32877
32878         * ChangeLog: Remove piece of diff output.
32879
32880 2001-12-14  Geert Bosch <bosch@gnat.com>
32881
32882         * config-lang.in: Update copyright notice
32883
32884         * layout.adb: Remove commented out code.
32885
32886         * mdllfile.ads: Update copyright notice. Fix header format.
32887
32888         * sem_case.ads: Likewise.
32889
32890         * sem_ch3.adb: Minor reformatting.
32891
32892 2001-12-12  Geert Bosch <bosch@gnat.com>
32893
32894         * freeze.ads: Update copyright date.
32895
32896         * g-comlin.ads: Minor reformatting.
32897
32898         * gnat-style.texi: Fix typo.
32899
32900 2001-12-12  Geert Bosch <bosch@gnat.com>
32901
32902         *  einfo.h: Regenerate.
32903
32904 2001-12-12  Ed Schonberg <schonber@gnat.com>
32905
32906         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
32907         on known node types, rather than untyped fields. Further cleanups.
32908
32909 2001-12-12  Robert Dewar <dewar@gnat.com>
32910
32911         * sem_ch12.adb:
32912         (Save_Entity_Descendant): Minor comment update.
32913         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
32914          of an N_Attribute_Reference node. As per note below, this does not
32915         eliminate need for Associated_Node in attribute ref nodes.
32916         (Associated_Node): Documentation explicitly mentions attribute
32917         reference nodes, since this field is used in such nodes.
32918
32919         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
32920
32921 2001-12-12  Robert Dewar <dewar@gnat.com>
32922
32923         * s-stalib.adb: Add more comments on with statements being needed
32924
32925         * par-ch12.adb: Minor reformatting
32926
32927         * prj-dect.ads: Fix copyright header
32928
32929         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
32930         inputs fit in 32 bits, but the result still overflows.
32931
32932         * s-fatgen.ads: Minor comment improvement
32933
32934 2001-12-12  Ed Schonberg <schonber@gnat.com>
32935
32936         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
32937         formal derived type, look for an inherited component from the full
32938         view of the parent, if any.
32939
32940 2001-12-12  Robert Dewar <dewar@gnat.com>
32941
32942         * checks.ads (Apply_Alignment_Check): New procedure.
32943
32944         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
32945         ensure that the alignment of objects with address clauses is
32946         appropriate, and raise PE if not.
32947
32948         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
32949         Exp_Pakd.Known_Aligned_Enough
32950
32951         * mdllfile.ads: Minor reformatting
32952
32953         * mlib-fil.ads: Minor reformatting
32954
32955 2001-12-12  Ed Schonberg <schonber@gnat.com>
32956
32957         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
32958         fix to any component reference if enclosing record has non-standard
32959         representation.
32960
32961 2001-12-12  Vincent Celier <celier@gnat.com>
32962
32963         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
32964         Iteration
32965
32966 2001-12-12  Ed Schonberg <schonber@gnat.com>
32967
32968         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
32969         sem_attr.
32970
32971 2001-12-12  Robert Dewar <dewar@gnat.com>
32972
32973         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
32974
32975 2001-12-12  Emmanuel Briot <briot@gnat.com>
32976
32977         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
32978         and it adds dependencies to system.io.
32979
32980 2001-12-12  Pascal Obry <obry@gnat.com>
32981
32982         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
32983         variable name.
32984
32985 2001-12-11  Ed Schonberg <schonber@gnat.com>
32986
32987         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
32988         that is the parent of other generics, the instance body replaces the
32989         instance node.  Retrieve the instance of the spec, which is the one
32990         that is visible in clients and within the body.
32991
32992 2001-12-11  Vincent Celier <celier@gnat.com>
32993
32994         * gnatmain.adb: Initial version.
32995
32996         * gnatmain.ads: Initial version.
32997
32998         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
32999
33000         * snames.adb: Updated to match snames.ads.
33001
33002         * snames.ads: Added Gnatstub.
33003
33004 2001-12-11  Vincent Celier <celier@gnat.com>
33005
33006         * prj-attr.adb (Initialization_Data): Change name from
33007         Initialisation_Data.
33008
33009 2001-12-11  Emmanuel Briot <briot@gnat.com>
33010
33011         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
33012         + and * applied to backslashed expressions like \r.
33013
33014 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
33015
33016         * g-os_lib.ads: String_List type added, Argument_List type is now
33017         subtype of String_List.
33018
33019 2001-12-11  Robert Dewar <dewar@gnat.com>
33020
33021         * g-os_lib.ads: Change copyright to FSF
33022         Add comments for String_List type
33023
33024 2001-12-11  Vincent Celier <celier@gnat.com>
33025
33026         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
33027         string to the buffer).
33028
33029 2001-12-11  Ed Schonberg <schonber@gnat.com>
33030
33031         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
33032         sem_attr.
33033
33034         * sem_attr.adb: Simplify previous fix for Address.
33035         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
33036         to avoid anomalies where the bound of the type appears to raise
33037         constraint error.
33038
33039 2001-12-11  Robert Dewar <dewar@gnat.com>
33040
33041         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
33042         handled.
33043
33044 2001-12-11  Ed Schonberg <schonber@gnat.com>
33045
33046         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
33047         renamed unit before checking for recursive instantiations.
33048
33049 2001-12-11  Emmanuel Briot <briot@gnat.com>
33050
33051         * prj.ads: Add comments for some of the fields.
33052
33053 2001-12-11  Robert Dewar <dewar@gnat.com>
33054
33055         * lib-xref.adb (Output_Refs): Don't output type references outside
33056         the main unit if they are not otherwise referenced.
33057
33058 2001-12-11  Ed Schonberg <schonber@gnat.com>
33059
33060         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
33061         code and diagnose additional illegal uses
33062
33063         * sem_util.adb (Is_Object_Reference): An indexed component is an
33064         object only if the prefix is.
33065
33066 2001-12-11  Vincent Celier <celier@gnat.com>
33067
33068         * g-diopit.adb: Initial version.
33069
33070         * g-diopit.ads: Initial version.
33071
33072         * g-dirope.adb:
33073         (Expand_Path): Avoid use of Unbounded_String
33074         (Find, Wildcard_Iterator): Moved to child package Iteration
33075
33076         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
33077
33078 2001-12-11  Robert Dewar <dewar@gnat.com>
33079
33080         * sem_attr.adb: Minor reformatting
33081
33082 2001-12-11  Ed Schonberg <schonber@gnat.com>
33083
33084         * sem_ch3.adb: Clarify some ???.
33085
33086 2001-12-11  Robert Dewar <dewar@gnat.com>
33087
33088         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
33089         Exp_Pakd.Known_Aligned_Enough
33090
33091         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
33092         version is moved to Exp_Ch13.
33093
33094 2001-12-11  Robert Dewar <dewar@gnat.com>
33095
33096         * einfo.ads: Minor reformatting
33097
33098         * exp_ch5.adb: Add comment for previous.change
33099
33100         * ali.adb: New interface for extended typeref stuff.
33101
33102         * ali.ads: New interface for typeref stuff.
33103
33104         * checks.adb (Apply_Alignment_Check): New procedure.
33105
33106         * debug.adb: Add -gnatdM for modified ALI output
33107
33108         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
33109
33110         * lib-xref.adb: Extend generation of <..> notation to cover
33111         subtype/object types. Note that this is a complete rewrite,
33112         getting rid of the very nasty quadratic algorithm previously
33113         used for derived type output.
33114
33115         * lib-xref.ads: Extend description of <..> notation to cover
33116         subtype/object types. Uses {..} for these other cases.
33117         Also use (..) for pointer types.
33118
33119         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
33120
33121         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
33122         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
33123
33124 2001-12-11  Vincent Celier <celier@gnat.com>
33125
33126         * gnatcmd.adb:
33127         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
33128         Changed /BIND_ONLY to /ACTIONS=BIND
33129         Changed /LINK_ONLY to /ACTIONS=LINK
33130
33131 2001-12-11  Ed Schonberg  <schonber@gnat.com>
33132
33133         * sem_ch8.adb (Find_Selected_Component): improved search for a
33134         candidate package in case of error.
33135
33136         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
33137         chain back on scope stack before reinstalling use clauses.
33138
33139         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
33140         is enabled, do not kill the code for the condition, to preserve
33141         warning.
33142
33143 2001-12-11  Robert Dewar <dewar@gnat.com>
33144
33145         * checks.adb (Insert_Valid_Check): Apply validity check to expression
33146         of conversion, not to result of conversion.
33147
33148 2001-12-11  Ed Schonberg <schonber@gnat.com>
33149
33150         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
33151         before freezing parent. If the declarations are mutually recursive,
33152         an access to the current record type may be frozen before the
33153         derivation is complete.
33154
33155 2001-12-05  Vincent Celier <celier@gnat.com>
33156
33157         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
33158         -c /COMPILE_ONLY, -l /LINK_ONLY
33159
33160         * opt.ads:
33161         (Bind_Only): New Flag
33162         (Link_Only): New flag
33163
33164         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
33165         and -l (Link_Only)
33166
33167         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
33168
33169         * make.adb:
33170         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
33171         (Gnatmake): Set the step flags. Only perform a step if the
33172         corresponding step flag is True.
33173         (Scan_Make_Arg): Reset the bind and link step flags when -u
33174         or -gnatc has been specified.
33175
33176 2001-12-05  Ed Schonberg <schonber@gnat.com>
33177
33178         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
33179         get bounds from right operand.
33180
33181         * sem_eval.adb: Minor reformatting
33182
33183         * exp_util.adb (Make_Literal_Range): use bound of literal rather
33184         than Index'First, its lower bound may be different from 1.
33185
33186         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
33187         and C48009J
33188
33189 2001-12-05  Vincent Celier <celier@gnat.com>
33190
33191         * prj-nmsc.adb Minor reformatting
33192
33193         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
33194         set and libraries are not supported.
33195
33196 2001-12-05  Ed Schonberg <schonber@gnat.com>
33197
33198         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
33199         private view explicitly, so the back-end can treat as a global
33200         when appropriate.
33201
33202 2001-12-05  Ed Schonberg <schonber@gnat.com>
33203
33204         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
33205          unit, always replace instance node with new body, for ASIS use.
33206
33207 2001-12-05  Vincent Celier <celier@gnat.com>
33208
33209         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
33210         libraries are not supported and both attributes Library_Name and
33211         Library_Dir are specified.
33212
33213         * prj-proc.adb (Expression): Set location of Result to location of
33214         first term.
33215
33216         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
33217         (prj-nmsc is now importing MLib.Tgt)
33218
33219         * prj-proc.adb: Put the change indicated above that was forgotten.
33220
33221 2001-12-05  Robert Dewar <dewar@gnat.com>
33222
33223         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
33224
33225 2001-12-05  Ed Schonberg <schonber@gnat.com>
33226
33227         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
33228         constraint, introduce explicit subtype declaration and derive from it.
33229
33230         * sem_ch3.adb: Minor reformatting
33231
33232 2001-12-05  Robert Dewar <dewar@gnat.com>
33233
33234         * checks.adb (Determine_Range): Increase cache size for checks.
33235         Minor reformatting
33236
33237         * exp_ch6.adb: Minor reformatting
33238         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
33239         a parameter whose root type is System.Address, since treating such
33240         subprograms as pure in the code generator is almost surely a mistake
33241         that will lead to unexpected results.
33242
33243         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
33244         change handling of conversions.
33245
33246         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
33247
33248 2001-12-05  Ed Schonberg <schonber@gnat.com>
33249
33250         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
33251         aggregate with static wrong size, attach generated Raise node to
33252         declaration.
33253
33254 2001-12-05  Robert Dewar <dewar@gnat.com>
33255
33256         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
33257         Fixes compilation abandoned bomb in B24009B.
33258
33259 2001-12-05  Ed Schonberg <schonber@gnat.com>
33260
33261         * sem_ch12.adb:
33262         Document use of Associated_Node on Selected_Components.
33263         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
33264         to clarify use of untyped descendant fields.
33265
33266 2001-12-05  Robert Dewar <dewar@gnat.com>
33267
33268         * prj-dect.ads: Add ??? comment
33269         Add 2001 to copyright notice (was not done in after all)
33270
33271         * prj-part.adb: Minor reformatting. Reword one awkward error message.
33272
33273         * prj.ads: Minor reformatting throughout, and add some ??? comments
33274
33275         * snames.ads: Minor reformatting
33276
33277 2001-12-05  Geert Bosch <bosch@gnat.com>
33278
33279         * snames.adb: Autoupdate
33280
33281 2001-12-05  Vincent Celier <celier@gnat.com>
33282
33283         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
33284
33285         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
33286
33287         * prj-env.adb: Minor comment changes (modifying -> extends).
33288
33289         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
33290
33291         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
33292         Tok_Extends.
33293
33294         * prj.adb (Initialize): Change Modifying to Extends.
33295
33296         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
33297
33298         * prj.ads: Minor comment change (Modifying -> extending).
33299
33300         * snames.ads: Change modifying to extends.
33301
33302 2001-12-05  Robert Dewar <dewar@gnat.com>
33303
33304         * sem_warn.adb: Remove stuff for conditionals, we are not going to
33305         do this after all.
33306
33307         * sem_warn.ads: Remove stuff for conditionals, we are not going to
33308         do this after all.  Add 2001 to copyright notice
33309
33310 2001-12-04  Geert Bosch <bosch@gnat.com>
33311
33312         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
33313
33314 2001-12-04  Robert Dewar <dewar@gnat.com>
33315
33316         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
33317         location if we already have errors. Stops some cases of cascaded
33318         errors.
33319
33320         * errout.adb: Improve comment.
33321
33322 2001-12-04  Robert Dewar <dewar@gnat.com>
33323
33324         * sem_ch12.adb:
33325         (Analyze_Formal_Type_Definition): Defend against Error.
33326         (Analyze_Formal_Subprogram): Defend against Error.
33327
33328         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
33329         remove following semicolon if present. Removes cascaded error.
33330
33331 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
33332
33333         * bindgen.adb:
33334         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
33335          exceptions equals 0.
33336         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
33337         Fixes PIWG E tests (which have to be run with -gnatL).
33338
33339 2001-12-04  Robert Dewar <dewar@gnat.com>
33340
33341         * einfo.ads: Minor reformatting
33342
33343 2001-12-04  Ed Schonberg <schonber@gnat.com>
33344
33345         * einfo.ads: Block_Node points to the identifier of the block, not to
33346         the block node itself, to preserve the link when the block is
33347         rewritten, e.g. within an if-statement with a static condition.
33348
33349         * inline.adb (Cleanup_Scopes): recover block statement from block
33350         entity using new meaning of Block_Node.
33351
33352         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
33353         identifier of block node, rather than to node itself.
33354
33355 2001-12-04  Gary Dismukes <dismukes@gnat.com>
33356
33357         * layout.adb:
33358         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
33359         (Discrimify): Go back to setting the Etypes of the selected component
33360         because the Vname component does not exist at this point and will
33361         fail name resolution. Also set Analyzed.
33362         Remove with and use of Sem_Res.
33363
33364 2001-12-04  Arnaud Charlet <charlet@gnat.com>
33365
33366         * Makefile.in: (HIE_SOURCES): add s-fat*.
33367
33368 2001-12-04  Robert Dewar <dewar@gnat.com>
33369
33370         * sem_attr.adb:
33371         (Compile_Time_Known_Attribute): New procedure.
33372         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
33373          proper range check.
33374
33375 2001-12-04  Ed Schonberg <schonber@gnat.com>
33376
33377         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
33378         processing discriminants to diagnose illegal default values.
33379
33380 2001-12-04  Ed Schonberg <schonber@gnat.com>
33381
33382         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
33383         access discriminant within a type extension that constrains its
33384         parent discriminants.
33385
33386 2001-12-04  Ed Schonberg <schonber@gnat.com>
33387
33388         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
33389         is malformed, use instance of Any_Id to allow analysis to proceed.
33390
33391         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
33392         type definition is illegal.
33393         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
33394         misplaced.
33395
33396 2001-12-04  Ed Schonberg <schonber@gnat.com>
33397
33398         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
33399         constants.
33400
33401 2001-12-04  Robert Dewar <dewar@gnat.com>
33402
33403         * errout.adb: Minor reformatting
33404
33405 2001-12-04  Robert Dewar <dewar@gnat.com>
33406
33407         * exp_util.adb: Minor reformatting from last change
33408
33409         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
33410         which is a rewriting of an expression, traverse the original
33411         expression to remove warnings that may have been posted on it.
33412
33413 2001-12-04  Ed Schonberg <schonber@gnat.com>
33414
33415         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
33416         record that has other packed components.
33417
33418 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
33419
33420         * adaint.c: Minor cleanups.
33421
33422 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
33423
33424         * adaint.c: Do not use utime.h on vxworks.
33425
33426 2001-12-04  Arnaud Charlet <charlet@gnat.com>
33427
33428         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
33429         more confusion than it solves.
33430
33431 2001-12-04  Geert bosch <bosch@gnat.com>
33432
33433         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
33434
33435 2001-12-04  Geert Bosch  <bosch@gnat.com>
33436
33437         * Makefile.in (update-sources): New target.
33438         For use by gcc_release script.
33439
33440 2001-12-04  Ed Schonberg <schonber@gnat.com>
33441
33442         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
33443         a configuration pragma, it is now legal wherever a pragma can appear.
33444
33445 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
33446
33447         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
33448         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
33449         is now @CROSS@ -DIN_GCC; update comment.
33450
33451 2001-12-04  Robert Dewar <dewar@gnat.com>
33452
33453         * einfo.adb (Has_Pragma_Pure_Function): New flag.
33454         Fix problem that stopped ceinfo from working
33455
33456         * einfo.ads (Has_Pragma_Pure_Function): New flag.
33457
33458         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
33459
33460 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
33461
33462         * gnatchop.adb:
33463         (File_Time_Stamp): New procedure.
33464         (Preserve_Mode): New boolean.
33465         (Write_Unit): Pass time stamp.
33466         Implement -p switch (preserve time stamps).
33467
33468         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
33469
33470         * gnatchop.adb: Do usage info for -p switch
33471
33472         * adaint.h (__gnat_set_file_time_name): New function
33473
33474         * adaint.c (__gnat_set_file_time_name): Implement
33475
33476         * adaint.h: Fix typo
33477
33478 2001-12-03  Robert Dewar <dewar@gnat.com>
33479
33480         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
33481         have Associated_Node.
33482
33483 2001-12-03  Robert Dewar <dewar@gnat.com>
33484
33485         * prj-proc.adb: Minor reformatting
33486
33487         * make.adb: Minor reformatting
33488
33489 2001-12-03  Geert Bosch <bosch@gnat.com>
33490
33491         * make.adb: Minor reformatting.
33492
33493 2001-12-03 Robert Dewar  <dewar@gnat.com>
33494
33495         * sem_ch12.adb: Minor reformatting
33496
33497 2001-12-03  Ed Schonberg <schonber@gnat.com>
33498
33499         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
33500         push Standard on the stack before analyzing the instance body,
33501         in order to have a clean visibility environment.
33502
33503         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
33504
33505 2001-12-03  Ed Schonberg <schonber@gnat.com>
33506
33507         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
33508         instantiation of a body that contains an inlined body.
33509
33510 2001-12-03  Ed Schonberg <schonber@gnat.com>
33511
33512         * sem_ch12.adb:
33513         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
33514         to prevent freezing within formal packages.
33515         (Freeze_Subprogram_Body): If body comes from another instance that
33516         appeared before its own body, place freeze node at end of current
33517         declarative part, to prevent a back-end crash.
33518         (Inline_Instance_Body): Handle properly a package instance within
33519         a subprogram instance that is a child unit.
33520
33521 2001-12-01  Graham Stott  <grahams@redhat.com>
33522
33523         * Makefile.in (misc.o): Add missing $(srcdir) prefix
33524         and add optabs.h dependency.
33525
33526         * misc.c: Include optabs.h
33527         (gnat_tree_code_type): Make static and const.
33528         (gnat_tree_code_length): Likewise.
33529         (gnat_tree_code_name): Likewise.
33530         (update_setjmp_buf): Obtain operands mode from insn_data.
33531
33532 2001-11-29  Richard Henderson  <rth@redhat.com>
33533
33534         * init.c: Remove obsolete dwarf2 frame.h section.
33535
33536 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
33537
33538         * Make-lang.in (ada.generated-manpages): New dummy target.
33539
33540 2001-11-29  Ed Schonberg <schonber@gnat.com>
33541
33542         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
33543         into Command, an array conversion is illegal here. Uncovered by
33544         ACATS B460005.
33545
33546 2001-11-28  Geert Bosch <bosch@gnat.com>
33547
33548         * init.c: Minor whitespace changes.
33549
33550 2001-11-28  Doug Rupp <rupp@gnat.com>
33551
33552         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
33553         signal stack.
33554
33555 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
33556
33557         * misc.c (gnat_expand_constant): Move declaration above
33558         definition of lang_hooks.
33559         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
33560         (gnat_init): lang_expand_constant no longer exists.
33561
33562         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
33563         always have vprintf.
33564         (gnat_init): Always call set_internal_error_function.
33565
33566 2001-11-27  Andreas Jaeger  <aj@suse.de>
33567
33568         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
33569
33570 2001-11-27  Laurent Guerby  <guerby@acm.org>
33571
33572         * Makefile.in: Regenerate Ada dependencies.
33573
33574 2001-11-26  Richard Henderson  <rth@redhat.com>
33575
33576         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
33577         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
33578         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
33579
33580 2001-11-25  Laurent Guerby  <guerby@acm.org>
33581
33582         * sysdep.c (rts_get_*): Fix style.
33583
33584 2001-11-19  Laurent Guerby  <guerby@acm.org>
33585
33586         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
33587         since it is of no apparent use and cause warnings.
33588
33589 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
33590
33591         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
33592         static too.
33593         (gnat_init): Don't return NULL.
33594         (finish_parse): Remove.
33595
33596 2001-11-17  Laurent Guerby  <guerby@acm.org>
33597
33598         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
33599         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
33600         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
33601         * lang-spec.h: Add missing struct field to silence warnings.
33602         * sysdep.c (rts_get_*): Provide K&R prototype.
33603         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
33604         * traceback.c (Unlock_Task, Lock_Task): Likewise.
33605         * tracebak.c (__gnat_backtrace): Remove unused variable.
33606         * utils.c (end_subprog_body): Move to K&R style.
33607
33608 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33609
33610         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
33611
33612 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
33613
33614         * misc.c (gnat_init): Change prototype.  Include the
33615         functionality of the old init_parse and init_decl_processing.
33616         (gnat_init_decl_processing): New prototype.
33617         (init_parse): Remove.
33618         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
33619
33620 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
33621
33622         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
33623         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
33624         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
33625         set_yydebug): Remove.
33626
33627 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
33628
33629         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
33630         (struct lang_hooks): Constify.
33631         (language_string, lang_identify): Remove.
33632         * utils.c (init_decl_processing): Update.
33633
33634 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
33635
33636         * misc.c: Include langhooks-def.h.
33637         * Makefile.in: Update.
33638
33639 2001-10-30  Robert Dewar <dewar@gnat.com>
33640
33641         * style.adb:
33642         (Check_Identifier): Rewrite circuit to be compatible with use of letters
33643         in the upper half of ASCII.
33644         (Check_Identifier): Minor reformatting
33645
33646 2001-10-30  Geert Bosch <bosch@gnat.com>
33647
33648         * (Associated_Node, Set_Associated_Node): Do not check for
33649         Freeze_Entity.
33650
33651 2001-10-30  Robert Dewar <dewar@gnat.com>
33652
33653         * a-reatim.ads: Minor reformatting
33654
33655 2001-10-30  Robert Dewar <dewar@gnat.com>
33656
33657         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
33658         undocumented declarations.
33659
33660 2001-10-30  Pascal Obry <obry@gnat.com>
33661
33662         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
33663         to the binder and linker.
33664         Minor style fix.
33665
33666         * mdll.ads: Fix layout.  Update copyright notice.
33667
33668         * mdll.adb: Fix layout.  Update copyright notice.
33669
33670 2001-10-30  Robert Dewar <dewar@gnat.com>
33671
33672         * usage.adb: Minor fix to output for -gnaty.
33673
33674 2001-10-30  Ed Schonberg <schonber@gnat.com>
33675
33676         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
33677         to accommodate all its possible values.
33678
33679         * a-reatim.adb (Split): Special-case handling of Time_Span_First
33680         and of small absolute values of T.
33681
33682 2001-10-30  Richard Kenner <kenner@gnat.com>
33683
33684         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
33685         set_mem_attributes since not needed and wrong if RESULT if a REG;
33686         fixes ACATS failures.
33687
33688 2001-10-30  Geert Bosch <bosch@gnat.com>
33689
33690         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
33691         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
33692
33693 2001-10-30  Robert Dewar <dewar@gnat.com>
33694
33695         * bindusg.adb: Undocument -f switch.
33696
33697         * gnatcmd.adb: Remove /FULL_ELABORATION.
33698
33699         * opt.ads (Force_RM_Elaboration_Order): Document that this is
33700         obsolescent.
33701
33702         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
33703
33704         * gnatbind.adb: Minor update of warning msg.
33705
33706 2001-10-30  Vincent Celier <celier@gnat.com>
33707
33708         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
33709         for project file switches (-P (/PROJECT_FILE=),
33710          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
33711         or MEDIUM or HIGH)
33712
33713 2001-10-30  Geert Bosch <bosch@gnat.com>
33714
33715         * decl.c: Minor whitespace fixes.
33716
33717 2001-10-30  Richard Kenner <kenner@gnat.com>
33718
33719         * utils2.c (build_allocator): Test for SIZE overflow in array case too
33720
33721 2001-10-30  Geert Bosch <bosch@gnat.com>
33722
33723         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
33724         Found due to GCC 3.0 warning of using uninitialized value.
33725
33726         * layout.adb:
33727         (Get_Max_Size): Use variant record for tracking value/expression.
33728          Makes logic clearer and prevents warnings for uninitialized variables.
33729         (Layout_Array_Type): Use variant record for tracking value/expression.
33730          Makes logic clearer and prevents warnings for uninitialized variables.
33731
33732 2001-10-30  Robert Dewar <dewar@gnat.com>
33733
33734         * lib.adb: Minor reformatting
33735
33736         * s-taprop.ads: Minor reformatting
33737
33738 2001-10-29  Laurent Guerby  <guerby@acm.org>
33739
33740         * init.c:
33741         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
33742         const.
33743         (_gnat_error_handler): Make MSG const.
33744
33745 2001-10-29  Richard Kenner <kenner@gnat.com>
33746
33747         * sysdep.c: Fix localtime_r problem on LynxOS.
33748         Also remove #elif to avoid warnings.
33749
33750         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
33751         used by this.
33752
33753         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
33754
33755 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
33756
33757         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
33758         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
33759         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
33760         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
33761         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
33762         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
33763         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
33764         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
33765         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
33766         types.ads, urealp.adb: Fix spelling errors.
33767
33768 2001-10-27  Laurent Guerby <guerby@acm.org>
33769
33770         * trans.c (gigi): Fix non determinism leading to bootstrap
33771         comparison failures for debugging information.
33772
33773 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
33774
33775         * gnat_rm.texi: Use @./@: where appropriate.
33776
33777 2001-10-26  Robert Dewar <dewar@gnat.com>
33778
33779         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
33780
33781 2001-10-26  Richard Kenner <kenner@gnat.com>
33782
33783         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
33784
33785 2001-10-26  Richard Kenner <kenner@gnat.com>
33786
33787         * decl.c (validate_size): Modify message for bad size to avoid
33788         implication that compiler is modifying the size.
33789
33790 2001-10-26  Robert Dewar <dewar@gnat.com>
33791
33792         * prj-util.adb: Minor reformatting. Fix bad header format.
33793
33794 2001-10-26  Robert Dewar <dewar@gnat.com>
33795
33796         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
33797
33798         * sinfo.ads: Clarify use of Associated_Node (documentation only).
33799
33800         * sem_ch12.adb: Change Node4 to Associated_Node. Change
33801         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
33802         much more narrowly in places where needed. These are cleanups.
33803
33804 2001-10-26  Joel Brobecker <brobecke@gnat.com>
33805
33806         * 5zosinte.ads (null_pthread): new constant.
33807
33808         * 5ztaprop.adb:
33809         (Initialize_TCB): Initialize thread ID to null, to be able to verify
33810          later that this field has been set.
33811         (Finalize_TCB): ditto.
33812         (Suspend_Task): Verify that the thread ID is not null before using it.
33813         (Resume_Task): ditto.
33814
33815         * s-tasdeb.adb:
33816         (Resume_All_Tasks): Lock the tasks list before using it.
33817         (Suspend_All_Tasks): ditto.
33818
33819 2001-10-26  Richard Kenner <kenner@gnat.com>
33820
33821         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
33822         Make constant variant of designated type for Is_Access_Constant.
33823         Call update_pointer_to with main variant.
33824
33825         * trans.c (process_freeze_entity, process_type):
33826         Call update_pointer_to on main variant.
33827
33828         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
33829         If main variant, update all other variants.
33830
33831         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
33832         TREE_STATIC.
33833
33834 2001-10-26  Robert Dewar <dewar@gnat.com>
33835
33836         * prj-util.adb: Minor reformatting
33837
33838 2001-10-26  Robert Dewar <dewar@gnat.com>
33839
33840         * prj-util.adb: Minor reformatting
33841
33842 2001-10-26  Robert Dewar <dewar@gnat.com>
33843
33844         * prj-attr.adb: Minor reformatting throughout
33845
33846 2001-10-26  Robert Dewar <dewar@gnat.com>
33847
33848         * prj-attr.ads: Minor reformatting
33849         Add ??? comment (this whole spec has almost no comments)
33850
33851 2001-10-26  Vincent Celier <celier@gnat.com>
33852
33853         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
33854         ("//") that precede the drive letter on Interix.
33855
33856 2001-10-26  Geert Bosch <bosch@gnat.com>
33857
33858         * gnat_rm.texi: Add GNAT Reference Manual.
33859
33860 2001-10-25  Robert Dewar <dewar@gnat.com>
33861
33862         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
33863         is Error. Similar change for other renaming cases.
33864
33865 2001-10-25  Robert Dewar <dewar@gnat.com>
33866
33867         * s-atacco.ads: Add pragma Inline_Always for functions.
33868         Fix header format. Add copyright 2001
33869
33870 2001-10-25  Ed Schonberg <schonber@gnat.com>
33871
33872         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
33873         return Error rather than Empty so that analysis can proceed.
33874
33875 2001-10-25  Ed Schonberg <schonber@gnat.com>
33876
33877         * sem_util.adb (Enter_Name): better handling of cascaded error
33878         messages when a unit appears in its own context.
33879
33880 2001-10-25  Ed Schonberg <schonber@gnat.com>
33881
33882         * sem_util.adb (Defining_Entity): in case of error, attach created
33883         entity to specification, so that semantic analysis can proceed.
33884
33885 2001-10-25  Robert Dewar <dewar@gnat.com>
33886
33887         * sem_util.adb
33888         (Defining_Entity): Deal with Error.
33889         (Process_End_Label): Deal with bad end label for.
33890
33891 2001-10-25  Ed Schonberg <schonber@gnat.com>
33892
33893         * sem_elab.adb (Check_A_Call): refine message when call is in an
33894         instance but callee is not declared in the generic unit.
33895
33896 2001-10-25  Ed Schonberg <schonber@gnat.com>
33897
33898         * sem_elab.adb (Check_A_Call): check for renaming before finding the
33899         enclosing unit, which may already be different from the calling unit.
33900
33901 2001-10-25  Geert Bosch <bosch@gnat.com>
33902
33903         * 4gintnam.ads: fix header format.
33904
33905 2001-10-25  Ed Schonberg <schonber@gnat.com>
33906
33907         * sem_res.adb (Resolve_Call): if the call is actually an indexing
33908         operation on the result of a parameterless call, perform elaboration
33909         check after the node has been properly rewritten.
33910
33911         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
33912         inlined within the generic tree, the defining identifier is not a
33913         compilation_unit.
33914
33915 2001-10-25  Ed Schonberg <schonber@gnat.com>
33916
33917         * sem_res.adb (Resolve): special-case resolution of Null in an
33918          instance or an inlined body to avoid view conflicts.
33919
33920         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
33921          compatibility by retrieving the access type of the generic copy.
33922
33923 2001-10-25  Robert Dewar <dewar@gnat.com>
33924
33925         * sem_ch3.adb:
33926         (Analyze_Number_Declaration): Handle error expression.
33927         (Signed_Integer_Type_Declaration): Handle error bound.
33928         (Analyze_Subtype_Indication): Handle error range.
33929
33930         * sem_util.adb (Get_Index_Bounds): Check for Error.
33931
33932 2001-10-25  Robert Dewar <dewar@gnat.com>
33933
33934         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
33935         in no run time mode.
33936
33937 2001-10-25  Pascal Obry <obry@gnat.com>
33938
33939         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
33940         mode case for ALLOC case.
33941
33942         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
33943         all platforms. Improvement of last change.
33944
33945 2001-10-25  Robert Dewar <dewar@gnat.com>
33946
33947         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
33948
33949 2001-10-25  Geert Bosch  <bosch@gnat.com>
33950
33951         * osint.adb (Is_Relative): Remove duplicate.
33952
33953 2001-10-25  Pascal Obry <obry@gnat.com>
33954
33955         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
33956         pathnames in UNIX and DOS style with drive letter.
33957         (Is_Relative): new routine.
33958
33959         * osint.adb: Minor reformatting
33960
33961         * osint.adb (Is_Relative): implementation using
33962         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
33963
33964 2001-10-25  Pascal Obry <obry@gnat.com>
33965
33966         * g-dirope.adb (Basename): correctly compute offset between the
33967         original Path and the translated one.
33968
33969         * g-dirope.adb: (Base_Name): add some comments.
33970
33971 2001-10-25  Robert Dewar <dewar@gnat.com>
33972
33973         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
33974         in HIE mode, avoids compilation abandoned message
33975
33976         * exp_imgv.adb: Correct typo in previous change
33977
33978         * exp_imgv.adb: Correct typo in previous change (not my day!)
33979
33980 2001-10-25  Robert Dewar <dewar@gnat.com>
33981
33982         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
33983
33984 2001-10-25  Pascal Obry <obry@gnat.com>
33985
33986         * g-awk.ads: Move all pragma inlines next to the routine
33987          declarations. This is more uniform with other GNAT spec.
33988
33989 2001-10-22  Geert Bosch  <bosch@gnat.com>
33990
33991         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
33992
33993 2001-10-19  Geert Bosch  <bosch@gnat.com>
33994
33995         * Makefile.in (tools, gnattools): Remove gnatmem.
33996
33997 2001-10-17  Richard Henderson  <rth@redhat.com>
33998
33999         * Makefile.in (misc.o): Depend on langhooks.h.
34000         * misc.c: Include it.
34001         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
34002         (LANG_HOOKS_DECODE_OPTION): New.
34003         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
34004
34005 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
34006
34007         * trans.c (tree_transform): Adjust to recent change in
34008         expand_asm_operands to implement named asm operands.
34009
34010 2001-10-11  Ed Schonberg  <schonber@gnat.com>
34011
34012         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
34013         renaming of discriminant for mutable record type.
34014
34015 2001-10-11  Robert Dewar  <dewar@gnat.com>
34016
34017         * validsw.adb: Properly save -gnatVn status.
34018
34019 2001-10-11  Robert Dewar <dewar@gnat.com>
34020
34021         * usage.adb: Add lines for V switch.
34022
34023         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
34024         (/VALIDITY_CHECKING).
34025
34026 2001-10-11  Ed Schonberg <schonber@gnat.com>
34027
34028         * sem_type.adb (Add_One_Interp): an operator for a type declared in
34029         an extension of System is known to be visible.
34030
34031 2001-10-11  Ed Schonberg <schonber@gnat.com>
34032
34033         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
34034         properly. Fixes regression on ACATS C34005G.
34035
34036 2001-10-11  Robert Dewar <dewar@gnat.com>
34037
34038         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
34039         loop in generic instance, since this is likely not very useful.
34040
34041 2001-10-11  Robert Dewar <dewar@gnat.com>
34042
34043         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
34044         the error message for high integrity mode.
34045
34046         * rtsfind.adb (RTE): Give message if we try to find an entity that
34047         is not available in high integrity mode.
34048
34049         * rtsfind.ads:
34050         (OK_To_Use_In_HIE_Mode): New array.
34051         (RTE): May return Empty in high integrity mode.
34052
34053         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
34054         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
34055
34056         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
34057         unit if not inlined always and in no runtime mode. Fixes problem
34058         caused by new Rtsfind changes.
34059
34060         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
34061         body is deleted.
34062
34063         * rtsfind.adb (RTE): Make sure we do not try to load unit after
34064         giving message for entity not available in high integrity mode.
34065
34066 2001-10-11  Pascal Obry <obry@gnat.com>
34067
34068         * impunit.adb: Add GNAT.CRC32.
34069
34070 2001-10-11  Ed Schonberg <schonber@gnat.com>
34071
34072         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
34073         properly the case where one universal operand in a non-static
34074         exponentiation of a real literal.
34075
34076 2001-10-11  Ed Schonberg <schonber@gnat.com>
34077
34078         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
34079         clause, return the gobal finalization list, for lack of anthing else.
34080
34081 2001-10-11  Ed Schonberg <schonber@gnat.com>
34082
34083         * exp_ch7.adb (Make_Transient_Block): if statement is within
34084         exception handler, always use new transient scope to place Clean
34085         procedure.
34086
34087 2001-10-11  Pascal Obry <obry@gnat.com>
34088
34089         * Makefile.in:
34090         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
34091         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
34092         (GNATLS_RTL_OBJS): add g-crc32.o
34093         (GNATMAKE_RTL_OBJS): add g-crc32.o
34094
34095         * ali-util.adb:
34096         (CRC_Match): new function.
34097         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
34098         instead of the previous simple checksum algorithm.
34099         (Time_Stamp_Mismatch): use CRC_Match for comparison.
34100         (Set_Source_Table): idem.
34101
34102         * ali-util.ads:
34103         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
34104         instead of simple checksum.
34105         (CRC_Match): new function.
34106         (CRC_Error): new constant.
34107
34108         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
34109         a CRC now and not a simple checksum. A CRC uses lower-case hex
34110         letters, fixes ambiguity in parsing.
34111
34112         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
34113         is what this variable will store.
34114
34115         * bcheck.adb: Change reference to chechsum in comments by CRC.
34116         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
34117         rename All_Checksum_Match to All_CRC_Match. Change due to API
34118         renaming since now GNAT does not use a simple checksum but a
34119         CRC using GNAT.CRC32.
34120
34121         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
34122         now and not anymore a simple checksum.
34123
34124         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
34125         places.
34126
34127         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
34128
34129         * scans.adb:
34130         (Restore_Scan_State): rename Checksum to CRC.
34131         (Save_Scan_State): idem.
34132
34133         * scans.ads:
34134         With GNAT.CRC32.
34135         (Checksum): rename to CRC.
34136         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
34137
34138         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
34139         GNAT.CRC32).  Update copyright notice.
34140
34141         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
34142         GNAT.CRC32).  Update copyright notice.
34143
34144         * scn.adb:
34145         (Accumulate_Checksum): removed.
34146         (Update): new procedure. Add a wide-character into the CRC.
34147
34148         * sinput-l.adb:
34149         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
34150         (Load_File): fix initialization of S (change Source_Checksum to
34151         Source_CRC)
34152
34153         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
34154         Source_CRC in S initialization.
34155
34156         * sinput.adb (Source_Checksum): renamed to Source_CRC.
34157
34158         * sinput.ads (Source_Checksum): renamed to Source_CRC.
34159         Update comments for the CRC.
34160
34161         * types.adb (Hex): Use lowercase for the letter part.
34162
34163         * types.ads (Get_Hex_String): Returns the hexadecimal representation
34164         for a word. This is currently used only for CRC. In previous version,
34165         the checksum was using a representation with all letter being
34166         upper-case. With the new implementation (using CRC) we do not remove
34167         the 32th bit of the CRC, so we can have an upper-case starting letter
34168         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
34169         It is ambigous since the CRC was optional and could be followed by
34170         options like EB, EE. So now this routines uses lower-case letter for
34171         the hexadecimal representation. Strange enough only lower case letters
34172         where checked in Scan_ALI (even if this was not a possible case).
34173
34174         * gnatvsn.ads (Library_Version): changed to 3.15a.
34175
34176         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
34177         for the compiler.
34178
34179         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
34180         for the compiler.
34181
34182         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
34183         Add 2001 to copyright notice
34184         (Accumulate_Checksum): Modify to use System.CRC32.
34185
34186         * ali-util.ads: Redo changes of previous revision to continue to use
34187         the word Checksum. Add 2001 to copyright notice.
34188
34189         * ali.adb: Undo some of previous changes, not needed.
34190         Keep the change for lower case letters in the checksum.
34191
34192         * ali.ads: Undo previous change not needed.
34193
34194         * bcheck.adb: Undo most of previous change, not needed.
34195         But do use Checksums_Match for checksum comparison.
34196
34197         * gnatls.adb: Undo most of previous change, not needed.
34198         But do use Checksums_Match for comparing checksums.
34199
34200         * lib-load.adb: Undo previous change, not needed.
34201
34202         * lib-writ.adb: Undo previous change, not needed.
34203
34204         * lib-writ.ads: Document that checksums use lower case,
34205         not upper case letters.
34206
34207         * scans.adb: Undo previous change, not needed
34208
34209         * scans.ads: Undo previous change, not needed.
34210
34211         * scn-nlit.adb: Undo previous changes, not needed.
34212
34213         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
34214
34215         * scn.adb:
34216         (Accumulate_Checksum): Use System.CRC32.
34217         (Initialize_Checksum): New procedure.
34218         Remove other changes of previous revision.
34219
34220         * sinput-p.adb: Undo previous change, not needed.
34221
34222         * sinput.adb: Undo previous change, not needed.
34223
34224         * sinput-l.adb: Undo previous change, not needed.
34225
34226         * sinput.ads: Undo previous change, not needed.  Keep only comment
34227         on new checksum algorithm
34228
34229         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
34230         Also remove a-tags and a-stream from GNAT sources.
34231
34232         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
34233
34234         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
34235
34236 2001-10-11  Geert Bosch  <bosch@gnat.com>
34237
34238         * einfo.h: Regenerate.
34239
34240         * nmake.ads: Regenerate.
34241
34242         * nmake.adb: Regenerate.
34243
34244         * sinfo.h: Regenerate.
34245
34246         * treeprs.adb: Regenerate.
34247
34248 2001-10-10  Geert Bosch  <bosch@gnat.com>
34249
34250         * gnat-style.texi: New file describing coding guidelines for Ada.
34251
34252 2001-10-10  Ed Schonberg <schonber@gnat.com>
34253
34254         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
34255         is Flag174.
34256
34257 2001-10-10  Geert Bosch  <bosch@gnat.com>
34258
34259         * snames.ads: Add new names for project facility.
34260
34261         * snames.adb: Update to reflect snames.ads changes.
34262
34263         * snames.h: Update to reflect snames.ads changes.
34264
34265 2001-10-10  Vincent Celier <celier@gnat.com>
34266
34267         * make.adb:
34268         (Add_Switches): reflect the changes for the switches attributes
34269         Default_Switches indexed by the programming language,
34270         Switches indexed by the file name.
34271         (Collect_Arguments_And_Compile): Idem.
34272         Reflect the attribute name changes.
34273
34274         * prj-attr.adb:
34275         (Initialisation_Data): Change the names of some packages and
34276         attributes.
34277         (Initialize): process case insensitive associative arrays.
34278
34279         * prj-attr.ads:
34280         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
34281
34282         * prj-dect.adb:
34283         (Parse_Attribute_Declaration): For case insensitive associative
34284          arrays, set the index string to lower case.
34285
34286         * prj-env.adb:
34287         Reflect the changes of the project attributes.
34288
34289         * prj-nmsc.adb:
34290         Replace Check_Naming_Scheme by Ada_Check and
34291         Language_Independent_Check.
34292
34293         * prj-nmsc.ads:
34294         Replaced Check_Naming_Scheme by 2 procedures:
34295         Ada_Check and Language_Independent_Check.
34296
34297         * prj-proc.adb:
34298         (Process_Declarative_Items): For case-insensitive associative
34299         arrays, set the index string to lower case.
34300         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
34301         Prj.Nmsc.Check_Naming_Scheme.
34302
34303         * prj-tree.adb:
34304         (Case_Insensitive): New function
34305         (Set_Case_Insensitive): New procedure
34306
34307         * prj-tree.ads:
34308         (Case_Insensitive): New function
34309         (Set_Case_Insensitive): New procedure
34310         (Project_Node_Record): New flag Case_Insensitive.
34311
34312         * prj-util.adb:
34313         (Value_Of): new function to get the string value of a single
34314         string variable or attribute.
34315
34316         * prj-util.ads:
34317         (Value_Of): new function to get the string value of a single
34318         string variable or attribute.
34319
34320         * prj.adb:
34321         (Ada_Default_Spec_Suffix): New function
34322         (Ada_Default_Impl_Suffix): New function
34323         Change definitions of several constants to reflect
34324         new components of record types.
34325
34326         * prj.ads:
34327         (Naming_Data): Change several components to reflect new
34328         elements of naming schemes.
34329         (Project_Data): New flags Sources_Present and
34330         Language_Independent_Checked.
34331         (Ada_Default_Spec_Suffix): New function.
34332         (Ada_Default_Impl_Suffix): New function.
34333
34334         * snames.ads:
34335         Modification of predefined names for project manager: added
34336         Implementation, Specification_Exceptions, Implementation_Exceptions,
34337         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
34338         Default_Switches, _Languages, Builder, Cross_Reference,
34339         Finder. Removed Body_Part, Specification_Append, Body_Append,
34340         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
34341         Gnatlink.
34342
34343         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
34344         Add comments.
34345
34346         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
34347         not that it is Nil_Variable_Value.
34348
34349         * prj.ads: Add ??? for uncommented declarations
34350
34351 2001-10-10  Ed Schonberg <schonber@gnat.com>
34352
34353         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
34354         constant, do not indicate possible modification, so that gigi can
34355         treat it as a bona fide constant.
34356
34357 2001-10-10  Robert Dewar <dewar@gnat.com>
34358
34359         * sem_prag.adb: Add processing for pragma External.
34360
34361         * snames.ads: Add entry for pragma External.
34362
34363         * par-prag.adb: Add pragma External.
34364
34365         * snames.adb: Updated to match snames.ads.
34366
34367 2001-10-10  Ed Schonberg <schonber@gnat.com>
34368
34369         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
34370         a dynamic task if the allocator appears in an indexed assignment
34371         or selected component assignment.
34372
34373         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
34374         For a dynamic task in an assignment statement, use target of
34375         assignment to generate meaningful name.
34376
34377 2001-10-10  Ed Schonberg <schonber@gnat.com>
34378
34379         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
34380         a generic package.
34381
34382         * einfo.ads: Body_Entity is also defined for generic package.
34383         Documentation change only
34384
34385         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
34386         others_choice for a discriminated component initialization,
34387         convert discriminant references into the corresponding discriminals.
34388
34389         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
34390         only if original type is private and expression has to be wrapped
34391         in a conversion.
34392
34393         * checks.adb:
34394         (Apply_Constraint_Check): Do not perform length check
34395         if expression is an aggregate with only an others_choice.
34396         (Length_N_Cond): two references to the same in_parameter
34397         (typically the discriminal in an init_proc) denote the same value.
34398         Two useful optimization uncovered by bugfixes above.
34399
34400 2001-10-10  Robert Dewar <dewar@gnat.com>
34401
34402         * xeinfo.adb: Change int to char in translation of enumeration types.
34403         This fixes a problem in the C representation of component alignment.
34404         Add 2001 to copyright notice
34405
34406 2001-10-10  Richard Kenner <kenner@gnat.com>
34407
34408         * decl.c: (validate_size): Do check size of object of integral type
34409         if it is a packed array type.
34410
34411 2001-10-10  Richard Kenner <kenner@gnat.com>
34412
34413         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
34414         VAR_DECL for constant if not Is_Public but -O0.
34415
34416 2001-10-10  Richard Kenner  <kenner@gnat.com>
34417
34418         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
34419
34420 2001-10-10  Geert Bosch  <bosch@gnat.com>
34421
34422         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
34423         use '/' as switch character, allowing for absolute file names.
34424
34425 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
34426
34427         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
34428         FSF address.
34429
34430 2001-10-08  Geert Bosch  <bosch@gnat.com>
34431
34432         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
34433         Automatically build utilities when files need to be regenerated.
34434
34435 2001-10-08  Geert Bosch  <bosch@gnat.com>
34436
34437         * xsnames.adb: New utility for updating snames.ads and snames.adb
34438
34439 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
34440
34441         * Make-lang.in (ADAFLAGS): Add -W -Wall.
34442         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
34443         (gnat1): Also depend on attribs.o.
34444         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
34445         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
34446         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
34447         (ADAFLAGS): Add -W -Wall.
34448         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
34449         take out CFLAGS.
34450
34451         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
34452         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
34453         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
34454         Use $(ADAC), not $(CC), as compilation command.
34455
34456         (gnattools): Depend directly on tools to build, don't use
34457         recursive make.
34458         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
34459
34460         * einfo.h, sinfo.h: New files (autogenerated).
34461
34462 2001-10-08  Richard Henderson  <rth@redhat.com>
34463
34464         * comperr.adb (Abort_In_Progress): New.
34465         (Compiler_Abort): Use it to prevent recursion.
34466
34467 2001-10-08  Robert Dewar <dewar@gnat.com>
34468
34469         * atree.adb: Set Error_Posted in Error node, helps error recovery.
34470
34471         * par-endh.adb (Output_End_Expected): We should also not test
34472         Error_Posted on the Error node, since now it is always set.
34473
34474         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
34475         to help error recovery. Part of general work on 9407-004.
34476
34477         * par.adb: Add ??? for misuse of error
34478
34479         * sem_res.adb:
34480         (Resolve): Defend against Error, fixes 9407-003.
34481         (Resolve_Discrete_Subtype_Indication): Defend against Error.
34482
34483         * sinfo.ads (N_Error): Now has Etype field (which will be set
34484         to Any_Type to help error recovery).
34485
34486 2001-10-08  Richard Kenner (kenner@gnat.com)
34487
34488         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
34489         Consistently set MEM attributes from expression; fixes
34490         bootstrap failure on x86.
34491
34492 2001-10-08  Geert Bosch  (bosch@gnat.com)
34493
34494         * 5oosinte.adb: Add 2001 to copyright notice.
34495
34496 2001-10-08  Geert Bosch  (bosch@gnat.com)
34497
34498         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
34499
34500         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
34501
34502 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
34503
34504         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
34505
34506 2001-10-05  Geert Bosch  (bosch@gnat.com)
34507
34508         * adaint.h: Small formatting fix.
34509
34510 2001-10-04  Geert Bosch  <bosch@gnat.com>
34511
34512         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
34513         Arg is int, not FILE *, in dummy version of functions.
34514
34515         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
34516         Arg is int, not FILE *.
34517
34518 2001-10-04  Geert Bosch  <bosch@gnat.com>
34519
34520         * 3lsoccon.ads: Added file, missed with initial check ins.
34521
34522         * 4lintnam.ads: Fix header format.
34523         Change Linux to GNU/Linux.
34524
34525         * 5iosinte.adb: Change Linux to GNU/Linux.
34526
34527         * 5iosinte.ads: Change Linux to GNU/Linux.
34528
34529         * 5itaprop.adb: Change Linux to GNU/Linux.
34530
34531         * 5itaspri.ads: Change Linux to GNU/Linux.
34532         Update copyright notice.
34533
34534         * 5lintman.adb: Change Linux to GNU/Linux.
34535
34536         * 5lml-tgt.adb: Change Linux to GNU/Linux.
34537
34538         * 5losinte.ads: Change Linux to GNU/Linux.
34539
34540         * 5lsystem.ads: Change Linux to GNU/Linux.
34541
34542         * 5qosinte.adb: Change Linux to GNU/Linux.
34543
34544         * 5qosinte.ads: Change Linux to GNU/Linux.
34545
34546         * 5qparame.ads: Change Linux to GNU/Linux.
34547
34548         * 5qtaprop.adb: Change Linux to GNU/Linux.
34549
34550         * 5qtaspri.ads: Change Linux to GNU/Linux.
34551         Add 2001 to copyright notice.
34552
34553         * 5vintman.ads: Change Linux to GNU/Linux.
34554         Fix header format.  Add 2001 to copyright notice.
34555
34556         * g-soccon.ads: Change Linux to GNU/Linux.
34557
34558         * g-trasym.ads: Change Linux to GNU/Linux.
34559         Add 2001 to copyright notice.
34560
34561         * memtrack.adb: Change Linux to GNU/Linux.
34562
34563         * s-intman.ads: Change Linux to GNU/Linux.
34564         Add 2001 to copyright notice.  Fix header format.
34565
34566         * s-stache.adb: Change Linux to GNU/Linux.
34567
34568         * adaint.c: Change Linux to GNU/Linux.
34569
34570         * cio.c: Change Linux to GNU/Linux.
34571
34572         * cstreams.c: Change Linux to GNU/Linux.
34573
34574         * init.c: Change Linux to GNU/Linux.
34575
34576         * gmem.c: Change Linux to GNU/Linux.
34577
34578         * tracebak.c: Change Linux to GNU/Linux.
34579
34580
34581 2001-10-02  Geert Bosch  <bosch@gnat.com>
34582
34583         * misc.c (insert_default_attributes): Add dummy version.