OSDN Git Service

gcc/ada/
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2007-11-14  Samuel Tardieu  <sam@rfc1149.net>
2
3         * adaint.c init.c initialize.c link.c: Remove system-specific
4         sections of non-supported Interix target.
5
6         * s-osinte-interix.ads: Removed.
7
8         * i-cstrin.ads (chars_ptr): Make it a C convention type.
9
10 2007-11-13  Samuel Tardieu  <sam@rfc1149.net>
11
12         * a-tasatt.adb: Add a comment at the beginning of the package
13         explaining why in general 'Unchecked_Access must be used instead
14         of 'Access.
15
16         * sem_prag.adb (Process_Convention): Move the test for the
17         entity on which the Convention pragma applies down to also
18         forbid pragma Convention on enumeration literals reached
19         through renamings.
20
21 2007-11-10  Samuel Tardieu  <sam@rfc1149.net>
22
23         * a-tasatt.adb: Revert previous change for this file as it will
24         generate an error when this package is instantiated from a
25         local context.
26
27 2007-11-07  Samuel Tardieu  <sam@rfc1149.net>
28
29         * a-tasatt.adb: Type Wrapper should be declared in comment instead
30         of already declared type Node_Access.
31         Use 'Access instead of 'Unchecked_Access when applicable. Local
32         lifetime is the one of the package.
33         (Set_Value): W is allocated on the heap.
34
35         * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
36         applicable.
37         (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
38         access type.
39         (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
40         access type.
41
42         * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
43         applicable.
44         (elaboration code): Timer_Queue lifetime is the one of the
45         package.
46
47         * tracebak.c (i386 alternative): Remove useless comparaison
48         which is always false; LOWEST_ADDRESS is 0 and is never greater
49         than an unsigned integer.
50
51         * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
52         embedded check for "Ada_Version >= Ada_05".
53
54 2007-11-07  Olivier Hainque  <hainque@adacore.com>
55
56         * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
57         craft and expand comment.
58
59 2007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
60
61         * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
62
63 2007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
64
65         * misc.c (gnat_handle_option): Replace call to abort with
66         call to gcc_unreachable.
67         (gnat_init): Likewise.
68         (gnat_expand_expr): Likewise.
69         (fp_prec_to_size): Likewise.
70         (fp_size_to_prec): Likewise.
71
72 2007-10-23  Richard Guenther  <rguenther@suse.de>
73
74         PR bootstrap/33608
75         * tracebak.c: #undef abort after including system.h.
76
77 2007-10-20  Danny Smith <dannysmith@users.sourceforge.net>
78
79         * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
80         s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
81         for win32 targets.
82         (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
83
84 2007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
85
86         * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
87         Set the protection status of the guard page based on the value of On.
88
89         * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
90
91         * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
92         (Exit_Task): Pass False to Hide_Yellow_Zone.
93
94 2007-10-15  Robert Dewar  <dewar@adacore.com>
95
96         * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
97         s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
98         a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 
99         checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 
100         freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 
101         gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 
102         mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 
103         prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 
104         sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 
105         s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
106         uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 
107         a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 
108         a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 
109         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 
110         a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 
111         a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
112         Minor reformatting.
113         Add Unreferenced and Warnings (Off) pragmas for cases of
114         variables modified calls where they are IN OUT or OUT parameters and
115         the resulting values are not subsequently referenced. In a few cases,
116         we also remove redundant code found by the new warnings.
117
118         * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 
119         sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
120         sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
121         sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
122         warning controlled by -gnatw.o that warns on cases of out parameter
123         values being ignored.
124
125 2007-10-15  Geert Bosch  <bosch@adacore.com>
126
127         * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
128
129         * expect.c: Initial port to arm-mentor-nucleus.
130         Use kill for __gnat_kill() on VMS.
131
132 2007-10-15  Emmanuel Briot  <briot@adacore.com>
133
134         * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
135         value.
136         (Xref_Record): Change type for Line, since in the case of a reference to
137         a predefined entity (as happens for array index types), the line is set
138         to 0.
139         Add support for parsing multiple array index types info, or
140         multiple inherited interfaces info. This information cannot be stored
141         in Xref_Entity_Record, which only supports a single instance of Tref_*,
142         and is therefore stored in the list of references instead. It has a
143         special treatement later on in tools that use this information.
144
145 2007-10-15  Tristan Gingold  <gingold@adacore.com>
146
147         * debug.adb: Document use of -gnatd.a and -gnatd.I
148
149         * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
150
151 2007-10-15  Javier Miranda  <miranda@adacore.com>
152
153         * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
154         Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
155         care of access to class-wide interface types plus removal of bizarre
156         conversion of tagged object to access type (reported by Gary
157         Dismukes). After this patch there is no need to perform any
158         additional management on these nodes in Expand_Interface_Actuals.
159
160         * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
161         that handles use of 'Access and 'Unchecked_Access applied to
162         actuals covering interface types. Such code is now
163         centralized in Expand_N_Attribute_Reference.
164
165 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
166
167         * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
168         of tagged types whose ultimate ancestor is a CPP type.
169         (Freeze_Array_Type): For a packed array type, generate an initialization
170         procedure if the type is public, to handle properly a client that
171         specifies Normalize_Scalars.
172
173 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
174
175         * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
176         inside a generic body, retrieve the full view of the entry family
177         discrete subtype if available.
178
179 2007-10-15  Thomas Quinot  <quinot@adacore.com>
180
181         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
182         attempt to generate stubs for hidden primitive operations.
183
184 2007-10-15  Vincent Celier  <celier@adacore.com>
185
186         * mlib-tgt-specific.adb (Support_For_Libraries): New function,
187         returning None, used when there is no platform specific body for
188         MLib.Tgt.Specific.
189
190 2007-10-15  Bob Duff  <duff@adacore.com>
191
192         * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
193         (passing'Unrestricted_Access of nested subprograms to Sort) with use of
194         the generic Heap_Sort_G, in order to avoid trampolines.
195
196 2007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
197             Jose Ruiz  <ruiz@adacore.com>
198
199         * vx_stack_info.c: New file.
200
201         * i-forbla-unimplemented.ads: New file.
202
203         * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
204         for unsupported configurations; use it on VMS targets instead of the
205         real one.
206         (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
207         vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
208         used by VxWorks targets to have access to task-specific data and be
209         able to extract the stack boundaries for stack checking.
210         Use system-vms-ia64.ads on ivms.
211
212         * Make-lang.in: Update dependencies.
213
214         * sysdep.c (__gnat_get_stack_info): Move to a standalone file
215         (vx_stack_info.c).
216
217 2007-10-15  Vincent Celier  <celier@adacore.com>
218
219         * snames.adb, snames.ads: Add new standard name runtime_library_dir
220
221         * prj.ads (Language_Config): Add new component Runtime_Library_Dir
222
223         * prj-attr.adb: Add project level attribute Runtime_Library_Dir
224
225         * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
226         the source is unknown.
227
228         * prj-ext.adb: Spelling error fix
229
230         * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
231         95 reserved word in its name.
232         (Process_Project_Level_Array_Attributes): Process new attribute
233         Runtime_Library_Dir.
234
235         * prj-part.adb (Parse_Single_Project): Do not check the name of the
236         config project against the user project names.
237
238         * prj-proc.adb (Expression): In multi-language mode, indexes that do
239         not include a dot are always case insensitive.
240         (Process_Declarative_Items): Ditto
241         (Process_Project_Tree_Phase_1): Set Success to False in case an error is
242         detected.
243
244         * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
245         True, compare both indexes in lower case.
246
247 2007-10-15  Robert Dewar  <dewar@adacore.com>
248
249         * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
250
251 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
252
253         * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
254         association for an access component, add an association with null as
255         the expression. Remove testing for array subtypes and the setting in
256         that case of Ctyp to the array component type, which prevented proper
257         inclusion of an association for null-initialized arrays. Collapse
258         condition that tests for array subtypes into just a test of
259         Is_Partially_Initialized_Type (which already covers arrays anyway).
260
261 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
262
263         * sem_ch12.adb: Minor code reformatting.
264         (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
265         find the parent package which may have been hidden by local
266         declarations.
267
268 2007-10-15  Gary Dismukes  <dismukes@adacore.com>
269
270         * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
271         flag of derived concurrent types, taking into account the flag setting
272         on the parent subtype and any new set of discriminants.
273
274 2007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
275
276         * sem_ch4.adb: Minor code and comment reformatting.
277         (Analyze_Allocator): When the designated type of an unconstrained
278         allocator is a record with unknown discriminants or an array with
279         unknown range bounds, emit a detailed error message depending on the
280         compilation mode and whether the designated type is limited.
281
282 2007-10-15  Tristan Gingold  <gingold@adacore.com>
283
284         * system-vms-ia64.ads: New file.
285
286         * system-vms_64.ads: Minor comment fix.
287
288 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
289
290         * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
291         body generated for a function with a controlling result that is a null
292         extension, discard the generated body in favor of the current explicit
293         one.
294
295 2007-10-15  Ed Schonberg  <schonberg@adacore.com>
296
297         * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
298         examining its original form, to handle properly operator calls that
299         have been rewritten.
300
301 2007-10-15  Olivier Hainque  <hainque@adacore.com>
302
303         * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
304         instead of a procedure value in each traceback entry.
305
306         * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
307         instead of procedure value to TBK$SYMBOLIZE.
308
309         * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
310         field.
311         (TB_Entry_For): Account for the PV/FP renaming.
312
313         * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
314         add comment.
315         (Null_TB_Entry): Account for change of component name.
316         (PV_For): Rename as FP_For.
317
318 2007-10-15  Tristan Gingold  <gingold@adacore.com>
319
320         * trans.c (gnat_to_gnu): Remove the padding structure more often.
321         This optimize assignment to over-aligned record.
322
323 2007-10-15  Emmanuel Briot  <briot@adacore.com>
324
325         * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
326         interfaces.
327
328         * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
329         type, for dispatching calls.
330
331 2007-10-15  Vincent Celier  <celier@adacore.com>
332             Robert Dewar  <dewar@adacore.com>
333
334         * gnat_ugn.texi: Add documentation for switches --version and --help
335         for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
336         gnatxref, gnatfind, gnatls, and gnatclean.
337         Document -gnatw.o.
338         Mention attribute Excluded_Source_Dirs
339         Replace obsolescent attribute Locally_Removed_Files with attribute
340         Excluded_Source_Files.
341         Improve documentation of -u (gnatbind)
342         Document how to do reliable stack checking for the environmental task
343         on iVMS.
344
345         * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
346         Document attribute Excluded_Source_Files and indicate that attribute
347         Locally_Removed_Files is obsolescent.
348
349 2007-10-15  Thomas Quinot  <quinot@adacore.com>
350
351         * g-soccon-vms.ads: Fix value of MSG_WAITALL.
352
353         * gen-soccon.c: 
354         Update documentation to note that OpenVMS 8.3 or later must be used
355         to generate g-soccon-vms.ads.
356
357         * atree.adb: Add ??? comment
358
359         * exp_util.adb: Minor reformatting.
360         Add ??? comment in Kill_Dead_Code.
361
362 2007-10-15  Robert Dewar  <dewar@adacore.com>
363
364         * errout.ads: Comment clarification
365
366         * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
367         (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
368
369         * lib.ads: Comment update
370
371         * init.c: Minor reformatting.
372
373         * sem_attr.adb: Minor formatting
374
375         * osint-b.ads: Minor reformatting
376
377         * sem_ch9.adb: Implement -gnatd.I switch
378
379         * g-comlin.adb: (Start): Fix handling of empty command line.
380
381         * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
382         even when -rules follows the -cargs section.
383
384 2007-10-08  Ollie Wild  <aaw@google.com>
385
386         * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
387         gnat_return_tree.
388         (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
389         gnat_return_tree.
390         (gnat_eh_runtime_type): Removed.
391         (gnat_return_tree): New function.
392
393 2007-10-08  Ben Elliston  <bje@au.ibm.com>
394
395         PR ada/33454
396         Revert:
397         2007-08-31  Ben Elliston  <bje@au.ibm.com>
398
399         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
400         when compiling for powerpc64-*-linux.
401         * system-linux-ppc64.ads: New file.
402
403 2007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
404
405         Mapped location support
406         * back_end.adb (Call_Back_End): Pass information about source
407         files instead of units to gigi.
408         * gigi.h (struct File_Info_Type): New.
409         (gigi): Rename and change type of number_units parameter, change
410         type of file_info_ptr parameter.
411         * trans.c (number_files): New global variable.
412         (gigi): Rename and change type of number_units parameter, change
413         type of file_info_ptr parameter.
414         If mapped location support is enabled, create the isomorphic mapping
415         between source files and line maps.
416         (Sloc_to_locus): If mapped location support is enabled, translate
417         source location into mapped location.
418         (annotate_with_node): Rename into set_expr_location_from_node.
419         Call set_expr_location instead of annotate_with_locus.
420         (Pragma_to_gnu): Adjust for above change.
421         (Loop_Statement_to_gnu): Likewise.
422         (call_to_gnu): Likewise.
423         (Handled_Sequence_Of_Statements_to_gnu): Likewise.
424         (gnat_to_gnu): Likewise.
425         (add_stmt_with_node): Likewise.
426         (add_cleanup): Likewise.
427         * utils.c (gnat_init_decl_processing): Do not set input_line.
428
429 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
430
431         * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
432         (Applicable_Use): Emit a warning when a package tries to use itself.
433         (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
434         is already in use or the package where it is declared is in use or is
435         declared in the current package.
436         (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
437
438         * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
439         s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
440         s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
441
442 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
443
444         * a-calend-vms.adb, a-calend.adb: 
445         Add a section on leap seconds control along with two entities used to
446         enable and disable leap seconds support. The array Leap_Second_Times is
447         now constant and contains hard time values pre-generated. Remove
448         all elaboration code used to populate the table of leap seconds.
449
450         * bindgen.adb: 
451         Add entity Leap_Seconds_Support to the list of global run-time variables
452         along with a comment on its usage and values.
453         (Gen_Adainit_Ada): Add code to generate the declaration and import of
454         Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
455         or one (enabled) depending on the presence of binder switch "-y".
456         (Gen_Adainit_C): Add code to generate the declaration of external int
457         __gl_leap_seconds_support. Set is value to zero (disabled) or one
458         (enabled) depending on the presence of binder switch "-y".
459
460         * init.c: Add __gl_leap_seconds_support to the list of global values
461         computed by the binder.
462
463 2007-09-26  Jerome Guitton  <guitton@adacore.com>
464
465         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
466         s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
467          s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
468         s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
469
470         * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
471
472         * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
473         function which can be called by the debugger to interrupt the tasks of
474         an Ada application asynchronously, as needed on VxWorks.
475         (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
476
477         * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
478         renamed from Stop_All_Tasks. Update comments.
479         (Stop_All_tasks): New function declaration.
480
481 2007-09-26  Olivier Hainque  <hainque@adacore.com>
482
483         * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
484         #include <utime.h> and #define GCC_RESOURCE_H before
485         #include <sys/wait.h>.
486         Add more protections in __gnat_translate_vms.
487
488         * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
489         #include <sys/wait.h>.
490
491 2007-09-26  Thomas Quinot  <quinot@adacore.com>
492             Sergey Rybin  <rybin@adacore.com>
493
494         * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
495
496         * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
497         where it belongs.
498
499         * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
500
501         * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
502         where it belongs.
503
504         * sem_dist.ads: Minor comment fix
505
506         * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
507
508 2007-09-26  Javier Miranda  <miranda@adacore.com>
509             Eric Botcazou  <ebotcazou@adacore.com>
510
511         * a-tags.adb: 
512         (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
513          indirection added to the HT_Link component of the TSD. This is required
514          to statically allocate the TSD.
515
516         * a-tags.ads: 
517         Minor reordering of the declarations in the private part. Required to
518         add a level of indirection to the contents of the TSD component HT_Link.
519         This is required to statically allocate the TSD.
520
521         * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
522         Is_Statically_Allocated set from constant objects.
523         Do not make exported constants created by the compiler volatile.
524         (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
525         as read-only.
526
527         * trans.c (Identifier_to_gnu): For constants, unshare initializers
528         before returning them.
529
530         * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
531         public part of the package.
532         (Make_DT): Move HT_Link component out of the TSD record. For this
533         purpose Make_DT now declares a separate object that stores the
534         HT_Link value, and initializes the TSD component with the address
535         of this new object. The addition of this level of indirection is
536         required to statically allocate the TSD because the TSD cannot
537         have variable components.
538         (Expand_Interface_Conversion): Improve the expanded code.
539         (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
540
541         * sem_disp.adb (Check_Dispatching_Operation): In case of a body
542         declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
543         if we are building static dispatch tables then we must not generate
544         extra code to register the primitive because the dispatch table will
545         be built at the end of the library package; otherwise we notify that
546         we cannot build the static dispatch table.
547
548 2007-09-26  Robert Dewar  <dewar@adacore.com>
549
550         * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
551         overlays.
552
553         * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
554         (Analyze_Record_Representation_Clause): Suppress junk warning for
555         missing component clause.
556         (Analyze_Attribute_Definition_Clause, case Address): Apply the special
557         tests for controlled type overlay to composites with controlled
558         components.
559         (Analyze_Record_Representation_Clause): Add reference for component name
560
561 2007-09-26  Javier Miranda  <miranda@adacore.com>
562             Gary Dismukes  <dismukes@adacore.com>
563
564         * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
565         for thunks associated with interface types.
566
567         * einfo.ads: Improve documentatation of Is_Internal
568         (Is_Thunk): New attribute applicable to subprograms. True for thunks
569         associated with interface types.
570         Extensive comment fixes regarding flags that appear in all entities. The
571         documentation is now consistent for all such flags (there were a number
572         of errors in the documentation in this regard).
573
574         * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
575
576         * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
577         of these procedures are passed a function call that already has
578         build-in-place actuals (testing new flag
579         Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
580         the case where processing continues.
581         (Expand_Call): If the call is generated from a thunk body then we
582         propagate the extra actuals associated with the accessibility
583         level of the access type actuals.
584
585         * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
586         of each extra formal of a protected operation to reference the
587         corresponding extra formal of the subprogram denoted by the
588         operation's Protected_Body_Subprogram.
589         
590         * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
591         N_Function_Call nodes.
592
593 2007-09-26  Robert Dewar  <dewar@adacore.com>
594
595         * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
596
597         * debug.adb: Add d.s flag.
598
599 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
600
601         * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
602         debug variable so that it won't be initialized when pragma
603         Initialize_Scalars is in effect.
604
605 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
606
607         * freeze.adb (Freeze_Entity): Remove check for preelaborable
608         initialization of a full view. This is moved to
609         Analyze_Package_Specification.
610
611         * sem_ch7.adb (Analyze_Package_Specification): Add check for
612         preelaborable initialization of a full view in entity loop.
613         (Uninstall_Declarations): If entity is a use-visible compilation unit,
614         its child units are use-visible only if they are visible child units.
615
616         * sem_util.adb (Is_Preelaborable_Expression): New function to determine
617         whether an expression can be used within a type declaration that
618         requires preelaborable init.
619         (Check_Components): Replace inline code that does partial checking for
620         preelaborable default expressions with call to
621         Is_Preelaborable_Expression.
622         (Has_Preelaborable_Initialization): In the case of a generic actual
623         subtype, (that is, Is_Generic_Actual is True), return the result of
624         applying Has_Preelaborable_Initialization to the generic actual's base
625         type.
626
627 2007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
628
629         * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
630         call to Jan_1_Day _Of_Week to optimize its performance.
631         (Is_Leap): Move the routine to the scope of Week_In_Year.
632         (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
633         weekday on which January 1 falls of Year - 1 and Year + 1. This function
634         avoids calling Time_Of and Split, thus making it more efficent.
635         (Week_In_Year): Reimplemented in oder to follow ISO 8601.
636
637         * g-calend.ads (Week_In_Year): Change comment to reflect new
638         implementation.
639
640 2007-09-26  Emmanuel Briot  <briot@adacore.com>
641
642         * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
643         Command_Line): New types
644         (Define_Alias, Define_Prefix, Free): New subprograms. These provide
645         support for defining how switches can be grouped on a command line (as
646         is the case for -gnatw... for GNAT), and how simple switches can be
647         used as aliases for more complex switches (-gnatwa is same as
648         -gnatwbcef...)
649         (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
650         (Start, Current_*): New subprograms
651         Added support for parsing an array of strings in addition to the real
652         command line.
653         (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
654          be moved from the body to the private part of the spec.
655         (*): All subprograms now have an extra parameter with default value to
656         specify which parser should be used. For backward compatibility, it
657         defaults to parsing the command line of the application. They were also
658         modified to properly handle cases where each of the argument does not
659         start at index 1 (which is always true for Ada.Command_Line, but not
660         when processing any Argument_List).
661         (Free): New subprogram
662         (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
663         Argument): New subprograms
664         (Switch_Parameter_Type): New enum, which clarifies the code. The extra
665         special characters like ':', '=',... are now handled in a single place,
666         which makes the code more extensible eventually.
667         (Getopt, Full_Switch): When the switch was returned as part of the
668         special character '*', make sure it is prepended by the switch character
669         ('-' in general), so that the application knows whether "foo" or "-foo"
670         was specified on the command line.
671
672 2007-09-26  Florian Villoing  <villoing@adacore.com>
673
674         * g-dirope.adb (Remove_Dir): In case we are removing directories
675         recursively, make sure that if an exception is raised during the
676         processing, the current working directory is reset to its initial
677         value before propagating the exception.
678
679 2007-09-26  Vincent Celier  <celier@adacore.com>
680
681         * gnatbind.adb: If there are several ALI files specified and there is
682         a main program to bind, the first ALI is expected to contain the main
683         subprogram and the names of the binder generated files will be derived
684         from the first ALI file name.
685         (Gnatbind): Fix insertion character in invocation of Error_Msg
686
687 2007-09-26  Vincent Celier  <celier@adacore.com>
688
689         * gnatcmd.adb (Check_Files): Do not include sources that have been
690         removed by attributes Exclude_Source_Files or Locally_Removed_Files.
691
692 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
693
694         * lib-xref.ads, lib-xref.adb: The entry for array types now carries
695         information about each of its index types, following the type
696         reference for its component type.
697
698 2007-09-26  Vincent Celier  <celier@adacore.com>
699
700         * make.adb: (Kill): New procedure (__gnat_kill imported)
701         (Running_Compile, Outstanding_Compiles): Global variables that
702         were previously local to procedure Compile_Sources.
703         (Sigint_Intercepted): Send signal SIGINT to all outstanding
704         compilation processes.
705
706         (Gnatmake): If project files are used, create the mapping of all the
707         sources, so that the correct paths will be found.
708
709         * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
710
711 2007-09-26  Vincent Celier  <celier@adacore.com>
712
713         * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
714
715         * prj.ads, prj.adb (Default_Language): Remove function, no longer used
716         Replace components Compiler_Min_Options and Binder_Min_Options with
717         Compiler_Required_Switches and Binder_Required_Switches in record
718         Language_Config.
719         Remove components Default_Language and Config in Project_Tree_Data,
720         no longer used.
721
722         * prj-attr.adb: New attributes Required_Switches (<language>) in
723         packages Compiler and Binder.
724
725         * prj-nmsc.adb: Major rewrite of the processing of configuration
726         attributes for gprbuild. No impact on GNAT tools.
727
728         * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
729         process configuration attributes: this is done in Prj.Nmsc.Check.
730         (Recursive_Process): Make a full copy of packages inherited from project
731         being extended, instead of a shallow copy.
732         (Process_Project_Tree_Phase_1): New procedure
733         (Process_Project_Tree_Phase_1): New procedure
734         (Process): Implementation now uses the two new procedures
735
736         * prj-util.adb (Executable_Of): Get the suffix and the default suffix
737         from the project config, not the tree config that no longer exists.
738
739 2007-09-26  Vincent Celier  <celier@adacore.com>
740
741         * Make-lang.in: Update dependencies..
742
743 2007-09-26  Vincent Celier  <celier@adacore.com>
744
745         * osint.adb, osint.ads: Minor reformatting
746
747         * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
748
749 2007-09-26  Gary Dismukes  <dismukes@adacore.com>
750
751         * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
752         message to cite use of <> in aggregate component associations rather
753         than wrongly indicating use of limited aggregates.
754
755 2007-09-26  Robert Dewar  <dewar@adacore.com>
756
757         * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
758         Address_Taken.
759
760 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
761
762         * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
763         ancestor of the derived type, the operations are inherited from the
764         primary dispatch table of the parent.
765         (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
766         when the context is an explicit type conversion.
767
768 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
769
770         * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
771         rule for qualified expressions properly, to detect improper conversions
772         and resolve some cases of overloading.
773
774 2007-09-26  Ed Schonberg  <schonberg@adacore.com>
775
776         * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
777         proper kind of reference to the primitive operation, for better source
778         navigation.
779         (Valid_Conversion): A tagged conversion is legal if both operands are
780         tagged.
781
782 2007-09-26  Robert Dewar  <dewar@adacore.com>
783
784         * sem_warn.adb (Check_References): Catch more cases of unreferenced
785         packages.
786
787 2007-09-26  Vincent Celier  <celier@adacore.com>
788
789         * snames.adb, snames.ads: Change Include_Option to Include_Switches
790
791 2007-09-26  Robert Dewar  <dewar@adacore.com>
792
793         * s-wchstw.adb: provide messages for run time unit exceptions
794
795         * a-witeio.adb: Minor reformatting
796
797         * exp_ch13.adb: Minor reformatting
798
799 2007-09-26  Sergey Rybin  <rybin@adacore.com>
800
801         * vms_data.ads: Revise gnatmetric qualifiers.
802         Add qualified for the new gnatbind option '-y'
803
804         * gnat_ugn.texi: Revise the gnatmetric section.
805         Add entry for new gnatbind option '-y'.
806
807         * gnat_rm.texi: Minor spelling correction.
808         Document restriction on overlaying controlled types
809
810 2007-09-26  Vincent Celier  <celier@adacore.com>
811
812         * makegpr.adb (Link_Executables): Do not fail when the root project has
813         no sources, but is an extending project.
814
815 2007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
816
817         * trans.c: Fix misplaced #define.
818
819 2007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
820
821         * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
822         the TYPE_REF_CAN_ALIAS_ALL flag to the result.
823
824 2007-09-21  Olivier Hainque  <hainque@adacore.com>
825
826         * utils.c (type_for_nonaliased_component_p): Return false for
827         all AGGREGATE_TYPEs.
828
829 2007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
830
831         * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
832         object covered by 13.3(19) volatile.
833
834 2007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
835
836         PR ada/26797
837         PR ada/32407
838         * utils.c (unchecked_convert): Use a subtype as the intermediate type
839         in the special VIEW_CONVERT_EXPR case.
840
841 2007-09-12  Robert Dewar  <dewar@adacore.com>
842
843         * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
844
845         * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
846         lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
847         s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
848         s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
849         s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
850         s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
851         s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
852         s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
853         a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 
854         g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 
855         s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 
856         s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 
857         snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 
858         s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 
859         s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 
860         s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 
861         s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
862         pragma Compiler_Unit and adds it to relevant library units.
863
864 2007-09-12  Ed Schonberg  <schonberg@adacore.com>
865
866         * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
867         a box need not correspond to any component.
868
869 2007-09-12  Robert Dewar  <dewar@adacore.com>
870
871         * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
872         the tasking version of the Ada run time when foreign threads are
873         present and there are no explicit Ada tasks or tasking constructs.
874
875         * gnat_rm.texi: Clarify documentation of GNAT.Threads.
876
877 2007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
878
879         * bindusg.adb (Display): Correct comment for switch -X. Add a line for
880         the usage of switch -y.
881
882         * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
883         when switch -y is present.
884
885         * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
886         leap seconds in Ada.Calendar and its children.
887
888 2007-09-12  Jose Ruiz  <ruiz@adacore.com>
889
890         * a-extiti.ads (Timer): The discriminant is a "not null access
891         constant" in the Reference Manual.
892         (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
893
894 2007-09-12  Robert Dewar  <dewar@adacore.com>
895
896         * a-swuwha.adb: Remove junk RM header
897
898 2007-09-12  Vincent Celier  <celier@adacore.com>
899
900         * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
901         indicator
902
903         * g-bytswa.ads: Minor reformatting
904
905 2007-09-12  Thomas Quinot  <quinot@adacore.com>
906
907         * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 
908         Add new constant Thread_Blocking_IO, always True by default, set False
909         on a per-runtime basis.
910         (Need_Netdb_Buffer): New constant.
911
912 2007-09-12  Arnaud Charlet  <charlet@adacore.com>
913
914         * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
915         Added renames for corresponding functions in System.Partition_Interface.
916
917 2007-09-12  Doug Rupp  <rupp@adacore.com>
918
919         * Makefile.in: Remove VMS specific System.CRTL packages which are no
920         longer needed.
921
922         * s-crtl-vms64.ads: Removed.
923
924 2007-09-12  Olivier Hainque  <hainque@adacore.com>
925
926         * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
927         with discriminant constraints, generalize the code for BIT_FIELDs
928         to PACKED fields of constant size and propagate DECL_PACKED.
929
930 2007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
931
932         * decl.c (array_type_has_nonaliased_component): New predicate.
933         (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
934         set the TYPE_NONALIASED_COMPONENT flag on the type.
935         <E_Array_Subtype>: Likewise.
936         * gigi.h (type_for_nonaliased_component_p): Declare.
937         * utils.c (type_for_nonaliased_component_p): New predicate.
938         (create_field_decl): Invoke the above predicate to set the
939         DECL_NONADDRESSABLE_P flag on the field.
940
941 2007-09-11  Javier Miranda  <miranda@adacore.com>
942
943         * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
944         in library level record type entities if we are generating statically
945         allocated dispatch tables.
946
947         * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
948         importing/exporting the _tag declaration by new code
949         importing/exporting the dispatch table wrapper. This change allows us
950         to statically allocate of the TSD.
951         (Make_DT.Export_DT): New procedure.
952         (Build_Static_DT): New function.
953         (Has_DT): New function.
954
955         * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
956         True_Constant and Current_Value. Required to statically
957         allocate the dispatch tables.
958         (Check_Allocator): Make function iterative instead of recursive.
959         Also return inner allocator node, when present, so that we do not have
960         to look for that node again in the caller.
961
962 2007-09-11  Jan Hubicka <jh@suse.cz>
963
964         * misc.c (gnat_expand_body): Kill.
965         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
966
967 2007-09-10  Robert Dewar  <dewar@adacore.com>
968
969         * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
970         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
971         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
972         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
973         ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
974         bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
975         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
976         butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
977         comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
978         elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
979         err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
980         exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
981         exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
982         exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
983         exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
984         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
985         exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
986         exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
987         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
988         exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
989         exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
990         exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
991         fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
992         get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
993         gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
994         gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
995         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
996         gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
997         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
998         gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
999         inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
1000         lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
1001         lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
1002         make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
1003         mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
1004         mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
1005         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
1006         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
1007         osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
1008         osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
1009         par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
1010         par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
1011         par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
1012         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
1013         par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
1014         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
1015         prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
1016         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
1017         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
1018         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
1019         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
1020         prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
1021         rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
1022         scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
1023         sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
1024         sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
1025         sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
1026         sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
1027         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
1028         sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
1029         sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
1030         sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
1031         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
1032         sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
1033         sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
1034         sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
1035         sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
1036         sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
1037         stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
1038         styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
1039         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
1040         switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
1041         tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
1042         treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
1043         types.h, uintp.h, urealp.h, usage.adb, usage.ads,
1044         validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
1045         xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
1046         xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
1047         gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
1048         mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
1049         symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
1050         mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
1051         mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
1052
1053 2007-09-10  Emmanuel Briot  <briot@adacore.com>
1054
1055         * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
1056         classes ("[]").
1057
1058 2007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
1059
1060         * adaint.c (__gnat_translate_vms): new function.
1061
1062 2007-09-10  Gary Dismukes  <dismukes@adacore.com>
1063             Thomas Quinot  <quinot@adacore.com>
1064
1065         * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
1066         create an abstract subprogram in the case of 'Input. For 'Output we now
1067         create a real spec/body when the type is abstract, since it can
1068         potentially be called.
1069         (Predefined_Primitive_Bodies): Now allow the creation of a predefined
1070         body for 'Output when the type is abstract (only the creation of the
1071         body for 'Input is excluded when the type is abstract).
1072         (Stream_Operation_OK): Add an additional condition in the return
1073         statement, so that False will be returned for TTS_Stream_Input if the
1074         associated tagged type is an abstract extension. Add comments for
1075         return statement.
1076         (Expand_N_Object_Declaration): For the case of a shared passive
1077         variable, insert init proc call only after the shared variable
1078         procedures have been processed, because the IP call needs to undergo
1079         shared passive variable reference expansion, which requires these
1080         procedures to be available (and elaborated).
1081
1082 2007-09-10  Vincent Celier  <celier@adacore.com>
1083
1084         * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
1085         parameter Runtime_Project.
1086
1087 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
1088
1089         * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
1090         given a box association, the type of the component is discriminated,
1091         and the value of the discriminant is the discriminant of the enclosing
1092         type, retrieve its value from the aggregate itself, where it must have
1093         been supplied.
1094
1095         * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
1096         to remove other spurious ambiguities on arithmetic operations involving
1097         literals and addresses, on systems where Address is a visible integer
1098         type, when the operator is called in functional notation.
1099         (Try_Primitive_Operation): Within an instance, a call in prefixed form
1100         is legal when the types match, even if the operation is currently
1101         hidden.
1102
1103 2007-09-10  Ed Schonberg  <schonberg@adacore.com>
1104
1105         * sem_ch12.adb (Build_Local_Package): A formal package with no
1106         associations is legal if all formals have defaults. It is not
1107         equivalent to a formal declared with a box.
1108
1109 2007-09-10  Sergey Rybin  <rybin@adacore.com>
1110
1111         * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
1112
1113 2007-09-10  Sergey Rybin  <rybin@adacore.com>
1114
1115         * gnat_ugn.texi: Add description of the new '-lratio' option
1116         Update 7.3.1 section about availability of the feature.
1117
1118 2007-09-10  Thomas Quinot  <quinot@adacore.com>
1119
1120         * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
1121         inserted node.
1122
1123 2007-09-10  Olivier Hainque  <hainque@adacore.com>
1124
1125         * Makefile.in: (mips-irix section): Activate build of libgmem.
1126
1127 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
1128
1129         * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
1130         x87 registers.
1131
1132 2007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
1133
1134         * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
1135         a debug renaming declaration specially.
1136
1137 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
1138
1139         * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
1140         which a constant renaming is treated as a normal object declaration.
1141         * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
1142         the N_Indexed_Component case.
1143         <N_Indexed_Component>: Fall through to above case.
1144         <N_Object_Renaming_Declaration>: Return true for all composite types.
1145
1146 2007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
1147
1148         * decl.c (make_packable_type): If the new type has been given BLKmode,
1149         try again to get an integral mode for it.
1150
1151 2007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
1152
1153         Re-apply accidentally reverted change:
1154
1155         2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
1156
1157         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
1158         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
1159         and _Unwind_SWord with _sleb128_t.
1160
1161 2007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
1162
1163         * trans.c (convert_with_check): Update call to real_2expN.
1164
1165 2007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
1166
1167         * trans.c (Compilation_unit_to_gnu): Use set_cfun.
1168         * utils.c (end_subprog_body): Likewise.
1169
1170 2007-09-03  Nick Clifton  <nickc@redhat.com>
1171
1172         * Make-lang.in: Change copyright header to refer to version 3 of
1173         the GNU General Public License and to point readers at the
1174         COPYING3 file and the FSF's license web page.
1175         * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
1176         Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
1177         namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
1178         treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
1179         Likewise.
1180
1181 2007-08-31  Vincent Celier  <celier@adacore.com>
1182
1183         PR ada/4720
1184
1185         * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 
1186         gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
1187         (Check_Version_And_Help): New procedure in package Switch to process
1188         switches --version and --help.
1189         Use Check_Version_And_Help in GNAT tools
1190
1191         * make.adb:  Ditto.
1192         (Compile_Sources): Make sure that sources that are "excluded" are not
1193         compiled.
1194         (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
1195         project file is used.
1196         (Version_Switch): Remove, moved to Switch
1197         (Help_Switch): Remove, moved to Switch
1198         (Display_Version): Remove, moved to Switch
1199
1200         * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
1201         package Switch to process switches --version and --help.
1202         (Display_Version): New procedure
1203
1204         * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
1205
1206 2007-08-31  Javier Miranda  <miranda@adacore.com>
1207
1208         * a-tags.adb (Internal_Tag): Protect the run-time against wrong
1209         internal tags.
1210
1211 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1212
1213         * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
1214         (Mark_Non_Null): If the node for which we just generated an access check
1215         is a reference to an *in* parameter and the reference appears in the
1216         declarative part of a subprogram body, mark the node as known non null.
1217
1218 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1219
1220         * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
1221         structure of E_Exception to reflect the new flag.
1222         (Is_Raised, Set_Is_Raised): New inlined routines.
1223         Update the usage of available flag to reflect the addition of Is_Raised.
1224         (Is_Raised, Set_Is_Raised): Bodies of new routines.
1225         (Write_Entity_Flags): Write the status of flag Is_Raised.
1226         (Is_Descendent_Of_Address): New entity flag, to simplify handling of
1227         spurious ambiguities when integer literals appear in the context of an
1228         address type that is a visible integer type.
1229
1230         * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
1231         exceptions never being raised.
1232         (Analyze_Raise_Statement): When analyzing an exception, mark it as being
1233         explicitly raised.
1234
1235 2007-08-31  Javier Miranda  <miranda@adacore.com>
1236
1237         * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
1238         statement when compiling under restriction No_Exceptions_Proparation.
1239
1240 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1241
1242         * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
1243         initialization aggregate for the type, generate itype references for
1244         thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
1245
1246 2007-08-31  Gary Dismukes  <dismukes@adacore.com>
1247
1248         * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
1249         library-level package renaming, pass the declaration associated with
1250         the renaming's special debug variable to Qualify_Entity_Names to ensure
1251         that its encoded name is properly qualified.
1252
1253         * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
1254         occurring in the list of entities to qualify, and do not attempt to
1255         traverse an entity list in that case. Variables associated with
1256 `       library-level package renamings can now occur in the table.
1257
1258         * exp_dbug.ads: Revise documentation of the encoding for renaming
1259         declarations.
1260
1261 2007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1262
1263         * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
1264         access type points to an unconstrained array.
1265
1266 2007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
1267
1268         * restrict.adb, namet.adb, par-util.adb: Remove redundant type
1269         conversion.
1270
1271         * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
1272         simple redundant qualifications. The check is performed whenever the
1273         expression is a non-overloaded identifier.
1274         (Resolve_Type_Conversion): Enchance the redundant type conversion check
1275         to include loop parameters.
1276         (Valid_Conversion): Avoid generation of spurious error message.
1277
1278 2007-08-31  Bob Duff  <duff@adacore.com>
1279
1280         * par-ch4.adb (P_Simple_Expression): Fold long sequences of
1281         concatenations of string literals into a single literal, in order to
1282         avoid very deep recursion in the front end, which was causing stack
1283         overflow.
1284
1285         * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
1286         string, and the right operand is a string literal (the case of "" &
1287         "..."), optimize by avoiding copying the right operand -- just use the
1288         value of the right operand directly.
1289
1290         * stringt.adb (Store_String_Chars): Optimize by growing the
1291         String_Chars table all at once, rather than appending characters one by
1292         one.
1293         (Write_String_Table_Entry): If the string to be printed is very long,
1294         just print the first few characters, followed by the length. Otherwise,
1295         doing "pn(n)" in the debugger can take an extremely long time.
1296
1297         * sem_prag.adb (Process_Interface_Name): Replace loop doing
1298         Store_String_Char with Store_String_Chars.
1299
1300 2007-08-31  Vincent Celier  <celier@adacore.com>
1301
1302         * prj-attr.adb: Add new attribute Excluded_Source_Files
1303
1304         * prj-nmsc.adb: Use attribute Excluded_Source_Files before
1305         Locally_Removed_Files.
1306
1307         * snames.ads, snames.adb: New standard name Excluded_Source_Files
1308
1309 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1310
1311         * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
1312         clauses of subunits, ignore limited_with_clauses that are illegal and
1313         have not been fully analyzed.
1314
1315 2007-08-31  Ed Schonberg  <schonberg@adacore.com>
1316
1317         * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
1318         flag, for effiency. It is called when analyzing arithmetic operators
1319         and also for actuals in calls that are universal_integers. The flag is
1320         set for the predefined type address, and for any type or subtype
1321         derived from it.
1322
1323         * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
1324         Universal_Integer, when the formal is a descendent of address and the
1325         call appears in user code.
1326         (Analyze_Selected_Component): if the prefix is a private extension, the
1327         tag component is visible.
1328
1329         * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
1330         entity flag.
1331
1332 2007-08-31  Robert Dewar  <dewar@adacore.com>
1333
1334         * s-fileio.adb (Open): Normalize file name to lower case in non-case
1335         sensitive file name systems to avoid unexpected mismatch in Vista.
1336
1337 2007-08-31  Vincent Celier  <celier@adacore.com>
1338
1339         * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
1340
1341 2007-08-31  Vincent Celier  <celier@adacore.com>
1342
1343         * symbols-vms.adb (Initialize): Read symbol files with continuation
1344         lines
1345         (Finalize): If symbol is long, split the line
1346
1347 2007-08-31  Vincent Celier  <celier@adacore.com>
1348
1349         * fmap.ads: Minor comment updates
1350
1351 2007-08-31  GNAT Script  <nobody@adacore.com>
1352
1353         * Make-lang.in: Makefile automatically updated
1354
1355 2007-08-31  Bob Duff  <duff@adacore.com>
1356
1357         * sinfo.ads: Minor comment fix.
1358
1359 2007-08-31  Thomas Quinot  <quinot@adacore.com>
1360
1361         * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
1362         with implementation.
1363         Documentation cleanup only.
1364
1365 2007-08-31  Sergey Rybin  <rybin@adacore.com>
1366
1367         * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
1368         gnatpp '--separate-stmt-name' option.
1369         Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
1370         option.
1371
1372         * gnat_ugn.texi: Add description for the new gnatpp
1373         '--separate-stmt-name' and '--use-on-new-line' options.
1374
1375 2007-08-31  Ben Elliston  <bje@au.ibm.com>
1376
1377         * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
1378         when compiling for powerpc64-*-linux.
1379         * system-linux-ppc64.ads: New file.
1380
1381 2007-08-22  Krister Walfridsson  <cato@df.lth.se>
1382
1383         * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
1384         NetBSD.
1385
1386 2007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1387
1388         * misc.c (gnat_type_max_size): Constify.
1389
1390 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1391
1392         * cstand.adb (Create_Standard): Create an entity for a zero-sized type
1393         associated with Standard_Debug_Renaming_Type, to be used as the type of
1394         the special variables whose names provide debugger encodings for
1395         renaming declarations.
1396
1397         * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
1398         (Set_Debug_Renaming_Link): Change to set Node25.
1399         (Write_Field13_Name): Remove case for E_Enumeration_Literal.
1400         (Write_Field25_Name): Add case for E_Variable to output
1401         "Debug_Renaming_Link".
1402         (Write_Field23_Name): Correct the output string for "Limited_View".
1403
1404         * exp_dbug.adb: Add with and use of Tbuild.
1405         (Debug_Renaming_Declaration): Replace creation of an enumeration type
1406         and literal with creation of a variable of type
1407         Standard_Debug_Renaming_Type whose name encodes both the renamed object
1408         and the entity of the renaming declaration.
1409         (Qualify_Entity_Name): Add the delayed qualification of the entity name
1410         part of the name of a variable that has a Debug_Renaming_Link.
1411
1412         * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
1413         special type to be associated with variables that provide debugger
1414         encodings for renaming declarations.
1415
1416 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1417             Ed Schonberg  <schonberg@adacore.com>
1418             Javier Miranda  <miranda@adacore.com>
1419
1420         * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
1421         ancestor part given by an aggregate to test for an unchecked conversion,
1422         since this can occur in some cases when the ancestor part is a function
1423         call, and we don't want to fall into the recursive call to this
1424         procedure in that case.
1425
1426         * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
1427         stream attributes on limited types to account for user-specified
1428         attributes as well as whether Input (resp. Output) becomes available
1429         due to Read (resp. Write) being available for the type. Change Boolean
1430         variable to the more accurate name
1431         Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
1432         double-"not" predicate at beginning of return statement to more
1433         understandable form.
1434
1435         * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
1436         return has an associated N_Handled_Sequence_Of_Statements, then wrap it
1437         in a block statement and use that as the first statement of the
1438         expanded return rather than incorrectly using the handled sequence as
1439         the first statement.
1440
1441         * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
1442         operation, generate an explicit freeze node for it rather than
1443         generating extra formals, to ensure that gigi has the proper order of
1444         elaboration for anonymous subtypes in the signature of the subprograms.
1445         (Build_In_Place_Formal): Move assertion to beginning of loop.
1446         (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
1447         applied to a function call (occurs for some cases of 'Input).
1448         (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
1449         applied to a function call (occurs for some cases of 'Input).
1450
1451         * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
1452         2005, generate an extended return statement enclosing the result object
1453         and 'Read call.
1454
1455         * freeze.adb (Freeze_Record_Type): Extend the current management of
1456         components that are access type with an allocator as default value: add
1457         missing support to the use of qualified expressions of the
1458         allocator (which also cause freezing of the designated type!)
1459         (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
1460         dispatching operation, since extra formals may be needed by calls to
1461         build-in-place functions (such as stream 'Input).
1462
1463         * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
1464         formals for 'Constrained and accessibility level in the case of a
1465         predefined dispatching operation.
1466
1467         * exp_util.adb (Insert_Actions): A protected body is a valid insertion
1468         point, no need to find the parent node.
1469
1470 2007-08-16  Javier Miranda  <miranda@adacore.com>
1471
1472         * exp_attr.adb (Attribute_Priority): Add missing support for entries
1473         and entry barriers.
1474
1475 2007-08-16  Javier Miranda  <miranda@adacore.com>
1476
1477         * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
1478         is not really required and can introduce regression with the debugger.
1479         The original problem is fixed with the patch written for checks.adb.
1480
1481 2007-08-16  Thomas Quinot  <quinot@adacore.com>
1482
1483         * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
1484         Range_Check on Allocated_Table.
1485
1486 2007-08-16  Vincent Celier  <celier@adacore.com>
1487
1488         * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
1489         Including_Non_Switch set to False.
1490         (Gnatmake): For the compiler, call Test_If_Relative_Path with
1491         Including_Non_Switch set to False.
1492
1493         * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
1494         parameter Including_Non_Switch, defaulted to True. When
1495         Including_Non_Switch is False, options that are not switches and
1496         appear as relative path are not converted to absolute paths.
1497
1498 2007-08-16  Nicolas Roche  <roche@adacore.com>
1499
1500         * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
1501         makefiles
1502
1503         * Make-lang.in: Update dependencies
1504
1505 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
1506
1507         * sem_ch10.adb (Has_With_Clause): If the name of the with clause
1508         currently inspected is a selected component, retrieve the entity of
1509         its selector.
1510         (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
1511         from the immediate ancestor of Main_Unit_Entity.
1512         (Install_Limited_Withed_Unit): Do not install the limited view of
1513         package P if P is reachable through an ancestor chain from package C
1514         and C also has a with clause for P in its body.
1515         (Has_Limited_With_Clause): New routine.
1516         (Has_With_Clause): New routine.
1517
1518 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
1519
1520         * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
1521         generic for an enclosing instance is a global reference, even though
1522         its scope is the enclosing instance.
1523
1524 2007-08-16  Gary Dismukes  <dismukes@adacore.com>
1525             Javier Miranda  <miranda@adacore.com>
1526
1527         * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
1528         initialize a limited object.
1529         (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
1530         13/2 and 14/2.
1531         Make sure Has_Complex_Representation is inherited by derived type.
1532
1533 2007-08-16  Robert Dewar  <dewar@adacore.com>
1534
1535         * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
1536         exception case
1537
1538 2007-08-16  Ed Schonberg  <schonberg@adacore.com>
1539
1540         * sem_disp.adb (Check_Dispatching_Operation): If the operation
1541         implements an operation inherited from a progenitor interface, verify
1542         that they are subtype-conformant.
1543
1544 2007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
1545             Bob Duff  <duff@adacore.com>
1546             Nicolas Setton  <setton@adacore.com>
1547
1548         * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
1549         (Resolve): Alphabetize local variables. Add new variable From_Lib. When
1550         the statement which is being resolved comes from a predefined library
1551         unit, all non-predefined library interpretations are skipped.
1552         (Resolve_Op_Concat): If string concatenation was folded in the parser,
1553         but the "&" is user defined, give an error, because the folding would
1554         be wrong.
1555
1556         * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
1557         the parser has folded a long sequence of concatenations of string
1558         literals.
1559
1560         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
1561         and "JMP_BUF" variables as artificial.
1562         (N_String_Literal): Do not use alloca for very long string literals. Use
1563         xmalloc/free instead. Otherwise the stack might overflow.
1564
1565         * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
1566         compiler.
1567
1568 2007-08-16  Vincent Celier  <celier@adacore.com>
1569
1570         * vms_conv.adb (Process_Argument): Ensure that project related options
1571         are not put in the -cargs section when using GNAT COMPILE.
1572
1573 2007-08-16  Robert Dewar  <dewar@adacore.com>
1574
1575         * gnat_ugn.texi: Add note on preprocessing (output file not written)
1576
1577 2007-08-16  Thomas Quinot  <quinot@adacore.com>
1578
1579         * a-tags.adb: Minor reformatting.
1580
1581 2007-08-16  Bob Duff  <duff@adacore.com>
1582
1583         * sem_type.ads, sem_ch4.adb: Minor reformatting.
1584
1585 2007-08-14  Thomas Quinot  <quinot@adacore.com>
1586
1587         * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 
1588         s-osinte-interix.ads, system-interix.ads: Removed.
1589
1590 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
1591
1592         * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
1593         calls to Check_Within_Time_Bounds.
1594         ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
1595         (Difference): Account for possible rounding of the resulting difference
1596
1597 2007-08-14  Robert Dewar  <dewar@adacore.com>
1598
1599         * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
1600         par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
1601         s-osinte-solaris.adb, s-osinte-solaris.ads,
1602         s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
1603
1604         * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
1605         switch -gnatyS. Enable -gnatyS in GNAT style check mode
1606
1607 2007-08-14  Robert Dewar  <dewar@adacore.com>
1608             Ed Schonberg  <schonberg@adacore.com>
1609
1610         * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 
1611         Suppress unmodified in-out parameter warning in some cases
1612         This patch is a also fairly significant change to the way suppressible
1613         checks are handled.
1614
1615         * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
1616         needed for access to concurrent record types generated by the expander.
1617         (Generate_Range_Check): When generating a temporary to capture the
1618         value of a conversion that requires a range check, set the type of the
1619         temporary before rewriting the node, so that the type is always
1620         properly placed for back-end use.
1621         (Apply_Float_Conversion_Check): Handle case where the conversion is
1622         truncating.
1623         (Get_Discriminal): Code reformatting. Climb the scope stack looking
1624         for a protected type in order to examine its discriminants.
1625
1626 2007-08-14  Robert Dewar  <dewar@adacore.com>
1627             Gary Dismukes  <dismukes@adacore.com>
1628             Ed Schonberg  <schonberg@adacore.com>
1629             Thomas Quinot  <quinot@adacore.com>
1630
1631         * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 
1632         a-stwisu.adb, a-strsup.adb: Fix warnings for range
1633         tests optimized out.
1634
1635         * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
1636         (Get_Allocator_Final_List): For the case of an anonymous access type
1637         that has a specified Associated_Final_Chain, do not go up to the
1638         enclosing scope.
1639         (Expand_N_Type_Conversion): Test for the case of renamings of access
1640         parameters when deciding whether to apply a run-time accessibility
1641         check.
1642         (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
1643         aggregate code before allocator, and ahead of declaration for
1644         temporary, to prevent access before elaboration when the allocator is
1645         an actual for an access parameter.
1646         (Expand_N_Type_Conversion): On an access type conversion involving an
1647         access parameter, do not apply an accessibility check when the
1648         operand's original node was an attribute other than 'Access. We now
1649         create access conversions for the expansion of 'Unchecked_Access and
1650         'Unrestricted_Access in certain cases and clearly accessibility should
1651         not be checked for those.
1652
1653         * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
1654         includes a type conversion of a packed component that has been expanded,
1655         recover the original expression for the object, and use this expression
1656         in the post-call assignment statement, so that the assignment is made
1657         to the object and not to a back-end temporary.
1658         (Freeze_Subprogram): In case of primitives of tagged types not defined
1659         at the library level force generation of code to register the primitive
1660         in the dispatch table. In addition some code reorganization has been
1661         done to leave the implementation clear.
1662         (Expand_Call): When expanding an inherited implicit conversion,
1663         preserve the type of the inherited function after the intrinsic
1664         operation has been expanded.
1665
1666         * exp_ch2.ads, exp_ch2.adb
1667         (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
1668         of an entry formal appearing in an assignment statement does not assign
1669         to the formal.
1670         (Expand_Current_Value): Instead of calling a routine to determine
1671         whether the prefix of an attribute reference should be optimized or
1672         not, prevent the optimization of such prefixes all together.
1673
1674         * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
1675         component whose prefix is known to be of an access type is an implicit
1676         dereference and does not assign to the prefix.
1677
1678 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1679             Robert Dewar  <dewar@adacore.com>
1680
1681         * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
1682         itype is visited, make an entry into table to link associated node and
1683         new itype.
1684         Add comments and correct harmless error in Build_NCT_Hash_Tables
1685         (Array_Aggr_Subtype): Associate each itype created for an index type to
1686         the corresponding range construct, and not to the aggregate itself. to
1687         maintain a one-to-one correspondence between itype and its associated
1688         node, to prevent errors when complex expression is copied.
1689         Fix mishandling of multiple levels of parens
1690
1691         * sem_aggr.adb: Create a limited view of an incomplete type, to make
1692         treatment of limited views uniform for all visible declarations in a
1693         limited_withed package.
1694         (New_Copy_Tree): If hash table is being used and itype is visited,
1695         make an entry into table to link associated node and new itype.
1696         (Resolve_Record_Aggregate): Do not add an others box association for a
1697         discriminated record component that has only discriminants, when there
1698         is a box association for the component itself.
1699
1700         * par-ch4.adb: Fix mishandling of multiple levels of parens
1701
1702 2007-08-14  Robert Dewar  <dewar@adacore.com>
1703
1704         * comperr.adb: Fix problem with suppressing warning messages from gigi
1705
1706         * erroutc.ads, erroutc.adb, errout.ads, 
1707         errout.adb (Write_Eol): Remove trailing spaces before writing the line
1708         (Write_Eol_Keep_Blanks): New procedure to write a line, including
1709         possible trailing spaces.
1710         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
1711         Fix problem with suppressing warning messages from back end
1712         Improve handling of deleted warnings
1713
1714         * gnat1drv.adb: 
1715         Fix problem with suppressing warning messages from back end
1716         Handle setting of Static_Dispatch_Tables flag.
1717
1718         * prepcomp.adb: 
1719         Fix problem with suppressing warning messages from back end
1720
1721         * exp_intr.adb: Improve handling of deleted warnings
1722
1723 2007-08-14  Robert Dewar  <dewar@adacore.com>
1724
1725         * debug.adb: Improve -gnatdI to cover all cases of serialization
1726         Add documentation of dZ, d.t
1727
1728         * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
1729         serialization.
1730         (Sprint_Node_Actual): Generate new output associated with implicit
1731         importation and implicit exportation of object declarations.
1732
1733 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1734             Robert Dewar  <dewar@adacore.com>
1735             Javier Miranda  <miranda@adacore.com>
1736             Gary Dismukes  <dismukes@adacore.com>
1737
1738         * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
1739         to make treatment of limited views uniform for all visible declarations
1740         in a limited_withed package.
1741         Improve warnings for in out parameters
1742         (Set_Related_Interaface/Related_Interface): Allow the use of this
1743         attribute with constants.
1744         (Write_Field26_Name): Handle attribute Related_Interface in constants.
1745         Warn on duplicate pragma Preelaborable_Initialialization
1746
1747         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
1748         generation of a freezing node to ensure proper management of null
1749         excluding access types in the backend.
1750         (Create_Extra_Formals): Test base type of the formal when checking for
1751         the need to add an extra accessibility-level formal. Pass the entity E
1752         on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
1753         originally being done in a couple of cases), to ensure that the
1754         Extra_Formals list gets set on the entity E when the first entity is
1755         added.
1756         (Conforming_Types): Add missing calls to Base_Type to the code that
1757         handles anonymous access types. This is required to handle the
1758         general case because Process_Formals builds internal subtype entities
1759         to handle null-excluding access types.
1760         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1761         functions that need it, even when not marked Requires_Overriding.
1762         Improve warnings for in out parameters
1763         (Analyze_Function_Return): Warn for disallowed null return
1764         Warn on return from procedure with unset out parameter
1765         Ensure consistent use of # in error messages
1766         (Check_Overriding_Indicator): Add in parameter Is_Primitive.
1767         (Analyze_Function_Return): Move call to Apply_Constraint_Check before
1768         the implicit conversion of the expression done for anonymous access
1769         types. This is required to generate the code of the null excluding
1770         check (if required).
1771
1772         * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
1773         A formal parameter is never publicly referenceable outside of its body.
1774         (Check_References): For an unreferenced formal parameter in an accept
1775         statement, use the same warning circuitry as for subprogram formal
1776         parameters.
1777         (Warn_On_Unreferenced_Entity): New subprogram, taken from
1778         Output_Unreferenced_Messages, containing the part of that routine that
1779         is now reused for entry formals as described above.
1780         (Goto_Spec_Entity): New function
1781         (Check_References): Do not give IN OUT warning for dispatching operation
1782         Improve warnings for in out parameters
1783         (Test_Ref): Check that the entity is not undefinite before calling
1784         Scope_Within, in order to avoid infinite loops.
1785         Warn on return from procedure with unset out parameter
1786         Improved warnings for unused variables
1787
1788 2007-08-14  Robert Dewar  <dewar@adacore.com>
1789             Javier Miranda  <miranda@adacore.com>
1790             Gary Dismukes  <dismukes@adacore.com>
1791
1792         * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
1793         (Expand_N_Attribute_Reference): Further unify the handling of the
1794         three forms of access attributes, using common code now for all three
1795         cases. Add a test for the case of applying an access attribute to
1796         an explicit dereference when the context is an access-to-interface
1797         type. In that case we need to apply the conversion to the prefix
1798         of the explicit dereference rather than the prefix of the attribute.
1799         (Attribute_Version, UET_Address): Set entity as internal to ensure
1800         proper dg output of implicit importation.
1801         (Expand_Access_To_Type): Removed.
1802         (Expand_N_Attribute_Reference): Merge the code from the three cases
1803         of access attributes, since the processing is largely identical for
1804         these cases. The substantive fix here is to process the case of a
1805         type name prefix (current instance case) before handling the case
1806         of interface prefixes.
1807
1808 2007-08-14  Thomas Quinot  <quinot@adacore.com>
1809             Ed Schonberg  <schonberg@adacore.com>
1810             Javier Miranda  <miranda@adacore.com>
1811             Robert Dewar  <dewar@adacore.com>
1812
1813         * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
1814         (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
1815         type that is an anonymous access to controlled object, establish
1816         an associated finalization chain to avoid corrupting the global
1817         finalization list when a dynamically allocated object designated
1818         by such a component is deallocated.
1819         (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1820         functions that need it, even when not marked Requires_Overriding.
1821         (Initialize_Tag): Replace call to has_discriminants by call to
1822         Is_Variable_Size_Record in the circuitry that handles the
1823         initialization of secondary tags.
1824         (Is_Variable_Size_Record): New implementation.
1825         (Expand_N_Object_Declaration): Suppress call to init proc if there is a
1826         Suppress_Initialization pragma for a derived type.
1827         (Is_Variable_Size_Record): New subprogram.
1828         (Build_Offset_To_Top_Functions): New implementation that simplifies the
1829         initial version of this routine and also fixes problems causing
1830         incomplete initialization of the table of interfaces.
1831         (Build_Init_Procedure): Improve the generation of code to initialize the
1832         the tag components of secondary dispatch tables.
1833         (Init_Secondary_Tags): New implementation that simplifies the previous
1834         version of this routine.
1835         (Make_DT): Add parameter to indicate when type has been frozen by an
1836         object declaration, for diagnostic purposes.
1837         (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
1838         diagnose attemps to freeze a subprogram when some untagged type of its
1839         profile is a private type whose full view has not been analyzed yet.
1840         (Freeze_Array_Type): Generate init proc for packed array if either
1841         Initialize or Normalize_Scalars is set.
1842         (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
1843         constructing the new profile, copy the null_exclusion indicator for each
1844         parameter, to ensure full conformance of the new body with the spec.
1845
1846         * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
1847         Create wrappers for constructor functions that need it, even when not
1848         marked Requires_Overriding.
1849         (Covers): Handle properly designated types of anonymous access types,
1850         whose non-limited views are themselves incomplete types.
1851         (Add_Entry): Use an entity to store the abstract operation which hides
1852         an interpretation.
1853         (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
1854         (Collect_Interps): Use Empty as an actual for Abstract_Op in the
1855         initialization aggregate.
1856         (Function_Interp_May_Be_Hidden): Rename to
1857         Function_Interp_Has_Abstract_Op.
1858         (Has_Compatible_Type): Remove machinery that skips interpretations if
1859         they are labeled as potentially hidden by an abstract operator.
1860         (Has_Hidden_Interp): Rename to Has_Abstract_Op.
1861         (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
1862         (Write_Overloads): Output the abstract operator if present.
1863         (Add_Entry): Before inserting a new entry into the interpretation table
1864         for a node, determine whether the entry will be disabled by an abstract
1865         operator.
1866         (Binary_Op_Interp_May_Be_Hidden): New routine.
1867         (Collect_Interps): Add value for flag May_Be_Hidden in initialization
1868         aggregate.
1869         (Function_Interp_May_Be_Hidden): New routine.
1870         (Has_Compatible_Type): Do not consider interpretations hidden by
1871         abstract operators when trying to determine whether two types are
1872         compatible.
1873         (Has_Hidden_Interp): New routine.
1874         (Set_May_Be_Hidden_Interp): New routine.
1875         (Write_Overloads): Write the status of flag May_Be_Hidden.
1876
1877 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
1878             Javier Miranda  <miranda@adacore.com>
1879
1880         * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
1881         types declared in the declarative part of a nested package body or in
1882         the proper body of a stub.
1883         (Set_All_DT_Position): Add missing check to avoid wrong assignation
1884         of the same dispatch table slot to renamed primitives.
1885         (Make_Select_Specific_Data_Table): Handle private types.
1886         (Tagged_Kind): Handle private types.
1887         (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
1888         output of implicit importation and exportation.
1889         (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
1890         first formal of the thunk is always associated with the controlling
1891         type. In addition perform the following code cleanup: remove formal
1892         Thunk_Alias which is no longer required, cleanup evaluation of the
1893         the controlling type, and update the documentation.
1894         Replace occurrence of Default_Prim_Op_Count by
1895         Max_Predef_Prims. Addition of compile-time check to verify
1896         that the value of Max_Predef_Prims is correct.
1897         (Check_Premature_Freezing): Apply check in Ada95 mode as well.
1898         (Make_DT): Add parameter to indicate when type has been frozen by an
1899         object declaration, for diagnostic purposes.
1900         (Build_Static_Dispatch_Tables): New subprogram that takes care of the
1901         construction of statically allocated dispatch tables.
1902         (Make_DT): In case of library-level tagged types export the declaration
1903         of the primary tag. Remove generation of tags (now done by Make_Tags).
1904         Additional modifications to handle non-static generation of dispatch
1905         tables. Take care of building tables for asynchronous interface types
1906         (Make_Tags): New subprogram that generates the entities associated with
1907         the primary and secondary tags of Typ and fills the contents of Access_
1908         Disp_Table. In case of library-level tagged types imports the forward
1909         declaration of the primary tag that will be declared later by Make_DT.
1910         (Expand_Interface_Conversion): In case of access types to interfaces
1911         replace an itype declaration by an explicit type declaration to avoid
1912         problems associated with the scope of such itype in transient blocks.
1913
1914 2007-08-14  Robert Dewar  <dewar@adacore.com>
1915             Ed Schonberg  <schonberg@adacore.com>
1916             Javier Miranda  <miranda@adacore.com>
1917
1918         * exp_util.ads, exp_util.adb: 
1919         This patch replaces a number of occurrences of explicit tests for N_Null
1920         with calls to Known_Null. This improves tracking of null values, since
1921         Known_Null also catches null constants, and variables currently known to
1922         be null, so we get better tracking.
1923         (Ensure_Defined): create an itype reference only in the scope of the
1924         itype.
1925         (Side_Effect_Free): A selected component of an access type that
1926         denotes a component with a rep clause must be treated as not
1927         side-effect free, because if it is part of a linked structure its
1928         value may be affected by a renaming.
1929         (Expand_Subtype_From_Expr): For limited objects initialized with build
1930         in place function calls, do nothing; otherwise we prematurely introduce
1931         an N_Reference node in the expression initializing the object, which
1932         breaks the circuitry that detects and adds the additional arguments to
1933         the called function. Bug found working in the new patch for statically
1934         allocated dispatch tables.
1935         (Is_Library_Level_Tagged_Type): New subprogram.
1936         (Remove_Side_Effects): If the expression of an elementary type is an
1937         operator treat as a function call.
1938         (Make_Literal_Range): If the index type of the array is not integer, use
1939         attributes properly to compute the constraint on the resulting aggregate
1940         which is a string.
1941
1942         * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
1943         class-wide type whose base type is an incomplete private type, leave
1944         class-wide type unfrozen so that freeze nodes can be generated
1945         properly at a later point.
1946         (Freeze_Entity, array case): Handle case of pragma Pack and component
1947         size attributre clause for same array.
1948
1949 2007-08-14  Vincent Celier  <celier@adacore.com>
1950
1951         * prj.ads, prj.adb: Update Project Manager to new attribute names for
1952         gprbuild.
1953         Allow all valid declarations in configuration project files
1954         (Reset): Initialize all tables and hash tables in the project tree data
1955         Major update of the Project Manager and of the project aware tools,
1956         including gprmake, so that the same sources in the GNAT repository
1957         can be used by gprbuild.
1958         (Slash_Id): Change type to be Path_Name_Type
1959         (Slash): Return a Path_Name_Type instead of a File_Name_Type
1960
1961         * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
1962         gprbuild.
1963         Update Project Manager to new attribute names for ghprbuild
1964         Allow all valid declarations in configuration project files
1965         Major update of the Project Manager and of the project aware tools,
1966         including gprmake, so that the same sources in the GNAT repository
1967         can be used by gprbuild.
1968
1969         * prj-com.ads: 
1970         Major update of the Project Manager and of the project aware tools,
1971         including gprmake, so that the same sources in the GNAT repository
1972         can be used by gprbuild.
1973
1974         * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
1975         insensitive flag for attributes with optional index.
1976         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
1977         array attribute, put the index in lower case.
1978         Update Project Manager to new attribute names for ghprbuild
1979         Allow all valid declarations in configuration project files
1980         Major update of the Project Manager and of the project aware tools,
1981         including gprmake, so that the same sources in the GNAT repository
1982         can be used by gprbuild.
1983
1984         * prj-env.ads, prj-env.adb: 
1985         Major update of the Project Manager and of the project aware tools,
1986         including gprmake, so that the same sources in the GNAT repository
1987         can be used by gprbuild.
1988         (Get_Reference): Change type of parameter Path to Path_Name_Type
1989
1990         * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
1991         removing '-' from the path to start with the first character of the
1992         next directory.
1993         Major update of the Project Manager and of the project aware tools,
1994         including gprmake, so that the same sources in the GNAT repository
1995         can be used by gprbuild.
1996         Major update of the Project Manager and of the project aware tools,
1997         including gprmake, so that the same sources in the GNAT repository
1998         can be used by gprbuild.
1999
2000         * prj-nmsc.ads, prj-nmsc.adb: 
2001         Update Project Manager to new attribute names for ghprbuild
2002         Allow all valid declarations in configuration project files
2003         (Search_Directories): Detect subunits that are specified with an
2004         attribute Body in package Naming. Do not replace a source/unit in the
2005         same project when the order of the source dirs are known. Detect
2006         duplicate sources/units in the same project when the order of the
2007         source dirs are not known.
2008         (Check_Ada_Name): Allow all identifiers that are not reserved words
2009         in Ada 95.
2010         Major update of the Project Manager and of the project aware tools,
2011         including gprmake, so that the same sources in the GNAT repository
2012         can be used by gprbuild.
2013         (Look_For_Sources): If the list of sources is empty, set the object
2014         directory of non extending project to nil.
2015         Change type of path name variables to be Path_Name_Type
2016         (Locate_Directory): Make sure that on Windows '/' is converted to '\',
2017         otherwise creating missing directories will fail.
2018
2019         * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 
2020         prj-part.ads, prj-part.adb:
2021         Major update of the Project Manager and of the project aware tools,
2022         including gprmake, so that the same sources in the GNAT repository
2023         can be used by gprbuild.
2024
2025         * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2026         insensitive flag for attributes with optional index.
2027         (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2028         array attribute, put the index in lower case.
2029         (Parse_Variable_Reference): Allow the current project name to be used in
2030         the prefix of an attribute reference.
2031
2032         * prj-util.ads, prj-util.adb
2033         (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
2034         defaulted to False. When True, always check against indexes in lower
2035         case.
2036
2037         * snames.ads, snames.h, snames.adb: 
2038         Update Project Manager to new attribute names for gprbuild
2039         Allow all valid declarations in configuration project files
2040
2041 2007-08-14  Robert Dewar  <dewar@adacore.com>
2042             Ed Schonberg  <schonberg@adacore.com>
2043
2044         * opt.ads: Warning for non-local exception propagation now off by
2045         default
2046         New switch -gnatI to disable representation clauses
2047         Implement new pragma Implicit_Packing
2048
2049         * usage.adb: 
2050         Warning for non-local exception propagation now off by default
2051         Add warning for unchecked conversion of pointers wi different
2052         conventions.
2053         New switch -gnatI to disable representation clauses
2054
2055         * usage.adb: new switch -gnatyS
2056
2057         * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
2058         note that aggregates of anonymous array types are not flagged.
2059         -gnatwc now includes membership tests optimized away
2060         -gnatw.x warnings are now off by default
2061         Added conditional compilation Appendix
2062         Add documentation of -gnatI
2063         Add documentation for new -gnatyS style check
2064         Update documentation about SAL and auto-init on Windows.
2065
2066         * gnat_rm.texi: 
2067         Add documentation for pragma Check_Name and 'Enabled attribute
2068         Document that Eliminate on dispatching operation is ignored
2069         Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
2070         Document pragma Main
2071         Document pragma Implicit_Packing
2072
2073         * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
2074         different conventions
2075         New switch -gnatI to disable representation clauses
2076
2077         * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
2078         recognized, report the invalid characters including "-gnat" instead of
2079         just the first character in the switch.
2080         New switch -gnatI to disable representation clauses
2081         Set Warn_On_Object_Renames_Function true for -gnatg
2082
2083         * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
2084         Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
2085         Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
2086         to switch -aP (add directory to project search dir).
2087
2088         * par-prag.adb: Implement new pragma Implicit_Packing
2089
2090         * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
2091         type as having a non-standard representation, to force expansion on
2092         conversion to related types.
2093         (Analyze_Pragma): Warn on misspelled pragma
2094         (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
2095         Ensure consistent use of # in error messages
2096         Implement pragma Implicit_Packing
2097
2098 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2099             Eric Botcazou  <ebotcazou@adacore.com>
2100
2101         * targtyps.c (get_target_maximum_default_alignment): New function.
2102         Maximum alignment
2103         that the compiler might choose by default for a type or object.
2104         (get_target_default_allocator_alignment): New function. Alignment known
2105         to be honored by the target default allocator.
2106         (get_target_maximum_allowed_alignment): New function. Maximum alignment
2107         we might accept for any type or object on the target.
2108         (get_target_maximum_alignment): Now synonym of maximum_default_alignment
2109
2110         * gigi.h (get_target_maximum_default_alignment): Declare new function.
2111         (get_target_default_allocator_alignment): Likewise.
2112         (get_target_maximum_allowed_alignment): Likewise.
2113
2114         PR ada/19037
2115         * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
2116         result of a function call, first try to use a stabilized reference for
2117         a constant renaming too.
2118         (validate_alignment): Use target_maximum_allowed_alignment instead of
2119         MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
2120         (gnat_to_gnu_entity): Use common nodes directly.
2121         (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
2122         alignment and size for the object.
2123         (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
2124         and N_Procedure_Call_Statement.
2125         (takes_address): Rename to lvalue_required_p, add third parameter
2126         'aliased' and adjust recursive calls.
2127         <N_Indexed_Component>: Update 'aliased' from the array type.
2128         <N_Selected_Component>: New case.
2129         <N_Object_Renaming_Declaration>: New Likewise.
2130         (Identifier_to_gnu): Adjust for above changes.
2131         (maybe_stabilize_reference) <CONST_DECL>: New case.
2132
2133         * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
2134         between type variants.
2135         (build_simple_component_ref): Likewise.
2136         (build_call_alloc_dealloc): Use target_default_allocator_alignment
2137         instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
2138         aligning type circuitry for allocations from the default storage pool.
2139         (build_allocator): Likewise.
2140         (build_simple_component_ref): Manually fold the reference for a
2141         constructor if the record type contains a template.
2142
2143         * utils.c (value_zerop): Delete.
2144         (gnat_init_decl_processing): Emit debug info for common types.
2145         (rest_of_record_type_compilation): If a union contains a field
2146         with a non-constant qualifier, treat it as variable-sized.
2147         (finish_record_type): Give the stub TYPE_DECL a name.
2148         (rest_of_record_type_compilation): Likewise.
2149         (convert) <CONSTRUCTOR>: New case.  Build a new constructor if
2150         types are equivalent array types.
2151         (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
2152         even if the type is not passed by reference.
2153         (static_ctors, static_dtors): Delete.
2154         (end_subprog_body): Do not record constructors and destructors.
2155         (build_global_cdtor): Delete.
2156         (gnat_write_global_declarations): Do not call build_global_cdtor.
2157
2158         * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
2159         -fRTS=rtp is specified.
2160         If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
2161         specified.
2162
2163         * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
2164         of the personality function with SJLJ exceptions.
2165
2166         * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
2167         the name of the personality function with SJLJ exceptions.
2168
2169 2007-08-14  Robert Dewar  <dewar@adacore.com>
2170             Ed Schonberg  <schonberg@adacore.com>
2171
2172         * par.ads, par.adb: Improve handling of extra right parens.
2173         (Par): Remove flag From_Limited_With_Clause.
2174
2175         * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
2176         Improve handling of extra right parens.
2177
2178 2007-08-14  Robert Dewar  <dewar@adacore.com>
2179
2180         * par-tchk.adb (TF_Semicolon): Improve error recovery
2181
2182 2007-08-14  Robert Dewar  <dewar@adacore.com>
2183             Ed Schonberg  <schonberg@adacore.com>
2184
2185         * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
2186         enumeration type, mark all literals as referenced.
2187         (Eval_Attribute, case 'Image): If the argument is an enumeration
2188         literal and names are available, constant-fold but mark nevertheless as
2189         non-static.
2190         Clean up function names.
2191         (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
2192         comment.
2193         (Requires_Simple_Name_Prefix): Removed.
2194
2195 2007-08-14  Robert Dewar  <dewar@adacore.com>
2196             Ed Schonberg  <schonberg@adacore.com>
2197
2198         * sem_ch11.adb: Improved warnings for unused variables
2199
2200         * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
2201         is a synchronized interface, the derived type is limited.
2202         (Analyze_Object_Declaration): Mark the potential coextensions in the
2203         definition and expression of an object declaration node.
2204         (Build_Derived_Type): For the completion of a private type declaration
2205         with a derived type declaration, chain the parent type's representation
2206         items to the last representation item of the derived type (not the
2207         first one) if they are not present already.
2208         (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
2209         object declaration of forward references to tags.
2210         (Access_Subprogram_Declaration): In Ada2005, anonymous access to
2211         subprogram types can appear as access discriminants of synchronized
2212         types.
2213         (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
2214         given in prefixed form as a selected component.
2215         (Process_Discriminants): If not all discriminants have defaults, place
2216         error message on a default that is present.
2217         (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
2218         extend a synchronized tagged type.
2219         Improved warnings for unused variables
2220         (Is_Visible_Component): Fix a visibility hole on a component inherited
2221         by a private extension when parent is itself declared as a private
2222         extension, and the derivation is in a child unit.
2223         (Find_Hidden_Interface): Move spec from the package body.
2224
2225 2007-08-14  Robert Dewar  <dewar@adacore.com>
2226             Ed Schonberg  <schonberg@adacore.com>
2227
2228         * sem_ch5.adb: Improve warnings on redundant assignments
2229
2230         * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
2231         parameter
2232         (Is_Synchronized_Tagged_Type): New subprogram that returns true
2233         in case of synchronized tagged types (AARM 3.9.4 (6/2)).
2234         (Safe_To_Capture_Value): Can now return True for constants, even if Cond
2235         is set to False. Improves handling of Known_[Not_]Null.
2236         (Wrong_Type): Special case address arithmetic attempt
2237         (Collect_Abstract_Interfaces): Add new formal to allow collecting
2238         abstract interfaces just using the partial view of private types.
2239         (Has_Abstract_Interfaces): Add new formal to allow checking types
2240         covering interfaces using the partial view of private types.
2241         (Is_Fully_Initialized_Type): Special VM case for uTag component. This
2242         component still needs to be defined in this case, but is never
2243         initialized as VMs are using other dispatching mechanisms.
2244         (Abstract_Interface_List): For a protected type, use base type to get
2245         proper declaration.
2246         Improve warnings on redundant assignments
2247         (Is_Variable): Handle properly an implicit dereference of a prefixed
2248         function call.
2249         (Build_Actual_Subtype): If this is an actual subtype for an
2250         unconstrained formal parameter, use the sloc of the body for the new
2251         declaration, to prevent anomalises in the debugger.
2252
2253 2007-08-14  Robert Dewar  <dewar@adacore.com>
2254
2255         * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
2256         dispatching operation
2257
2258 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2259             Gary Dismukes  <dismukes@adacore.com>
2260
2261         * exp_aggr.ads, 
2262         exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
2263         expanded aggregate code before allocator, and ahead of declaration for
2264         temporary, to prevent access before elaboration when the allocator is
2265         an actual for an access parameter.
2266         (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
2267         the TSD and the table of interfaces.
2268         (Convert_To_Assignments): Augment the test for delaying aggregate
2269         expansion for limited return statements to include the case of extended
2270         returns, to prevent creation of an unwanted transient scope.
2271         (Is_Static_Dispatch_Table_Aggregate): New subprogram.
2272         (Expand_Array_Aggregate): Handle aggregates associated with
2273         statically allocated dispatch tables.
2274         (Expand_Record_Aggregate): Handle aggregates associated with
2275         statically allocated dispatch tables.
2276         (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
2277         of anonymous access type.
2278
2279 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2280
2281         * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
2282         is a variable that renames a slice, use the variable itself in the
2283         expannsion when the renamed expression itself may be modified between
2284         the declaration of the renaming and the array assignment.
2285
2286 2007-08-14  Jerome Guitton  <guitton@adacore.com>
2287
2288         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 
2289         s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 
2290         s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
2291         New functions; dummy implementations.
2292
2293         * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
2294         functions, used to implement the multi-tasks mode routines on VxWorks.
2295
2296         * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
2297         New functions, thin
2298         binding to the VxWorks routines which have changed between VxWorks 5
2299         and 6.
2300         (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
2301         which are not callable from a RTP.
2302
2303         * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
2304         implemented for the multi-tasks mode on VxWorks 5 and 6.
2305
2306         * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
2307
2308         * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
2309         functions.
2310
2311 2007-08-14  Vincent Celier  <celier@adacore.com>
2312
2313         * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 
2314         gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
2315         mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 
2316         mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 
2317         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 
2318         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
2319         mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
2320         procedure.
2321         (Major_Id_Name): New function.
2322         mlib-tgt.ads/mlib.tgt.adb:
2323         (Library_Major_Minor_Id_Supported): New function, default returns True
2324         Most mlib-tgt-*.adb that support shared libraries and symbolic links:
2325         (Build_Dynamic_Library): Add support for major/minor ids for shared libs
2326         Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
2327         Implementation of Library_Major_Minor_Id_Supported returns False
2328         clean.adb:
2329         (Clean_Library_Directory): If major/minor ids are supported, clean all
2330         library files.
2331         Major update of the Project Manager and of the project aware tools,
2332         including gprmake, so that the same sources in the GNAT repository
2333         can be used by gprbuild.
2334
2335 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2336
2337         * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
2338         (GCC_ZCX_Support): Switch to True.
2339         
2340         * s-intman-solaris.adb (Notify_Exception): Call
2341         Adjust_Context_For_Raise before raising, as expected for signal
2342         handlers in general.
2343         
2344         * s-intman-posix.adb (Notify_Exception): Remove declaration of
2345         Adjust_Context_For_Raise, moved to the spec of this unit to be visible
2346         to other implementation bodies.
2347         
2348         * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
2349         be visible by multiple implementation bodies.
2350         
2351         * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
2352         only for conditions coming from hardware.
2353         [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
2354         adjustments to signal context prior to exception raise from signal
2355         handler.
2356         (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
2357         mode.
2358         Solaris section: (__gnat_adjust_context_for_raise): New function.
2359         Implementation of the machine context adjustments to perform prior to
2360         raise from a signal handler. Version for both sparc and x86.
2361         (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
2362         (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
2363         prior to raising as expected for any handler, before possible nested
2364         faults to make sure all the contexts in a chain have been adjusted by
2365         the time we propagate.
2366
2367 2007-08-14  Pascal Obry  <obry@adacore.com>
2368
2369         * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
2370         (SYSTEM_INFO): New record.
2371         (SetThreadIdealProcessor): New imported routine needed for supporting
2372         task_info pragma on Windows.
2373
2374         * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
2375         info can be applied to the current host.
2376         (Create_Task): Set the ideal processor if information is present.
2377
2378         * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
2379         a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
2380
2381 2007-08-14  Olivier Hainque  <hainque@adacore.com>
2382
2383         * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
2384         stack size and initial stack pointer value for a given task.
2385         (Enter_Task): Get the stack attributes of the task we are entering and
2386         let the stack checking engine know about them.
2387
2388         * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
2389         Let the stack-checking engine know about the initial sp value and stack
2390         size associated with the current task.
2391         (Set_Stack_Info): If a stack base has been notified for the current
2392         task, honor it. Fallback to the previous less accurate method otherwise.
2393
2394         * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
2395
2396 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2397
2398         * sem_ch10.adb: Create a limited view of an incomplete type, to make
2399         treatment of limited views uniform for all visible declarations in a
2400         limited_withed package.
2401         Set flag indicating that a subprogram body for a child unit has a
2402         generated spec.
2403         (Analyze_Compilation_Unit): If unit is a subprogram body that has no
2404         separate declaration, remove the unit name from visibility after
2405         compilation, so that environment is clean for subsequent compilations.
2406         (Install_Limited_Context_Clauses): Do not install a
2407         limited_private_with_clause unless the current unit is a body or a
2408         private child unit.
2409         (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
2410         in the same fashion.
2411         (Install_Limited_Withed_Unit): Do not install a limited with clause if
2412         it applies to the declaration of the current package body.
2413         (Remove_Private_With_Clauses): If there is a regular with_clause for
2414         the unit, delete Private_With_Clause from context, to prevent improper
2415         hiding when processing subsequent nested packages and instantiations.
2416
2417 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
2418
2419         * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
2420         dir/file, device:/dir/file, and device:drive_letter:/dir/file as
2421         representing absolute path names.
2422         __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
2423
2424         * cstreams.c (__gnat_full_name for VxWorks): Use
2425         __gnat_is_absolute_path to detect whether we need to add the current
2426         directory to normalize the path.
2427
2428 2007-08-14  Javier Miranda  <miranda@adacore.com>
2429
2430         * a-tags.ads, 
2431         a-tags.adb (Displace): Associate a message with the raised CE
2432         exception.
2433         (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
2434         To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
2435         To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
2436         spec.
2437         (Default_Prim_Op_Count): Removed.
2438         (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
2439         Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
2440         Remove pragma Inline_Always.
2441
2442         * rtsfind.ads (Default_Prim_Op_Count): Removed
2443         (Max_Predef_Prims): New entity
2444         (RE_Expanded_Name): Removed
2445         (RE_HT_Link): Removed
2446         (RE_Iface_Tag): Remmoved
2447         (RE_Ifaces_Table): Removed
2448         (RE_Interfaces_Array): Removed
2449         (RE_Interface_Data_Element): Removed
2450         (RE_Nb_Ifaces): Removed
2451         (RE_RC_Offset): Removed
2452         (RE_Static_Offset_To_Top): Removed
2453
2454         * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
2455         formal.
2456         (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
2457         Prim_Op_Count by Max_Predef_Prims.
2458
2459 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2460             Vincent Celier  <celier@adacore.com>
2461
2462         * binde.adb (Elab_All_Links): Remove unnecessary call to
2463         Generic_Separately_Compiled (if a unit satisfies this predicate, there
2464         won't be an associated Afile).
2465         (Elab_All_Links): Fail if a referenced unit cannot be found
2466
2467         * bindgen.adb: 
2468         Fix comments in bindgen regarding consistency checks done in Bcheck:
2469         the checks are made across units within a partition, not across several
2470         partitions.
2471         Fix generation of C binder file for VxWorks.
2472
2473         * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
2474         Generic_May_Lack_ALI, more descriptive of the current use of the
2475         predicate, and update documentation.
2476
2477         * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
2478         reorganization and documentation update for the case of predefined
2479         library generics (for which we do not reference an Afile).
2480
2481 2007-08-14  Robert Dewar  <dewar@adacore.com>
2482
2483         * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
2484         s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
2485         s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
2486         s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
2487         s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
2488         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
2489         s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
2490         s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
2491         exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
2492         s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
2493         s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
2494         a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
2495         s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
2496         g-altcon.adb: Minor reformatting
2497
2498         ada-tree.h: Delete empty line.
2499
2500         ali.ads: Minor reformatting
2501         Clarification of comments.
2502         Minor spelling correction
2503
2504         * exp_dbug.adb: Add Warnings Off to suppress new warning
2505
2506         * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2507         formal
2508
2509         * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
2510         value
2511
2512         * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
2513
2514         * a-textio.ads: Reorder the standard input/output/error declarations
2515         for consistency.
2516
2517         * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
2518
2519         * par-ch2.adb: Recognize RM specially in errout
2520         Change 'R'M to RM in all error messages
2521
2522         * scng.adb: Recognize RM specially in errout
2523
2524         * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
2525         N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
2526
2527         * s-direio.adb: Add missing routine header box.
2528
2529         * sem_attr.ads: Add ??? comments
2530
2531         * sem_eval.adb: Recognize RM specially in errout
2532         Change 'R'M to RM in all error messages
2533
2534         * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
2535
2536         * s-tasinf.ads: Fix minor comment typo.
2537
2538         * a-cihama.adb: Minor comment addition
2539
2540         * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2541         formal
2542
2543         * s-tasinf-tru64.ads: Fix minor comment typo.
2544
2545         * itypes.ads: Comment update.
2546
2547         * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
2548         anymore.
2549
2550         * argv.c: Added protection against null gnat_argv and gnat_envp.
2551
2552         * bcheck.adb (Check_Consistency): Use correct markup character ({) in
2553         warning message when Tolerate_Consistency_Errors is True.
2554
2555         * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
2556         Any_Id, as this subprogram is only applicable to *type* entities (it
2557         sets RM_Size). Instead initialize just Esize and Alignment.
2558
2559 2007-08-14  Bob Duff  <duff@adacore.com>
2560
2561         * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
2562         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
2563         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
2564         a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
2565         a-coorse.ads (Next): Applied pragma Inline.
2566         Make all Containers packages Remote_Types (unless they are already
2567         Pure).
2568         (Previous): applied pragma Inline
2569         (Elements_Type): is now a record instead of an array
2570
2571 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2572
2573         * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
2574         of Set_Item.
2575         (Set_Item): When the new item is an element of the currently allocated
2576         table passed by reference, save a copy on the stack if we're going
2577         to reallocate. Also, in Table.Set_Item, make sure we test the proper
2578         variable to determine whether to call Set_Last.
2579
2580         * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
2581         symbols-vms.adb, symbols-processing-vms-alpha.adb,
2582         symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
2583         some occurrences of the pattern
2584            T.Increment_Last;
2585            T.Table (T.Last) := Value;
2586         with a cleaner call to
2587            T.Append (Value);
2588
2589 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2590             Gary Dismukes  <dismukes@adacore.com>
2591             Thomas Quinot  <quinot@adacore.com>
2592
2593         * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
2594         derived type with interface progenitors use the analyzed formal as the
2595         parent of the actual, to create renamings for all the inherited
2596         operations in Derive_Subprograms.
2597         (Collect_Previous_Instances): new procedure within of
2598         Load_Parent_Of_Generic, to instantiate all bodies in the compilation
2599         unit being loaded, to ensure that the generation of global symbols is
2600         consistent in different compilation modes.
2601         (Is_Tagged_Ancestor): New function testing the ancestor relation that
2602         takes progenitor types into account.
2603         (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
2604         traversing over the primitives of the formal and actual types to locate
2605         any abstract subprograms of the actual type that correspond to a
2606         nonabstract subprogram of the formal type's ancestor type(s), and issue
2607         an error if such is found.
2608         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
2609         Instantiate_Package_Body, Instantiate_Subprogram_Body):
2610         Remove bogus guard around calls to Inherit_Context.
2611         (Reset_Entity): If the entity is the selector of a selected component
2612         that denotes a named number, propagate constant-folding to the generic
2613         template only if the named number is global to the generic unit.
2614         (Set_Instance_Env): Only reset the compilation switches when compiling
2615         a predefined or internal unit.
2616
2617 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2618
2619         * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
2620         parameter to determine whether operation applies to the prefix.
2621         (Complete_Object_Operation): If actual has an access type and
2622         controlling formal is not an in_parameter, reject the actual if it is
2623         an access_to_constant type.
2624         (Try_Primitive_Operation): If the type of the prefix is a formal tagged
2625         type, the candidate operations are found in the scope of declaration of
2626         the type, because the type has no primitive subprograms.
2627         (Analyze_Selected_Component): If prefix is class-wide, and root type is
2628         a private extension, only examine visible components before trying to
2629         analyze as a prefixed call.
2630         Change Entity_List to Type_To_Use, for better readability.
2631         (Has_Fixed_Op): Use base type when checking whether the type of an
2632         operator has a user-defined multiplication/division
2633         (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
2634         user-defined operators are available for fixed-point types.
2635
2636 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2637             Ed Schonberg  <schonberg@adacore.com>
2638
2639         * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
2640         formal At_Any_Place indicating, when True, that we want to test for
2641         availability of the stream attribute at any place (as opposed to the
2642         current visibility context only).
2643         (Missing_Read_Write_Attributes): A stream attribute is missing for the
2644         purpose of enforcing E.2.2(8) only if it is not available at any place.
2645         Take into account the Ada2005 pragma Has_Preelaborable_Initialization
2646         when checking the legality of an extension aggregate in a preelaborable
2647         package. Treat the literal null as a valid default expression in a
2648         component declaration for a type with preelaborable initialization.
2649         A limited interface is a legal progenitor for the designated type of a
2650         remote access to class-wide type.
2651
2652 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2653             Ed Schonberg  <schonberg@adacore.com>
2654
2655         * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
2656         reference): Use correct entity as denoted entity for the selector of
2657         the rewritten node.
2658         (Find_Direct_Name): Add comment about Generate_Reference incorrectly
2659         setting the Referenced_As_LHS flag for entities that are implicitly
2660         dereferenced.
2661         (Find_Type): If the type is an internally generated incomplete type,
2662         mark the full view as referenced, to prevent spurious warnings.
2663         (Find_Selected_Component, Has_Components): Handle properly non-limited
2664         views that are themselves incomplete types.
2665         Handle interfaces visible through limited-with clauses.
2666         (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
2667         subprogram generic actual for which we have generated a renaming.
2668         Warn when the renaming introduces a homonym of
2669         the renamed entity, and the renamed entity is directly visible.
2670
2671 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2672             Hristian Kirtchev  <kirtchev@adacore.com>
2673
2674         * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
2675         appear in the subtree to the current allocator if it is not a static
2676         coextension.
2677         (Resolve_Allocator): Perform cleanup if resolution has determined that
2678         the allocator is not a coextension.
2679         (Resolve): Skip an interpretation hidden by an abstract operator only
2680         when the type of the interpretation matches that of the context.
2681         (Resolve): When looping through all possible interpretations of a node,
2682         do not consider those that are hidden by abstract operators.
2683         (Resolve_Actuals): When verifying that an access to class-wide object
2684         is an actual  for a controlling formal, ignore anonymous access to
2685         subprograms whose return type is an access to class_wide type.
2686         (Resolve_Slice): If the prefix of the slice is a selected component
2687         whose type depends on discriminants, build its actual subtype before
2688         applying range checks on the bounds of the slice.
2689         (Valid_Conversion): In an instance or inlined body, compare root types,
2690         to prevent anomalies between private and public views.
2691         (Resolve): Improve error message for ambiguous fixed multiplication
2692         expressions that involve universal_fixed multiplying operations.
2693
2694 2007-08-14  Javier Miranda  <miranda@adacore.com>
2695             Hristian Kirtchev  <kirtchev@adacore.com>
2696
2697         * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
2698         location to allow the correct generation of errors in case of
2699         restrictions applied to the expanded code.
2700         (Expand_Entry_Barrier): Remove all generated renamings for a barrier
2701         function if the condition does not reference them.
2702         (Expand_Entry_Body_Declarations): Mark the index constant as having a
2703         valid value.
2704
2705 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2706
2707         * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
2708         typecode parameters for a union (in a variant record), remove
2709         extraneous layer of Any wrapping for member label.
2710         (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
2711         elabration statements, register the package with the name server
2712         at the beginning, not at the end, of the elaboration statements so
2713         that they can create remote access to subprogram values that designate
2714         remote subprograms from the package.
2715
2716 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
2717
2718         * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
2719         values to compute the number of seconds since the Unix Epoc in order to
2720         account for Daylight Savings Time. Perform special processing for dates
2721         that are earlier than the Unix Epoc to obtain a negative number.
2722
2723 2007-08-14  Emmanuel Briot  <briot@adacore.com>
2724
2725         * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
2726         switches.
2727
2728 2007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
2729
2730         * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
2731         binder-generated file is not in Ada.
2732         Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
2733         recorded in the ALI file.
2734         Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
2735
2736 2007-08-14  Vincent Celier  <celier@adacore.com>
2737
2738         * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
2739         (Output_Source): Do nothing if parameter is No_Sdep_Id
2740
2741         * make.adb (Gnatmake): Do not rebuild an archive simply because a
2742         shared library it imports has a later time stamp.
2743         (Check): Resolve the symbolic links in the path name of the object
2744         directory.
2745         Check that the ALI file is in the correct object directory
2746         Check if a file name does not correspond to the mapping of units
2747         to file names.
2748         (Display_Version): New procedure
2749         (Initialize): Process switches --version and --help
2750         Use type Path_Name_Type for path name
2751
2752 2007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
2753
2754         * impunit.adb: Re-organize System.Random_Numbers and
2755         GNAT.Random_Numbers and add to builds.
2756
2757         * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
2758
2759         * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
2760
2761         * a-assert.ads, a-assert.adb: New files.
2762
2763 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
2764
2765         * layout.adb (Layout_Type): In the case of access-to-subprogram types,
2766         if AAMP_On_Target is True, then the size of the type encompasses two
2767         addresses (a static link and a subprogram address), except in the case
2768         of library-level access types.
2769
2770 2007-08-14  Vincent Celier  <celier@adacore.com>
2771
2772         * output.ads, output.adb (Write_Eol): Remove trailing spaces before
2773         writing the line.
2774         (Write_Eol_Keep_Blanks): New procedure to write a line, including
2775         possible trailing spaces.
2776         (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
2777
2778 2007-08-14  Javier Miranda  <miranda@adacore.com>
2779
2780         * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
2781         null-excluding access types.
2782
2783 2007-08-14  Javier Miranda  <miranda@adacore.com>
2784
2785         * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
2786         that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
2787         of private types add missing check on matching interfaces in the
2788         partial and full declarations.
2789         (Analyze_Protected_Type): Code cleanup.
2790         (Analyze_Task_Type): Code cleanup.
2791
2792 2007-08-14  Javier Miranda  <miranda@adacore.com>
2793
2794         * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
2795         generated interface thunk.
2796
2797 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2798
2799         * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
2800         obsolescent warning on application of 'Class to an incomplete type.
2801
2802         * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
2803         prevent obsolescent warning on application of 'Class to an incomplete
2804         type.
2805
2806 2007-08-14  Pascal Obry  <obry@adacore.com>
2807
2808         * s-fileio.adb (Is_Open): Add check for usability of the underlying
2809         file stream.
2810
2811 2007-08-14  Cyrille Comar  <comar@adacore.com>
2812
2813         * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
2814         since it is potentially used in cases implying double finalization of
2815         the same object.
2816
2817 2007-08-14  Jose Ruiz  <ruiz@adacore.com>
2818
2819         * s-tasini.adb (Get_Stack_Info): Move this function to
2820         System.Soft_Links.Tasking because it is common to the full and the
2821         restricted run times.
2822         (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
2823         in SSL.Tasking.Init_Tasking_Soft_Links.
2824
2825         * s-solita.adb (Get_Stack_Info): Function moved from
2826         System.Tasking.Initialization because it is common to the full and the
2827         restricted run times.
2828         (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
2829
2830 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
2831
2832         * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
2833         s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
2834         (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
2835         parameter.
2836
2837         * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
2838         guard to 12K.
2839
2840 2007-08-14  Gary Dismukes  <dismukes@adacore.com>
2841
2842         * s-veboop.adb (SU): New named number initialized to
2843         System.Storage_Unit.
2844         (True_Val): The initialization expression is revised to use SU (=
2845         Storage_Unit) rather than assuming 8 for the component size of an
2846         unpacked Boolean array.
2847
2848 2007-08-14  Tristan Gingold  <gingold@adacore.com>
2849
2850         * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
2851
2852         * tb-ivms.c: New file.
2853
2854         * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
2855
2856 2007-08-14  Geert Bosch  <bosch@adacore.com>
2857
2858         * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
2859         s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
2860         Add required linker pragmas for automatically linking with the gnalasup
2861         linear algebra support library, and the systems math library.
2862         Rename cdot to cdotu and zdot to zdotu.
2863         Update header comment to describe purpose of package.
2864
2865 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2866
2867         * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
2868         an explicitly specified Associated_Final_Chain, use that list.
2869         (Expand_N_Package_Body): Build dispatch tables of library level tagged
2870         types.
2871         (Expand_N_Package_Declaration): Build dispatch tables of library level
2872         tagged types. Minor code cleanup.
2873
2874 2007-08-14  Vincent Celier  <celier@adacore.com>
2875
2876         * gnatchop.adb (Terminate_Program): Remove exception and use
2877         Types.Terminate_Program instead.
2878
2879         * osint.ads, osint.adb (Current_Exit_Status): New global variable
2880         (Find_Program_Name): Added protection against empty name.
2881         (OS_Exit_Through_Exception): New procedure
2882
2883         * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
2884         (OS_Exit_Default): New procedure that contains the previous
2885         implementation of procedure OS_Exit.
2886         (Final_Value): Remove obsolete Interix stuff.
2887
2888 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2889
2890         * g-socket.ads: Reorganize example code so that it also works on
2891         Windows XP.
2892
2893 2007-08-14  Tristan Gingold  <gingold@adacore.com>
2894
2895         * g-trasym.ads: AIX now supports symbolic backtraces.
2896
2897 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2898
2899         * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
2900         units being loaded to detect circularities. A circularity may be
2901         present even if the current chain of pending units to load starts from
2902         a limited_with_clause.
2903
2904         * lib-load.ads: Change profile of Load_Unit to use a with_clause
2905         rather than a boolean flag, in order to detect circularities in
2906         with_clauses.
2907
2908         * par-load.adb: Use current with_clause in calls to Load_Unit, rather
2909         than propagating the From_Limited_With flag, in order to handle
2910         properly circularities involving with_clauses.
2911
2912 2007-08-14  Nicolas Setton  <setton@adacore.com>
2913
2914         * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
2915         warnings.
2916
2917 2007-08-14  Arnaud Charlet  <charlet@adacore.com>
2918
2919         * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
2920         to build for libgnala.
2921         libgnat: Add rules to build libgnala.a
2922         (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
2923         target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
2924         Add s-osinte-vxworks-kernel.adb to the target pairs of the
2925         kernel run-time lib for VxWorks 6, which would provide a different
2926         implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
2927         x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
2928         running ZCX by default.
2929         Add g-sttsne-locking to LynxOS version.
2930         Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
2931         On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
2932
2933         * system-darwin-x86.ads: New file.
2934
2935         * Make-lang.in: Delete files before copying onto them, so if they are
2936         read-only, the copy won't fail.
2937         Update dependencies
2938
2939 2007-08-14  Pascal Obry  <obry@adacore.com>
2940
2941         * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
2942         naming scheme.
2943
2944 2007-08-14  Vincent Celier  <celier@adacore.com>
2945
2946         * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
2947         (Gcc): Initialize Gcc_Name at the first call
2948
2949 2007-08-14  Ed Schonberg  <schonberg@adacore.com>
2950
2951         * sem_ch7.adb (Analyze_Package_Specification): Do not install private
2952         with_clauses of the enclosing unit when analyzing the package
2953         specification of a nested instance.
2954
2955 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
2956
2957         * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
2958         (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
2959         Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
2960         layout of N_Allocator.
2961
2962 2007-08-14  Thomas Quinot  <quinot@adacore.com>
2963
2964         * rtsfind.adb (Check_RPC): Add PCS version check.
2965
2966         * gnatvsn.ads, gnatvsn.adb: Add PCS version.
2967         (Gnat_Free_Software): New function.
2968
2969         * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
2970         the PCS_Version value from s-parint, used to check that it is consistent
2971         with what exp_dist expects.
2972
2973         * s-parint.ads (PCS_Version): New entity for checking consistency
2974         between exp_dist and PCS.
2975
2976         * gen-soccon.c: (SO_REUSEPORT): New constant.
2977
2978 2007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
2979
2980         * a-calfor.adb (Image (Duration; Boolean)): Change type of local
2981         variable Sub_Second to Duration in order to accomodate a larger range
2982         of arithmetic operations.
2983
2984 2007-08-14  Bob Duff  <duff@adacore.com>
2985
2986         * g-sttsne-locking.ads: Move comments from spec to body.
2987         * g-sttsne-locking.adb: Move comments from spec to body.
2988         * g-sttsne-vxworks.ads: Removed.
2989         * g-sttsne-vxworks.adb: Removed.
2990
2991 2007-08-11  Ian Lance Taylor  <iant@google.com>
2992
2993         * misc.c (gnat_get_alias_set): Change return type to
2994         alias_set_type.
2995
2996 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2997
2998         * decl.c, utils2.c: Fix whitespace in last change.
2999
3000 2007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3001
3002         * decl.c (compare_field_bitpos): Constify.
3003         * utils2.c (compare_elmt_bitpos): Likewise.
3004
3005 2007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
3006
3007         * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 
3008         anonymous access type.
3009         (pthread_sigmask): Now take an access sigset_t.
3010
3011 2007-07-05  Joel Sherrill <joel.sherrill@oarcorp.com>
3012
3013         * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
3014         
3015 2007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
3016
3017         PR tree-optimization/25737
3018         * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
3019
3020 2007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
3021
3022         * trans.c (Attribute_to_gnu): When subtracting an
3023         offset from a pointer, use POINTER_PLUS_EXPR with
3024         NEGATE_EXPR instead of MINUS_EXPR.
3025         (gnat_to_gnu): Likewise.
3026         * utils.c (convert): When converting between
3027         thin pointers, use POINTER_PLUS_EXPR and sizetype
3028         for the offset.
3029         * utils2.c (known_alignment): POINTER_PLUS_EXPR
3030         have the same semantics as PLUS_EXPR for alignment.
3031         (build_binary_op): Add support for the semantics of
3032         POINTER_PLUS_EXPR's operands.
3033         When adding an offset to a pointer, use POINTER_PLUS_EXPR.
3034
3035 2007-06-11  Rafael Avila de Espindola  <espindola@google.com>
3036
3037         * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
3038         of get_signed_or_unsigned_type.
3039         * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
3040
3041 2007-06-11  Bob Duff  <duff@adacore.com>
3042             Thomas Quinot  <quinot@adacore.com>
3043
3044         * g-stsifd-sockets.adb (Create): Work around strange behavior of
3045         'bind' on windows that causes 'connect' to fail intermittently, by
3046         retrying the 'bind'.
3047         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3048
3049 2007-06-10  Duncan Sands  <baldrick@free.fr>
3050
3051         * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
3052         than to void, for the fields when making a new fat pointer type.
3053         (gnat_substitute_in_type): Now substitute_in_type.
3054         * gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
3055         * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
3056         * utils.c (update_pointer_to): Update fat pointers by updating the
3057         dummy node pointers used for the fields.
3058
3059 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3060             Bob Duff  <duff@adacore.com>
3061
3062         * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
3063         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 
3064         g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
3065         constant Thread_Blocking_IO, always True by default, set False
3066         on a per-runtime basis.
3067         (Need_Netdb_Buffer): New constant.
3068
3069         * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
3070         g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
3071         files.
3072
3073         * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
3074         g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
3075         Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
3076         child package Task_Safe_NetDB
3077         (Host_Error_Messages): Add stub body.
3078         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3079
3080         * g-soccon-mingw.ads: Add Windows-specific constants.
3081         (Need_Netdb_Buffer): New constant.
3082         (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
3083         wrapper and import inet_addr(3) from the standard sockets library
3084         directly instead.
3085         (In_Addr): Add alignment clause.
3086         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3087
3088 2007-06-06  Robert Dewar  <dewar@adacore.com>
3089
3090         * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3091         s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
3092         s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
3093         s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
3094         s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
3095         s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
3096         a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
3097         a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
3098         a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
3099         g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
3100         g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
3101         i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
3102         s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
3103         s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
3104         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
3105         s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
3106         s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
3107         s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
3108         s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
3109         s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
3110         s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
3111         s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
3112         s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
3113         s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
3114         s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
3115         s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
3116         s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
3117         s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
3118         s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
3119         s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
3120         s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
3121         a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
3122         Unchecked_* by Ada.Unchecked_*
3123
3124 2007-06-06  Robert Dewar  <dewar@adacore.com>
3125
3126         * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
3127         s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
3128         g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
3129         output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
3130         g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
3131         a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
3132
3133         * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
3134         s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
3135         s-tasloc.adb, s-tasloc.ads: New files.
3136
3137 2007-06-06  Bob Duff  <duff@adacore.com>
3138
3139         * g-expect-vms.adb: 
3140         (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
3141         * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
3142         (Send_Signal, Close): Raise Invalid_Process if the process id is
3143         invalid.
3144         (Pattern_Matcher_Access): Is now a general access type to be able to
3145         use aliased string.
3146
3147 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3148             Arnaud Charlet  <charlet@adacore.com>
3149
3150         * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
3151         (SIGEMT is now used instead of SIGTERM on AIX).
3152
3153         * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
3154         (Time_Slice_Supported): Set to True.
3155         Use SIGEMT instead of SIGTERM as SIGADAABORT.
3156
3157 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
3158
3159         * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
3160         (Time, Time)): Use To_Relative_Time rather than manual calculation to
3161         express the bounds of Duration as Time. Raise Time_Error when the
3162         result is greater or equal to the higher bound of Duration (on the
3163         margin case).
3164         ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
3165         Ada_High_And_Leaps.
3166         ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
3167         Ada_High_And_Leaps.
3168         ("-" (Time, Time)): Reorder code.
3169         (All_Leap_Seconds): Removed.
3170         (Arithmetic_Operations.Add): Remove sign related kludge.
3171         (Arithmetic_Operations.Difference): Control the leaps seconds processing
3172         with flag Leap_Support.
3173         (Arithmetic_Operations.Subtract): Remove sign related kludge.
3174         (Check_Within_Time_Bounds): New procedure.
3175         (Clock): Control the leap seconds processing with flag Leap_Support.
3176         (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
3177         (Formatting_Operations.Split): Control the leap seconds processing with
3178         flag Leap_Support.
3179         (Formatting_Operations.Time_Of): Control the leaps seconds processing
3180         with flag Leap_Support. Adjust the year, month and day (if applicable)
3181         when the value of day seconds designates a new day.
3182         (Split): Use parameter associations for better readability. Integrate
3183         flag Is_Ada_05.
3184         (Time_Of): Use parameter associations for better readability. Integrate
3185         flag Is_Ada_05.
3186
3187         * a-calfor.adb (Split): Use parameter associations for better
3188         readability. Integrate flag Is_Ada_05.
3189         (Time_Of): Remove flag Leap_Checks. Use parameter associations for
3190         better readability. Integrate flag Is_Ada_05.
3191
3192 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3193
3194         * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 
3195         s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 
3196         s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 
3197         s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 
3198         s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 
3199         s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 
3200         s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 
3201         s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 
3202         s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 
3203         s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
3204         s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
3205         time when entering this routine to detect a backward clock setting
3206         (manual setting or DST adjustment), to avoid waiting for a longer delay
3207         than needed.
3208         (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
3209         Remove handling of deferred priority change, and replace by setting the
3210         task priority directly, as required by AI-188.
3211         Update comments.
3212         (Max_Task_Image_Length): New constant.
3213         Replace Warnings (Off) by Unreferenced pragma, cleaner.
3214         (Dynamic_Priority_Support): Removed, no longer needed.
3215         (Poll_Base_Priority_Change): Ditto.
3216         (Set_Ceiling): Add this procedure to change the ceiling priority
3217         associated to a lock. This is a dummy implementation because dynamic
3218         priority ceilings are not supported by the underlying system.
3219
3220         * a-dynpri.adb (Set_Priority): Take into account case where Target is
3221         accepting a RV with its priority boosted.
3222         Remove handling of deferred priority change, and replace by setting the
3223         task priority directly, as required by AI-188.
3224
3225         * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
3226         Succeeded = True.
3227         Remove handling of deferred priority change, and replace by setting the
3228         task priority directly, as required by AI-188.
3229         (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
3230         of Self_Id earlier.
3231
3232         * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
3233         (Poll_Base_Priority_Change): Removed.
3234         Code clean up: use SSL.Current_Target_Exception.
3235
3236         * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
3237         to run as this is a potentially dispatching point.
3238         (Call_Synchronous): Use Local_Defer_Abort.
3239         (Callable): Relax assertion.
3240         (Selective_Wait): Relax assertion in case abort is not allowed.
3241         Remove handling of deferred priority change, and replace by setting the
3242         task priority directly, as required by AI-188.
3243
3244         * s-tasuti.adb (Make_Passive): Adjust assertions.
3245         Remove handling of deferred priority change, and replace by setting the
3246         task priority directly, as required by AI-188.
3247
3248 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3249
3250         * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
3251         system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 
3252         system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 
3253         system-vxworks-mips.ads, system-vxworks-alpha.ads, 
3254         system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 
3255         system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 
3256         system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 
3257         system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 
3258         system-solaris-sparcv9.ads, system-vms.ads, system.ads,
3259         system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
3260         system-linux-ia64.ads: Document mapping between Ada and OS priorities.
3261         This patch changes the largest non-binary modulus from 2**31-1 to
3262         2**32-1.
3263         (Compiler_System_Version): Removed, no longer used.
3264         Clean up system files by removing flags only used on a single target.
3265         Also remove obsolete flags, only used during bootstrap from system.ads
3266         (Address): Add a pragma Preelaborable_Initialization.
3267
3268         * system-aix.ads:  Ditto.
3269         (GCC_ZCX_Support): Set to true.
3270         Update priority range on AIX and map Ada priorities to target
3271         priorities appropriately for different scheduling policies.
3272
3273         * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
3274
3275 2007-06-06  Vincent Celier  <celier@adacore.com>
3276
3277         * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
3278         mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
3279
3280         * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 
3281         mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 
3282         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 
3283         mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
3284         mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
3285         MLib.Tgt, containing the default versions of the exported subprograms.
3286         For each platform, create a specific version of the body of new child
3287         package MLib.Tgt.Specific that contains only the body of subprograms
3288         that are different from the default.
3289         (Archive_Builder_Append_Options): New function.
3290
3291 2007-06-06  Matthew Gingell  <gingell@adacore.com>
3292
3293         * s-osinte-aix.adb: Map Ada priorities to target priorities
3294         appropriately for different scheduling policies.
3295
3296 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3297
3298         * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
3299         its C counterpart.
3300         Remove references to Unchecked_Conversion, and use Ada.xxx instead.
3301         Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 
3302
3303 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
3304
3305         * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
3306         Noop on VMS, added for interface commonality.
3307
3308 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
3309             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3310             Olivier Hainque  <hainque@adacore.com>
3311
3312         * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
3313         renamed expression of a full renaming at toplevel.
3314         (gnat_to_gnu_entity, case object): If not defining, do not look inside
3315         the values the constant is initialized to if it is an N_Allocator.
3316         (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
3317         TYPE_SIZE_UNIT of inner types after the stride is elaborated.
3318         (make_aligning_type): Accept an extra ROOM argument for storage to be
3319         made available before the aligned field, and an extra BASE_ALIGN
3320         argument for callers to pass the alignment guaranteed to be honored for
3321         the whole aligning object. Avoid call to finish_record_type, which only
3322         interferes with the sizes we want to set.
3323         (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
3324         make_aligning_type for super-aligned objects on stack.
3325         (components_to_record): Pass the adjusted size of the type when creating
3326         fields in the qualified union for the variant part.
3327         (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
3328         (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
3329         packed array type.
3330         (maybe_pad_type): Set TYPE_USER_ALIGN.
3331         (make_aligning_type): Likewise.
3332         ALIGN argument is unsigned int.
3333         (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
3334         (gnat_to_gnu_param): Likewise, for parameters.
3335         (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
3336         if it is constant and stems from a function call.
3337         (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
3338         of the record is specified.  Adjust accordingly.
3339         (adjust_packed): New static function.
3340         (gnat_to_gnu_field): Use it to adjust the packedness setting.
3341         (components_to_record): Likewise.
3342         (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
3343         side-effects if the object is deemed constant.
3344         (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
3345         type instead of merely finalizing it.  Tidy.
3346         <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
3347         <E_Access_Type>: Likewise.
3348         (defer_debug_incomplete_list): Rename to defer_finalize_list.
3349         (defer_debug_level): Delete.
3350         (gnat_to_gnu_entity) <debug_deferred>: Likewise
3351         <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
3352         type.
3353         <E_Record_Type>: Do not explicitly defer finalizing the type.
3354         Adjust for write_record_type_debug_info renaming.
3355         <E_Subprogram_Type>: Likewise.
3356         Finalize deferred types right after deferred incomplete types are
3357         expanded.
3358         (rest_of_type_decl_compilation): New global function.
3359         (components_to_record): Rename defer_debug parameter to do_not_finalize.
3360         (components_to_record): Propagate the packedness to the fields of the
3361         qualified union type if there is a variant part.
3362         (gnat_to_gnu_entity) <E_Array_Type>: Use new function
3363         instead of inline code to adjust the XUT field offsets.
3364         (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
3365         <E_Record_Subtype>: Do not let finish_record_type compute the sizes
3366         and write the debug info if the type derives from a discriminated one.
3367         (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
3368         <E_Array_Subtype>: Likewise.
3369         <E_String_Literal_Subtype>: Likewise.
3370         (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
3371         an alignment clause.
3372         (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
3373         before giving warning.
3374         (prepend_one_attribute_to): New function, helper to prepend an attribute
3375         to an attribute list.
3376         (gnat_to_gnu_entity) <E_Procedure>: Use it.
3377         (prepend_attributes): Likewise.
3378         (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
3379         <E_Array_Type>: Declare the padding type for the element type, if any.
3380         <E_Array_Subtype>: Likewise.
3381         (defer_limited_with): New variable.
3382         (Gigi_Equivalent_Type): New function.
3383         (gnat_to_gnu_entity): Use it at start and use result throughout.
3384         (gnat_to_gnu_entity, case E_Access_Type): Rework to use
3385         Gigi_Equivalent_Type, support Limited_With, allow two levels of
3386         indirection, precompute if unconstrained array to simplify logic, and
3387         use defer_limited_with to defer elaboration of some types from limited
3388         with.
3389         (finalize_from_with_types): New function.
3390
3391 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
3392             Eric Botcazou  <ebotcazou@adacore.com>
3393             Tristan Gingold  <gingold@adacore.com>
3394             Olivier Hainque  <hainque@adacore.com>
3395
3396         * trans.c (Identifier_to_gnu): Change test for deferred constant by
3397         adding guard that the entity is an E_Constant before testing presence
3398         of Full_view (and remove unnecessary test that entity is not a type).
3399         For a CONST_DECL used by reference, manually retrieve
3400         the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
3401         (struct language_function): Move from utils.c to here.
3402         (struct parm_attr): New structure.
3403         (parm_attr, parm_attr vector, parm_attr GC vector): New types.
3404         (f_parm_attr_cache): New macro.
3405         (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
3406         expressions for the 'First, 'Last and 'Length attributes of the
3407         unconstrained array IN parameters.
3408         (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
3409         Allocate the information structure for the function earlier, as well
3410         as the language-specific part.
3411         If the parameter attributes cache has been populated, evaluate the
3412         cached expressions on entry.
3413         (takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
3414         N_Procedure_Call_Statement and N_Indexed_Component.
3415         (Pragma_to_gnu): Translate inspection_point to an asm statement
3416         containaing a comment and a reference to the object (either its address
3417         for BLKmode or its value).
3418         (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
3419         to go to DECL_INITIAL. Together with the size constraint relaxation
3420         in create_var_decl, enlarges the set of situations in which an
3421         identifier may be used as an initializer without implying elaboration
3422         code.
3423         (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
3424         DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
3425         node.
3426         (maybe_stabilize_reference): Remove lvalues_only parameter.
3427         (gnat_stabilize_reference): Adjust for above change.
3428         (gnat_to_gnu): Do not set location information on the result
3429         if it is a reference.
3430         (add_cleanup): Add gnat_node parameter and set the location of the
3431         cleanup to it.
3432         (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
3433         (Exception_Handler_to_gnu_zcx): Likewise.
3434         (gigi): Remove the cgraph node if the elaboration procedure is empty.
3435         (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
3436         the former right after the latter.
3437         (start_stmt_group): Make global.
3438         (end_stmt_group): Likewise.
3439         (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
3440         vars.
3441         (gnu_program_error_label_stack): Likewise.
3442         (gigi): Initialize them.
3443         (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
3444         (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
3445         New cases.
3446         (push_exception_label_stack): New function.
3447         (takes_address): New function.
3448
3449         * utils.c (struct language_function): Move to trans.c from here.
3450         (unchecked_convert): Do not wrap up integer constants in
3451         VIEW_CONVERT_EXPRs.
3452         (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
3453         the latter for aggregate types, unexpected by later passes, and relax an
3454         arbitrary size constraint on the former.
3455         (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
3456         to compare the sizes.
3457         (convert_vms_descriptor): When converting to a fat pointer type, be
3458         prepared for a S descriptor at runtime in spite of a SB specification.
3459         (shift_unc_components_for_thin_pointers): New function.
3460         (write_record_type_debug_info): For variable-sized fields, cap the
3461         alignment of the pointer to the computed alignment.
3462         (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
3463         If REP_LEVEL is 2, do not compute the sizes.
3464         (build_vms_descriptor): Adjust for new prototype of finish_record_type.
3465         (build_unc_object_type): Likewise.
3466         (declare_debug_type): New function.
3467
3468         * ada-tree.def: USE_STMT: removed (not emitted anymore).
3469
3470         * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
3471         no statement is expandable anymore.
3472         (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
3473         (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
3474         when the user requested it explicitely.
3475         (gnat_post_options): By default, set flag_eliminate_unused_debug_types
3476         to 0 for Ada.
3477         (get_alias_set): Return alias set 0 for a type if
3478         TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
3479
3480         * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
3481         (DECL_FUNCTION_STUB): New accessor macro.
3482         (SET_DECL_FUNCTION_STUB): New setter macro.
3483
3484         * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
3485
3486         * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
3487         declarations.
3488
3489 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
3490
3491         * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
3492         Rename to Abort_Task_Interrupt to be able to keep the same interface
3493         as the rest of the targets.
3494
3495         * s-osinte-vxworks.ads s-osinte-vxworks.adb
3496         (To_VxWorks_Priority): Remove explicit "in" mode indicator
3497
3498         * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
3499         New files.
3500
3501 2007-06-06  Robert Dewar  <dewar@adacore.com>
3502
3503         * a-chahan.ads: Remove obsolescent pragmas
3504
3505         * a-chlat1.ads: Minor reformatting
3506
3507 2007-06-06  Robert Dewar  <dewar@adacore.com>
3508
3509         * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
3510         for Errout
3511
3512         * errout.adb: New Finalize/Compilation_Errors/Output_Messages
3513         implementation
3514
3515         * errout.ads (Finalize): Changed interface
3516         (Output_Messages): New procedure
3517         (Compilation_Errors): New Interface
3518
3519         * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
3520         Finalize/Output_Messages interface for Errout
3521         (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
3522         Errout.
3523
3524 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3525             Olivier Hainque  <hainque@adacore.com>
3526             Robert Dewar  <dewar@adacore.com>
3527
3528         * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
3529         check.
3530         (Raise_Current_Excep): Call Debug_Raise_Exception just before
3531         propagation starts, to let debuggers know about the event in a reliable
3532         fashion.
3533         (Local_Raise): Moved to System.Exceptions
3534         More convenient to have this as a separate unit
3535
3536         * s-except.adb, s-except.ads: New files.
3537
3538         * a-exextr.adb (Unhandled_Exception): Delete - replaced by
3539         Debug_Unhandled_Exception in System.Exceptions where it belongs
3540         together with a couple of other debug helpers.
3541         (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
3542         the former Unhandled_Exception.
3543
3544         * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
3545         (Warn_No_Exception_Propagation): New procedure
3546         (Warn_If_No_Propagation): Rewritten for new warning generation
3547         (Expand_Exception_Handlers): New warning generation
3548         (Expand_N_Raise_xxx_Error): Rewritten for new warnings
3549         (Add_Exception_Label): Use Special_Exception_Package_Used for test
3550         instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
3551         (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
3552         even if restriction is set (makes life easier in Check_Returns)
3553         (Expand_Local_Exception_Handlers): Follow renamed entity chain when
3554         checking exception identities.
3555         (Expand_Local_Exception_Handlers): Do not optimize when all others case
3556         (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
3557         block for handler (used by Check_Returns)
3558         (Expand_Local_Exception_Handlers): Local_Raise now takes an address
3559         (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
3560         remove all exception handlers when optimizing local raise statements.
3561         (Find_Local_Handler): Use Get_Renamed_Entity
3562         (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
3563         marked analyzed after expanding exception handlers, do not generate
3564         redundant cleanup actions, because they have been constructed already.
3565
3566 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3567
3568         * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
3569         presence of this categorization pragma is mandated by the language.
3570         (Limited_Controlled): Add missing pragma Preelaborable_Initialization
3571         for this type.
3572
3573 2007-06-06  Vincent Celier  <celier@adacore.com>
3574             Robert Dewar  <dewar@adacore.com>
3575
3576         * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 
3577         butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 
3578         err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 
3579         fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 
3580         lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 
3581         makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 
3582         par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 
3583         prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 
3584         prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 
3585         sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 
3586         uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
3587         ali.ads, ali.adb: 
3588         Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
3589         package Namet. Make File_Name_Type and Unit_Name_Type types derived from
3590         Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
3591         Use variables of types File_Name_Type and Unit_Name_Type in error
3592         messages.
3593         (Get_Name): Add parameter Ignore_Special, and set it reading file name
3594         (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
3595         here.
3596         Define flags Flag217-Flag230 with associated subprograms
3597         (Flag_Word5): New record type.
3598         (Flag_Word5_Ptr): New access type.
3599         (To_Flag_Word5): New unchecked conversion.
3600         (To_Flag_Word5_Ptr): Likewise.
3601         (Flag216): New function.
3602         (Set_Flag216): New procedure.
3603
3604 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3605
3606         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
3607         instead of 'Size.
3608
3609         * a-stwifi.ads, a-stzfix.ads: Minor reformatting
3610
3611 2007-06-06  Javier Miranda  <miranda@adacore.com>
3612
3613         * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
3614         the package.
3615         (Object_Specific_Data_Array): This is now internal to the package.
3616         (Object_Specific_Data): This is now internal to the package.
3617         (Select_Specific_Data_Element): This is now internal to the package.
3618         (Select_Specific_Data_Array): This is now internal to the package.
3619         (Select_Specific_Data): This is now internal to the package.
3620         (Offset_To_Top_Function_Ptr): This is now public.
3621         (To_Offset_To_Top_Function_Ptr): Removed.
3622         (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
3623          local to subprogram Offset_To_Top.
3624         (Predefined_DT): Removed.
3625         (Typeinfo_Ptr): Removed.
3626         (OSD): This function is now internal to this package.
3627         (SSD): This function is now internal to this package.
3628         (DT): New function that displaces the pointer to the table of primitives
3629          to get access to the enclosing wrapper record.
3630         (IW_Membership): Code cleanup.
3631         (Offset_To_Top): Code cleanup.
3632         (Predefined_DT): Removed.
3633         (Register_Interface_Tag): Removed.
3634         (Set_Interface_Table): Removed.
3635         (Set_Offset_Index): Removed.
3636         (Set_Offset_To_Top): Code cleanup.
3637         (Set_OSD): Removed.
3638         (Set_Signature): Removed.
3639         (Set_SSD): Removed.
3640         (Set_Tagged_Kind): Removed.
3641         (Typeinfo_Ptr): Removed.
3642         (TSD): Removed.
3643         (Displace): Add missing check on null actual.
3644
3645         * exp_disp.ads, exp_disp.adb
3646         (Select_Expansion_Utilities): Removed.
3647         (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
3648         (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
3649         the interface requires a new parameter.
3650         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
3651         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
3652         calls to subprograms Build_T, Build_S, etc. by the corresponding code.
3653         Done to remove package Select_Expansion_Utilities.
3654         (Make_DT): New implementation for statically allocated dispatch tables.
3655         (Make_Secondary_DT): Moved to the scope of Make_DT.
3656         (Register_Primitive): Code cleanup plus incoporate the use of the new
3657         function DT_Address_Attribute.
3658         (Expand_Interface_Thunk): The profile of this subprogram has been
3659         changed to return the Thunk_Id and the corresponding code.
3660         (Fill_DT_Entry): Removed. Its functionality is now provided by
3661         subprogram Register_Primitive.
3662         (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
3663         subprogram Register_Primitive.
3664         (Register_Primitive): New subprogram that incorporates the previous
3665         functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
3666         (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
3667         was only required to call Make_DT_Access_Action, which is now removed.
3668         (Ada_Actions): Removed
3669         (Action_Is_Proc): Removed
3670         (Action_Nb_Arg): Removed
3671         Replace all the calls to Make_DT_Access_Action by direct calls to
3672         Make_Procedure_Call_Statement or Make_Function_Call.
3673         (Set_DTC_Entity_Value): New subprogram.
3674         (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
3675         (Expand_Interface_Thunk): Add missing support for primitives that are
3676         functions with a controlling result (case in which there is no need
3677         to generate the thunk).
3678
3679         * exp_atag.ads, exp_atag.adb
3680         (Build_DT): New subprogram that displaces the pointer to reference the
3681         base of the wrapper record.
3682         (Build_Typeinfo_Offset): Removed.
3683         (RTE_Tag_Node): Removed.
3684         (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
3685         (Build_Get_RC_Offset): Removed.
3686         (Build_Inherit_Predefined_Prims): Removed.
3687         (Build_Inherit_TSD: Removed.
3688         (Build_New_TSD): Removed.
3689         (Build_Set_External_Tag): Removed.
3690         (Build_Set_Predefined_Prim_Op_Address): Add documentation.
3691         (Build_Set_Prim_Op_Address): Add documentation.
3692         (Build_Set_TSD): Removed.
3693
3694         * rtsfind.ads, rtsfind.adb
3695         (Load_Fail): If load fails and we are not in configurable run-time
3696         mode, then raise Unrecoverable_Error.
3697         (Text_IO_Kludge): Generate an error message if a run-time library is
3698         not available in a given run-time (ie. zfp run-time).
3699         (RTE_Record_Component): Add code to check that the component we search
3700         for is not found in two records in the given run-time package.
3701         (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
3702         (RE_DT_Predef_Prims_Offset): New entity
3703         (RE_Static_Offset_To_Top): New entity
3704         (RE_HT_Link): New entity.
3705         (System_Address_Image): Addition of this run-time package.
3706         (RE_Address_Image): New entity.
3707         (RE_Abstract_Interface): Removed.
3708         (RE_Default_Prim_Op_Count): Removed.
3709         (RE_DT_Entry_Size): Removed.
3710         (RE_DT_Min_Prologue_Size): Removed.
3711         (RE_DT_Prologue_Size): Removed.
3712         (RE_Ifaces_Table_Ptr): Removed.
3713         (RE_Interface_Data_Ptr): Removed.
3714         (RE_Type_Specific_Data): Removed.
3715         (RE_Primary_DT): Removed.
3716         (RE_Register_Interface_Tag): Removed.
3717         (RE_Set_Offset_Index): Removed.
3718         (RE_Set_OSD): Removed.
3719         (RE_Set_SSD): Removed.
3720         (RE_Set_Signature): Removed.
3721         (RE_Set_Tagged_Kind): Removed.
3722         (RE_Address_Array): New entity.
3723         (RE_DT): New entity.
3724         (RE_Iface_Tag): New entity.
3725         (RE_Interfaces_Table): New entity.
3726         (RE_No_Dispatch_Table): New entity.
3727         (RE_NDT_Prims_Ptr): New entity.
3728         (RE_NDT_TSD): New entity.
3729         (RE_Num_Prims): New entity.
3730         (RE_Offset_To_Top_Function_Ptr): New entity.
3731         (RE_OSD_Table): New entity.
3732         (RE_OSD_Num_Prims): New entity.
3733         (RE_Predef_Prims): New entity
3734         (RE_Predef_Prims_Table_Ptr): New entity.
3735         (RE_Primary_DT): New entity.
3736         (RE_Signature): New entity.
3737         (RE_SSD): New entity.
3738         (RE_TSD): New entity.
3739         (RE_Type_Specific_Data): New entity.
3740         (RE_Tag_Kind): New entity.
3741
3742 2007-06-06  Thomas Quinot  <quinot@adacore.com>
3743
3744         * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
3745         C imported variable.
3746         (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
3747         on entry.
3748
3749 2007-06-06  Robert Dewar  <dewar@adacore.com>
3750
3751         * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
3752         character
3753
3754 2007-06-06  Vincent Celier  <celier@adacore.com>
3755
3756         * a-tifiio.adb (Put, internal): For negative numbers, check that there
3757         is room for at least one digit and the minus sign.
3758         (Put.Put_Character): Never put a character outside of the range of
3759         string To.
3760
3761 2007-06-06  Olivier Hainque  <hainque@adacore.com>
3762             Eric Botcazou  <ebotcazou@adacore.com>
3763
3764         * utils2.c (build_allocator): Provide the extra arguments to
3765         make_aligning_type for super-aligned objects allocated from the default
3766         pool. Leave enough room for a pointer before the aligning field, and
3767         store the system's allocator return value there.
3768         (build_call_alloc_dealloc): When releasing a super-aligned object,
3769         retrieve the system's allocator return value from where build_allocator
3770         has stored it, just ahead of the adjusted address we are passed.
3771         (build_call_raise): Handle properly the generation of line numbers when
3772         the node is marked No_Location.
3773         (compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
3774         by using DECL_UID on ties.
3775         (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
3776         main variant.
3777         (build_call_raise): Handle converting exception into goto; support new
3778         argument KIND.
3779         (build_component_ref): Add new arg to build_call_raise.
3780
3781 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
3782
3783         * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
3784         "." in the case of nnn.xxx when nnn terminates with an underscore.
3785         Parse the remaining "#" or ":" in the case of nnn#.xxx#
3786
3787 2007-06-06  Robert Dewar  <dewar@adacore.com>
3788
3789         * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
3790
3791 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
3792             Vincent Celier  <celier@adacore.com>
3793             Robert Dewar  <dewar@adacore.com>
3794
3795         * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
3796         needed.
3797         (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
3798         ((destructor)) for adafinal, even when switch -a is used.
3799         Do not issue pragma Linker_Destructor for adafinal when switch -a is
3800         used.
3801         (Gen_Object_Files_Options): Add formatting of Linker Options, when
3802         Output_Linker_Option_List is set. Suppress this formatting when
3803         Zero_Formatting is set.
3804         Add case for CLI_Target.
3805         (System_Restrictions_Used): New flag, used to avoid generating with of
3806         System_Restrictions and initialization of the data unless there is
3807         some use of System.Restrictions in the partition.
3808         (Check_System_Restrictions_Used): New procedure
3809
3810         * s-stalib.adb: Remove with of System.Restrictions. No longer needed
3811         since we only with this unit in the binder file if it is used elsewhere
3812         in the partition.
3813
3814 2007-06-06  Vincent Celier  <celier@adacore.com>
3815
3816         * bindusg.adb: Add line for @<response file>
3817         Add lines for new switches -R and -Z
3818
3819         * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
3820         hierarchy in the list of files of the closure when -R is used
3821         (Gnatbind): Accept arguments starting with '@' to indicate response
3822         files and take the arguments from the response files.
3823         If List_Closure is set, display the referenced files
3824
3825 2007-06-06  Javier Miranda  <miranda@adacore.com>
3826             Robert Dewar  <dewar@adacore.com>
3827             Ed Schonberg  <schonberg@adacore.com>
3828
3829         * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
3830         which the address-clause is applied to in-mode actuals (allowed by
3831         13.1(22)).
3832         (Apply_Discriminant_Check): Do not generate a check if the type is
3833         constrained by a current instance.
3834         (Activate_Division_Check): New procedure
3835         (Activate_Overflow_Check): New procedure
3836         (Activate_Range_Check): New procedure
3837         Call these new Activate procedures instead of setting flags directly
3838         (Apply_Array_Size_Check): Removed, no longer needed.
3839         Code clean up: remove obsolete code related to GCC 2.
3840         (Get_E_Length): Protect against bomb in case scope is standard
3841         (Selected_Range_Checks): If the node to be checked is a conversion to
3842         an unconstrained array type, and the expression is a slice, use the
3843         bounds of the slice to construct the required constraint checks.
3844         Improve NOT NULL error messages
3845         (Apply_Constraint_Check): If the context is a null-excluding access
3846         type, diagnose properly the literal null.
3847
3848 2007-06-06  Pascal Obry  <obry@adacore.com>
3849
3850         * clean.adb (Clean_Archive): Use untouched casing for the archive name
3851         and the corresponding .deps file.
3852         (Clean_Interface_Copy_Directory): Use untouched casing for the library
3853         src directory. Minor code-clean-up. Use untouched casing for files
3854         read into the library src dir.
3855         (Clean_Library_Directory): Idem.
3856         (Parse_Cmd_Line): Accept new switch -aP
3857
3858 2007-06-06  Javier Miranda  <miranda@adacore.com>
3859             Ed Schonberg  <schonberg@adacore.com>
3860             Robert Dewar  <dewar@adacore.com>
3861             Eric Botcazou  <ebotcazou@adacore.com>
3862             Arnaud Charlet  <charlet@adacore.com>
3863
3864         * einfo.ads, einfo.adb (Available_View): New synthesized attribute
3865         applicable to types that have the With_Type flag set. Returns the
3866         non-limited view of the type, if available, otherwise the type itself.
3867         For class-wide types, there is no direct link in the tree, so we have
3868         to retrieve the class-wide type of the non-limited view of the Etype.
3869         New attributes Static_Initialization and Static_Elaboration_Desired.
3870         Remove the pragma Thread_Body, and the associated flag
3871         Is_Thread_Body in entities, and all related code.
3872         (Suppress_Value_Tracking_On_Call): New flag
3873         E_Exception has Esize and Alignment fields
3874         (Universal_Aliasing): New function.
3875         (Set_Universal_Aliasing): New procedure.
3876         (Write_Entity_Flags): Deal with Universal_Aliasing flag.
3877         (Check_Nested_Access): New procedure.
3878         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
3879         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
3880         (Related_Interface): New attribute. Present in dispatch table pointer
3881         components of records. Set to point to the entity of the corresponding
3882         interface type.
3883         (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
3884         (Original_Access_Type): Remove, not needed.
3885         (Root_Type): Handle properly subtypes of class-wide-types.
3886         Update comments.
3887
3888         * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
3889         class-wide types visible through limited-with clauses.
3890         (Try_Primitive_Operation): When examining all primitive operations of a
3891         tagged type, do not consider subprograms labeled as hidden unless they
3892         belong to a private generic type with a tagged parent.
3893         (Try_Object_Operation): Extensive rewriting, to handle properly various
3894         overloading cases, when several ancestors may have class-wide operations
3895         that are possible candidates, and when the overloaded functions return
3896         array types and have defaulted parameters so that the call may be
3897         interpreted as an indexing.
3898         (Analyze_Allocator): Remove Mark_Allocator and its invocation.
3899         (Process_Function_Call): use Next, rather than Next_Actual, to analyze
3900         successive actuals before analyzing the call itself.
3901         (Try_Primitive_Operation): A primitive operation is compatible with the
3902         prefix if the prefix has a synchronized type and the type of the formal
3903         is its corresponding record, as can be the case when the primitive
3904         operation is declared outside of the body of the type.
3905         (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
3906         perform homonym traversal, looking for class-wide operation matches
3907         (formerly done in statements of Try_Class_Wide_Operation). Matches on
3908         access parameters are now restricted to anonymous access types.
3909         (Mark_Allocator): An allocator with a discriminant association parent is
3910         a coextension.
3911         (Try_One_Prefix_Interpretation): If the type of the object is
3912         incomplete, as can be happen when it is a limited view obtained through
3913         a limited_with_clause, the selected component is not part of a prefixed
3914         call.
3915         (Complete_Object_Operation): Diagnose properly an object that is not
3916         aliased when the corresponding controlling formal is an access
3917         parameter.
3918         (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
3919         ambiguous calls in prefixed notation, where two primitives differ only
3920         in that the controlling argument of one is an access parameter.
3921
3922         * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
3923         whether a function that returns an unconstrained type can be inlined.
3924         (Process_Formals): Diagnose properly the illegal use of an incomplete
3925         type in the profile of an access_to_subprogram declaration.
3926         (Check_Synchronized_Overriding): Nothing check for concurrent types, the
3927         operations are attached to the corresponding record.
3928         (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
3929         When processing a primitive of a concurrent type which implements an
3930         interface change the type of all controlling formals to that of the
3931         corresponding record type.
3932         (Check_Synchronized_Overriding): Relax the conditional logic when trying
3933         to determine the tagged type to which a primitive belongs.
3934         (Check_Conventions): Capture condition to ignore a primitive operation
3935         (which is shared between the loop in Check_Conventions and the one in
3936         Check_Convention) in a new local function Skip_Check.
3937         (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
3938         confusion with Check_Conventions' own Prim_Op local variable.
3939         (Create_Extra_Formals): Test for a tagged result type rather than a
3940         controlling result when determining whether to add a BIP_Alloc_Form
3941         formal and a BIP_Final_List formal to the function.
3942         (Check_Conformance); For parameters that are anonymous access types,
3943         subtype conformance requires that the not null and the constant
3944         indicators must match
3945         (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
3946         to retrieve the appropriate type when processing a concurrent type
3947         declared within a generic. Minor comment reformatting. Change invocation
3948         of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
3949         mitive.
3950         (Analyze_Subprogram_Body): If the return type of a function is an
3951         anonymous access to the limited view of a class-wide type, and the
3952         non-limited view of the type is available, update the type of the
3953         function so that code can be generated.
3954         (Process_Formals): In case of access-subtype itype whose designated
3955         type is also an itype (situation that happens now with access to
3956         subprograms) we mark the access-type itype with the Has_Delayed_Freeze
3957         attribute to avoid backend problems.
3958         (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
3959         init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
3960         anonymous types' designated types are same before testing
3961         Subtypes_Statically_Match.
3962         (Create_Extra_Formals): Test for a named access parameter that is a
3963         controlling formal as an additional condition for adding an
3964         accessibility level formal. This can occur in the subp type created for
3965         dispatching calls in Expand_Dispatching_Call, and allows calling
3966         Create_Extra_Formals from that procedure rather than special-casing the
3967         extra formals there.
3968         (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
3969         when the function has a controlling result.
3970         (Check_Returns): Add much more knowledge of the optimization of local
3971         raise statements to gotos, to retain proper warnings in this case.
3972         (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
3973         nodes when looking for last statement.
3974
3975         * sem_type.ads, sem_type.adb (Specific_Type): Add support for
3976         class-wide types visible through limited with clauses.
3977         (Add_One_Interp): If the operands are anonymous access types, the
3978         predefined operator on universal_access is immediately visibles
3979         (Find_Unique_Type): Handle anonymous access to subprogram types just as
3980         other anonymous access types.
3981         (Disambiguate): Take into account CIL convention.
3982         (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
3983
3984 2007-06-06  Robert Dewar  <dewar@adacore.com>
3985
3986         * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
3987         sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
3988         elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
3989         Fix lower bound of tables.
3990         Add rep clauses.
3991
3992         * nlists.adb: Ditto.
3993         (Prev_Node, Next_Node): Change index type to Int so that it properly
3994         covers the range First_Node_Id - 1 up.
3995
3996 2007-06-06  Javier Miranda  <miranda@adacore.com>
3997             Ed Schonberg  <schonberg@adacore.com>
3998             Bob Duff  <duff@adacore.com>
3999             Hristian Kirtchev  <kirtchev@adacore.com>
4000
4001         * exp_aggr.ads, exp_aggr.adb: 
4002         (Build_Record_Aggr_Code): Add missing initialization of secondary tags
4003         in extension aggregates.
4004         (Flatten): Other conditions being met, an aggregate is static if the
4005         low bound given by component associations is different from the low
4006         bound of the base index type.
4007         (Packed_Array_Aggregate_Handled): If the component type is itself a
4008         packed array or record, the front-end must expand into assignments.
4009         (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
4010         Init_Pr, instead of Ancestor_Is_Expression.
4011         (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
4012         coextension chain root, either generate a list controller or use the
4013         already existing one.
4014         (Static_Array_Aggregate): New procedure to construct a positional
4015         aggregate that can be handled by the backend, when all bounds and
4016         components are compile-time known constants.
4017         (Expand_Record_Aggregate): Force conversion of aggregates of tagged
4018         types covering interface types into assignments.
4019         (Replace_Type): move to Build_Record_Aggr_Code.
4020         (Expand_Record_Aggr_Code): if the target of the aggregate is an
4021         interface type, convert to the definite type of the aggregate itself,
4022         so that needed components are visible.
4023         (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
4024         components and the context is an extended return statement do not
4025         create a transient block for it, to prevent premature finalization
4026         before the return is executed.
4027         (Gen_Assign): Do not generate a call to deep adjust routine if the
4028         component type is itself an array of controlled (sub)-components
4029         initialized with an inner aggregate.
4030         (Component_Check): New name for Static_Check. This name is now more
4031         appropriate, and documentation is added which was missing.
4032         (Component_Check): Add test for bit aligned component value
4033         (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
4034         Tagged_Comps, name is more appropriate given added function below.
4035         (Component_Not_OK_For_Backend): Check for bit aligned component ref.
4036
4037 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
4038             Javier Miranda  <miranda@adacore.com>
4039             Robert Dewar  <dewar@adacore.com>
4040
4041         * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
4042         Terminated: Add unchecked type conversion from System.Address to
4043         System.Tasking.Task_Id when calling the predefined primitive
4044         _disp_get_task_id.
4045         Disable new Ada 05 accessibility check for JVM.NET targets, which
4046         cannot be implemented in a practical way.
4047         (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
4048         the sources always references the tag of the actual object. Therefore,
4049         if 'Tag is applied in the sources to class-wide interface objects we
4050         generate code that displaces "this" to reference the base of the object.
4051         (Expand_N_Attribute_Reference, case Size): Return specified size if
4052         known to front end.
4053         (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
4054         has code that displaces the pointer of the object to manage interface
4055         types. However this code must not be executed when the prefix is a
4056         subprogram. This bug caused the wrong expansion of the internally
4057         generated assignment that fills the dispatch table when the primitive
4058         is a function returning a class-wide interface type.
4059         (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
4060         Set_Attribute_Name for Name_Unaligned_Valid.
4061
4062 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4063             Gary Dismukes  <dismukes@adacore.com>
4064
4065         * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
4066         If the initialization is the equivalent aggregate of the initialization
4067         procedure of the type, do not remove it.
4068         (Expand_N_Attribute_Definition_Clause): Exclude access variables
4069         initialized to null from having their expression reset to empty and
4070         note this exception in the comment.
4071
4072 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
4073             Robert Dewar  <dewar@adacore.com>
4074             Ed Schonberg  <schonberg@adacore.com>
4075             Gary Dismukes  <dismukes@adacore.com>
4076
4077         * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
4078         Add "with" and "use" clauses for Sem_Attr.
4079         (Expand_Current_Value): Do not replace occurences of attribute
4080         references where the prefix must be a simple name.
4081
4082         * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
4083         Namet. Add new arrays Attribute_Name_Modifies_Prefix and
4084         Attribute_Requires_Simple_Name_Prefix.
4085         (Name_Modifies_Prefix): Body of new function.
4086         (Requires_Simple_Name_Prefix): Body of new function.
4087         (Resolve_Attribute, case Access): Improve error message for case of
4088         mismatched conventions.
4089         (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
4090         incomplete type.
4091         (Analyze_Attribute, case 'Access): If the type of the prefix is a
4092         constrained subtype for a nominal unconstrained type, use its base type
4093         to check for conformance with the context.
4094         (Resolve_Attribute): Remove test of the access type being associated
4095         with a return statement from condition for performing accessibility
4096         checks on access attributes, since this case is now captured by
4097         Is_Local_Anonymous_Access.
4098         (Analyze_Access_Attribute): Set Address_Taken on entity
4099         (Analyze_Attribute, case Address): Set Address_Taken on entity
4100         (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
4101         validating an access attribute whose prefix is a current instance.
4102         (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
4103         applied to dispatching operations, if freezing is required then we set
4104         the attribute Has_Delayed_Freeze in the prefix's entity.
4105         (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
4106         current scope if access of local subprogram taken
4107         (Analyze_Access_Attribute): Check legality of self-reference even if the
4108         expression comes from source, as when a single component association in
4109         an aggregate has a box association.
4110         (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
4111         the prefix if it is a protected operation and the attribute is
4112         Unrestricted_Access.
4113         (Resolve_Attribute, case 'Access): Set the Etype of the attribute
4114         reference to the base type of the context, to force a constraint check
4115         when the context is an access subtype with an explicit constraint.
4116         (Analyze_Attribute, case 'Class): If the prefix is an interface and the
4117         node is rewritten as an interface conversion. leave unanalyzed after
4118         resolution, to ensure that type checking against the context will take
4119         place.
4120
4121 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4122             Javier Miranda  <miranda@adacore.com>
4123             Robert Dewar  <dewar@adacore.com>
4124
4125         * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
4126         wrapper when the full view of the controlling type of an inherited
4127         function that dispatches on result implements interfaces.
4128         (Expand_N_Object_Declaration): In cases where the type of the
4129         declaration is anonymous access, create finalization list for it.
4130         (Expand_N_Object_Declaration): Generate a persistent_bss directive only
4131         if the object has no explicit initialization, to match description of
4132         functionality of pragam Persistent_BSS.
4133         (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
4134         new function to build static aggregates, to replace initialization call
4135         when static initialization is desired.
4136         (Freeze_Type): Generate a list controller for an access type whenever
4137         its designated type has controlled anonymous access discriminants.
4138         (Build_Equivalent_Aggregate): New procedure to compute a static
4139         aggregate to be used as default initialization for composite types,
4140         instead of a generating a call to the initialization procedure for the
4141         type.
4142         (Build_Initialization_Call): When available, replace a call to the
4143         initialization procedure with a copy of the equivalent static aggregate
4144         for the type.
4145         (Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
4146         declarations for objects of a class-wide interface type, rather than
4147         just identifiers, to prevent visibility problems.
4148         (Expand_N_Object_Declaration): When expanding the declaration for an
4149         object of a class-wide interface type, preserve the homonym chain of
4150         the original entity before exchanging it with that of the generated
4151         renaming declaration.
4152         (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
4153         active, because there is no way to handle the exception.
4154         (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
4155         to do a minimum decoration of the Access_Disp_Table list.
4156         (Expand_Record_Controller): Avoid the addition of the controller between
4157         the component containing the tag of a secondary dispatch table and its
4158         adjacent component that stores the offset to the base of the object.
4159         This latter component is only generated when the parent type has
4160         discriminants ---documented in Add_Interface_Tag_Components).
4161         (Apply_Array_Size_Check): Removed, no longer needed.
4162         (Expand_N_Full_Type_Declaration): If the type has anonymous access
4163         components, create a Master_Entity for it only if it contains tasks.
4164         (Build_Init_Procedure): Suppress the tag assignment compiling under
4165         no run-time mode.
4166         (Freeze_Record_Type): Remove code associated with creation of dispatch
4167         table.
4168         (Init_Secondary_Tags): Update type of actuals when generating calls to
4169         Ada.Tags.Set_Offset_To_Top
4170         (Stream_Operation_OK): Disable use of streams compiling under no
4171         run-time mode
4172         (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
4173         if Has_Init_Expression set.
4174         (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
4175         Register_Primitive, which provides the same functionality.
4176         (Requires_Init_Proc): Return false in case of interface types.
4177         (Add_Secondary_Tables): Use the new attribute Related_Interface to
4178         cleanup the code.
4179         (Predefined_Primitive_Freeze): Do not assume that an internal entity
4180         is always associated with a predefined primitive because the internal
4181         entities associated with interface types are not predefined primitives.
4182         Therefore, the call to Is_Internal is replaced by a call to the
4183         function Is_Predefined_Dispatching_Operation.
4184         (Make_Eq_If): When generating the list of comparisons for the
4185         components of a given variant, omit the controller component that is
4186         present if the variant has controlled components.
4187
4188 2007-06-06  Javier Miranda  <miranda@adacore.com>
4189             Hristian Kirtchev  <kirtchev@adacore.com>
4190             Bob Duff  <duff@adacore.com>
4191
4192         * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
4193         handle the creation of finalization lists and calls for nested
4194         coextensions when the root of the chains is part of a return statement.
4195         (Inside_A_Return_Statement): New function inside Complete_Coextension_
4196         Finalization.
4197         (Expand_Record_Equality): Skip components that are interface types.
4198         (Displace_Allocator_Pointer): Add missing support for interface subtypes
4199         (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
4200         with Rewrite_Coextension. Change the condition for detecting coextension
4201         root nodes.
4202         (Is_Local_Access_Discriminant): Removed.
4203         (Rewrite_Coextension): New routine which rewrites a static coextension
4204         as a temporary and uses its unrestricted access in the construction of
4205         the outer object.
4206         (Complete_Coextension_Finalization): New routine. Generate finalization
4207         attachment calls to all delayed coextensions.
4208         (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
4209         the allocator is not a coextension itself and has delayed coextensions.
4210         If the current allocator is controlled, but also a coextension, delay
4211         the generation of the finalization attachment call.
4212         Rename local variable "Node" to "Nod" in order to avoid confusion with
4213         "Elists.Node".
4214         (Expand_Allocator_Expression): Call Adjust for initialized allocators of
4215         limited types that are not inherently limited. Such an allocator is
4216         illegal, but is generated by the expander for a return statement, to
4217         copy the result onto the secondary stack. This is the only case where a
4218         limited object can be copied. Generate code to displace the pointer
4219         to the object if the qualified expression is a class-wide interface
4220         object. Such displacement was missing and hence the copy of the object
4221         was wrong.
4222         (Apply_Accessibility_Check): Handle allocated objects initialized in
4223         place.
4224         (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
4225         and Expand_Allocator_Expression. Allocating class-wide interface objects
4226         this routine displaces the pointer to the allocated object to reference
4227         the component referencing the corresponding secondary dispatch table.
4228         Expand_Allocator_Expression): Add missing support to allocate class-wide
4229         interface objects initialized with a qualified expression.
4230         (Get_Allocator_Final_List): Test for an anonymous access type that is a
4231         function result type, and use the finalization list associated with the
4232         function scope in that case (such an anonymous type should not be
4233         treated like an access parameter's type).
4234
4235 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4236             Gary Dismukes  <dismukes@adacore.com>
4237             Javier Miranda  <miranda@adacore.com>
4238
4239         * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
4240         controlled type, use Make_Handler_For_Ctrl_Operation to construct the
4241         required exception handler.
4242         (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
4243         properly the case of a function whose return type is a limited
4244         class-wide interface type. Modify the code of the accessibility
4245         check to handle class-wide interface objects. In this case we need to
4246         displace "this" to reference the primary dispatch table to get access
4247         to the TSD of the object (to evaluate its accessibility level).
4248         (Expand_N_Extended_Return_Statement): Test for a tagged result type
4249         rather than a controlling result as one of the conditions for
4250         generating tests of the implicit BIP_Alloc_Form formal. The
4251         initialization assignment is also handled according to whether the
4252         result is tagged instead of controlling.
4253         In the case where the init assignment is inserted in the "then" part of
4254         the allocation conditional, rewrite the target to be a dereference of
4255         the implicit BIP_Object_Access formal.
4256         If the returned value is unconstrained and created on the secondary
4257         stack, mark the enclosing block and function so that the secondary
4258         stack is not reclaimed on return.
4259         Treat returns from functions with controlling results similarly to
4260         returns from functions with unconstrained result subtypes.
4261         If the object returned is unconstrained, and an allocator must be
4262         created for it, analyze the allocator once the block for the extended
4263         return is installed, to ensure that finalizable components
4264         of the expression use the proper finalization list. Guard the call to
4265         Move_Final_List with a check that there is something to finalize.
4266         (Make_Tag_Ctrl_Assignment): Use "old" handling
4267         of controlled type assignment for virtual machines, since new code uses
4268         unsupported features (such as direct access to bytes in memory).
4269
4270 2007-06-06  Gary Dismukes  <dismukes@adacore.com>
4271             Ed Schonberg  <schonberg@adacore.com>
4272
4273         * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
4274         accessibility actual, check for the case of an aliased object that has
4275         been rewritten as an Access attribute, and assign Prev to Prev_Orig so
4276         we fall into processing for the attribute rather than the name of the
4277         object.
4278         (Expand_Inline_Call): If an actual is a literal, and the corresponding
4279         formal has its address taken in the body, create a temporary to capture
4280         value.  If the return type is a limited interface, do not treat the
4281         return value as Controlled.
4282         (Is_In_Place_Function):  If the return type is a limited interface,
4283         treat as returning in place. The actual returned object may not always
4284         be limited, but the caller has to assume that it is returned in place.
4285         (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
4286         context of an allocator, use the correct finalization chain (that is,
4287         the chain belonging to the access type, rather than the chain belonging
4288         to the current scope).
4289         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
4290         result type rather than a controlling result as a precondition for
4291         adding an allocation form actual to a build-in-place call.
4292         (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
4293         (Freeze_Subprogram): Code cleanup. Remove all the code that register the
4294         primitive in the dispatch tables. This work is now done by Make_DT when
4295         the type is frozen.
4296         (Register_Predefined_DT_Entry): Removed.
4297         (Add_Return): If end label is not present, use sloc of last statement
4298         for generated return statement in procedure, for better gdb behavior
4299         on expanded code.
4300         (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
4301         object address nodes to ensure proper processing by routines like
4302         Insert_After*.
4303         (Expand_Call): Fix generation of validity check for parameter
4304         (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
4305         the allocation form parameter if the result subtype is constrained,
4306         except when the function has a controlling result.
4307         (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
4308         rather than Is_Controlled and Has_Controlled_Component, since we want to
4309         include class-wide result types in this treatment. Also test for a
4310         controlling result, since that also requires passing a finalization
4311         list.
4312         (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
4313         even when the result subtype is constrained, to handle calls involving
4314         controlling results.
4315         (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
4316         is now called even when the result subtype is constrained, to handle
4317         calls involving controlling results.
4318         (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
4319         on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
4320         now performs the test).
4321         (Make_Build_In_Place_Call_In_Object_Declaration):
4322         Add_Alloc_Form_Actual_* is now called even when the result subtype is
4323         constrained, to handle calls involving controlling results.
4324         (Add_Return): Accomodate rewritten pattern from local raise to goto
4325         transformation, so that we still recognize an transfer statement
4326         and do the right thing here in that case.
4327         (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
4328         and end of subprogram code.
4329         (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
4330         support for primitives that are functions (without formals) with a
4331         controlling result.
4332         (Inherited_From_Formal): If the actual subtype has not generic parent
4333         type, it is not an actual for a formal derived type, and there is no
4334         operation to inherit from the formal.
4335
4336 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4337             Thomas Quinot  <quinot@adacore.com>
4338
4339         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
4340         inserted cleanup code appropriately for GDB use.
4341         (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
4342         exception handler for Deep_Adjust or Deep_Finalize.
4343         (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
4344         Raise_From_Controlled_Operation is available, use a call to that
4345         subprogram instead of a plain "raise Program_Error" node to raise
4346         Program_Error if an exception is propagated from an Adjust or Finalize
4347         operation.
4348         (Insert_Actions_In_Scope_Around): If the statement to be wrapped
4349         appears in the optional statement list of a triggering alternative, the
4350         scope actions can be inserted directly there, and not in the list that
4351         includes the asynchronous select itself.
4352
4353 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4354             Robert Dewar  <dewar@adacore.com>
4355             Hristian Kirtchev  <kirtchev@adacore.com>
4356
4357         * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
4358         generated exception handler appropriately when debugging generated code.
4359         Deal properly with No_Exception_Propagation restriction mode.
4360         (Expand_N_Abort_Statement): Add an unchecked type conversion from
4361         System.Address to System.Tasking.Task_Id when processing the result of
4362         the predefined primitive _disp_get_task_id.
4363         (Expand_N_Asynchronous_Select): Clarify comment.
4364         (Expand_N_Protected_Type_Declaration): Minor code cleanup.
4365         (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
4366         (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
4367         (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
4368         privals and for generated call to Complete_Entry_Body, for better gdb
4369         behavior.
4370         (Copy_Result_Type): Utility to construct a parameter and result profile
4371         for protected functions whose return type is an anonymous access to
4372         subprogram.
4373         (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
4374         call the above.
4375         (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
4376         point when the local-raise-to-goto transformation has taken place.
4377
4378 2007-06-06  Javier Miranda  <miranda@adacore.com>
4379             Nicolas Setton  <setton@adacore.com>
4380
4381         * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
4382         functionality when the backend is generating code.
4383         Otherwise any serious error
4384         reported by the backend calling the frontend routine Error_Msg
4385         changes the Compilation_Mode to Check_Semantics, disables the
4386         functionality of this routine and causes the generation of
4387         spureous additional errors.
4388
4389         * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
4390         debugging information now generated by the compiler for fat-pointer
4391         types.
4392         Document the contents of DW_AT_producer in the GNAT Vendor extensions to
4393         DWARF2/3.
4394         Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
4395
4396 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4397
4398         * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
4399         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
4400         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
4401         For a remote call to a function with a classwide return type, apply an
4402         E.4(18) check to the returned value.
4403         (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
4404         stream attributes of the designated type of an RACW, as they are not
4405         dispatching primitive operations.
4406
4407 2007-06-06  Geert Bosch  <bosch@adacore.com>
4408
4409         * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
4410         negative literal
4411         (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
4412         positive
4413         (Do_Divide_Fixed_Universal): Handle case of negative Frac.
4414         (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
4415         positive
4416         (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
4417
4418 2007-06-06  Javier Miranda  <miranda@adacore.com>
4419
4420         * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
4421         attribute compiling package Ada.Tags under No_Run_Time_Mode.
4422
4423 2007-06-06  Javier Miranda  <miranda@adacore.com>
4424
4425         * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
4426         deallocation of class-wide interface objects.
4427         (Expand_Dispatching_Constructor_Call): Take into account that if the
4428         result of the dispatching constructor is an interface type, the
4429         function returns a class-wide interface type; otherwise the returned
4430         object would be actual. The frontend previously accepted returning
4431         interface types because Expand_Interface_Actuals silently performed
4432         the management of the returned type "as if" it were a class-wide
4433         interface type.
4434         (Expand_Dispatching_Constructor_Call): Replace call to
4435         Make_DT_Access_Action by direct call to Make_Function_Call.
4436
4437 2007-06-06  Robert Dewar  <dewar@adacore.com>
4438             Ed Schonberg  <schonberg@adacore.com>
4439
4440         * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
4441         compute masking constant, since we now set Esize properly to the
4442         underlying size.
4443         (Create_Packed_Array_Type): Set proper Esize value adjusted as required
4444         to match the alignment.
4445         (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
4446         packed arrays of 8 bits or less.
4447
4448         * freeze.adb (Freeze_Entity): When freezing the formals of a
4449         subprogram, freeze the designated type of a parameter of an access type
4450         only if it is an access parameter.
4451         Increase size of C convention enumeration object
4452         (Freeze_Entity, array type case): Make sure Esize value is properly
4453         adjusted for the alignment if it is known.
4454         (Freeze_Entity, array type case): When checking bit packed arrays for
4455         the size being incorrect, check RM_Size, not Esize.
4456         (Freeze_Record_Type): Check for bad discriminated record convention
4457         (In_Exp_Body): Return true if the body is generated for a subprogram
4458         renaming, either an attribute renaming or a renaming as body.
4459         (Check_Itype): If the designated type of an anonymous access component
4460         is a non-protected subprogram type, indicate that it is frozen, to
4461         prevent out-of-scope freeze node at some subsequent call.
4462         (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
4463         only if the subprogram is neither imported nor exported, as well as the
4464         NCA descriptor class if the subprogram is exported.
4465
4466 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4467             Arnaud Charlet  <charlet@adacore.com>
4468             Robert Dewar  <dewar@adacore.com>
4469             Gary Dismukes  <dismukes@adacore.com>
4470
4471         * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
4472         default initialization on an imported object, when there is no
4473         initialization call generated for it.
4474         (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
4475         restriction
4476
4477         * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
4478         Static_Elaboration_Desired.
4479         Remove pragma Thread_Body.
4480         Implement a new pragma No_Body
4481         Removes the Explicit_Overriding pragma
4482         Remove Optional_Overriding pragma
4483         (Prag): Deal with Universal_Aliasing.
4484         (Name_CIL, Name_CIL_Constructor, Convention_CIL,
4485         Pragma_CIL_Constructor): New names.
4486
4487         * sem_cat.adb (Validate_Object_Declaration): An initialization that
4488         uses the equivalent aggregate of a type must be treated as an implicit
4489         initialization.
4490         (Get_Categorization): Check a unit for pragma Preelaborate only if it
4491         has none of the other categories.
4492         (Process_Import_Or_Interface_Pragma): Report an error for an attempt
4493         to apply Import to an object renaming declaration.
4494
4495         * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
4496         from a C++ class should be declared as limited and that it will be
4497         considererd limited.
4498         (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
4499         should be declared as limited and that it will be considererd limited.
4500         (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
4501         (Analyze_Pragma, case Export): Diagnose export of enumeration literal
4502         (Analyze_Pragma): Deal with Universal_Aliasing.
4503         (Sig_Flags): Likewise.
4504         (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
4505         (Overflow_Checks_Unsuppressed): New flag.
4506         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
4507         (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
4508         case of JVM or .NET targets, and compiling user code.
4509         Add debugging convenience routine rv
4510
4511 2007-06-06  Robert Dewar  <dewar@adacore.com>
4512
4513         * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
4514         are interface type.
4515         (Build_Elementary_Input_Call): For floating-point use right type in the
4516         absence of strange size or stream size clauses.
4517         (Build_Elementary_Write_Call): Same fix
4518         (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
4519         set to value that does not match base type size.
4520
4521 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4522
4523         * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
4524         object of a limited type can be initialized with a call to a function
4525         that returns in place. If the limited type has unknown discriminants,
4526         and the underlying type is a constrained composite type, build an actual
4527         subtype from the function call, as is done for private types.
4528         (Side_Effect_Free): An expression that is the renaming of an object or
4529         whose prefix is the renaming of a object, is not side-effect free
4530         because it may be assigned through the renaming and its value must be
4531         captured in a temporary.
4532         (Has_Controlled_Coextensions): New routine.
4533         (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
4534         as is done for other limited types.
4535         (Non_Limited_Designated_Type): new predicate.
4536         (Make_CW_Equivalent_Type): Modified to handle class-wide interface
4537         objects.
4538         Remove all handling of with_type clauses.
4539
4540         * par-ch10.adb: Remove all handling of with_type clauses.
4541
4542         * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
4543         checksum if the main source could not be parsed.
4544         (Loat_Unit): When processing a child unit, determine properly whether
4545         the parent unit is a renaming when the parent is itself a child unit.
4546         Remove handling of with_type clauses.
4547
4548         * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
4549         (Set_Is_Static_Coextension): New procedure.
4550         (Has_Local_Raise): New function
4551         (Set_Has_Local_Raise): New procedure
4552         (Renaming_Exception): New field
4553         (Has_Init_Expression): New flag
4554         (Delay_Finalize_Attach): Remove because flag is obsolete.
4555         (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
4556         Remove all handling of with_type clauses.
4557         (Exception_Junk): Can now be set in N_Block_Statement
4558
4559 2007-06-06  Vincent Celier  <celier@adacore.com>
4560             Robert Dewar  <dewar@adacore.com>
4561
4562         * frontend.adb (Frontend): Return immediately if the main source could
4563         not be parsed, because of preprocessing errors.
4564
4565         * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
4566         (Gnat1drv): Exit with errors if the main source could not be parsed,
4567         because of preprocessing errors.
4568         (Check_Rep_Info): New procedure
4569
4570 2007-06-06  Robert Dewar  <dewar@adacore.com>
4571
4572         * g-hesorg.ads, g-heasor.ads,
4573         g-busorg.ads, g-bubsor.ads: Update documentation
4574         GNAT.Heap/Bubble_Sort_G is now pure
4575
4576 2007-06-06  Robert Dewar  <dewar@adacore.com>
4577
4578         * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
4579
4580 2007-06-06  Robert Dewar  <dewar@adacore.com>
4581             Ed Schonberg  <schonberg@adacore.com>
4582
4583         * g-comlin.ads, g-comlin.adb: 
4584         Add new warning for renaming of function return objects
4585
4586         * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
4587         (Tree_Read): Use size of object instead of type'object_size, since the
4588         latter is incorrect for packed array types.
4589         (Tree_Write): Same fix
4590
4591         * opt.ads: Add new warning for renaming of function return objects
4592         (Generating_Code): New boolean variable used to indicate that the
4593         frontend as finished its work and has called the backend to process
4594         the tree and generate the object file.
4595         (GCC_Version): Is now private
4596         (Static_Dispatch_Tables): New constant declaration.
4597         (Overflow_Checks_Unsuppressed): New flag.
4598         (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
4599         (List_Closure): New flag for gnatbind (-R)
4600         Zero_Formatting: New flag for gnatbind (-Z)
4601         (Special_Exception_Package_Used): New flag.
4602         (Warn_On_Unrepped_Components): New flag.
4603
4604         * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
4605         unit is a compilation unit, rather than relying on its scope, so that
4606         Standard can be renamed.
4607         (Analyze_Object_Renaming): Add new warning for renaming of function
4608         return objects.
4609         Also reject attempt to rename function return object in Ada 83 mode.
4610         (Attribute_Renaming): In case of tagged types, add the body of the
4611         generated function to the freezing actions of the type.
4612         (Find_Type): A protected type is visible right after the reserved word
4613         "is" is encountered in its type declaration. Set the entity and type
4614         rather than emitting an error message.
4615         (New_Scope): Properly propagate Discard_Names to inner scopes
4616         (Check_Nested_Access): New procedure.
4617         (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
4618         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
4619
4620         * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
4621         Add new warning for renaming of function return objects
4622         (Check_References): Suppress warnings for objects whose type or
4623         base type has Warnings suppressed.
4624         (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
4625         (Set_Warning_Switch): Include new -gnatwc in -gnatwa
4626
4627 2007-06-06  Vincent Celier  <celier@adacore.com>
4628             Emmanuel Briot  <briot@adacore.com>
4629             Olivier Hainque  <hainque@adacore.com>
4630
4631         * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
4632         absolute value of Header.Block_Size when displaying the freed physical
4633         memory in traces.
4634         (Allocate): Compute Storage_Address using Integer_Address, not
4635         Storage_Offset, because the range of Storage_Offset may not be large
4636         enough.
4637         (Configure): New parameter Low_Level_Traces
4638         (Allocate, Deallocation, Free_Physically): Added low-level traces
4639         (Configure): new parameter Errors_To_Stdout.
4640         (Output_File): new subprogram
4641         (Deallocate, Dereference): Send error messages to the proper stream
4642         (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
4643         documented. Previous code would send it to the current output file
4644         defined in GNAT.IO, which might not be stdout
4645         (Is_Valid): Adjust comment to mention that a positive reply means that
4646         Header_Of may be used to retrieve the allocation header associated with
4647         the subprogram Storage address argument. Return False early if this
4648         address argument is misaligned.
4649
4650 2007-06-06  Vincent Celier  <celier@adacore.com>
4651
4652         * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
4653         switch -P
4654         (ASIS_Main): New global variable
4655         (Get_Closure): New procedure
4656         (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
4657         check, metric or pretty. Call Get_Closure in this case.
4658         (Check_Files): For GNAT LIST, check all sources of all projects when
4659         All_Projects is True.
4660         (GNATCmd): Accept -U for GNAT LIST
4661
4662 2007-06-06  Vincent Celier  <celier@adacore.com>
4663
4664         * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
4665         has been specified
4666         Correct error message when invocation of the linker fails
4667         Add explicit size clause for the C imported variables
4668         Object_List_File_Supported and Using_GNU_Linker to emphasize that
4669         we expect char size.
4670         Read target parameters earlier, since this is needed to set
4671         Target_VM properly. Also do not use -static/shared-libgcc for non GCC
4672         targets.
4673
4674 2007-06-06  Vincent Celier  <celier@adacore.com>
4675
4676         * gnatls.adb: 
4677         Add 3 spaces before the default project directory when displaying
4678         the project search path.
4679         Add new command line switch '-l' to display license information.
4680
4681 2007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
4682
4683         * gmem.c: Add support for timestamps on memory operations.
4684
4685         * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
4686         operations (not used currently, just foundation for future
4687         enhancements). Add possibility to perform full dump of gmem.out file.
4688         (Print_Back_Traces): Declare accesses to root arrays constants since
4689         they aren't modified.
4690         (Print_Back_Traces): allocate root arrays on the heap rather than stack.
4691
4692 2007-06-06  Vincent Celier  <celier@adacore.com>
4693
4694         * gnatsym.adb: Update Copyright notice
4695         (Parse_Cmd_Line): Accept new switch -D
4696         (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
4697          file.
4698
4699         * prj.ads (Policy): New policy Direct
4700         (Yes_No_Unknown): New enumeration type
4701         (Project_Data): New component Libgnarl_Needed
4702
4703         * prj-nmsc.adb (Check_For_Source): When recording a source file make
4704         use the untouched pathname casing.
4705         (Get_Directories): Ensure that the Display_Exec_Directory is using the
4706         proper casing on non case-sensitive platforms like Windows.
4707         (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
4708         on all platforms, as it is not possible to know which one is allowed
4709         before processing the project files.
4710         (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
4711         specified when symbol policy is Direct. Check that when there is a
4712         symbol file defined (either by default or with attribute
4713         Library_Symbol_File) it is not the same as the reference symbol file.
4714         (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
4715         (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
4716         extending projects.
4717         (Record_Ada_Source): Record a source that has been locally removed in an
4718         imported project.
4719
4720         * symbols.ads (Policy): New policy Direct
4721
4722         * symbols-vms.adb (Initialize): Take new policy Direct in case
4723         statement
4724
4725 2007-06-06  Vincent Celier  <celier@adacore.com>
4726
4727         * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
4728         Correct obvious bug (return Dir; instead of return Directory;).
4729         (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
4730
4731 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4732
4733         * g-pehage.adb (Produce): Open output files in Binary mode, so that
4734         they have UNIX line endings (LF only) even on Windows, and thus pass
4735         all GNAT style checks.
4736
4737 2007-06-06  Emmanuel Briot  <briot@adacore.com>
4738
4739         * g-regpat.adb (Quote): Fix improper quoting of '.'
4740
4741 2007-06-06  Thomas Quinot  <quinot@adacore.com>
4742
4743         * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
4744         default, set False on a per-runtime basis.
4745         (Need_Netdb_Buffer): New constant.
4746
4747         * g-socket.ads, g-socket.adb: Import new package
4748         GNAT.Sockets.Thin.Task_Safe_NetDB.
4749         (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
4750         binding to obtain proper message.
4751         (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
4752         Replace various occurrences of Arry (Arry'First)'Address with the
4753         equivalent Arry'Address (GNAT always follows implementation advice from
4754         13.3(14)).
4755         (Get_Host_By_Address, Get_Host_By_Name,
4756         Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
4757         instead, rely on platform-specific task safe netdb operations provided
4758         by g-socthi.
4759
4760         * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
4761         parameter Process_Blocking_IO.
4762         (Host_Error_Messages): Add stub body.
4763         (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4764         (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
4765         Safe_Getservbyport): Move functions into new child package
4766         Task_Safe_NetDB.
4767         (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
4768         Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
4769         (In_Addr): Add alignment clause.
4770
4771 2007-06-06  Robert Dewar  <dewar@adacore.com>
4772
4773         * g-trasym.ads, g-traceb.ads: Update list of supported targets
4774         Add note about symbolic traceback
4775
4776 2007-06-06  Pascal Obry  <obry@adacore.com>
4777
4778         * hostparm.ads (Normalized_CWD): Use the host directory separator
4779         instead of the hardcoded forward slash which is not the proper
4780         character on Windows for example.
4781         (Java_VM): Removed.
4782
4783 2007-06-06  Vincent Celier  <celier@adacore.com>
4784             Arnaud Charlet  <charlet@adacore.com>
4785
4786         * a-clrefi.adb, a-clrefi.ads: New files
4787
4788         * impunit.adb: Add s-os_lib in the list of user visible units.
4789         (Non_Imp_File_Names_95): Add a-clrefi to this list
4790         Remove obsolete run-time entries.
4791         (Non_Imp_File_Names_05): Add Ada 2005 entries for:
4792          "a-exetim" -- Ada.Execution_Time
4793          "a-extiti" -- Ada.Execution_Time.Timers
4794
4795         * mlib-prj.ads, mlib-prj.adb
4796         (Build_Library): Use untouched object dir and library dir. At the
4797         same time makes sure that the checks are done using the canonical
4798         form. Removes hard-coded directory separator and use the proper host
4799         one instead.
4800         (Process_Project): Do not look in object directory to check if libgnarl
4801         is needed for a library, if there is no object directory.
4802         (Build_Library): Scan the ALI files to decide if libgnarl is needed for
4803         linking.
4804         (Build_Library): When invoking gnatbind, use a response file if the
4805         total size of the arguments is too large.
4806
4807         * Makefile.rtl: (g-sttsne): New object file.
4808         Add entry for a-clrefi, s-utf_32, System.Exceptions
4809
4810         * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
4811         (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
4812         (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
4813         Change g-string to s-string, g-os_lib to s-os_lib
4814         Change all g-utf_32 references to s-utf_32
4815
4816 2007-06-06  Tristan Gingold  <gingold@adacore.com>
4817             Olivier Hainque  <hainque@adacore.com>
4818
4819         * init.c: Do not adjust IP of an imported VMS exception of ia64.
4820         LIB$STOP is called to raise an exception and the IP of the exception
4821         is the instruction right after the call.
4822         (__gnat_adjust_context_for_raise, AIX): Implement.
4823         (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
4824          adjust_context_for_raise before Raise_From_Signal_Hanler.
4825         (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
4826         siginfo is passed to the handler, necessary to let the zcx propagation
4827         engine unwind past it.
4828
4829 2007-06-06  Olivier Hainque  <hainque@adacore.com>
4830
4831         * initialize.c (__gnat_initialize for vxworks):  Update documentation
4832         on the ZCX support, using different sets of crtstuff objects than with
4833         GCC 3.4.
4834
4835 2007-06-06  Robert Dewar  <dewar@adacore.com>
4836
4837         * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
4838         spec from body
4839         (Layout_Type): Fix recomputation of size from alignment.
4840
4841 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
4842             Javier Miranda  <miranda@adacore.com>
4843
4844         * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
4845         association in an instance.
4846         (Copy_Generic_Node): If the node is a string literal, no need to copy
4847         its descendants.
4848         (Is_Generic_Formal): For a formal subprogram, the declaration is the
4849         grandparent of the entity.
4850         (Analyze_Formal_Interface_Type): Transform into a full type declaration,
4851         to simplify handling of formal interfaces that derive from other formal
4852         interfaces.
4853         (Instantiate_Subprogram_Body): The defining unit name of the body of
4854         the instance should be a defining identifier.
4855         (Install_Formal_Packages): make global to the package, for use in
4856         instantiations of child units.
4857         (Analyze_Package_Instantiation): Do not attempt to set information on an
4858         enclosing master of an entry when expansion is disabled.
4859         (Instantiate_Type): If the actual is a tagged synchronized type and the
4860         generic ancestor is an interface, create a generic actual for the
4861         corresponding record.
4862         (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
4863         declaration, to ensure that the interface list is processed correctly.
4864         (Inline_Instance_Body): If enclosing scope is an instance body, remove
4865         its entities from visibiility as well.
4866         (Pre_Analyze_Actuals): if the actual is an allocator with  constraints
4867         given with a named association, analyze the expression only, not the
4868         discriminant association itself.
4869         (Reset_Entity): If the analysis of a selected component is transformed
4870         into an expanded name in the prefix of a call with parameters, do not
4871         transform the original node into an expanded name, to prevent visibility
4872         errors in the case of nested generics.
4873         (Check_Private_View): For an array type, check whether the index types
4874         may need exchanging.
4875
4876 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
4877             Vincent Celier  <celier@adacore.com>
4878
4879         * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
4880         since both are separated.
4881         Add support for imported CIL packages.
4882         Add further special handling of "value_type" for CIL.
4883         Add special handling of pragma Import for CIL.
4884
4885         * make.ads, make.adb: When switch -eS is used, direct all outputs to
4886         standard output instead of standard error, except errors.
4887         (Absolute_Path): Use untouched casing for the parent directory.
4888         (Add_Library_Search_Dir): Use the untouched directory name.
4889         (Add_Source_Search_Dir): Idem.
4890         (Change_To_Object_Directory): Update output to use proper casing.
4891         (Create_Binder_Mapping_File): Use the untouched filename to set
4892         ALI_Name.
4893         (Gnatmake): Use untouched library and executable directory names.
4894         (Insert_Project_Sources): Use untouched filename for spec and body.
4895         (Is_In_Object_Directory): Use untouched object directory.
4896         (Mark_Directory): Idem.
4897         (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
4898         contains the non-canonical filename in all cases.
4899         (Change_To_Object_Directory): In verbose mode, display the name of the
4900         object directory we're changing to.
4901         (Compile_Sources): Make sure, when a project file is used, to compile
4902         the body of the unit, when there is one, even when only the spec is
4903         recorded in an ALI file.
4904         (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
4905         spec to the body.
4906         (Report_Compilation_Failed): New procedure
4907         (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
4908         procedures moved from the spec to the body.
4909         (Extract_Failure): Removed, not used
4910         Replace explicit raises of exception Bind_Failed and Link_Failed with
4911         calls to Make_Failed with the proper message.
4912         Replace explicit raises of exception Compilation_Failed with calls to
4913         procedure Report_Compilation_Failed.
4914         (Initialize): Create mapping files unconditionally when using project
4915         files.
4916
4917         * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
4918         Pragma_CIL_Constructor): New names.
4919
4920         * targparm.ads, targparm.adb
4921         (Compiler_System_Version): Removed, no longer used.
4922         (Get_Target_Parameters): Relax checks on system.ads validity. Add
4923         handling of two new system flags: JVM and CLI.
4924
4925 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
4926             Arnaud Charlet  <charlet@adacore.com>
4927
4928         * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
4929         time, use the default s-interr body that provides interrupt support
4930         based on signals.
4931         (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
4932         a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
4933         g-soccon.ads, and s-taprop.adb for the marte run time.
4934         (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
4935         timers are supported on marte.
4936         (EH_MECHANISM for marte): Do not use ZCX.
4937         (THREADSLIB for marte): Use -lmarte.
4938         Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
4939         Add mlib-tgt-specific.o to gnatmake objects
4940         mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
4941         longer of MLib.Tgt.
4942         (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
4943         6, either kernel or rtp, use a specialized version of s-osinte.ads.
4944
4945 2007-06-06  Pascal Obry  <obry@adacore.com>
4946
4947         * mkdir.c (__gnat_mkdir): Add support for UTF-8.
4948
4949 2007-06-06  Vincent Celier  <celier@adacore.com>
4950
4951         * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
4952         separator, use instead the proper host directory separator.
4953         (Copy_ALI_Files): Make sure that an already existing ALI file in the
4954         ALI copy dir is writable, before doing the copy.
4955
4956         * mlib-utl.ads, mlib-utl.adb: 
4957         (Gcc): If length of command line is too long, put the list of object
4958         files in a response file, if this is supported by the platform.
4959         (Ar): If invocation of the archive builder is allowed to be done in
4960         chunks and building it in one shot would go above an OS dependent
4961         limit on the number of characters on the command line, build the archive
4962         in chunks.
4963
4964 2007-06-06  Vincent Celier  <celier@adacore.com>
4965
4966         * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
4967         of specified object file is not equal to base name of source.
4968
4969 2007-06-06  Javier Miranda  <miranda@adacore.com>
4970             Hristian Kirtchev  <kirtchev@adacore.com>
4971             Ed Schonberg  <schonberg@adacore.com>
4972
4973         * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
4974         the full type declaration.
4975         (Analyze_Component_Declaration): Add local variable E to capture the
4976         initialization expression of the declaration. Replace the occurences of
4977         Expression (N) with E.
4978         (OK_For_Limited_Init_In_05): Allow initialization of class-wide
4979         limited interface object with a function call.
4980         (Array_Type_Declaration): If the declaration lacks subtype marks for
4981         indices, create a simple index list to prevent cascaded errors.
4982         (Is_Null_Extension): Ignore internal components created for secondary
4983         tags when checking whether a record extension is a null extension.
4984         (Check_Abstract_Interfaces): Add missing support for interface subtypes
4985         and generic formals.
4986         (Derived_Type_Declaration): Add missing support for interface subtypes
4987         and generic formals.
4988         (Analyze_Object_Declaration): If an initialization expression is
4989         present, traverse its subtree and mark all allocators as static
4990         coextensions.
4991         (Add_Interface_Tag_Component): When looking for components that may be
4992         secondary tags, ignore pragmas that can appear within a record
4993         declaration.
4994         (Check_Abstract_Overriding): an inherited function that dispatches on
4995         result does not need to be overriden if the controlling type is a null
4996         extension.
4997         (Mentions_T): Handle properly a 'class attribute in an anonymous access
4998         component declaration, when the prefix is an expanded name.
4999         (Inherit_Component): If the derivation is for a private extension,
5000         inherited components remain visible and their ekind should not be set
5001         to Void.
5002         (Find_Type_Of_Object): In the case of an access definition, always set
5003         Is_Local_Anonymous_Access. We were previously not marking the anonymous
5004         access type of a return object as a local anonymous type.
5005         (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
5006         range with character literal bounds.
5007         (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
5008         (Access_Subprogram_Declaration): Indicate that the type declaration
5009         depends on an incomplete type only if the incomplete type is declared
5010         in an open scope.
5011         (Analyze_Subtype_Declaration): Handle properly subtypes of
5012         synchronized types that are tagged, and that may appear as generic
5013         actuals.
5014         (Access_Subprogram_Declaration): An anonymous access to subprogram can
5015         appear as an access discriminant in a private type declaration.
5016         (Add_Interface_Tag_Components): Complete decoration of the component
5017         containing the tag of a secondary dispatch table and the component
5018         containing the offset to the base of the object (this latter component
5019         is only generated when the parent type has discriminants --as documented
5020         in this routine).
5021         (Inherit_Components): Use the new decoration of the tag components to
5022         improve the condition that avoids inheriting the components associated
5023         with secondary tags of the parent.
5024         (Build_Discriminanted_Subtype): Indicate to the backend that the
5025         size of record types associated with dispatch tables is known at
5026         compile time.
5027         (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
5028         (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
5029         to include task, protected, and synchronized interfaces as limited
5030         interfaces.
5031         (Process_Discriminants): Remove the setting of
5032         Is_Local_Anonymous_Access on the type of (anonymous) access
5033         discriminants of nonlimited types.
5034         (Analyze_Interface_Type_Declaration): Complete the decoration of the
5035         class-wide entity it is is already present. This situation occurs if
5036         the limited-view has been previously built.
5037         (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
5038         field.
5039         (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
5040         Related_Interface.
5041
5042 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5043
5044         * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
5045         of the type that specify the position of interface tags when the type
5046         inherits discriminated array components from the parent type.
5047         If a component is initialized with a box, check for the presence of a
5048         default expression in its declaration before using its default
5049         initialization procedure.
5050         (Resolve_Record_Aggregate): If a component is box-initialized, and the
5051         component type has a discriminants, create a partial aggregate for it
5052         by copying the discriminants of the component subtype.
5053         Reject attempt to initialize a discriminant with a box.
5054         (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
5055         associated with dispatch tables is known at compile time.
5056         (Get_Value): If an association in a record aggregate has a box
5057         association, and the corresponding record component has a default
5058         expression, always copy the default expression, even when the
5059         association has a single choice, in order to create a proper
5060         association for the expanded aggregate.
5061
5062 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5063             Robert Dewar  <dewar@adacore.com>
5064
5065         * par-ch12.adb (P_Generic_Associations): The source position of an
5066         Others association is that of the others keyword, not that of the token
5067         that follows the box.
5068         (P_Formal_Type_Definition): Handle formal access types that carry a
5069         not null indicator.
5070
5071         * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
5072         multiple identifier are present, save Scan_State before scanning the
5073         colon, to ensure that separate trees are constructed for each
5074         declaration.
5075         (P_Identifier_Declarations): For object declaration, set new flag
5076         Has_Init_Expression if initialization expression present.
5077         (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
5078         Improve NOT NULL error messages
5079
5080 2007-06-06  Robert Dewar  <dewar@adacore.com>
5081
5082         * par-ch4.adb: (P_Name): Recover from literal used as name
5083
5084 2007-06-06  Vincent Celier  <celier@adacore.com>
5085
5086         * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
5087         defaulted to False.
5088         In the "not" case, recursive call with Complemented set to True.
5089         Do not allow "or" or "and" operators when Complemented is True.
5090
5091 2007-06-06  Vincent Celier  <celier@adacore.com>
5092
5093         * prj.adb (Project_Empty): Gives default value for new component
5094         Libgnarl_Needed
5095
5096         * prj-attr.ads: Minor reformatting
5097
5098         * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
5099         directory using the untouched casing.
5100         (For_All_Source_Dirs): Idem.
5101
5102         * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
5103         directories specified with switches -aP.
5104         (Add_Search_Project_Directory): New procedure
5105         (Initialize_Project_Path): Put the directories in table
5106         Search_Directories in the project search path.
5107         (Initialize_Project_Path): For VMS, transform into canonical form the
5108         project path.
5109
5110 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5111
5112         * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
5113         true if configurable run-time or No_Run_Time is set.
5114         (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
5115         processing an unit which is not the one being compiled.
5116
5117 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5118
5119         * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
5120         Replace UC by Ada.UC
5121
5122         * s-bitops.adb: Get rid of System.Pure_Exceptions.
5123         Replace UC by Ada.UC
5124
5125 2007-06-06  Robert Dewar  <dewar@adacore.com>
5126
5127         * scng.adb: (Check_End_Of_Line): Deal with very long lines
5128
5129 2007-06-06  Robert Dewar  <dewar@adacore.com>
5130
5131         * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
5132         Remove no longer used nodes.
5133
5134 2007-06-06  Javier Miranda  <miranda@adacore.com>
5135             Ed Schonberg  <schonberg@adacore.com>
5136             Robert Dewar  <dewar@adacore.com>
5137
5138         * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
5139         on obsolescent withed unit in case of limited-withed units.
5140         (Analyze_Compilation_Unit): Add guard to code that removed an
5141         instantiation from visibility, to prevent compiler aborts when
5142         instantiation is abandoned early on.
5143         (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
5144         current unit being analyzed, and Distinguish local incomplete types
5145         from limited views of types declared elsewhere.
5146         (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
5147         to state that the class-wide entity is shared by the limited-view
5148         and the full-view.
5149         (Analyze_With_Clause): Improve placement of flag for case of
5150         unimplemented unit.
5151         (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
5152         manner similar to GNAT.Current_Exception. This is a violation of
5153         restriction (No_Exception_Propagation), and also inhibits the
5154         optimization of local raise to goto.
5155         (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
5156         and if so set Most_Recent_Exception_Used flag in Opt, and also check
5157         for violation of restriction No_Exception_Propagation.
5158
5159 2007-06-06  Javier Miranda  <miranda@adacore.com>
5160             Hristian Kirtchev  <kirtchev@adacore.com>
5161             Gary Dismukes  <dismukes@adacore.com>
5162
5163         * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
5164         use of entity Exception_Occurrence if it is not available in the
5165         target run-time.
5166
5167         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
5168         concurrent types are declared within an Ada 2005 generic, build their
5169         corresponding record types since they are needed for overriding-related
5170         semantic checks.
5171         (Analyze_Protected_Type): Rearrange and simplify code for testing that a
5172         protected type does not implement a task interface or a nonlimited
5173         interface.
5174         (Analyze_Task_Type): Rearrange and simplify code for testing that a task
5175         type does not implement a protected interface or a nonlimited interface.
5176         (Single_Task_Declaration, Single_Protected_Declaration): use original
5177         entity for variable declaration, to ensure that debugging information
5178         is correcty generated.
5179         (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
5180         routines if the expander is not active.
5181         (Analyze_Task_Body): Mark all handlers to stop optimization of local
5182         raise, since special things happen for task exception handlers.
5183
5184         * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
5185         concurrent types declared within a generic.
5186         (Check_Dispatching_Operation): Do not emit warning about late interface
5187         operations in the context of an instance.
5188         (Check_Dispatching_Call): Remove restriction against calling a
5189         dispatching operation with a limited controlling result.
5190         (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
5191         Register_Interface_DT_Entry by calls to Register_Primitive.
5192         (Check_Dispatching_Formals): Handle properly a function with a
5193         controlling access result.
5194
5195 2007-06-06  Robert Dewar  <dewar@adacore.com>
5196             Arnaud Charlet  <charlet@adacore.com>
5197
5198         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
5199         Check for restriction No_Implementation_Attributes if in Ada 95 mode.
5200         (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
5201         (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
5202         message when using a VM, since this attribute is not supported.
5203         (Analyze_Record_Representation_Clause): Give unrepped component warnings
5204
5205         * usage.adb: Add new warning for renaming of function return objects
5206         Indicate that -gnatwp and -gnatwP concern front-end inlining
5207         Add line for -gnatyg
5208         Add usage information for -gnatw.c/C
5209
5210 2007-06-06  Robert Dewar  <dewar@adacore.com>
5211             Ed Schonberg  <schonberg@adacore.com>
5212
5213         * sem_ch5.adb
5214         (Find_Var): Do not consider function call in test for infinite loop
5215         warning if warnings set off for function entity.
5216         (One_Bound): Do not create a temporary for a loop bound if it is a
5217         character literal.
5218         (Analyze_Assignment): Traverse the right hand side of an assignment and
5219         mark all allocators as static coextensions.
5220         (Analyze_Assignment): Exempt assignments involving a dispatching call
5221         to a function with a controlling access result from the check requiring
5222         the target to be class-wide.
5223
5224 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5225             Ed Schonberg  <schonberg@adacore.com>
5226             Robert Dewar  <dewar@adacore.com>
5227             Javier Miranda  <miranda@adacore.com>
5228
5229         * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
5230         chain of coextensions when an allocator serves as the root of such a
5231         chain.
5232         (Propagate_Coextensions): Remove the test for the root being an
5233         allocator.
5234         (Resolve_Allocator): Add condition to ensure that all future decoration
5235         occurs on an allocator node. Add processing and cleanup for static
5236         coextensions.
5237         (Valid_Conversion): If the operand type is the limited view of a
5238         class-wide type, use the non-limited view is available to determine
5239         legality of operation.
5240         (Ambiguous_Character): move to spec, for use elsewhere.
5241         (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
5242         (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
5243         character literals.
5244         (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
5245         Do_Division_Check flag explicitly.
5246         (Resolve_Actuals): If the actual is of a synchronized type, and the
5247         formal is of the corresponding record type, this is a call to a
5248         primitive operation of the type, that is declared outside of the type;
5249         the actual must be unchecked-converted to the type of the actual
5250         (Resolve_Call): Kill all current values for any subprogram call if
5251         flag Suppress_Value_Tracking_On_Call is set.
5252         (Resolve_Type_Conversion): Generate error message the the operand
5253         or target of interface conversions come from a limited view.
5254         (Check_Infinite_Recursion): Ignore generated calls
5255         (Check_Allocator_Discrim_Accessibility): New procedure for checking
5256         that an expression that constrains an access discriminant in an
5257         allocator does not denote an object with a deeper level than the
5258         allocator's access type.
5259         (Resolve_Allocator): In the case of an allocator initialized by an
5260         aggregate of a discriminated type, check that associations for any
5261         access discriminants satisfy accessibility requirements by calling
5262         Check_Allocator_Discrim_Accessibility.
5263         (Resolve_Equality_Op): Handle comparisons of anonymous access to
5264         subprogram types in the same fashion as other anonymous access types.
5265         (Resolve_Concatenation_Arg): Remove initial character '\' in an error
5266         message that is not a continuation message.
5267         (Resolve_Type_Conversion): Add missing support for conversion to
5268         interface type.
5269         (Resolve_Actuals): Introduce a transient scope around the call if an
5270         actual is a call to a function returning a limited type, because the
5271         resulting value must be finalized after the call.
5272         (Resolve_Actuals): If the call was given in prefix notations, check
5273         whether an implicit 'Access reference or implicit dereference must be
5274         added to make the actual conform to the controlling formal.
5275
5276 2007-06-06  Robert Dewar  <dewar@adacore.com>
5277             Javier Miranda  <miranda@adacore.com>
5278
5279         * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
5280         (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
5281         overriding of an inherited private subprogram now there is no need to
5282         inherit its dispatching slot and reduce the size of the dispatch table.
5283         Set_All_DT_Position now ensures that the same slot is now assigned to
5284         both entities. This is required to statically build the dispatch table.
5285         (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
5286         of calling Set_All_DT_Position to re-evaluate the position of the
5287         entries in the dispatch table. Such reevaluation is not desired if
5288         the tagged type is already frozen.
5289
5290 2007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5291             Gary Dismukes  <dismukes@adacore.com>
5292             Robert Dewar  <dewar@adacore.com>
5293             Javier Miranda  <miranda@adacore.com>
5294
5295         * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
5296         reference acts as an lvalue when the attribute name modifies the prefix
5297         (Is_Coextension_Root): New routine.
5298         (Mark_Static_Coextensions): New routine.
5299         (Type_Access_Level): Revise code for checking the level of the
5300         anonymous access type of a return object.
5301         (Safe_To_Capture_Value): Not safe to capture if Address_Taken
5302         (Matches_Prefixed_View_Profile): Remove the no longer necessary
5303         retrieval of the corresponding controlling record type.
5304         (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
5305         concurrent types declared within a generic as well as class wide types.
5306         Emit a mode incompatibility error whenever a protected entry or routine
5307         override an interface routine whose first parameter is not of mode
5308         "out", "in out" or access to variable.
5309         (Overrides_Synchronized_Primitive): Rename to
5310         Find_Overridden_Synchronized_Primitive.
5311         (Collect_Interface_Components): New subprogram that collects all the
5312         components of a tagged record containing tags of secondary dispatch
5313         tables.
5314         (Add_Global_Declaration): New procedure
5315         (Abstract_Interface_List): Handle properly the case of a subtype of a
5316         private extension.
5317         (Type_Access_Level): In the case of a type whose parent scope is a
5318         return statement, call Type_Access_Level recursively on the enclosing
5319         function's result type to determine the level of the return object's
5320         type.
5321         (Build_Elaboration_Entity): Build name of elaboration entity from the
5322         scope chain of the entity, rather than the unit name of the file name.
5323         (Check_Nested_Access): New procedure.
5324         (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
5325         (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
5326         (Get_Renamed_Entity): Utility routine for performing common operation
5327         of chasing the Renamed_Entity field of an entity.
5328
5329 2007-06-06  Robert Dewar  <dewar@adacore.com>
5330
5331         * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
5332         elaboration model
5333         (Check_A_Call): Add check for entry call which was causing blowup
5334
5335 2007-06-06  Olivier Hainque  <hainque@adacore.com>
5336
5337         * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
5338         special code on ia64-vms to handle major incompatibilities between the
5339         GCC unwinding ABI and the VMS Condition Handling Facility, both calling
5340         this routine with a very different set of arguments and expectations on
5341         the return value.
5342
5343 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5344
5345         * socket.c (__gnat_close_signalling_fd): New function.
5346         (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
5347         __gnat_safe_getservbyname, __gnat_safe_getservbyport):
5348         New supporting functions for task safe Netdb operations.
5349
5350 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5351             Olivier Hainque  <hainque@adacore.com>
5352
5353         * a-except-2005.ads, a-except-2005.adb
5354         (Raise_From_Controlled_Operation): New procedure in
5355         (private part of) Ada.Exceptions (standard runtime version). Used to
5356         provide informational exception message when Program_Error is raised as
5357         a result of an Adjust or Finalize operation propagating an exception.
5358         (Rmsg_28): Fix description for E.4(18) check.
5359         (Raise_Current_Excep): Call Debug_Raise_Exception just before
5360         propagation starts, to let debuggers know about the event in a reliable
5361         fashion.
5362         Take the address of E and dereference to make sure it is homed on stack
5363         and prevent the stores from being deleted, necessary for proper
5364         debugger behavior on "break exception" hits.
5365         (Local_Raise): Moved to System.Exceptions
5366
5367         * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
5368         exception message from the current occurrence and raise Program_Error
5369         has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
5370
5371 2007-06-06  Jose Ruiz  <ruiz@adacore.com>
5372             Arnaud Charlet  <charlet@adacore.com>
5373
5374         * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
5375         lock, if needed.
5376
5377         * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
5378         priority associated to a lock.
5379
5380         * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
5381         assertion to take into account case of no abort restriction.
5382         (Initialize_Protection_Entries): Add initialization for the field
5383         New_Ceiling associated to the protected object.
5384         (Unlock_Entries): Change the ceiling priority of the underlying lock, if
5385         needed.
5386
5387         * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
5388         since this function needs to be set consistently with Update_Exception.
5389
5390         * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
5391         since this function needs to be set consistently with Update_Exception.
5392
5393         * s-taskin.ads: Update comments on
5394         Interrupt_Server_Blocked_On_Event_Flag.
5395         (Unbind_Handler): Fix handling of server_task wakeup
5396         (Server_Task): Set self's state so that Unbind_Handler can take
5397         appropriate actions.
5398         (Common_ATCB): Now use a constant from System.Parameters to determine
5399         the max size of the Task_Image field.
5400
5401         * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
5402         Initialize_Analyzer function.
5403         ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
5404         take into account case of no abort restriction.
5405         ([Vulnerable_]Complete_Master): Modify assertion.
5406
5407         * s-tataat.adb (Finalize): Use the nestable versions of
5408         Defer/Undefer_Abort.
5409
5410         * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
5411
5412         * s-tpobop.ads: Update comments.
5413
5414         * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
5415         of locking the object manually, to avoid inconsistencies between
5416         Lock/Unlock_Entry assertions.
5417
5418         * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
5419         terminating
5420         application and System.Parameters.No_Abort is True.
5421         Update comments on Interrupt_Server_Blocked_On_Event_Flag.
5422         (Unbind_Handler): Fix handling of server_task wakeup
5423         (Server_Task): Set self's state so that Unbind_Handler can take
5424         appropriate actions.
5425
5426 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5427
5428         * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
5429         declarations instead of an explicit null body, for conciseness.
5430
5431 2007-06-06  Robert Dewar  <dewar@adacore.com>
5432
5433         * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
5434         illegal aggregate and the type is still Any_Composite.
5435         (Subtypes_Statically_Match): Fix problem of empty discriminant list
5436
5437 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5438
5439         * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
5440         to prevent subsequent expansion.
5441
5442 2007-06-06  Robert Dewar  <dewar@adacore.com>
5443
5444         * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
5445
5446 2007-06-06  Ed Schonberg  <schonberg@adacore.com>
5447             Robert Dewar  <dewar@adacore.com>
5448
5449         * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
5450         exceptions.
5451         (Write_Itype): Handle case of string literal subtype, which
5452         comes up in this context.
5453         (Update_Itype): when debugging expanded code, update sloc of itypes
5454         associated with defining_identifiers and ranges, for gdb use.
5455         (Sprint_Node_Actual): Add static keyword to object or exception
5456         declaration output if Is_Statically_Allocated is True.
5457         (Sprint_End_Label): Set entity of end marker for a subprogram, package,
5458         or task body, so that the tree carries the proper Sloc information for
5459         debugging use.
5460         (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
5461
5462 2007-06-06  Arnaud Charlet  <charlet@adacore.com>
5463
5464         * s-secsta.adb (Chunk): Ensure this object has a static size known at
5465         compile time, to avoid dynamic memory allocation
5466         (Elaboration code): Only use dynamic memory allocation when needed.
5467
5468 2007-06-06  Quentin Ochem  <ochem@adacore.com>
5469
5470         * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
5471         "Overflow_Guard".
5472         (Stack_Analyzer): Added field "Overflow_Guard"
5473         (Task_Result): Added field "Overflow_Guard".
5474         (Index_Str): New constant.
5475         (Task_Name_Str): New constant.
5476         (Actual_Size_Str): New constant.
5477         (Pattern_Array_Element_Size): New constant.
5478         (Get_Usage_Range): New subprogram.
5479         (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
5480         Now align the output.
5481         Added comments.
5482         (Initialize): Added value for Overflow_Guard.
5483         (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
5484         Update the value of the overflow guard according to the actual
5485         beginning of the pattern array.
5486         (Initialize_Analyzer): Added parameter Overflow_Guard.
5487         Take this parameter into accound when computing the max size.
5488         (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
5489         (Report_Result): Removed extra useless procedure.
5490         Updated call to Output_Result.
5491         Moved full computation of the Task_Result here.
5492
5493 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5494
5495         * g-soccon-darwin.ads, gen-soccon.c: Add new constant
5496         Thread_Blocking_IO, always True by default, set False on a per-runtime
5497         basis.
5498         Add Windows-specific constants
5499         Add new constant Need_Netdb_Buffer.
5500         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
5501         not, whether to use getXXXbyYYY_r.
5502
5503         * gsocket.h: Add new constant Need_Netdb_Buffer.
5504         Add new macros to indicate whether getXXXbyYYY is thread safe and, if
5505         not, whether to use getXXXbyYYY_r.
5506
5507 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5508
5509         * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
5510         than their first call.
5511         Add type Dummy_Communication_Block used in the generation of the pre-
5512         defined dispatching primitive _disp_asynchronous_select.
5513         (Storage_Element): Put Pragma Universal_Aliasing on it.
5514
5515 2007-06-06  Vincent Celier  <celier@adacore.com>
5516
5517         * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
5518         function.
5519
5520         * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
5521         letter if it is not followed by a '/' or a '\'.
5522         (Windows): New Boolean function
5523
5524         * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
5525         Ada 2005.
5526         (Containing_Directory): On Windows, keep at least one '/' or '\' after a
5527         drive letter.
5528         (Containing_Directory): Raise Use_Error when the directory is a root
5529         directory.
5530         (Extension): When returning the result, use a conversion to Result_Type,
5531         not a qualification.
5532
5533 2007-06-06  Robert Dewar  <dewar@adacore.com>
5534
5535         * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
5536         (Set_Style_Check_Options): Recognize new -gnatyg style switch
5537
5538         * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
5539         Warn_On_Non_Local_Exception to False, to turn off warnings for
5540         No_Exception_Propagation in ZFP runtime.
5541         (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
5542         back-ends.
5543         (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
5544
5545 2007-06-06  Vincent Celier  <celier@adacore.com>
5546
5547         * switch-b.adb (Scan_Binder_Switches): Add processing for new
5548         switches -R and -Z
5549
5550         * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
5551         (Scan_Make_Switches): Recognize new switch -aP
5552
5553 2007-06-06  Matthew Gingell  <gingell@adacore.com>
5554             Jose Ruiz  <ruiz@adacore.com>
5555
5556         * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
5557         VxWorks task descriptor in the Ada run time, call a C subprogram
5558         (__gnat_get_stack_info) that extracts the required information.
5559
5560         * sysdep.c: Back out temporary lynxos workaround.
5561         (__gnat_get_stack_info): Add this procedure that passes to the Ada run
5562         time the stack information associated to the currently executing task.
5563         Only VxWorks systems require this function.
5564
5565 2007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
5566
5567         * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
5568         add the stack bias if the offset is computed from a frame address.
5569         (__gnat_backtrace): Adjust for above change.
5570
5571 2007-06-06  Thomas Quinot  <quinot@adacore.com>
5572
5573         * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
5574         PE_Non_Transportable_Actual.
5575         (By_Descriptor_Last): New constant.
5576         (By_Copy_Return): Likewise.
5577
5578 2007-06-06  Vincent Celier  <celier@adacore.com>
5579
5580         * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
5581         is.
5582
5583         * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
5584         /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
5585         /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
5586         Add missing comment for /OPTIMIZE=SPACE
5587         Add entry for OPTIMIZE=SPACE
5588         Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
5589         Add documentation for new qualifiers corresponding to -gnatw.c/.C
5590
5591 2007-06-06  Vincent Celier  <celier@adacore.com>
5592             Robert Dewar  <dewar@adacore.com>
5593
5594         * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
5595         -gnatw.C)
5596
5597         * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
5598         Document gnatbind switch -a
5599         (case Constructions): Document that variables declarations are allowed
5600         for previously declared variables.
5601         Fix external lib project example
5602         -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
5603         Indicate that "#if not X or Y then" is not allowed in input files to
5604         gnatprep.
5605         Document gnatw.x and gnatw.X warning flags
5606         Mention -Winline switch to activate warnings when back-end inlining is
5607         ineffective.
5608         Add gnatcheck rule descriptions
5609         Describe how to use the GNAT driver to call a tool on a closure.
5610         Describe how to run project-wide checks or metrics.
5611         Document gnatbind's -R option
5612         Updated to account for Ada 2005 support
5613
5614         * gnat_rm.texi (Case Construction): Allow variable declarations for
5615         previously declared variables.
5616         (Representation Clauses and Pragmas): Lift restriction on alignment
5617         clauses for record types.
5618         (Ada.Characters.*): Fix typo in reference to A.3.3(27).
5619         Document No_Exception_Propagation restriction
5620         Document No_Body pragma
5621         Updated to account for Ada 2005 support; corrected some typos
5622         (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
5623
5624         * gnat-style.texi: Make it clear that we never use mode IN for
5625         procedures or functions
5626
5627         * ug_words: Add entries for -gnatw.x and -gnatw.X
5628         Add entries for -gnatw.c/.C
5629
5630 2007-06-06  Pascal Obry  <obry@adacore.com>
5631             Vincent Celier  <celier@adacore.com>
5632
5633         * makegpr.adb (Add_Archive_Path): Use untouched object and library
5634         dirs and library name.
5635         (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
5636         comments.
5637         (Build_Library): Idem.
5638         (Compile_Individual_Sources): Idem.
5639         (Compile_Link_With_Gnatmake): Idem.
5640         (Compile_Sources): Idem.
5641         (Get_Imported_Directories): Idem.
5642         (Link_Executables): Idem. Same change for the executable dir.
5643         (Check_Compilation_Needed): C_Source_Path new variable containing
5644         the canonical form of Source_Path to check against the source names
5645         in the dependency file.
5646         (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
5647         verbose mode, display the name of the object directory we're changing
5648         to.
5649         (Saved_Switches): New name of table X_Switches
5650         (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
5651         (Usage): New line for switch -aP
5652         (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
5653         testing if a directory should be added to the search path.
5654
5655 2007-06-06  Javier Miranda  <miranda@adacore.com>
5656
5657         * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 
5658         a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
5659         declaration after freezing point of all its associated tagged types;
5660         otherwise such types are frozen too early.
5661
5662 2007-06-06  Robert Dewar  <dewar@adacore.com>
5663
5664         * a-reatim.adb: Documentation addition
5665
5666         * g-cgideb.adb: Minor code reorganization
5667
5668         * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
5669         mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
5670         s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
5671
5672         * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
5673         function.  Change name New_Scope to Push_Scope
5674         (Get_Debug_Flag_K): Remove unused obsolete function.
5675
5676         * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
5677         Push_Scope.
5678
5679         * makeusg.adb: Update Copyright notice
5680         Add line for switch -aP
5681
5682         * makeusg.adb: Fix wording of some usage messages
5683
5684         * s-assert.adb (Raise_Assert_Failure): Add call to
5685         Debug_Raise_Assert_Failure.
5686
5687         * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
5688         (2, Standard'Alignment) for compatibility with AAMP (where alignment
5689         is restricted to 1).
5690
5691         * s-wchjis.adb: Remove use of System.Pure_Exceptions
5692
5693         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
5694         node location to No_Location when we're not debugging the expanded
5695         code.
5696
5697 2007-05-22  Alexandre Oliva  <aoliva@redhat.com>
5698
5699         * misc.c (enumerate_modes): Consider log2_b to always be one.
5700
5701 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
5702
5703         * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
5704
5705 2007-05-02  Pascal Obry  <obry@adacore.com>
5706
5707         * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
5708         to use Stream_IO.File_Type. This is needed to make use of the UTF-8
5709         encoding support of Stream_IO.
5710         (Write_Unit): Idem.
5711
5712         * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
5713         filename and corresponding encoding to match the OS requirement.
5714         (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
5715         routine will fail on specific devices like CON: AUX: ...
5716
5717         PR ada/29856: Add missing braces
5718
5719 2007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5720
5721         PR ada/31660
5722         * ada-tree.h (lang_tree_node): Fix typo in chain_next.
5723
5724 2007-04-21  Jan Hubicka  <jh@suse.cz>
5725
5726         * misc.c (gnat_expand_body): Don't call target for destructors,
5727         avoid redundant check on syntax errors.
5728
5729 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
5730
5731         * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
5732         instead of checking GIMPLE_STMT_P in chain_next.
5733
5734 2007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
5735
5736         PR ada/31576
5737         * system-linux-alpha.ads: Disable constant condition warning for the
5738         Default_Bit_Order variable.
5739         * system-linux-s390.ads: Likewise.
5740         * system-linux-s390x.ads: Likewise.
5741         * system-linux-sparc.ads: Likewise.
5742
5743 2007-04-06  Javier Miranda  <miranda@adacore.com>
5744             Matt Heaney  <heaney@adacore.com>
5745             Robert Dewar  <dewar@adacore.com>
5746
5747         a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
5748         a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
5749         a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
5750         a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
5751         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
5752         a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
5753         a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
5754         a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
5755         a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
5756         a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
5757         a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
5758         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
5759         a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
5760         a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
5761         a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
5762         a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
5763         a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
5764         i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
5765         unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
5766         a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
5767         a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
5768         a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
5769         expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
5770         s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
5771         s-taprop-tru64.adb, s-taprop-irix.adb,
5772         s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
5773         s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
5774         s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
5775         s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 
5776         s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 
5777         a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 
5778         a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 
5779         g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 
5780         s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 
5781         s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 
5782         s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 
5783         s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 
5784         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 
5785         s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 
5786         a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 
5787         a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 
5788         a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 
5789         a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
5790         a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 
5791         a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
5792         access types.
5793         Update documentation.
5794         Minor rewording.
5795
5796 2007-04-06  Robert Dewar  <dewar@adacore.com>
5797
5798         * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
5799         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
5800         system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
5801         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
5802         system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
5803         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
5804         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
5805         system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
5806         system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
5807         system-hpux-ia64.ads, targparm.adb,
5808         targparm.ads (Functions_Return_By_DSP_On_Target): Removed
5809
5810         * system.ads: Move Functions_Return_By_DSP to obsolete section,
5811         kept for bootstrap purposes only.
5812
5813 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
5814
5815         * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
5816         s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
5817         s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
5818         (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
5819
5820 2007-04-06  Robert Dewar  <dewar@adacore.com>
5821
5822         * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
5823         (Local_Raise): New dummy procedure called when a raise is converted
5824         to a local goto. Used for debugger to detect that the exception
5825         is raised.
5826
5827         * debug.adb: Document new d.g flag (expand local raise statements to
5828         gotos even if pragma Restriction (No_Exception_Propagation) is not set)
5829
5830         * exp_sel.adb: Use Make_Implicit_Exception_Handler
5831
5832         * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
5833         suppress warnings for unused handlers.
5834         (Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
5835         warnings for raise statements not handled locally.
5836         (Get_RT_Exception_Entity): New function
5837         (Get_Local_Call_Entity): New function
5838         (Find_Local_Handler): New function
5839         (Warn_If_No_Propagation): New procedure
5840         (Expand_At_End_Handler): Call Make_Implicit_Handler
5841         (Expand_Exception_Handlers): Major additions to deal with local handlers
5842         (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
5843         Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
5844         for local raise
5845
5846         * exp_ch11.ads (Get_RT_Exception_Entity): New function
5847         (Get_Local_Call_Entity): New function
5848
5849         * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
5850         of restrictions that the binder will never suggest adding.
5851
5852         * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
5853         to No_Elist.
5854
5855         * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
5856         be with'ed in the presence of pragma Restriction
5857         (No_Exception_Propagation).
5858
5859         * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
5860
5861         * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
5862         parameter, then the handler is not a suitable target for a local raise,
5863         and this is a violation of restriction No_Exception_Propagation.
5864         (Analyze_Handled_Statements): Analyze choice parameters in exception
5865         handlers before analyzing statement sequence (needed for proper
5866         detection of local raise statements).
5867         (Analyze_Raise_Statement): Reraise statement is a violation of the
5868         No_Exception_Propagation restriction.
5869
5870         * s-rident.ads: Add new restriction No_Exception_Propagation
5871
5872         * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
5873         function, like Make_Exception_Handler but sets Local_Raise_Statements
5874         to No_List.
5875         (Add_Unique_Serial_Number): Deal with case where this is called during
5876         processing of configuration pragmas.
5877
5878 2007-04-06  Thomas Quinot  <quinot@adacore.com>
5879             Pat Rogers  <rogers@adacore.com>
5880             Pascal Obry  <obry@adacore.com>
5881
5882         * g-stsifd-sockets.adb: New file.
5883
5884         * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
5885         g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
5886         g-socthi-vms.adb: Move signalling
5887         fd management to a nested package, so that they can conveniently be
5888         moved to a subunit that is shared across Windows, VMS, and VxWorks
5889         (Ada implementation) or completed with imported bodies from socket.c
5890         (UNIX case).
5891         (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
5892         subprograms.
5893         (Check_Selector): Use Read_Signalling_Fd to read and discard data from
5894         the signalling file descriptor.
5895         (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
5896         signalling file descriptor.
5897         (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
5898         instead of creating a pair of sockets for signalling here.
5899
5900         * g-socthi.adb: Ditto.
5901         Set the runtime process to ignore SIGPIPEs on platforms that support
5902         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
5903
5904         * g-socthi-mingw.adb: Ditto.
5905         (WS_Version): Use Windows 2.2.
5906         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
5907
5908         * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
5909         Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
5910
5911         * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
5912         added GNAT byte swapping facility
5913         Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
5914
5915         * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
5916
5917         * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
5918         New subprograms.
5919         (__gnat_create_signalling_fds): New subprogram.
5920         Set the runtime process to ignore SIGPIPEs on platforms that support
5921         neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
5922
5923 2007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
5924             Vincent Celier  <celier@adacore.com>
5925
5926         * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
5927         New version of Ada.Calendar which supports the new upper bound of Ada
5928         time (2399-12-31 86_399.999999999).
5929         The following modifications have been made to the package:
5930          - New representation of time as count of nanoseconds since the start of
5931            Ada time (1901-1-1 0.0).
5932          - Target independent Split and Time_Of routines which service both
5933            Ada 95 and Ada 2005 code.
5934          - Target independent interface to the Ada 2005 children of Calendar.
5935          - Integrated leap seconds into Ada 95 and Ada 2005 mode.
5936          - Handling of non-leap centenial years.
5937          - Updated clock function.
5938          - Updated arithmetic and comparison operators.
5939
5940         * a-caldel.adb (To_Duration): Add call to target independent routine in
5941         Ada.Calendar to handle the conversion of time to duration.
5942
5943         * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
5944         (UTC Offset).
5945         If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
5946         set off to 0.
5947         (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
5948         targets do not have a natural time zone, GMT is used as a default.
5949         (__gnat_get_task_options): New.
5950
5951         * a-direct.adb (Modification_Time): Add with and use clauses for
5952         Ada.Calendar and Ada.
5953         Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
5954         since it is no longer needed.
5955         (Duration_To_Time): Removed.
5956         (OS_Time_To_Long_Integer): Removed.
5957         (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
5958         Formatting Time_Of routines which automatically handle time zones,
5959         buffer periods and leap seconds.
5960
5961         * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
5962         target independent routines in Ada.Calendar.
5963
5964         * a-calfor.ads, a-calfor.adb: 
5965         Code cleanup and addition of validity checks in various routines.
5966         (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
5967         Ada.Calendar.
5968
5969         * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
5970         independent routine in Ada.Calendar.
5971
5972 2007-04-06  Olivier Hainque  <hainque@adacore.com>
5973
5974         * adaint.c: 
5975         (convert_addresses): Adjust prototype and dummy definition to expect an
5976          extra file_name argument.
5977
5978         * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
5979         filling the now expected file_name argument with the appropriate
5980         argv[0] expansion.
5981         (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
5982         (tracebk): Array of void * instead of char *, corresponding to what
5983          convert_addresses expects.
5984         (exename): New static global, to hold the executable file name to be
5985         used in all convert_addresses invocations.
5986         (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
5987         change.
5988         (__gnat_gmem_a2l_initialize): Resolve exename.
5989         (__gnat_convert_addresses): Use exename as the convert_addresses
5990         file_name argument.
5991
5992         * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
5993         "convert_addresses", now expecting a filename argument. Import the
5994         necessary entities to compute the filename to use and pass it to
5995         convert_addresses.
5996
5997 2007-04-06  Matt Gingell  <gingell@adacore.com>
5998
5999         * system-aix.ads: Back out previous change.
6000         (Functions_Return_By_DSP): Removed
6001
6002 2007-04-06  Pascal Obry  <obry@adacore.com>
6003
6004         * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
6005         or the monotonic used by Ada.Real_Time) to compute the sleep duration
6006         on Windows.
6007
6008 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
6009
6010         * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
6011         function. Its value changes in different VxWorks versions, and it is
6012         now handled by the function __gnat_get_task_options.
6013
6014         * s-taprop-vxworks.adb (Create_Task): Call the function
6015         __gnat_get_task_options to get the required options for creating a task.
6016
6017 2007-04-06  Pascal Obry  <obry@adacore.com>
6018             Thomas Quinot  <quinot@adacore.com>
6019
6020         * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
6021         dealing with filename.
6022         (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
6023         filename from a standard string to a wide-string depending on the
6024         encoding value.
6025         (__gnat_freopen): Idem.
6026         (__gnat_current_time): New function (wrapper for time(3) standard C
6027         function).
6028
6029         * g-os_lib.ads (Current_Time): New function. Returns the current
6030         system time as an OS_Time value.
6031
6032         * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
6033         (Monotonic_Clock): Same.
6034
6035 2007-04-06  Quentin Ochem  <ochem@adacore.com>
6036
6037         * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
6038         not on a natural.
6039         (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
6040
6041 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
6042
6043         * a-retide.adb: Add elaboration code to ensure that the tasking run
6044         time is initialized when using delay operations even when no task is
6045         created.
6046
6047 2007-04-06  Javier Miranda  <miranda@adacore.com>
6048
6049         * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
6050         component Num_Prim_Ops.
6051         (Set_Num_Prim_Ops): Removed.
6052         Remove all the assertions because all the routines of this
6053         package are inline always.
6054         (Get_Offset_Index): Add support to primary dispatch tables.
6055         Move the documentation about the dispatch table to a-tags.ads
6056         (Set_External_Tag): Removed
6057         (Inherit_TSD): Removed.
6058         (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
6059         moved to a-tags.ads
6060         (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
6061         Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
6062         of the TSD field "Table" because this field has been renamed to
6063         "Ifaces_Table".
6064         (Inherit_CPP_DT): Removed.
6065         (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
6066         Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
6067         declarations have been moved to a-tags.ads
6068         (Check_Size): Removed.
6069         (Expanded_Name): Updated to get access to the new field of TSD
6070         containing the address of the expanded name.
6071         (Get_Access_Level/Set_Access_Level): Removed.
6072         (Get_Predefined_Prim_Op_Address): Removed.
6073         (Set_Predefined_Prim_Op_Address): Removed.
6074         (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
6075         (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
6076         (Set_Expanded_Name): Removed.
6077         (Inherit_DT): Removed.
6078         (Inherit_CPP_DT): Removed.
6079         (Set_RC_Offset): Removed.
6080         (Set_TSD): Removed.
6081         (Base_Address): New function that displaces "this" to point to the base
6082         of the object (that is, to point to the primary tag of the object).
6083
6084 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6085             Javier Miranda  <miranda@adacore.com>
6086
6087         * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
6088         anonymous access component, do not create a master_id if type already
6089         has one, as may happen if the type is a subcomponent of a packed array
6090         type.
6091         (Build_Init_Procedure, Component_Needs_Simple_Initialization,
6092         Initialize_Tag): Remove code associated with the old CPP pragmas.
6093         CPP_Virtual and CPP_Vtable are no longer supported.
6094         (Build_Offset_To_Top_Internal): Add support for concurrent record types
6095         (Build_Offset_To_Top_Functions): Add support for concurrent record types
6096         (Freeze_Record_Type): Remove call to
6097         Init_Predefined_Interface_Primitives.
6098         (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
6099         code required to initialize the tags of the secondary dispatch tables.
6100         This leaves the algoritm more clear.
6101         (Init_Secondary_Tags): Add support for concurrent record types
6102         (Make_Predefined_Primitive_Specs): Code cleanup.
6103         (Predefined_Primitive_Bodies): Code cleanup.
6104         (Build_Master_Renaming): New local subprogram.
6105         (Expand_N_Full_Type_Declaration): Build the master_id associated with
6106         anonymous access to task type components.
6107         (Expand_N_Subtype_Indication): The bounds of a range constraint in a
6108         subtype indication are resolved during analysis, and must not be done
6109         here.
6110         (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
6111
6112 2007-04-06  Geert Bosch  <bosch@adacore.com>
6113             Ed Schonberg  <schonberg@adacore.com>
6114             Javier Miranda  <miranda@adacore.com>
6115             Bob Duff  <duff@adacore.com>
6116
6117         * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
6118         for conversion of a Float_Type'Truncation to integer.
6119
6120         * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
6121         check if a node is an attribute that can be handled directly by the
6122         back end.
6123         (Expand_N_Attribute_Reference): Suppress expansion of floating-point
6124         attributes that can be handled directly by the back end.
6125         (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
6126         use new predicate Is_Access_Protected_Subprogram_Type.
6127         (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
6128         and Unchecked_Union if it is generated as part of the default  Output
6129         procedure for a type with default discriminants.
6130         (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
6131         if we are compiling under restriction No_Dispatching_Calls.
6132         (Constrained): Use Underlying_Type, in case the type is private without
6133         discriminants, but the full type has discriminants.
6134         (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
6135         call to Build_Get_Access_Level.
6136         (Expand_N_Attribute_Reference): The use of 'Address with class-wide
6137         interface objects requires a call to the run-time subprogram that
6138         returns the base address of the object.
6139         (Valid_Conversion): Improve error message on illegal attempt to store
6140         an anonymous access to subprogram value into a record component.
6141
6142         * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
6143         null".
6144         (Simplify_Type_Conversion): New procedure that performs simplification
6145         of Int_Type (Float_Type'Truncation (X)).
6146         (Resolve_Type_Conversion): Call above procedure after resolving operand
6147         and before performing checks. This replaces the existing ineffective
6148         code in Exp_Ch4.
6149         (Set_String_Literal_Subtype): When creating the internal static lower
6150         bound subtype for a string literal, use a newly created copy of the
6151         subtree representing the lower bound.
6152         (Resolve_Call): Exclude build-in-place function calls from transient
6153         scope treatment. Update comments to describe this exception.
6154         (Resolve_Equality_Op): In case of dispatching call check violation of
6155         restriction No_Dispatching_Calls.
6156         (Resolve_Call): If the call returns an array, the context imposes the
6157         component type of the array, and the function has one non-defaulted
6158         parameter, rewrite the call as the indexing of a call with a single
6159         parameter, to handle an Ada 2005 syntactic ambiguity for calls written
6160         in prefix form.
6161         (Resolve_Actuals): If an actual is an allocator for an access parameter,
6162         the master of the created object is the innermost enclosing statement.
6163         (Remove_Conversions): For a binary operator, check if type of second
6164         formal is numeric, to check if an abstract interpretation is present
6165         in the case of exponentiation as well.
6166
6167 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6168             Bob Duff  <duff@adacore.com>
6169
6170         * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
6171         copying a parameter list in a call, set properly the First_Named_Formal
6172         and Next_Named_Formal fields in the new list and in the enclosing call.
6173         (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
6174         names, to ease typing in the debugger. Improve comments.
6175         (Watch_Node): New variable, intended to be set in the debugger.
6176         (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
6177         called when the watched node is created.
6178         (New_Node_Debugging_Output): Combined version of local procedures
6179         New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
6180         with a parameter so that conditional breakpoints like "if Node = 12345"
6181         work.
6182         (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
6183         Add Elist1 function
6184
6185 2007-04-06  Thomas Quinot  <quinot@adacore.com>
6186             Ed Schonberg  <schonberg@adacore.com>
6187             Gary Dismukes  <dismukes@adacore.com>
6188
6189         * checks.ads, checks.adb (Selected_Range_Checks): No range check is
6190         required for a conversion between two access-to-unconstrained-array
6191         types.
6192         (Expr_Known_Valid): Validity checks do not apply to discriminants, but
6193         to discriminant constraints on discriminant objects. This rule must
6194         apply as well to discriminants of protected types in private components.
6195         (Null_Exclusion_Static_Checks): If No_Initialization is set on an
6196         object of a null-excluding access type then don't require the
6197         the object declaration to have an expression and don't emit a
6198         run-time check.
6199
6200 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
6201             Eric Botcazou <botcazou@adacore.com>
6202
6203         * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
6204         and made constant.
6205
6206         * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
6207         Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
6208         carry any.
6209
6210         * fe.h (Compiler_Abort): Add third parameter.
6211
6212         * misc.c (internal_error_function): Build third argument from current
6213         input location and pass it to Compiler_Abort.
6214
6215 2007-04-06  Gary Dismukes  <dismukes@adacore.com>
6216
6217         * cstand.adb (Create_Standard): When the target's storage unit size is
6218         greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
6219         Standard_String.
6220
6221 2007-04-06  Nicolas Roche  <roche@adacore.com>
6222
6223         * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
6224         absolute path can have the following form: device:/a/b. In this case
6225         '/' should be inserted between the path and the filename.
6226
6227 2007-04-06  Olivier Hainque  <hainque@adacore.com>
6228             Eric Botcazou <botcazou@adacore.com>
6229
6230         * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
6231         VAR_DECL to a CONST_DECL we make for a public constant when we know the
6232         corresponding definition has created the so made visible variable.
6233         Handle anonymous access to protected subprogram.
6234         (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
6235         object with an address clause volatile.  Re-enable original fix.
6236         <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
6237         too.
6238         (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
6239         associated with either the Equivalent or Root type, instead of the
6240         naked type node.
6241         (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
6242         subtree for every field of a global record type.
6243         (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
6244         discriminants, invoke again variable_size on its newly computed sizes.
6245
6246 2007-04-06  Robert Dewar  <dewar@adacore.com>
6247             Thomas Quinot  <quinot@adacore.com>
6248             Ed Schonberg  <schonberg@adacore.com>
6249             Bob Duff  <duff@adacore.com>
6250
6251         * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
6252         (Next_Component_Or_Discriminant): New function and procedure
6253         (First_Index, First_Literal, Master_Id,
6254         Set_First_Index, Set_First_Literal, Set_Master_Id):
6255         Add missing Ekind assertions.
6256         (Is_Access_Protected_Subprogram_Type): New predicate.
6257         (Has_RACW): New entity flag, set on package entities to indicate that
6258         the package contains the declaration of a remote accecss-to-classwide
6259         type.
6260         (E_Return_Statement): This node type has the Finalization_Chain_Entity
6261         attribute, in case the result type has controlled parts.
6262         (Requires_Overriding): Add this new flag, because "requires
6263         overriding" is subtly different from "is abstract" (see AI-228).
6264         (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
6265         Is_Abstract_Type. Make sure these are called only when appropriate.
6266         (Has_Pragma_Unreferenced_Objects): New flag
6267
6268         * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
6269         class-wide, the tag of the right-hand side must be an exact match, not
6270         an ancestor of that of the object on left-hand side.
6271         (Move_Activation_Chain): New procedure to create the call to
6272         System.Tasking.Stages.Move_Activation_Chain.
6273         (Expand_N_Extended_Return_Statement): Generate code to call
6274         System.Finalization_Implementation.Move_Final_List at the end of a
6275         return statement if the function's result type has controlled parts.
6276         Move asserts to Build_In_Place_Formal.
6277         (Move_Final_List): New function to create the call statement.
6278         (Expand_N_Assignment_Statement): In case of assignment to a class-wide
6279         tagged type, replace generation of call to the run-time subprogram
6280         CW_Membership by call to Build_CW_Membership.
6281         (Expand_N_Return_Statement): Replace generation of call to the run-time
6282         subprogram Get_Access_Level by call to Build_Get_Access_Level.
6283         (Expand_N_Simple_Function_Return): Replace generation of call to the
6284         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
6285
6286         * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
6287         Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
6288         access to protected operations.
6289         (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
6290         master and chain actual parameters to a build-in-place function call
6291         involving tasks.
6292         (BIP_Formal_Suffix): Add new enumeration literals to complete the case
6293         statement.
6294         (Make_Build_In_Place_Call_In_Allocator,
6295         Make_Build_In_Place_Call_In_Anonymous_Context,
6296         Make_Build_In_Place_Call_In_Assignment,
6297         Make_Build_In_Place_Call_In_Object_Declaration): Call
6298         Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
6299         (Expand_Inlined_Call): If the subprogram is a null procedure, or a
6300         stubbed procedure with a null body, replace the call with a null
6301         statement without using the full inlining machinery, for efficiency
6302         and to avoid invalid values in source file table entries.
6303
6304         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
6305         renamings of calls to build-in-place functions.
6306
6307         * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
6308         provides the functionality of RTE_Available to record components.
6309         (RTU_Entity): The function Entity has been renamed to RTU_Entity
6310         to avoid undesired overloading.
6311         (Entity): New subprogram that returns the entity for the referened
6312         unit. If this unit has not been loaded, it returns Empty.
6313         (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
6314         Remove no longer used entities.
6315         (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
6316         (RE_Type_Specific_Data): New entity.
6317         (RE_Move_Any_Value): New entity.
6318         (RE_TA_A, RE_Get_Any_Type): New entities.
6319         (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
6320          RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
6321          RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
6322         (Entity): New subprogram that returns the entity for the referened
6323         unit. If this unit has not been loaded, it returns Empty.
6324         (RTE): Addition of a new formal that extends the search to the scopes
6325         of the record types found in the chain of the package.
6326
6327         * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
6328         "abstract subprograms must be visible" message, whether or not the type
6329         is an interface; that is, remove the special case for interface types.
6330         (Analyze_Function_Return): Remove error message "return of task objects
6331         is not yet implemented" because this is now implemented.
6332         (Create_Extra_Formals): Add the extra master and activation chain
6333         formals in case the result type has tasks.
6334         Remove error message "return of limited controlled objects is not yet
6335         implemented".
6336         (Create_Extra_Formals): Add the extra caller's finalization list formal
6337         in case the result type has controlled parts.
6338         (Process_Formals): In case of access formal types there is no need
6339         to continue with the analysis of the formals if we already notified
6340         errors.
6341         (Check_Overriding_Indicator): Add code to check overriding of predefined
6342         operators.
6343         (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
6344         flags for formals that do not require them,.
6345         (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
6346         hidden entity is use visible or directly visible.
6347         (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
6348         Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
6349         Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
6350         New_Overloaded_Entity): Split Is_Abstract flag into
6351         Is_Abstract_Subprogram and Is_Abstract_Type.
6352
6353         * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
6354         a return statement's finalization list to the caller's list, used for
6355         build-in-place functions with result type with controlled parts.
6356         Remove no longer used entities.
6357
6358         * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
6359         longer needed, because the full type is now limited, and therefore a
6360         pass-by-reference type.
6361         (Foreign_Task_Level): New constant.
6362
6363         * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
6364         move tasks from the activation chain belonging to a return statement to
6365         the one passed in by the caller, and update the master to the one
6366         passed in by the caller.
6367         (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
6368         of unactivated tasks, so we don't kill the ones that are being returned
6369         by a build-in-place function.
6370         (Create_Task): Ignore AI-280 for foreign threads.
6371
6372 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6373             Robert Dewar  <dewar@adacore.com>
6374             Bob Duff  <duff@adacore.com>
6375             Gary Dismukes  <dismukes@adacore.com>
6376
6377         * errout.adb (Unwind_Internal_Type): Use predicate
6378         Is_Access__Protected_Subprogram_Type.
6379
6380         * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
6381         (Freeze_Entity, packed array case): Do not override explicitly set
6382         alignment and size clauses.
6383         (Freeze_Entity):  An entity declared in an outer scope can be frozen if
6384         the enclosing subprogram is a child unit body that acts as a spec.
6385         (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
6386         (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
6387         Remove all code for DSP option
6388
6389         * layout.adb (Layout_Record_Type): Use First/
6390         Next_Component_Or_Discriminant
6391         (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
6392         to handle properly the anonymous access case.
6393
6394         * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
6395         for all access attributes, because overload resolution should work the
6396         same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
6397         causes the error message for the ambiguous "X'Access = Y'Access" and
6398         "X'Unrestricted_Access = Y'Access" and so forth to match.
6399         (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
6400         now that anonymous access to protected operations have their own kind.
6401         (Resolve_Attribute): In case of dispatching call check the violation of
6402         restriction No_Dispatching_Calls.
6403         (Check_Array_Type): Check new -gnatyA array index style option
6404
6405         * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
6406         attempt to derive from a synchronized tagged type.
6407         (Analyze_Type_Declaration): If there is a incomplete tagged view of the
6408         type, inherit the class-wide type already created, because it may
6409         already have been used in a self-referential anonymous access component.
6410         (Mentions_T): Recognize self-referential anonymous access components
6411         that use (a subtype of) the class-wide type of the enclosing type.
6412         (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
6413         Derived_Type for Prev formal on call to
6414         Check_Anonymous_Access_Components rather than Empty.
6415         (Make_Incomplete_Type_Declaration): Add test for case where the type has
6416         a record extension in deciding whether to create a class-wide type,
6417         rather than just checking Tagged_Present.
6418         (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
6419         to stand-alone object declarations as well as component declarations.
6420         (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
6421         prevent accidental overwriting when enclosing package appears in
6422         a limited_with_clause.
6423         (Array_Type_Declaration): If the component type is an anonymous access,
6424         the associated_node for the itype is the type declaration itself.
6425         (Add_Interface_Tag_Components): Modified to support concurrent
6426         types with abstract interfaces.
6427         (Check_Abstract_Interfaces): New subprogram that verifies the ARM
6428         rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
6429         (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
6430         to complete the decoration of synchronized interface types. Add also
6431         a call to Check_Abstract_Interfaces to verify the ARM rules.
6432         (Derive_Interface_Subprograms): Modified to support concurrent types
6433         with abstract interfaces.
6434         (Analyze_Subtype_Indication): Resolve the range with the given subtype
6435         mark, rather than delaying the full resolution depending on context.
6436         (Analyze_Component_Declaration,Analyze_Interface_Declaration,
6437         Analyze_Object_Declaration,Analyze_Subtype_Declaration,
6438         Array_Type_Declaration,Build_Derived_Record_Type,
6439         Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
6440         Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
6441         Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
6442         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
6443         called only when appropriate.
6444         (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
6445         to private type.
6446         (Analyze_Subtype_Declaration): For an access subtype declaration, create
6447         an itype reference for the anonymous designated subtype, to prevent
6448         scope anonmalies in gigi.
6449         (Build_Itype_Reference): New utility, to simplify construction of such
6450         references.
6451
6452 2007-04-06  Vincent Celier  <celier@adacore.com>
6453
6454         * errutil.adb (Initialize): Initialize warnings table, if all warnings
6455         are suppressed, supply an initial dummy entry covering all possible
6456         source locations.
6457
6458         * make.adb (Scan_Make_Arg): Reject options that should start with "--"
6459         and start with only one, such as "-RTS=none".
6460         (Collect_Arguments): Do not check for sources outside of projects.
6461         Do not collect arguments if project is externally built.
6462         (Compile_Sources): Do nothing, not even check if the source is up to
6463         date, if its project is externally built.
6464         (Compile): When compiling a predefined source, add -gnatpg
6465         as the second switch, after -c.
6466         (Compile_Sources): Allow compilation of Annex J renames without -a
6467         (Is_In_Object_Directory): Check if the ALI file is in the object
6468         even if there is no project extension.
6469         (Create_Binder_Mapping_File): Only put a unit in the mapping file for
6470         gnatbind if the ALI file effectively exists.
6471         (Initialize): Add the directory where gnatmake is invoked in front of
6472         the path if it is invoked from a bin directory, even without directory
6473         information, so that the correct GNAT tools will be used when spawned
6474         without directory information.
6475
6476         * makeusg.adb: Change switch -S to -eS
6477         Add lines for new switches -we, -wn and -ws
6478         Add line for new switch -p
6479
6480         * prj-proc.adb (Process): Set Success to False when Warning_Mode is
6481         Treat_As_Error and there are warnings.
6482
6483         * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
6484         -gnatww Change gnatmake switch -S to -eS
6485         (Scan_Make_Switches): Code reorganisation. Process separately multi
6486         character switches and single character switches.
6487         (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
6488         False when switch is not recognized by gnatmake.
6489         (Scan_Make_Switches): Set Setup_Projects True when -p or
6490         --create-missing-dirs is specified.
6491
6492         * fname.adb (Is_Predefined_File_Name): Return True for annex J
6493         renamings Calendar, Machine_Code, Unchecked_Conversion and
6494         Unchecked_Deallocation only when Renamings_Included is True.
6495
6496         * par.adb: Allow library units Calendar, Machine_Code,
6497         Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
6498         when -gnatg is not specified.
6499         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
6500         there is no need to generate always a record_definition_node in case
6501         of synchronized interface types.
6502         (SIS_Entry_Active): Initialize global variable to False
6503         (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
6504         indicate cases where AI-447 says "not null" is legal.
6505
6506         * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
6507
6508         * makegpr.adb (Check_Compilation_Needed): Take into account dependency
6509         files with with several lines starting with the object fileb name.
6510         (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
6511         is specified.
6512         (Initialize): Add the directory where gprmake is invoked in front of the
6513         path, if it is invoked from a bin directory or with directory
6514         information, so that the correct GNAT tools will be used when invoked
6515         directly.
6516         (Check_Compilation_Needed): Process correctly backslashes on Windows.
6517
6518         * vms_data.ads: Update switches/qualifiers
6519
6520 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6521             Thomas Quinot  <quinot@adacore.com>
6522
6523         * exp_aggr.adb:
6524         If the array component is a discriminated record, the array aggregate
6525         is non-static even if the component is given by an aggregate with
6526         static components.
6527         (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
6528         (Convert_Aggr_In_Allocator): If the allocator is for an access
6529         discriminant and the type is controlled. do not place on a finalization
6530         list at this point. The proper list will be determined from the
6531         enclosing object.
6532         (Build_Record_Aggr_Code): If aggregate has box-initialized components,
6533         initialize record controller if needed, before the components, to ensure
6534         that they are properly finalized.
6535         (Build_Record_Aggr_Code): For the case of an array component that has a
6536         corresponding array aggregate in the record aggregate, perform sliding
6537         if required.
6538
6539 2007-04-06  Javier Miranda  <miranda@adacore.com>
6540             Gary Dismukes  <dismukes@adacore.com>
6541             Ed Schonberg  <schonberg@adacore.com>
6542
6543         * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
6544         run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
6545
6546         * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
6547         accessibility on class-wide allocators if the allocator occurs at the
6548         same scope level as the allocator's type. The check is guaranteed to
6549         succeed in that case, even when the expression originates from a
6550         parameter of the containing subprogram.
6551         (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
6552         under No_Dispatching_Calls restriction. During the semantic analysis
6553         we already notified such violation.
6554         (Tagged_Membership): Constant folding. There is no need to check
6555         the tag at run-time if the type of the right operand is non
6556         class-wide abstract.
6557         Replace call to Is_Ancestor by call to Is_Parent
6558         to support concurrent types with interface types.
6559         (Expand_N_Allocator): Add an assertion associated with the generation
6560         of the master_id.
6561         (Expand_N_Slice): Do not enable range check to nodes associated
6562         with the frontend expansion of the dispatch table.
6563         (Is_Local_Access_Discriminant): Subsidiary function to
6564         Expand_N_Allocator.
6565         (Tagged_Membership): Replace generation of call to the run-time
6566         subprogram CW_Membership by call to Build_CW_Membership.
6567         (Expand_Allocator_Expression): Replace generation of call to the
6568         run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
6569
6570         * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
6571         initialize most the TSD components by means of an aggregate.
6572         Modify the declaration of the object containing the TSD
6573         because we now expand code that has a higher level of abstraction.
6574         The TSD has a discriminant containing the Inheritance Depth Level,
6575         value that is used in the membership test but also to fix the size
6576         of the table of ancestors.
6577         (Expand_Interface_Conversion): Insert function body at the closest place
6578         to the conversion expression, to prevent access-before-elaboration
6579         errors in the backend.
6580         Code improved to reduce the size of the dispatch table if
6581         compiling under restriction No_Dispatching_Calls plus code cleanup.
6582         Code reorganization plus removal of calls to Set_Num_Prim_Ops
6583         (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
6584         (Expand_Dispatching_Call): Minor code reorganization plus addition of
6585         code to return immediately if compiling under No_Dispatching_Calls
6586         restriction.
6587         (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
6588         CPP_Virtual and CPP_Vtable are no longer supported.
6589         (Expand_Interface_Conversion): Add missing support for interface type
6590         derivations.
6591         (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
6592         Is_Parent to support concurrent types with interfaces.
6593         (Init_Predefined_Interface_Primitives): Removed.
6594         (Make_Secondary_DT): Modified to support concurrent record types.
6595         (Set_All_DT_Position): Modified to support concurrent record types.
6596         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
6597         with Get_External_Tag, Inherit_TSD, Set_External_Tag.
6598         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
6599         with CW_Membership.
6600         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
6601         with Get_Access_Level, Get_Predefined_Prim_Op_Address,
6602         Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
6603         Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
6604         Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
6605         (Expand_Dispatching_Call): Replace generation of call to the run-time
6606         subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
6607         calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
6608         Address.
6609         (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
6610         the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
6611         Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
6612         Build_Set_Prim_Op_Address.
6613         (Get_Remotely_Callable): Subprogram removed.
6614         (Init_Predefined_Interface_Primitives): Replace generation of call to
6615         the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
6616         Prims.
6617
6618         * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
6619         First (Parameter_Associations ()) with the call to First_Actual that
6620         returns an actual parameter expression for both named and positional
6621         associations.
6622
6623         * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
6624         check violation of restriction No_Dispatching_Calls.
6625         (Check_Controlling_Type): A formal of a tagged incomplete type is a
6626         controlling argument.
6627
6628         * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
6629         First/Next_Component_Or_Discriminant
6630         (Insert_Actions): Add entries for new N_Push and N_Pop nodes
6631         (Find_Implemented_Interface): Removed. All the calls to this subprogram
6632         specify Any_Limited_Interface, and this functionality is already
6633         provided by the function Has_Abstract_Interfaces.
6634         (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
6635         support concurrent types implementing interfaces.
6636         (Find_Implemented_Interface): Removed. All the calls to this subprogram
6637         specify kind Any_Limited_Interface, and this functionality is already
6638         provided by the function Has_Abstract_Interfaces.
6639         (Remove_Side_Effects): replace Controlled_Type by
6640         CW_Or_Controlled_Type whenever the issue is related to
6641         using or not the secondary stack.
6642
6643         * par-ch12.adb (P_Formal_Type_Definition): Update calls to
6644         P_Interface_Type_Definition to fulfill the new interface (the formal
6645         Is_Synchronized is no longer required).
6646
6647         * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
6648         Update dependencies.
6649
6650         * exp_atag.ads, exp_atag.adb: New file
6651
6652 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6653             Bob Duff  <duff@adacore.com>
6654             Cyrille Comar  <comar@adacore.com>
6655
6656         * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
6657         anonymous, use finalization list of enclosing dynamic scope.
6658         (Expand_N_Package_Declaration): For a library package declaration
6659         without a corresponding body, generate RACW subprogram bodies in the
6660         spec (just as we do for the task activation call).
6661         (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
6662         Is_Abstract_Type. Make sure these are called only when appropriate.
6663         Remove all code for DSP option
6664         (CW_Or_Controlled_Type): new subprogram.
6665
6666 2007-04-06  Eric Botcazou <botcazou@adacore.com>
6667             Ed Schonberg  <schonberg@adacore.com>
6668             Gary Dismukes  <dismukes@adacore.com>
6669
6670         * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
6671         parameter. If it is set to true, return a result capped according to
6672         the global upper bound for the index of an entry family.
6673         (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
6674         (Build_Find_Body_Index): Adjust for above change.
6675         (Entry_Index_Expression): Likewise.
6676         (Is_Potentially_Large_Family): New function extracted from...
6677         (Collect_Entry_Families): ...here. Call it to detect whether the family
6678         is potentially large.
6679         (Build_Entry_Count_Expression): If the family is potentially large, call
6680         Family_Size with 'Cap' set to true.
6681         (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
6682         a protected version of an operation declared in the private part of
6683         a protected object, because they may be invoked through a callback.
6684         (Set_Privals): If the type of a private component is an anonymous access
6685         type, do not create a new itype for each protected body.
6686         If the body of a protected operation creates
6687         controlled types (including allocators for class-widetypes), the
6688         body of the corresponding protected subprogram must include a
6689         finalization list.
6690         (Build_Activation_Chain_Entity): Build the chain entity for extended
6691         return statements.
6692         (Type_Conformant_Parameters): Use common predicate Conforming_Types
6693         to determine whether operation overrides an inherited primitive.
6694         (Build_Wrapper_Spec): Add code to examine the parents while looking
6695         for a possible overriding candidate.
6696         (Build_Simple_Entry_Call): Set No_Initialization on the object used to
6697         hold an actual parameter value since its initialization is separated
6698         from the the declaration. Prevents errors on null-excluding access
6699         formals.
6700
6701 2007-04-06  Thomas Quinot  <quinot@adacore.com>
6702
6703         * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
6704         Do an Unchecked_Conversion to handle the passage from the Underlying
6705         Type to the Base Type when calling Build_To_Any_Call and
6706         Build_From_Any_Call.
6707         (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
6708         E_Constant, depending upon Variable formal.
6709         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6710         PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
6711         parameter that requires an extra constrained parameter, declare
6712         temporary for actual as a variable, not a constant.
6713         (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
6714         the unit being compiled is the one that contains the stub type.
6715         Change primitive operation name for the RACW associated with a RAS
6716         from Call to _Call so it cannot clash with any legal identifier.
6717         (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
6718         Is_RAS.
6719         (Append_RACW_Bodies): New subprogram.
6720         (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
6721         Add_Receiving_Stubs_To_Declarations functions.
6722         When expanding a package body, this list correspond to the
6723         statements in the HSS at the end of the pacakge.
6724         When expanding a package spec, this list correspond to the
6725         spec declarations.
6726         (Add_Receiving_Stubs_To_Declarations): Append the function
6727         registering the receiving stubs at the end of the 'Stmts' list.
6728         (RCI_Package_Locator): Pass the new Version generic formal when
6729         instantiating a RCI_Locator package.
6730         (Build_From_Any_Function): To compute the High bound for an
6731         unconstrained array actual, we add the Low bound with the length.
6732         Thus we must convert the low bound and the length to an appropriate
6733         type before doing the sum.
6734         (Build_Subprogram_Receiving_Stubs, PolyORB):
6735          * Retrieve the extra formals parameters at the
6736            end of the parameter stream.
6737          * Use Move_Any_Value to write back out parameters
6738            after executing the request as it is more efficient
6739            than Copy_Any_Value.
6740          * Build the any containing Extra Formals with the
6741            appropriate typecode.
6742         (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
6743         empty Component_List.
6744         (Build_Actual_Object_Declaration): New subprogram. Build and insert into
6745         the tree the declaration for an object that serves as actual parameter
6746         in server-side stubs.
6747         (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6748         PolyORB_Support.Build_Subprogram_Receiving_Stubs):
6749         Use Build_Actual_Object_Declaration to prepare the actuals.
6750         (Add_Parameter_To_NVList): Set the parameter mode to In for
6751         Extra Constrained Parameters.
6752         (Build_General_Calling_Stubs): Set the parameter type to boolean for
6753         Extra Constrained parameters.
6754         (Build_To_Any_Function, Build_From_Any_Function,
6755         Built_TypeCode_Function): When Typ is implicit, call the correct
6756         function with the first not implicit parent type.
6757         (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
6758         (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
6759         typecode from the Etype. Therefore we retrieve the correct typecode
6760         with a call to Get_Any_Type.
6761         (Copy_Specification): Do controlling formal type substitution based on
6762         Is_Controlling_Formal flag, instead of caller-provided object type.
6763         (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
6764         a RACW primitive operation, we might get a subprogram declaration for an
6765         ancestor of the RACW designated type (not for the designated type
6766         itself), in the case where this operation is inherited. In this case we
6767         have no easy means of determining the original tagged type for which
6768         the primitive was declared, so instead we now rely on
6769         Copy_Specification to use the Is_Controlling_Formal flag to determine
6770         which formals require type substitution.
6771
6772 2007-04-06  Robert Dewar  <dewar@adacore.com>
6773             Ed Schonberg  <schonberg@adacore.com>
6774
6775         * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
6776         GNAT.Current_Exception are not allowed if pragma Restrictions
6777         (No_Exception_Propagation) is set and in any case make the associated
6778         handler unsuitable as a target for a local raise statement.
6779         (Expand_Dispatching_Constructor_Call): Replace generation of call to the
6780         run-time subprogram CW_Membership by call to Build_CW_Membership.
6781         (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
6782         by a function call, a temporary must be created before expanding the
6783         Constructor_Call itself, to prevent out-of-order elaboration in the
6784         back-end when stack checking is enabled..
6785
6786 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6787
6788         * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
6789         result are the bounds of the left operand, not the right.
6790
6791 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6792
6793         * exp_strm.adb
6794         (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
6795          discriminant defaults.
6796         (Build_Record_Or_Elementary_Output_Procedure): Ditto.
6797         (Make_Component_List_Attributes): Ditto.
6798
6799 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6800             Bob Duff  <duff@adacore.com>
6801
6802         * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
6803         an association with a box as providing a value even though the
6804         initialization procedure for the type is not available.
6805         (Resolve_Record_Aggregate): Check that a choice of an association with a
6806         box corresponds to a component of the type.
6807         (Resolve_Record_Aggregate): Split Is_Abstract flag into
6808         Is_Abstract_Subprogram and Is_Abstract_Type.
6809
6810         * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
6811         assert.
6812
6813         * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
6814         Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
6815         called only when appropriate.
6816
6817 2007-04-06  Olivier Hainque  <hainque@adacore.com>
6818
6819         * g-alleve.ads (Low Level Vector type definitions): Map each to the
6820         associated vector view instead of all to the unsigned char view.
6821
6822         * g-altcon.adb (Generic_Conversions): New internal generic package,
6823         offering facilities for all the Vector/View conversion routines
6824         implemented by this unit.
6825         (To_View/To_Vector - all versions): Reimplemented in a systematic
6826         manner, using the internal Generic_Conversions facilities.
6827
6828 2007-04-06  Pascal Obry  <obry@adacore.com>
6829
6830         * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
6831         string.
6832         (Create): Free the source string before storing the new one.
6833
6834 2007-04-06  Vincent Celier  <celier@adacore.com>
6835
6836         * g-debpoo.adb (Validity): New package with a complete new
6837         implementation of subprograms Is_Valid and Set_Valid.
6838         (Is_Valid): Move to local package Validity
6839         (Set_Valid): Move to local package Validity
6840
6841 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
6842
6843         * g-expect.adb (Get_Command_Output): When expanding the output buffer
6844         we must ensure that there is enough place for the new data we are going
6845         to copy in.
6846
6847 2007-04-06  Thomas Quinot  <quinot@adacore.com>
6848
6849         * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
6850         computation.
6851
6852 2007-04-06  Jose Ruiz  <ruiz@adacore.com>
6853             Vincent Celier  <celier@adacore.com>
6854
6855         * gnatcmd.adb (B_Start): Add prefix of binder generated file.
6856         (Stack_String): Add this String that contains the name of the Stack
6857         package in the project file.
6858         (Packages_To_Check_By_Stack): Add this list that contains the packages
6859         to be checked by gnatstack, which are the naming and the stack packages.
6860         (Check_Files): If no .ci files were specified for gnatstack we add all
6861         the .ci files belonging to the projects, including binder generated
6862         files.
6863         (Non_VMS_Usage): Document that gnatstack accept project file switches.
6864         (GNATCmd): Update the B_Start variable if we are in a VMS environment.
6865         Add gnatstack to the list of commands that use project file related
6866         switches, and get the single attribute Switches from the stack package
6867         in a project file when calling gnatstack. Parse the -U flag for
6868         processing files belonging to all projects in the project tree.
6869         Remove all processing for command Setup
6870
6871         * prj-attr.adb: Add new package Stack with single attribute Switches
6872
6873         * vms_conv.ads (Command_Type): Add command Stack.
6874         Move to body declarations that are only used in the body: types Item_Id,
6875         Translation_Type, Item_Ptr, Item and its subtypes.
6876
6877         * vms_conv.adb: (Initialize): Add data for new command Stack.
6878         Add declarations moved from the spec: types Item_Id, Translation_Type,
6879         Item_Ptr, Item and its subtypes.
6880         (Cargs_Buffer): New table
6881         (Cargs): New Boolean global variable
6882         (Process_Buffer): New procedure to create arguments
6883         (Place): Put character in table Buffer or Cargs_Buffer depending on the
6884          value of Cargs.
6885         (Process_Argument): Set Cargs when processing qualifiers for GNAT
6886         COMPILE
6887         (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
6888         empty, for table Cargs_Buffer.
6889         (Initialize): Remove component Setup in Command_List
6890
6891 2007-04-06  Vincent Celier  <celier@adacore.com>
6892
6893         * gprep.adb (Process_Files.Process_One_File): Use full file name when
6894         issuing pragma Source_Reference.
6895
6896 2007-04-06  Emmanuel Briot  <briot@adacore.com>
6897
6898         * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
6899         [[:xdigit:]] character class.
6900         Also raise an exception when an invalid character class is used.
6901
6902 2007-04-06  Pascal Obry  <obry@adacore.com>
6903
6904         * i-cstrea.ads: (fopen): Add encoding parameter.
6905         (freopen): Idem.
6906         Change reference from a-sysdep.c to sysdep.c in comment.
6907         Update copyright notice.
6908         This set of patch add support for the encoding form parameter.
6909
6910         * mingw32.h (S2WSU): New macro to convert from a string to a
6911         wide-string using the UTF-8 encoding. The S2WS macro supports now only
6912         standard 8bits encoding.
6913         (WS2SU): As above but converting from wide-sring to string.
6914         This is needed as it is necessary to have access to both versions in the
6915         runtime for the form parameter encoding support.
6916         This set of patch add support for the encoding form parameter.
6917         (S2WS): Improve implementation to handle cases where the filename is not
6918         UTF-8 encoded. In this case we default to using the current code page
6919         for the conversion.
6920
6921         * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
6922         type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
6923         the constants defined in adaint.h.
6924         (fopen): Add encoding parameter.
6925         (freopen): Idem.
6926
6927         * s-ficobl.ads (AFCB): Add Encoding field to record the filename
6928         encoding. This is needed for the Reset routine (freopen low level-call).
6929
6930         * s-fileio.adb (Open): Decode encoding form parameter and set the
6931         corresponding encoding value into AFCB structure.
6932         (Reset): Pass the encoding value to freopen.
6933         (Close): Move the call to Lock_Task to the beginning of the procedure.
6934
6935 2007-04-06  Geert Bosch  <bosch@adacore.com>
6936             Robert Dewar  <dewar@adacore.com>
6937
6938         * i-fortra.ads: Add Double_Complex type.
6939
6940         * impunit.adb: (Is_Known_Unit): New function
6941         Add Gnat.Byte_Swapping
6942         Add GNAT.SHA1
6943         Add new Ada 2005 units
6944         Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
6945         Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
6946         Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
6947         Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
6948
6949         * impunit.ads (Is_Known_Unit): New function
6950
6951         * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
6952         a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
6953         a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
6954         g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
6955         s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
6956         s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
6957         New files.
6958
6959         * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
6960
6961         * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
6962
6963 2007-04-06  Eric Botcazou <botcazou@adacore.com>
6964             Arnaud Charlet  <charlet@adacore.com>
6965
6966         * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
6967         __gnat_adjust_context_for_raise.
6968         (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
6969         implementation of floating point operations as native x86 targets.
6970         So the FPU should be initialized in the same way using finit. Fix
6971         floating point operations accuracy issues.
6972         (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
6973         member in struct sigaction, so as to avoid warning for incompatible
6974         pointer types.
6975
6976 2007-04-06 Serguei Rybin <rybin@adacore.com>
6977
6978         * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
6979         switches from previously loaded tree
6980
6981 2007-04-06  Thomas Quinot  <quinot@adacore.com>
6982
6983         * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
6984         cases where a given dependency has a body or not.
6985         (Write_With_File_Names): New subprogram, common code for the two cases
6986         above.
6987
6988 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
6989             Javier Miranda  <miranda@adacore.com>
6990
6991         * lib-xref.ads, lib-xref.adb: 
6992         Modify the loop that collects type references, to include interface
6993         types that the type implements. List each of these interfaces when
6994         building the entry for the type.
6995         (Generate_Definition): Initialize component Def and Typ of new entry
6996         in table Xrefs, to avoid to have these components unitialized.
6997         (Output_References): Split Is_Abstract flag into
6998         Is_Abstract_Subprogram and Is_Abstract_Type.
6999         (Generate_Reference): Add barrier to do not generate the warning
7000         associated with Ada 2005 entities with entities generated by the
7001         expander.
7002
7003 2007-04-06  Robert Dewar  <dewar@adacore.com>
7004             Arnaud Charlet  <charlet@adacore.com>
7005             Vincent Celier  <celier@adacore.com>
7006
7007         * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
7008         Update 'Exception Handling Control' chapter which was outdated.
7009         Minor fix to documentation of -gnatwq
7010         Remove section "Adapting the Run Time to a New C++ Compiler" because
7011         it is now obsolete.
7012         Add passage on need of -nostart-files in some non-ada-main cases.
7013         Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
7014         Update documentation about Interfacing with C++
7015         Add documentation for new gnatmake switch -p
7016         Add missing protocol part in URLs.
7017         Document -gnatyA
7018         Document pragma Compile_Time_Error
7019         Add documentation for Object_Size indicating that stand alone
7020         objects can have a larger size in some cases.
7021         Add node for GNAT.Byte_Swapping, GNAT.SHA1
7022         Update reference to the Ravenscar profile.
7023         Document pragma Unreferenced_Objects
7024
7025         * gnat-style.texi: Fix typo
7026
7027 2007-04-06  Vincent Celier  <celier@adacore.com>
7028
7029         * mlib.adb (Building_Library): Only output "building a library..." in
7030         verbose mode
7031
7032         * mlib-prj.adb (Build_Library): Only output lists of object and ALI
7033         files in verbose mode.
7034
7035         * mlib-utl.adb (Ar): Only output the first object files when not in
7036         verbose mode.
7037         (Gcc): Do not display all the object files if not in verbose mode, only
7038         the first one.
7039
7040 2007-04-06  Robert Dewar  <dewar@adacore.com>
7041
7042         * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
7043         it no longer destroys the contents of Name_Buffer or Name_Len and
7044         non-standard and invalid names are handled better.
7045         (Get_Decoded_Name_String): Improve performance by using
7046         Name_Has_No_Encodings flag in the name table.
7047         (Is_Valid_Name): New function to determine whether a Name_Id is valid.
7048         Used for debugging printouts.
7049
7050 2007-04-06  Robert Dewar  <dewar@adacore.com>
7051             Javier Miranda  <miranda@adacore.com>
7052             Bob Duff  <duff@adacore.com>
7053
7054         * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
7055         (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
7056         there is no need to generate always a record_definition_node in case
7057         of synchronized interface types.
7058         (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
7059         (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
7060         illegal in Ada 95, in cases where it is legal. Change the warnings to
7061         errors in other cases. Don't give the error unless the "not null"
7062         parses properly. Correct the source position at which the error occurs.
7063         (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
7064         P_Null_Exclusion, to suppress "not null" warnings.
7065         (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
7066         associated goto statements.
7067
7068         * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
7069         of END RECORD
7070
7071         * scans.ads (Type_Token_Location): New flag
7072
7073         * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
7074         (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
7075         P_Null_Exclusion, to suppress "not null" warnings.
7076
7077 2007-04-06  Robert Dewar  <dewar@adacore.com>
7078             Javier Miranda  <miranda@adacore.com>
7079             Bob Duff  <duff@adacore.com>
7080             Vincent Celier  <celier@adacore.com>
7081
7082         * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
7083         (Extensions_Allowed): No longer sets Ada_Version
7084         Entry for pragma Unreferenced_Objects
7085
7086         * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
7087         system.tasking if pragma priority used in a procedure
7088         (Analyze_Pragma, case Warning): Handle dot warning switches
7089         (Process_Compile_Time_Warning_Or_Error): New procedure
7090         (Analyze_Pragma): Add processing for Compile_Time_Error
7091         Add support for extra arguments External_Name and Link_Name.
7092         Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
7093         (Process_Import_Or_Interface): Add support for the use of pragma Import
7094         with tagged types.
7095         (Extensions_Allowed): No longer affects Ada_Version
7096         (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
7097         Is_Abstract_Type. Make sure these are called only when appropriate.
7098         Add processing for pragma Unreferenced_Objects
7099
7100         * snames.h, snames.ads, snames.adb: Add entry for pragma
7101         Compile_Time_Error
7102         Add new standard name Minimum_Binder_Options for new gprmake
7103         Add new standard names for gprmake: Archive_Suffix,
7104         Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
7105         Library_Support, Library_Version_Options,
7106         Shared_Library_Minimum_Options,
7107         Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
7108         Change Name_Call to Name_uCall so that it cannot clash with a legal
7109         subprogram name.
7110         Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
7111         Append C_Plus_Plus to convention identifiers as synonym for CPP
7112         Add new standard names Stack and Builder_Switches
7113         Add new standard names: Compiler_Minimum_Options, Global_Config_File,
7114         Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
7115         Run_Path_Option, Toolchain_Version.
7116         Entry for pragma Unreferenced_Objects
7117
7118         * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
7119         switches, without repetition of "eD". Make sure that last character of
7120         -gnatep= switch is not taken as -gnat switch character.
7121         Complete rewrite of circuit for handling saving compilation options
7122         Occasioned by need to support dot switchs for -gnatw, but cleans up
7123         things in general.
7124         -gnatX does not affect Ada_Version
7125         Include -gnatyA in -gnatg style switches
7126
7127         * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
7128         warnings on return objects.
7129         (Warn_On_Useless_Assignment): Exclude warnings on return objects
7130         (Set_Dot_Warning_Switch): New procedure
7131         (Check_References): Add missing case of test for
7132         Has_Pragma_Unreferenced_Objects
7133         (Output_Unreferenced_Messages): Implement effect of new pragma
7134         Unreferenced_Objects, remove special casing of limited controlled
7135         variables.
7136
7137 2007-04-06  Vincent Celier  <celier@adacore.com>
7138
7139         * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
7140         the default project path, initially done during elaboration of the
7141         package.
7142         If the prefix returned by Sdefault is null, get the prefix from a call
7143         to Executable_Prefix_Path.
7144         (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
7145         null.
7146
7147         * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
7148         canonical directory name to open the directory from which files are
7149         retrieved.
7150         (Record_Other_Sources): Idem.
7151         (Locate_Directory): Add the possibility to create automatically missing
7152         directories when Setup_Projects is True.
7153         Call Locate_Directory so that the directory will be created when
7154         Setup_Projects is True, for object dir, library dir, library ALI dir,
7155         library source copy dir and exec dir.
7156
7157         * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
7158         versions of GNAT.
7159
7160 2007-04-06  Robert Dewar  <dewar@adacore.com>
7161
7162         * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
7163         Use First/Next_Component_Or_Discriminant
7164         (Analyze_Record_Representation_Clause):
7165         Use First/Next_Component_Or_Discriminant
7166         (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
7167         (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
7168         definition if type is unconstrained.
7169         (Adjust_Record_For_Reverse_Bit_Order): New procedure
7170         (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
7171         Is_Abstract_Subprogram and Is_Abstract_Type.
7172         (Adjust_Record_For_Reverse_Bit_Order): New procedure
7173
7174         * repinfo.adb (List_Record_Info): Use First/
7175         Next_Component_Or_Discriminant.
7176
7177         * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
7178         New procedure.
7179
7180         * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
7181         Include -gnatyA in default switches
7182
7183         * opt.ads: (Warn_On_Non_Local_Exception): New flag
7184         (Warn_On_Reverse_Bit_Order): New flag
7185         (Extensions_Allowed): Update the documentation.
7186         (Warn_On_Questionable_Missing_Parens): Now on by default
7187
7188         * usage.adb: Add documentation of -gnatw.x/X switches
7189         Document new -gnatyA style switch
7190         -gnatq warnings are on by default
7191
7192 2007-04-06  Ed Falis  <falis@adacore.com>
7193
7194         * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
7195         full word is no longer compared twice.
7196
7197 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7198
7199         * sem_ch10.adb (Install_Limited_Context_Clauses.
7200         Expand_Limited_With_Clause): Use a new copy of selector name in the
7201         call to Make_With_Clause. This fixes the tree structure for ASIS
7202         purposes. Nothing is changed in the compiler behaviour.
7203         (Process_Body_Clauses): Handle properly use clauses whose prefix is
7204         a package renaming.
7205         (Install_Limited_With_Clauses): Do not install non-limited view when it
7206         is still incomplete.
7207
7208 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7209             Gary Dismukes  <dismukes@adacore.com>
7210
7211         * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
7212         when capturing size information, instead of base type, which for a
7213         formal array type will be the unconstrained type.
7214         (Analyze_Formal_Object_Declaration): Add check for illegal default
7215         expressions for a formal in object of a limited type.
7216         (Instantiate_Object): Ditto.
7217         (Check_Formal_Package_Instance): Skip entities that are formal objects,
7218         because they were defaulted in the formal package and no check applies
7219         to them.
7220         (Check_Formal_Package_Instance): Extend conformance check to other
7221         discrete types beyond Integer.
7222         (Process_Default): Copy directly the unmatched formal. A generic copy
7223         has already been performed in Analyze_Formal_Package.
7224         (Analyze_Associations): If a formal subprogram has no match, check for
7225         partial parametrization before looking for a default, to prevent
7226         spurious errors.
7227         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
7228         not set the instantiation environment before analyzing the actuals.
7229         Fixes regression on 8515-003 with implementation of AI-133.
7230         Set_Instance_Env checks whether the generic unit is a predefined
7231         unit, in which case the instance must be analyzed with the latest Ada
7232         mode. This setting must take place after analysis of the actuals,
7233         because the actuals must be analyzed and frozen in the Ada mode extant
7234         outside of the current instantiation.
7235         (Save_Env, Restore_Env): Preserve and restore the configuration
7236         parameters so that predefined units can be compiled in the proper Ada
7237         mode.
7238         (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
7239         Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
7240         and Is_Abstract_Type.
7241         (Analyze_Formal_Package): For better error recovery, Add exception
7242         handler to catch Instantion_Error, which can be raised in
7243         Analyze_Associations
7244
7245 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7246             Bob Duff  <duff@adacore.com>
7247             Gary Dismukes  <dismukes@adacore.com>
7248
7249         * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
7250         prefix type is a discriminated subtype of the type of the formal.
7251         (Analyze_Allocator): Collect all coextensions regardless of the context.
7252         Whether they can be allocated statically is determined in exp_ch4.
7253         (Analyze_Selected_Component): If the prefix is a limited view and the
7254         non-limited view is available, use the non-limited one.
7255         (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
7256         therefore illegal), suggest a qualified expression rather than a type
7257         conversion, because a type conversion would be illegal in this context.
7258         (Anayze_Allocator): Trace recursively all nested allocators so that all
7259         coextensions are on the corresponding list for the root. Do no mark
7260         coextensions if the root allocator is within a declaration for a stack-
7261         allocated object, because the access discriminants will be allocated on
7262         the stack as well.
7263         (Analyze_Call): Remove restriction on calls to limited functions for the
7264         cases of generic actuals for formal objects, defaults for formal objects
7265         and defaults for record components.
7266         (Analyze_Allocator): Before analysis, chain coextensions on the proper
7267         element list. Their expansion is delayed until the enclosing allocator
7268         is processed and its finalization list constructed.
7269         (Try_Primitive_Operation): If the prefix is a concurrent type, looks
7270         for an operation with the given name among the primitive operations of
7271         the corresponding record type.
7272         (Analyze_Selected_Component): If the prefix is a task type that
7273         implements an interface, and there is no entry with the given name,
7274         check whether there is another primitive operation (e.g. a function)
7275         with that name.
7276         (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
7277         properly the indexing of a function call written in prefix form, where
7278         the function returns an array type, and all parameters of the function
7279         except the first have defaults.
7280         (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
7281         the original operands, rather than relocating them, for efficiency and
7282         to work properly when an operand is overloaded.
7283         (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
7284         Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
7285         (Analyze_Selected_Component): If the prefix is a private extension, only
7286         scan the visible components, not those of the full view.
7287         (Try_Primitive_Operation): If the operation is a procedure, collect all
7288         possible interpretations, as for a function, because in the presence of
7289         classwide parameters several primitive operations of the type can match
7290         the given arguments.
7291
7292 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7293             Robert Dewar  <dewar@adacore.com>
7294
7295         * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
7296         tag-indeterminate call to an abstract function, when the left-hand side
7297         is not classwide.
7298         (Analyze_Loop_Statement): Improve detection of infinite loops
7299
7300 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7301             Thomas Quinot  <quinot@adacore.com>
7302
7303         * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
7304         out of Analyze_Package_Declaration, because processing must be applied
7305         to package bodies as well, for deferred constants completed by pragmas.
7306         (Analyze_Package_Declaration): When the package declaration being
7307         analyzed does not require an explicit body, call Check_Completion.
7308         (May_Need_Implicit_Body): An implicit body is required when a package
7309         spec contains the declaration of a remote access-to-classwide type.
7310         (Analyze_Package_Body): If the package contains RACWs, append the
7311         pending subprogram bodies generated by exp_dist at the end of the body.
7312         (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
7313         Is_Abstract_Subprogram and Is_Abstract_Type.
7314         (Preserve_Full_Attributes): The full entity list is not an attribute
7315         that must be preserved from full to partial view.
7316
7317         * sem_dist.adb (Add_RAS_Dereference_TSS):
7318         Change primitive name to _Call so it cannot clash with any legal
7319         identifier, and be special-cased in Check_Completion.
7320         Mark the full view of the designated type for the RACW associated with
7321         a RAS as Comes_From_Source to get proper view switching when installing
7322         private declarations.
7323         Provite a placeholder nested package body along with the nested spec
7324         to have a place for Append_RACW_Bodies to generate the calling stubs
7325         and stream attributes.
7326
7327 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7328             Robert Dewar  <dewar@adacore.com>
7329
7330         * sem_ch8.adb (Has_Components): If the argument is an incomplete type
7331         that is a limited view, check the non-limited view if available.
7332         (Undefined): Refine error message for missing with of Text_IO
7333         (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
7334         to distinguish real missing with cases.
7335         Fix format of all missing with messages
7336         (Analyze_Subprogram_Renaming): Emit proper error message on illegal
7337         renaming as body when renamed entity is abstract.
7338
7339 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7340             Javier Miranda  <miranda@adacore.com>
7341
7342         * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
7343         predicate recursive, to handle complex expressions on literals whose
7344         spurious ambiguity comes from the abstract interpretation of some
7345         subexpression.
7346         (Interface_Present_In_Ancestor): Add support to concurrent record
7347         types.
7348         (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
7349         Is_Abstract_Subprogram and Is_Abstract_Type.
7350
7351 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7352             Javier Miranda  <miranda@adacore.com>
7353
7354         * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
7355         dereference of a local object R created as a reference to another
7356         object O, use the access level of O.
7357         (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
7358         rather than local Same_Formal_Type, to check whether protected operation
7359         overrides an inherited one.
7360         (Same_Formal_Type): New predicate, used when matching signatures of
7361         overriding synchronized operations, to handle the case when a formal
7362         has a type that is a generic actual.
7363         (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
7364         predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
7365         (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
7366         syntactic ambiguities involving indexing of function calls that return
7367         arrays.
7368         (Abstract_Interface_List): New subprogram that returns the list of
7369         abstract interfaces associated with a concurrent type or a
7370         concurrent record type.
7371         (Interface_Present_In_Parent): New subprogram used to check if a
7372         given type or some of its parents implement a given interface.
7373         (Collect_Abstract_Interfaces): Add support for concurrent types
7374         with interface types.
7375         (Has_Abstract_Interfaces): Add support for concurrent types with
7376         interface types.
7377         (Is_Parent): New subprogram that determines whether E1 is a parent
7378         of E2. For a concurrent type its parent is the first element of its
7379         list of interface types; for other types this function provides the
7380         same result than Is_Ancestor.
7381         (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
7382         (Collect_Synchronized_Interfaces): Removed because the subprogram
7383         Collect_Abstract_Interfaces provides this functionality.
7384         (Collect_Abstract_Interfaces): Minor update to give support to
7385         concurrent types and thus avoid undesired code duplication.
7386         (Get_Subprogram_Entity): Handle entry calls.
7387         (May_Be_Lvalue): Include actuals that appear as in-out parameters in
7388         entry calls.
7389         (Enter_Name): Do not give -gnatwh hiding warning for record component
7390         entities, they never result in hiding.
7391
7392 2007-04-06  Ed Schonberg  <schonberg@adacore.com>
7393             Robert Dewar  <dewar@adacore.com>
7394
7395         * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
7396         to chain nested components that are allocators for access discriminants
7397         of the enclosing object.
7398         Add N_Push and N_Pop nodes
7399         New field Exception_Label added
7400         (Local_Raise_Statements): New field in N_Exception_Handler_Node
7401         (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
7402         (Is_Coextension): New flag for allocators, to mark allocators that
7403         correspond to access discriminants of dynamically allocated objects.
7404         (N_Block_Statement): Document the fact that the corresponding entity
7405         can be an E_Return_Statement.
7406         (Is_Coextension): New flag for allocators.
7407         Remove all code for DSP option
7408
7409         * sprint.ads, sprint.adb: Display basic information for class_wide
7410         subtypes. Add handling of N_Push and N_Pop nodes
7411
7412 2007-04-06  Arnaud Charlet  <charlet@adacore.com>
7413
7414         * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
7415         before propagating exception.
7416
7417 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7418
7419         * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
7420         an address always within the call instruction from a return address.
7421
7422 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7423             Eric Botcazou <botcazou@adacore.com>
7424
7425         * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
7426         expression with a COMPOUND_EXPR including the call instead of emitting
7427         the call directly here.
7428         (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
7429         high bound is constant and the slice is empty.  Tidy.
7430         (tree_transform, case N_Op_Not): Handle properly the case where the
7431         operation applies to a private type whose full view is a modular type.
7432         (Case_Statement_To_gnu): If an alternative is an E_Constant with an
7433         Address_Clause, use the associated Expression as the GNAT tree
7434         representing the choice value to ensure the corresponding GCC tree is
7435         of the proper kind.
7436         (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
7437         instead of just the operands, as the base GCC stabilize_reference does.
7438         <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
7439         requested; otherwise fail.
7440         (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
7441
7442 2007-04-06  Thomas Quinot  <quinot@adacore.com>
7443
7444         * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
7445         implementation of UI_Div.
7446         (UI_Div): Reimplement as a call to UI_Div_Rem.
7447         (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
7448         remainder, avoiding the cost of a multiplication and a subtraction.
7449         (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
7450         provides both quotient and remainder in a single computation.
7451         (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
7452         functions for uint.
7453         (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
7454         is undefined if the given n is not inversible.
7455
7456 2007-04-06  Olivier Hainque  <hainque@adacore.com>
7457
7458         * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
7459         BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
7460         opcodes.
7461
7462 2007-04-06  Eric Botcazou <botcazou@adacore.com>
7463             Olivier Hainque  <hainque@adacore.com>
7464
7465         * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
7466         when updating the contents of the old pointer to an unconstrained array.
7467         (end_subprog_body): Set error_gnat_node to Empty.
7468         (write_record_type_debug_info): Do not be unduly sparing with our bytes.
7469         (unchecked_convert): For subtype to base type conversions, require that
7470         the source be a subtype if it is an integer type.
7471         (builtin_decls): New global, vector of available builtin functions.
7472         (gnat_pushdecl): Add global builtin function declaration nodes to the
7473         builtin_decls list.
7474         (gnat_install_builtins): Adjust comments.
7475         (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
7476         calling gnat_pushdecl, so that it knows when it handed a builtin
7477         function declaration node.
7478         (builtin_decl_for): Search the builtin_decls list.
7479
7480 2007-04-06  Eric Botcazou <botcazou@adacore.com>
7481
7482         * s-stchop-vxworks.adb: 
7483         (Stack_Check): Raise Storage_Error if the argument has wrapped around.
7484
7485 2007-04-06  Robert Dewar  <dewar@adacore.com>
7486             Arnaud Charlet  <charlet@adacore.com>
7487
7488         * a-diroro.ads: Inserted the pragma Unimplemented_Unit
7489
7490         * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
7491         of files
7492         Add mention of -Sev (set initialize_scalars option from environment
7493         variable at run time) in gnatbind usage message.
7494
7495         * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
7496
7497         * fname-uf.ads: Minor comment fix
7498
7499         * osint.ads: Change pragma Elaborate to Elaborate_All
7500
7501         * par-load.adb: Add documentation.
7502
7503         * sem_cat.ads, sem_cat.adb: Minor code reorganization
7504
7505         * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
7506
7507         * s-secsta.ads: Extra comments
7508
7509         * s-soflin.ads: Minor comment fixes
7510
7511         * s-stratt.ads (Block_Stream_Ops_OK): Removed.
7512
7513         * s-wchcon.ads: Minor comment addition
7514
7515         * treepr.adb: Minor change in message
7516         (Print_Name,Print_Node): Make these debug printouts more robust: print
7517         "no such..." instead of crashing on bad input.
7518
7519 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
7520
7521         * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
7522         instead of gnat_signed_or_unsigned_type.
7523         * utils.c (gnat_signed_or_unsigned_type): Remove.
7524         * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
7525         * gigi.h (gnat_signed_or_unsigned_type): Remove
7526
7527 2007-03-09  Roger Sayle  <roger@eyesopen.com>
7528
7529         * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
7530         fold with the result of buildN.
7531         * decl.c (gnat_to_gnu_entity): Likewise.
7532         * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
7533         * utils.c (finish_record_type, merge_sizes, max_size, convert):
7534         Likewise.
7535         * utils2.c (gnat_truthvalue_conversion, compare_arrays,
7536         nonbinary_modular_operation, build_binary_op, build_unary_op,
7537         build_cond_expr): Likewise.
7538
7539         * utils.c (convert): Use fold_build1 when casting values to void.
7540         * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
7541         fold_convert instead of convert when appropriate.
7542
7543 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
7544
7545         * Make-lang.in: Add install-pdf target as copied from
7546         automake v1.10 rules.
7547
7548 2007-02-28  Andreas Schwab  <schwab@suse.de>
7549
7550         * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
7551         $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
7552         (doc/gnat-style.info): Likewise.
7553
7554 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
7555
7556         * gnat-style.texi: Standardize title page.
7557         * gnat_rm.texi: Likewise.
7558         * gnat_ugn.texi: Likewise.
7559
7560 2007-02-25  Mark Mitchell  <mark@codesourcery.com>
7561
7562         * decl.c (annotate_value): Adjust for refactoring of tree_map
7563         hierarchy.
7564
7565 2007-02-24  Mark Mitchell  <mark@codesourcery.com>
7566
7567         * decl.c (annotate_value): Adjust for refactoring of tree_map
7568         hierarchy.
7569
7570 2007-02-21  Ed Schonberg  <schonberg@adacore.com>
7571
7572         PR ada/18819
7573         * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
7574         untagged derived type, add hidden components to keep discriminant
7575         layout consistent, when a given discriminant of the derived type
7576         constraints several discriminants of the parent type.
7577
7578 2007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
7579             Sandra Loosemore  <sandra@codesourcery.com>
7580
7581         * trans.c (call_to_gnu):  Use build_call_list instead of build3 to
7582         build the call expression.
7583         (gnat_stabilize_reference_1): Handle tcc_vl_exp.
7584         * utils.c (max_size) <tcc_exceptional>: Delete.
7585         <tcc_vl_exp>: New case.
7586         <tcc_expression>: Delete CALL_EXPR subcase.
7587         (build_global_cdtor): Use build_call_nary instead of build3.
7588         * utils2.c (build_call_1_expr): Likewise.
7589         (build_call_2_expr): Likewise.
7590         (build_call_0_expr): Likewise.
7591         (build_call_alloc_dealloc): Likewise.
7592
7593 2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
7594
7595         * raise-gcc.c (get_region_description_for, get_call_site_action_for,
7596         get_action_description_for): Replace _Unwind_Word with _uleb128_t 
7597         and _Unwind_SWord with _sleb128_t.
7598
7599 2007-02-06  Paolo Bonzini  <bonzini@gnu.org>
7600
7601         * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
7602         * decl.c: Include gt-ada-decl.h.
7603         (annotate_value_cache): New.
7604         (annotate_value): Use it instead of TREE_COMPLEXITY.
7605
7606 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
7607
7608         * misc.c, utils2.c: Fix comment typos.
7609
7610 2007-01-24  Roger Sayle  <roger@eyesopen.com>
7611
7612         * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
7613         TREE_CONSTANT_OVERFLOW.
7614         (allocatable_size_p, annotate_value): Likewise.
7615         * trans.c (gnat_to_gnu): Likewise.
7616         * utils.c (unchecked_convert): Likewise.
7617         * utils2.c (build_simple_component_ref): Likewise.
7618
7619 2007-01-23  Richard Guenther  <rguenther@suse.de>
7620
7621         PR bootstrap/30541
7622         * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
7623         (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
7624         (gnatboot3): Likewise.
7625         (GNATBIND): Do not define.
7626         * Makefile.in (GNATBIND): Do not define.
7627
7628 2007-01-08  Richard Guenther  <rguenther@suse.de>
7629
7630         * cuintp.c (build_cst_from_int): Use built_int_cst_type.
7631         * trans.c (gnat_to_gnu): Likewise.
7632
7633 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
7634
7635         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
7636         * adaint.c: Likewise.
7637
7638 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
7639
7640         Merge from gimple-tuples-branch:
7641         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
7642
7643         * ada-tree.h (lang_tree_node): Handle gimple tuples.
7644         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
7645         GIMPLE_MODIFY_STMT.
7646
7647 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
7648
7649         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
7650         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
7651         Fix typos.
7652
7653 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
7654
7655         PR ada/27936
7656         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
7657         if the initializer takes into account the padding.
7658
7659 2006-11-11  Richard Guenther  <rguenther@suse.de>
7660
7661         * trans.c (maybe_stabilize_reference): Remove handling of
7662         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
7663
7664 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
7665
7666         PR ada/29707
7667         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
7668         (To_Target_Priority): New function.
7669
7670 2006-10-31  Robert Dewar  <dewar@adacore.com>
7671
7672         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
7673         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
7674         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
7675         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
7676         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
7677         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
7678         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
7679         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
7680         a-szbzha.adb: Minor reformatting. Fix header.
7681
7682         * a-numaux-x86.adb: Add parentheses for use of unary minus
7683         * a-ngcefu.adb: Supply missing parentheses for unary minus
7684         * a-ngcoty.adb: Add parens for use of unary minus
7685         * a-ngelfu.adb: Add missing parens for unary minus
7686         * a-tifiio.adb: Add parentheses for uses of unary minus
7687
7688 2006-10-31  Robert Dewar  <dewar@adacore.com>
7689             Bob Duff  <duff@adacore.com>
7690             Ed Schonberg  <schonberg@adacore.com>
7691
7692         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
7693         with multiplying operator.
7694         (Expected_Type_Is_Any_Real): New function to determine from the Parent
7695         pointer whether the context expects "any real type".
7696         (Resolve_Arithmetic_Op): Do not give an error on calls to the
7697         universal_fixed "*" and "/" operators when they are used in a context
7698         that expects any real type. Also set the type of the node to
7699         Universal_Real in this case, because downstream processing requires it
7700         (mainly static expression evaluation).
7701         Reword some continuation messages
7702         Add some \\ sequences to continuation messages
7703         (Resolve_Call): Refine infinite recursion case. The test has been
7704         sharpened to eliminate some false positives.
7705         Check for Current_Task usage now includes entry barrier, and is now a
7706         warning, not an error.
7707         (Resolve): If the call is ambiguous, indicate whether an interpretation
7708         is an inherited operation.
7709         (Check_Aggr): When resolving aggregates, skip associations with a box,
7710         which are priori correct, and will be replaced by an actual default
7711         expression in the course of expansion.
7712         (Resolve_Type_Conversion): Add missing support for conversion from
7713         a class-wide interface to a tagged type. Minor code cleanup.
7714         (Valid_Tagged_Converion): Add support for abstact interface type
7715         conversions.
7716         (Resolve_Selected_Component): Call Generate_Reference here rather than
7717         during analysis, and use May_Be_Lvalue to distinguish read/write.
7718         (Valid_Array_Conversion): New procedure, abstracted from
7719         Valid_Conversion, to incorporate accessibility checks for arrays of
7720         anonymous access types.
7721         (Valid_Conversion): For a conversion to a numeric type occurring in an
7722         instance or inlined body, no need to check that the operand type is
7723         numeric, since this has been checked during analysis of the template.
7724         Remove legacy test for scope name Unchecked_Conversion.
7725
7726         * sem_res.ads: Minor reformatting
7727
7728         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
7729         (PE_Current_Task_In_Entry_Body): New exception code
7730         (SE_Restriction_Violation): Removed, not used
7731
7732         * a-except.ads:  Update comments.
7733
7734         * types.h, types.ads: Add definition for Validity_Check
7735         (PE_Current_Task_In_Entry_Body): New exception code
7736         (SE_Restriction_Violation): Removed, not used
7737
7738 2006-10-31  Thomas Quinot  <quinot@adacore.com>
7739
7740         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
7741         error status.
7742
7743 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
7744             Jose Ruiz  <ruiz@adacore.com>
7745
7746         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
7747         part of Ada.Calendar: all subprogram raise Unimplemented.
7748         (Split_W_Offset): Temp function body, raising Unimplemented
7749
7750         * a-calend.ads, a-calend-vms.ads: 
7751         Add imported variable Invalid_TZ_Offset used to designate targets unable
7752         to support time zones.
7753         (Unimplemented): Temporary function raised by the body of new
7754         subprograms below.
7755         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
7756         unit provides handling of leap seconds and is used by the new Ada 2005
7757         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
7758         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
7759         version returns an extra value which is the offset to UTC.
7760
7761         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
7762         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
7763         (Split_W_Offset): New function body.
7764         (Time_Of): When a date is close to UNIX epoch, compute the time for
7765         that date plus one day (that amount is later substracted after
7766         executing mktime) so there are no problems with time zone adjustments.
7767
7768         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
7769
7770         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
7771         a-catizo.ads, a-catizo.adb: New files.
7772
7773         * impunit.adb: Add new Ada 2005 entries
7774
7775         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
7776         Rename all occurences of "__gnat_localtime_r" to
7777         "__gnat_localtime_tzoff".
7778         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
7779         zone data and calculate the GMT offset.
7780         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
7781         Use the field "tm_gmtoff" to extract the GMT offset.
7782         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
7783         the external variable "timezone" to calculate the GMT offset.
7784
7785 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
7786             Jose Ruiz  <ruiz@adacore.com>
7787
7788         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
7789         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
7790         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
7791         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
7792         System.Any_Priority to a POSIX priority on the target.
7793
7794         * system-linux-ia64.ads: 
7795         Extend range of Priority types on Linux to use the whole range made
7796         available by the system.
7797
7798         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
7799         function maps from System.Any_Priority to a POSIX priority on the
7800         target.
7801         (PTHREAD_PRIO_PROTECT): Set real value.
7802         (PTHREAD_PRIO_INHERIT): Now a function.
7803         (SIGCPUFAIL): New signal.
7804         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
7805         are documented as reserved by the OS.
7806
7807         * system-aix.ads: Use the full range of priorities provided by the
7808         system on AIX.
7809
7810         * s-taprop-posix.adb: Call new function To_Target_Priority.
7811         (Set_Priority): Take into account Task_Dispatching_Policy and
7812         Priority_Specific_Dispatching pragmas when determining if Round Robin
7813         must be used for scheduling the task.
7814
7815         * system-linux-x86_64.ads, system-linux-x86.ads, 
7816         system-linux-ppc.ads: Extend range of Priority types on Linux to use
7817         the whole range made available by the system.
7818
7819         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
7820         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
7821         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
7822         when deallocating the TCB in order to avoid potential references to
7823         deallocated data.
7824         (Set_Priority): Take into account Task_Dispatching_Policy and
7825         Priority_Specific_Dispatching pragmas when determining if Round Robin
7826         or FIFO within priorities must be used for scheduling the task.
7827
7828         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
7829         the Thread field (to be used internally by the run-time system) and the
7830         kernel-level task id in the LWP field (to be used by the debugger).
7831         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
7832         instance, and propagate the current task options to the spawned task.
7833         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
7834         (Initialize): Set Round Robin dispatching when the corresponding pragma
7835         is in effect.
7836
7837 2006-10-31  Robert Dewar  <dewar@adacore.com>
7838
7839         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
7840         system-linux-hppa.ads, system-hpux-ia64.ads, 
7841         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
7842         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
7843         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
7844         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
7845         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
7846         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
7847         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
7848         Default_Bit_Order) to kill constant condition warnings for references
7849         to this switch.
7850
7851 2006-10-31  Vincent Celier  <celier@adacore.com>
7852             Eric Botcazou  <ebotcazou@adacore.com>
7853
7854         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
7855         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
7856         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
7857         Ext_To, when building the library file name
7858
7859         * mlib-tgt-vxworks.adb: ditto.
7860         (Get_Target_Suffix): Add support for x86 targets.
7861
7862         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
7863
7864         * mlib-tgt-darwin.adb: 
7865         Use Append_To, instead of Ext_To, when building the library file name
7866         (Flat_Namespace): New global variable.
7867         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
7868         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
7869         (Link_Shared_Libgcc): Delete.
7870         (Build_Dynamic_Library): Adjust for above changes.
7871         Use Opt package.
7872         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
7873
7874 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
7875
7876         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
7877         (Initialize): Add type conversions required by above change.
7878
7879 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
7880
7881         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
7882         (getpid): New body for this function that uses the underlying taskIdSelf
7883         function for VxWorks 5 and VxWorks 6 in kernel mode.
7884         (unsigned_int): New type, modular to allow logical bit operations.
7885         (taskOptionsGet): New imported function.
7886
7887         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
7888         field to be compliant with the type used by the corresponding operating
7889         system primitive.
7890
7891 2006-10-31  Pascal Obry  <obry@adacore.com>
7892             Eric Botcazou  <ebotcazou@adacore.com>
7893             Vincent Celier  <celier@adacore.com>
7894
7895         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
7896         ASCII version of the registry API. This is needed as the GNAT runtime
7897         is now UNICODE by default.
7898         Include version.h.
7899         (get_gcc_version): Do not hardcode the return value.
7900         (__gnat_file_time_name): On Windows properly set the default returned
7901         value to -1 which corresponds to Invalid_Time.
7902         (__gnat_fopen): New routine. A simple wrapper on all plateforms
7903          except on Windows where it does conversion for unicode support.
7904         (__gnat_freopen): Idem.
7905         (__gnat_locate_exec_on_path): If environment variable PATH does not
7906         exist, return a NULL pointer
7907
7908         * adaint.h: (__gnat_fopen): Declare.
7909         (__gnat_freopen): Likewise.
7910
7911         * mingw32.h (_tfreopen): Define this macro here for older MingW
7912         version.
7913         Activate the unicode support on platforms using a MingW runtime
7914         version 3.9 or newer.
7915
7916         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
7917         This is needed for proper unicode support on Windows.
7918         (freopen): Idem.
7919
7920 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
7921             Nicolas Setton  <setton@adacore.com>
7922             Olivier Hainque  <hainque@adacore.com>
7923             Gary Dismukes  <dismukes@adacore.com>
7924
7925         * gigi.h: (tree_code_for_record_type): Declare.
7926         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
7927         (get_global_renaming_pointers): Rename to
7928         invalidate_global_renaming_pointers.
7929         (static_ctors): Delete.
7930         (static_dtors): Likewise.
7931         (gnat_write_global_declarations): Declare.
7932         (create_var_decl): Adjust descriptive comment to indicate that the
7933         subprogram may return a CONST_DECL node.
7934         (create_true_var_decl): Declare new function, similar to
7935         create_var_decl but forcing the creation of a VAR_DECL node.
7936         (get_global_renaming_pointers): Declare.
7937         (add_global_renaming_pointer): Likewise.
7938
7939         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
7940
7941         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
7942         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
7943         processing.
7944         (gnat_to_gnu_entity): Remove From_With_Type from computation for
7945         imported_p.
7946         <E_Access_Type>: Use the Non_Limited_View as the full view of the
7947         designated type if the pointer comes from a limited_with clause.  Make
7948         incomplete designated type if it is in the main unit and has a freeze
7949         node.
7950         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
7951         Underlying_Full_View similarly.  Return earlier if the full view already
7952         has an associated tree.
7953         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
7954         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
7955         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
7956         reference type built for objects with an address clause.
7957         Use create_true_var_decl with const_flag set for
7958         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
7959         TREE_READONLY set.
7960         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
7961         for Character and Wide_Character types. This info is read by the
7962         dwarf-2 writer, and is needed to be able to use the command "ptype
7963         character" in the debugger.
7964         (gnat_to_gnu_entity): When generating a type representing
7965         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
7966         so that debug writers can distinguish it from ordinary integers.
7967         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
7968         addition to TREE_READONLY to assert the constantness of variables for
7969         elaboration purposes.
7970         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
7971         parameters to call new Einfo function First_Formal_With_Extras.
7972         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
7973         protected type with its corresponding discriminant, to obtain a usable
7974         declaration
7975         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
7976         for a multiple elaboration of the "equivalent" type.
7977         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
7978         into record_global_renaming_pointer.
7979         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
7980         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
7981         <E_Array_Subtype>: Likewise.
7982         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
7983         incomplete subtypes and incomplete subtypes of incomplete types visible
7984         through a limited with clause.
7985         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
7986         the base index type for the maximum size of the array only if they are
7987         constant.
7988         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
7989         expression into a SAVE_EXPR if stabilization failed.
7990
7991         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
7992         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
7993         by lower level compilation passes.
7994         (gnat_genericize): New function, lowering a function body to GENERIC.
7995         Turn the type of RESULT_DECL into a real reference type if the decl
7996         has been marked DECL_BY_REFERENCE, and adjust references to the latter
7997         accordingly.
7998         (gnat_genericize_r): New function. Tree walking callback for
7999         gnat_genericize.
8000         (convert_from_reference, is_byref_result): New functions. Helpers for
8001         gnat_genericize_r.
8002         (create_type_decl): Call gnat_pushdecl before calling
8003         rest_of_decl_compilation, to make sure that field TYPE_NAME of
8004         type_decl is properly set before calling the debug information writers.
8005         (write_record_type_debug_info): The heuristics which compute the
8006         alignment of a field in a variant record might not be accurate. Add a
8007         safety test to make sure no alignment is set to a smaller value than
8008         the alignment of the field type.
8009         (make_dummy_type): Use the Non_Limited_View as the underlying type if
8010         the type comes from a limited_with clause. Do not loop on the full view.
8011         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
8012         (dummy_node_table): New global variable, moved from decl.c.
8013         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
8014         (save_gnu_tree): Use above macros.
8015         (get_gnu_tree): Likewise.
8016         (present_gnu_tree): Likewise.
8017         (init_dummy_type): New function, moved from decl.c. Use above macros.
8018         (make_dummy_type): Likewise.
8019         (tree_code_for_record_type): New function extracted from make_dummy_type
8020         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
8021         (static_ctors): Change it to a vector, make static.
8022         (static_dtors): Likewise.
8023         (end_subprog_body): Adjust for above change.
8024         (build_global_cdtor): Moved from trans.c.
8025         (gnat_write_global_declarations): Emit global constructor and
8026         destructor, and call cgraph_optimize before emitting debug info for
8027         global declarations.
8028         (global_decls): New global variable.
8029         (gnat_pushdecl): Store the global declarations in global_decls, for
8030         later use.
8031         (gnat_write_global_declarations): Emit debug information for global
8032          declarations.
8033         (create_var_decl_1): Former create_var_decl, with an extra argument to
8034          state whether the creation of a CONST_DECL is allowed.
8035         (create_var_decl): Behavior unchanged. Now a wrapper around
8036         create_var_decl_1 allowing CONST_DECL creation.
8037         (create_true_var_decl): New function, similar to create_var_decl but
8038         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
8039         (create_field_decl): Do not always mark the field as addressable
8040         if its type is an aggregate.
8041         (global_renaming_pointers): New static variable.
8042         (add_global_renaming_pointer): New function.
8043         (get_global_renaming_pointers): Likewise.
8044
8045         * misc.c (gnat_dwarf_name): New function.
8046         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
8047         (gnat_post_options): Add comment about structural alias analysis.
8048         (gnat_parse_file): Do not call cgraph_optimize here.
8049         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
8050
8051         * trans.c (process_freeze_entity): Don't abort if we already have a
8052         non dummy GCC tree for a Concurrent_Record_Type, as it might
8053         legitimately have been elaborated while processing the associated
8054         Concurrent_Type prior to this explicit freeze node.
8055         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
8056         exception handler volatile if it is of variable size.
8057         (process_type): Remove bypass for types coming from a limited_with
8058         clause.
8059         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
8060         actual, convert the corresponding gnu_actual to the real destination
8061         type when necessary.
8062         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
8063         originally TREE_READONLY but whose elaboration cannot be performed
8064         statically.
8065         Part of fix for F504-021.
8066         (tree_transform, subprogram cases): Change loops on formal parameters to
8067         call new Einfo function First_Formal_With_Extras.
8068         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
8069         stemming from type conversion for the lhs.
8070         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
8071         number of bits per unit for components of records.
8072         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
8073         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
8074         with At_End_Proc after the SJLJ EH cleanup.
8075         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
8076         compilation unit.
8077         (elaborate_all_entities): Do not retest type_annotate_only.
8078         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
8079         result type of an abstract subprogram, which may be an itype associated
8080         with an anonymous access result (related to AI-318-02).
8081         (build_global_cdtor): Move to utils.c.
8082         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
8083         this choice is not a null tree nor an integer constant.
8084         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
8085         on the body of elaboration routines instead of mark_unvisited.
8086         (add_stmt): Do not mark the tree.
8087         (add_decl_expr): Tweak comment.
8088         (mark_unvisited): Delete.
8089         (unshare_save_expr): New static function.
8090         (call_to_gnu): Issue an error when making a temporary around a
8091         procedure call because of non-addressable actual parameter if the
8092         type of the formal is by_reference.
8093         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
8094         after building the elaboration routine.
8095
8096 2006-10-31  Bob Duff  <duff@adacore.com>
8097
8098         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
8099         as finalization-started, so we can raise Program_Error on 'new'.
8100
8101         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
8102         collection has already started.
8103
8104         * s-finimp.ads (Collection_Finalization_Started): Added new special
8105         flag value for indicating that a collection's finalization has started.
8106
8107         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
8108         create a task whose master has already waited for dependent tasks.
8109
8110 2006-10-31  Robert Dewar  <dewar@adacore.com>
8111
8112         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
8113
8114         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
8115         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
8116         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
8117         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
8118         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
8119         a-except-2005.ads: Add pragma Preelaborable_Warning
8120
8121 2006-10-31  Robert Dewar  <dewar@adacore.com>
8122             Jose Ruiz  <ruiz@adacore.com>
8123
8124         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
8125
8126         * ali.adb (Get_Name): Properly handle scanning of wide character names
8127         encoded with brackets notation.
8128         (Known_ALI_Lines): Add S lines to this list.
8129         (Scan_ALI): Acquire S (priority specific dispatching) lines.
8130         New flag Elaborate_All_Desirable in unit table
8131
8132         * ali.ads (Priority_Specific_Dispatching): Add this range of
8133         identifiers to be used for Priority_Specific_Dispatching table entries.
8134         (ALIs_Record): Add First_Specific_Dispatching and
8135         Last_Specific_Dispatching that point to the first and last entries
8136         respectively in the priority specific dispatching table for this unit.
8137         (Specific_Dispatching): Add this table for storing each S (priority
8138         specific dispatching) line encountered in the input ALI file.
8139         New flag Elaborate_All_Desirable in unit table
8140
8141         * bcheck.adb: (Check_Configuration_Consistency): Add call to
8142         Check_Consistent_Dispatching_Policy.
8143         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
8144         verifying that the use of Priority_Specific_Dispatching,
8145         Task_Dispatching_Policy, and Locking_Policy is consistent across the
8146         partition.
8147
8148         * bindgen.adb: (Public_Version_Warning): function removed.
8149         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
8150         required information from ALI files in order to initialize the table
8151         containing the specific dispatching policy.
8152         (Gen_Adainit_Ada): Generate the variables required for priority specific
8153         dispatching entries (__gl_priority_specific_dispatching and
8154         __gl_num_specific_dispatching).
8155         (Gen_Adainit_C): Generate the variables required for priority specific
8156         dispatching entries (__gl_priority_specific_dispatching and
8157         __gl_num_specific_dispatching).
8158         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
8159         pragma entries.
8160         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
8161         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
8162         (Tab_To): Removed.
8163         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
8164         a call to gnat_set_globals.
8165         Generate a string containing settings from
8166         Priority_Specific_Dispatching pragma entries.
8167         (Gen_Object_Files_Options): Do not include the runtime libraries when
8168         pragma No_Run_Time is specified.
8169
8170         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
8171         consistency with s-intman-posix.adb.
8172         (__gnat_error_handler, case FreeBSD): Account for the fact that the
8173         handler is installed with SA_SIGINFO.
8174         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
8175         FreeBSD ZCX support, copied from Linux version.
8176         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
8177         sigfillset, and sigemptyset so the routines defined by MaRTE.
8178         (__gl_priority_specific_dispatching): Add this variable that stores the
8179         string containing priority specific dispatching policies in the
8180         partition.
8181         (__gl_num_specific_dispatching): Add this variable that indicates the
8182         highest priority for which a priority specific dispatching pragma
8183         applies.
8184         (__gnat_get_specific_dispatching): Add this routine that returns the
8185         priority specific dispatching policy, as set by a
8186         Priority_Specific_Dispatching pragma appearing anywhere in the current
8187         partition. The input argument is the priority number, and the result
8188         is the upper case first character of the policy name.
8189         (__gnat_set_globals): Now a dummy function.
8190         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
8191         mechargs instead of sigargs, as the latter can be retrieved from the
8192         former and sigargs is not what we want on ia64.
8193         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
8194         mechargs argument.
8195         (__gnat_adjust_context_for_raise, ia64-vms): New function.
8196         (tasking_error): Remove unused symbol.
8197         (_abort_signal): Move this symbol to the IRIX specific part since this
8198         is the only target that uses this definition.
8199         (Check_Abort_Status): Move this symbol to the IRIX specific part since
8200         this is the only target that uses this definition.
8201         (Lock_Task): Remove unused symbol.
8202         (Unlock_Task): Remove unused symbol.
8203
8204         * lib-writ.adb (Write_ALI): Output new S lines for
8205         Priority_Specific_Dispatching pragmas.
8206         Implement new flag BD for elaborate body desirable
8207
8208         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
8209         (Specific_Dispatching): Add this table for storing the entries
8210         corresponding to Priority_Specific_Dispatching pragmas.
8211         Document new BD flag for elaborate body desirable
8212
8213         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
8214         of known pragmas.
8215
8216 2006-10-31  Javier Miranda  <miranda@adacore.com>
8217
8218         * a-tags.ads, a-tags.adb: 
8219         (Predefined_DT): New function that improves readability of the code.
8220         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
8221         Inherit_DT): Use the new function Predefined_DT to improve code
8222         readability.
8223         (Register_Interface_Tag): Update assertion.
8224         (Set_Interface_Table): Update assertion.
8225         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
8226         determining progenitor interfaces in Tags.
8227         (Inherit_CPP_DT): New subprogram.
8228
8229         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
8230         analysis of the thunk code.
8231         (Expand_Interface_Conversion): Handle run-time conversion of
8232         access to class wide types.
8233         (Expand_Dispatching_Call): When generating the profile for the
8234         subprogram itype for a dispatching operation, properly terminate the
8235         formal parameters chaind list (set the Next_Entity of the last formal
8236         to Empty).
8237         (Collect_All_Interfaces): Removed. This routine has been moved to
8238         sem_util and renamed as Collect_All_Abstract_Interfaces.
8239         (Set_All_DT_Position): Hidden entities associated with abstract
8240         interface primitives are not taken into account in the check for
8241         3.9.3(10); this check is done with the aliased entity.
8242         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
8243         interfacing with CPP by default.
8244         (Expand_Interface_Conversion): Add missing support for static conversion
8245         from an interface to a tagged type.
8246         (Collect_All_Interfaces): Add new out formal containing the list of
8247         abstract interface types to cleanup the subprogram Make_DT.
8248         (Make_DT): Update the code to generate the table of interfaces in case
8249         of abstract interface types.
8250         (Is_Predefined_Dispatching_Alias): New function that returns true if
8251         a primitive is not a predefined dispatching primitive but it is an
8252         alias of a predefined dispatching primitive.
8253         (Make_DT): If the ancestor of the type is a CPP_Class and we are
8254         compiling under full ABI compatibility mode we avoid the generation of
8255         calls to run-time services that fill the dispatch tables because under
8256         this mode we currently inherit the dispatch tables in the IP subprogram.
8257         (Write_DT): Emit an "is null" indication for a null procedure primitive.
8258         (Expand_Interface_Conversion): Use an address as the type of the formal
8259         of the internally built function that handles the case in which the
8260         target type is an access type.
8261
8262 2006-10-31  Robert Dewar  <dewar@adacore.com>
8263
8264         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
8265
8266 2006-10-31  Robert Dewar  <dewar@adacore.com>
8267
8268         * bindusg.ads, bindusg.adb:
8269         Change to package and rename procedure as Display, which
8270         now ensures that it only outputs usage information once.
8271
8272 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
8273
8274         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
8275         using RTPs.
8276
8277         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
8278         when using RTPs.
8279
8280 2006-10-31  Robert Dewar  <dewar@adacore.com>
8281             Ed Schonberg  <schonberg@adacore.com>
8282
8283         * treepr.adb: Use new subtype N_Membership_Test
8284
8285         * checks.ads, checks.adb: Add definition for Validity_Check
8286         (Range_Or_Validity_Checks_Suppressed): New function
8287         (Ensure_Valid): Test Validity_Check suppressed
8288         (Insert_Valid_Check): Test Validity_Check suppressed
8289         (Insert_Valid_Check): Preserve Do_Range_Check flag
8290         (Validity_Check_Range): New procedure
8291         (Expr_Known_Valid): Result of membership test is always valid
8292         (Selected_Range_Checks): Range checks cannot be applied to discriminants
8293         by themselves. Disabling those checks must also be done for task types,
8294         where discriminants may be used for the bounds of entry families.
8295         (Apply_Address_Clause_Check): Remove side-effects if address expression
8296         is non-static and is not the name of a declared constant.
8297         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
8298         Code cleanup and new error messages.
8299         (Enable_Range_Check): Test for some cases of suppressed checks
8300         (Generate_Index_Checks): Suppress index checks if index checks are
8301         suppressed for array object or array type.
8302         (Apply_Selected_Length_Checks): Give warning for compile-time detected
8303         length check failure, even if checks are off.
8304         (Ensure_Valid): Do not generate a check on an indexed component whose
8305         prefix is a packed boolean array.
8306         * checks.adb: (Alignment_Checks_Suppressed): New function
8307         (Apply_Address_Clause_Check): New procedure, this is a completely
8308         rewritten replacement for Apply_Alignment_Check
8309         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
8310         we request a discriminal value only in case of discriminants.
8311         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
8312         assignments where the target subtype is unconstrained and the target
8313         object is a parameter or dereference (other aliased cases are known
8314         to be unconstrained).
8315
8316 2006-10-31  Robert Dewar  <dewar@adacore.com>
8317
8318         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
8319         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
8320         vms_conv.adb: Fix bad table increment values (much too small)
8321
8322         * table.adb (Realloc): Make sure we get at least some new elements
8323         Defends against silly small values for table increment
8324
8325 2006-10-31  Robert Dewar  <dewar@adacore.com>
8326             Ed Schonberg  <schonberg@adacore.com>
8327             Bob Duff  <duff@adacore.com>
8328
8329         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
8330         entities. Move other fields around to make this possible
8331         (Is_Derived_Type): Add missing call to Is_Type.
8332         (Extra_Formals): New function for subprograms, entries, subprogram
8333         types.
8334         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
8335         (First_Formal_With_Extras): New function for subprogs, entries, subp
8336         types.
8337         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
8338         Add node information for E_Return_Statement.
8339         (Elaborate_Body_Desirable): New flag
8340         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
8341         to be Is_Inherently_Limited_Type, because return-by-reference has
8342         no meaning in Ada 2005.
8343         (E_Return_Statement): New entity kind.
8344         (Return_Applies_To): Field of E_Return_Statement.
8345         (Is_Return_Object): New flag in object entities.
8346         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
8347         (Must_Have_Preelab_Init): New flag
8348         (Known_To_Have_Preelab_Init): New flag
8349         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
8350         (Is_Visible_Formal): New flag on entities in formal packages.
8351         (Low_Bound_Known): New flag
8352         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
8353         Incomplete_Kind.
8354         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
8355         output when Id is an incomplete subtype.
8356
8357 2006-10-31  Robert Dewar  <dewar@adacore.com>
8358
8359         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
8360         Avoid abbreviation Creat
8361         (Finalize): List all sources in extended mail source if -gnatl
8362         switch is active.
8363         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
8364         (Finalize): Implement new -gnatl=xxx switch to output listing to file
8365         (Set_Specific_Warning_On): New procedure
8366         (Set_Specific_Warning_Off): New procedure
8367         Add implementation of new insertion \\
8368         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
8369         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
8370         types.
8371         (Error_Msg_Internal): Make sure that we set Last_Killed to
8372         True when a message from another package is suppressed.
8373         Implement insertion character ~ (insert string)
8374         (First_Node): Minor adjustments to get better placement.
8375
8376         * frontend.adb: 
8377         Implement new -gnatl=xxx switch to output listing to file
8378
8379         * gnat1drv.adb: 
8380         Implement new -gnatl=xxx switch to output listing to file
8381
8382         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
8383         (Commands_To_Stdout): New flag
8384         Implement new -gnatl=xxx switch to output listing to file
8385         New switch Dump_Source_Text
8386         (Warn_On_Deleted_Code): New warning flag for -gnatwt
8387         Define Error_Msg_Line_Length
8388         (Warn_On_Assumed_Low_Bound): New switch
8389
8390         * osint.ads, osint.adb
8391         (Normalize_Directory_Name): Fix bug.
8392         Implement new -gnatl=xxx switch to output listing to file
8393         (Concat): Removed, replaced by real concatenation
8394         Make use of concatenation now allowed in compiler
8395         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
8396         we find the 'lib' or 'bin' directory even when the tool has been
8397         invoked with a relative path.
8398         (Executable_Name): New function taking string parameters.
8399
8400         * osint-c.ads, osint-c.adb: 
8401         Implement new -gnatl=xxx switch to output listing to file
8402
8403         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
8404
8405         * switch-c.adb: 
8406         Implement new -gnatl=xxx switch to output listing to file
8407         Recognize new -gnatL switch
8408         (no longer keep in old warning about old style usage)
8409         Use concatenation to simplify code
8410         Recognize -gnatjnn switch
8411         (Scan_Front_End_Switches): Clean up handling of -gnatW
8412         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
8413
8414 2006-10-31  Robert Dewar  <dewar@adacore.com>
8415
8416         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
8417         (Set_Specific_Warning_Off): New procedure
8418         (Warning_Specifically_Suppressed): New function
8419         (Validate_Specific_Warnings): New procedure
8420         (Output_Msg_Text): Complete rewrite to support -gnatjnn
8421
8422         * err_vars.ads: Implement insertion character ~ (insert string)
8423
8424 2006-10-31  Bob Duff  <duff@adacore.com>
8425             Ed Schonberg  <schonberg@adacore.com>
8426
8427         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
8428         the parent part is a build-in-place function call, generate assignments.
8429         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
8430         are build-in-place function calls.
8431         (Replace_Self_Reference): New subsidiary of
8432         Make_OK_Assignment_Statement, to replace an access attribute that is a
8433         self-reference into an access to the appropriate component of the
8434         target object. Generalizes previous mechanism to handle self-references
8435         nested at any level.
8436         (Is_Self_Referential_Init): Remove, not needed.
8437         (Is_Self_Referential_Init): New predicate to simplify handling of self
8438         referential components in record aggregates.
8439         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
8440         check for presence of entity before checking for self-reference.
8441         (Has_Default_Init_Comps): Return True if a component association is a
8442         self-reference to the enclosing type, which can only come from a
8443         default initialization.
8444         (Make_OK_Assignment_Statement): If the expression is of the form
8445         Typ'Acc, where Acc is an access attribute, the expression comes from a
8446         default initialized self-referential component.
8447         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
8448         that has been derived from several abstract interfaces we must also
8449         initialize the tags of the secondary dispatch tables.
8450
8451 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
8452             Thomas Quinot  <quinot@adacore.com>
8453             Javier Miranda  <miranda@adacore.com>
8454             Robert Dewar  <dewar@adacore.com>
8455
8456         * exp_attr.adb: 
8457         (Expand_Access_To_Protected_Op): If the context indicates that an access
8458         to a local operation may be transfered outside of the object, create an
8459         access to the wrapper operation that must be used in an external call.
8460         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
8461         target, pass the Valid attribute applied to a floating-point prefix on
8462         to the back end without expansion.
8463         (Storage_Size): Use the new run-time function Storage_Size to retrieve
8464         the allocated storage when it is specified by a per-object expression.
8465         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
8466         Nothing to do here, the attribute has been rewritten during semantic
8467         analysis.
8468         (Expand_Attribute_Reference): Handle expansion of the new Priority
8469         attribute
8470         (Find_Fat_Info): Handle case of universal real
8471         (Expand_Access_To_Protected_Op): Fix use of access to protected
8472         subprogram from inside the body of a protected entry.
8473         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
8474         'Access and 'Unrestricted_Access, to transform the attribute reference
8475         into a fat pointer.
8476         (Is_Constrained_Aliased_View): New predicate to help determine whether a
8477         subcomponent's enclosing variable is aliased with a constrained subtype.
8478         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
8479         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
8480         an aliased prefix must be known to be constrained in order to use True
8481         for the attribute value, and now it's possible for some aliased views
8482         to be unconstrained.
8483
8484 2006-10-31  Robert Dewar  <dewar@adacore.com>
8485
8486         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
8487         (Expand_Entity_Reference): Correct error of not handling subprogram
8488         formals in current_value processing.
8489
8490 2006-10-31  Javier Miranda  <miranda@adacore.com>
8491             Robert Dewar  <dewar@adacore.com>
8492             Ed Schonberg  <schonberg@adacore.com>
8493             Gary Dismukes  <dismukes@adacore.com>
8494
8495         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
8496         register in the final list objects containing class-wide interfaces;
8497         otherwise we incorrectly register the tag of the interface in the final
8498         list.
8499         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
8500         generate the wrapper if the parent primitive is abstract. This is
8501         required to report the correct error message.
8502         (Expand_N_Subtype_Indication): Do validity checks on range
8503         (Clean_Task_Names): If an initialization procedure includes a call to
8504         initialize a task (sub)component, indicate that the procedure will use
8505         the secondary stack.
8506         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
8507         compatibility for interfacing with CPP by default.
8508         (Expand_N_Object_Declaration): Only build an Adjust call when the
8509         object's type is a nonlimited controlled type.
8510         * exp_ch3.adb: Add with and use of Exp_Ch6.
8511         (Expand_N_Object_Declaration): Check for object initialization that is a
8512         call to build-in-place function and apply Make_Build_In_Place_Call_In_
8513         Object_Declaration to the call.
8514         (Freeze_Type): When the designated type of an RACW was not frozen at the
8515         point where the RACW was declared, validate the primitive operations
8516         with respect to E.2.2(14) when it finally is frozen.
8517         (Build_Initialization_Call,Expand_Record_Controller): Rename
8518         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
8519         return-by-reference has no meaning in Ada 2005.
8520         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
8521         to register tag of the immediate ancestor interfaces in the
8522         run-time structure.
8523         (Init_Secondary_Tags): Moved to the specification to allow the
8524         initialization of extension aggregates with abstract interfaces.
8525         (Build_Master_Renaming): Make public, for use by function declarations
8526         whose return type is an anonymous access type.
8527         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
8528         Insert_List_Before_And_Analyze after the generation of the specs
8529         associated with null procedures.
8530         (Expand_Tagged_Root): Update documentation in its specification.
8531         (Init_Secondary_Tags): Update documentation.
8532         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
8533         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
8534         then generate code to inherit the contents of the dispatch table
8535         directly from the ancestor.
8536         (Expand_Record_Controller): Insert controller component after tags of
8537         implemented interfaces.
8538         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
8539         create null procedure overridings when null procedures are inherited
8540         from interfaces.
8541         (Make_Null_Procedure_Specs): New procedure to generate null procedure
8542         declarations for overriding null primitives inherited from interfaces.
8543         (Is_Null_Interface_Procedure): New function in
8544         Make_Null_Procedure_Specs.
8545         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
8546         immediate ancestor of a tagged type is an abstract interface type we
8547         must generate the specification of the predefined primitives associated
8548         with controlled types (because the dispatch table of the ancestor is
8549         null and hence these entries cannot be inherited). This is required to
8550         elaborate well the dispatch table.
8551
8552 2006-10-31  Javier Miranda  <miranda@adacore.com>
8553             Ed Schonberg  <schonberg@adacore.com>
8554             Bob Duff  <duff@adacore.com>
8555             Gary Dismukes  <dismukes@adacore.com>
8556             Robert Dewar  <dewar@adacore.com>
8557
8558         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
8559         conversion.
8560         (Expand_N_In): Do validity checks on range
8561         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
8562         (Expand_N_Allocator): For "new T", if the object is constrained by
8563         discriminant defaults, allocate the right amount of memory, rather than
8564         the maximum for type T.
8565         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
8566         when the allocator is initialized by a build-in-place call, since the
8567         allocator is already rewritten as a reference to the function result,
8568         and this prevents an unwanted duplication of the function call.
8569         Add with and use of Exp_Ch6.
8570         (Expand_Allocator_Expresssion): Check for an allocator whose expression
8571         is a call to build-in-place function and apply
8572         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
8573         untagged designated types).
8574         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
8575         optimization if source or target is biased.
8576         (Expand_N_Allocator): Add comments for case of an allocator within a
8577         function that returns an anonymous access type designating tasks.
8578         (Expand_N_Allocator): apply discriminant checks for access
8579         discriminants of anonymous access types (AI-402, AI-416)
8580
8581 2006-10-31  Bob Duff  <duff@adacore.com>
8582             Robert Dewar  <dewar@adacore.com>
8583             Gary Dismukes  <dismukes@adacore.com>
8584             Ed Schonberg  <schonberg@adacore.com>
8585
8586         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
8587
8588         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
8589         (Expand_N_Assignment_Statement): Call
8590         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
8591         build-in-place function call. Currently, this can happen only for
8592         assignments that come from aggregates.
8593         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
8594         in order to alleviate the upward compatibility introduced by AI-318.
8595         (Expand_N_Extended_Return_Statement): Add support for handling the
8596         return object as a build-in-place result.
8597         (Expand_Non_Function_Return): Implement simple return statements nested
8598         within an extended return.
8599         (Enable_New_Return_Processing): Turn on the new processing of return
8600         statements.
8601         (Expand_Non_Function_Return): For a return within an extended return,
8602         don't raise Program_Error, because Sem_Ch6 now gives a warning.
8603         (Expand_N_Extended_Return_Statement): Implement AI-318
8604         (Expand_Simple_Function_Return): Ditto.
8605         (Expand_N_If_Statement): Handle new -gnatwt warning
8606         (Expand_N_Case_Statement): Handle new -gnatwt warning
8607         (Expand_N_Assignment): Handle assignment to the Priority attribute of
8608         a protected object.
8609         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
8610         validity checking of assignments to elementary record components.
8611         (Expand_N_Return_Statement): return Class Wide types on the secondary
8612         stack independantly of their controlled status since with HIE runtimes,
8613         class wide types are not potentially controlled anymore.
8614
8615         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
8616         node kind.
8617
8618         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
8619         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
8620         it expects a block, procedure, or task. The return statement will get
8621         turned into a block, and Expand_Cleanup_Actions will happen then.
8622
8623 2006-10-31  Robert Dewar  <dewar@adacore.com>
8624             Ed Schonberg  <schonberg@adacore.com>
8625             Bob Duff  <duff@adacore.com>
8626             Gary Dismukes  <dismukes@adacore.com>
8627
8628         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
8629         capability.
8630         (Expand_Inlined_Call): Tagged types are by-reference types, and
8631         therefore should be replaced by a renaming declaration in the expanded
8632         body, as is done for limited types.
8633         (Expand_Call): If this is a call to a function with dispatching access
8634         result, propagate tag from context.
8635         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
8636         CPP by default.
8637         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
8638         build-in-place when the right-hand side of an assignment is a
8639         build-in-place function call.
8640         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
8641         of the explicit dereference of the allocator to the result subtype of
8642         the build-in-place function. This is needed to satisfy type checking
8643         in cases where the caller's return object is created by an allocator for
8644         a class-wide access type and the type named in the allocator is a
8645         specific type.
8646         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
8647         conversion of the reference to the declared object to the result subtype
8648         of the build-in-place function. This is needed to satisfy type checking
8649         in cases where the declared object has a class-wide type. Also, in the
8650         class-wide case, change the type of the object entity to the specific
8651         result subtype of the function, to avoid passing a class-wide object
8652         without explicit initialization to the back end.
8653         (Register_Interface_DT_Entry): Moved outside the body of
8654         Freeze_Subprogram because this routine is now public; it is called from
8655         Check_Dispatching_Overriding to handle late overriding of abstract
8656         interface primitives.
8657         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
8658         adding an implicit access actual on a call to a build-in-place function.
8659         (Expand_Actuals): Test for an actual parameter that is a call to a
8660         build-in-place function and apply
8661         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
8662         (Is_Build_In_Place_Function): New function to determine whether an
8663         entity is a function whose calls should be handled as build-in-place.
8664         (Is_Build_In_Place_Function_Call): New function to determine whether an
8665         expression is a function call that should handled as build-in-place.
8666         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
8667         calls to build-in-place functions as the initialization of an allocator.
8668         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
8669         handling calls to build-in-place functions in contexts that do not
8670         involve init of a separate object (for example, actuals of subprogram
8671         calls).
8672         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
8673         handling calls to build-in-place functions as the initialization of an
8674         object declaration.
8675         (Detect_Infinite_Recursion): Add explicit parameter Process to
8676         instantiation of Traverse_Body to avoid unreferenced warning.
8677         (Check_Overriding_Inherited_Interfaces): Removed.
8678         (Register_Interface_DT_Entry): Code cleanup.
8679         (Register_Predefined_DT_Entry): Code cleanup.
8680         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
8681         inlined statements if within a transient scope.
8682         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
8683         formal parameters with occurrences of actuals in inlined body, establish
8684         visibility on the proper view of the actual's subtype for the body's
8685         context.
8686         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
8687         compatibility mode and we have an imported CPP subprogram because
8688         for now we assume that imported CPP primitives correspond with
8689         objects whose constructor is in the CPP side (and therefore we
8690         don't need to generate code to register them in the dispatch table).
8691         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
8692         aligned selected component.
8693         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
8694         the actual of an in-mode parameter is a type conversion.
8695         (Expand_Actuals): If the call does not come from source and the actual
8696         is potentially misaligned, let gigi handle it rather than rejecting the
8697         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
8698         Class Wide types as returning by reference independantly of their
8699         controlled status since with HIE runtimes class wide types are not
8700         potentially controlled anymore.
8701
8702 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
8703
8704         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
8705         references that are private components of the protected object.
8706         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
8707         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
8708         instantiation to deal with warnings.
8709         (Initialize_Protection): If expression for priority is non-static, use
8710         System_Priority as its expected type, in case the expression has not
8711         been analyzed yet.
8712
8713 2006-10-31  Robert Dewar  <dewar@adacore.com>
8714
8715         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
8716         initialization of Homonym_Len.
8717         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
8718         names from fully qualified name. Fixes problem of duplicate
8719         external names differing only in the presence of such a block name.
8720
8721 2006-10-31  Thomas Quinot  <quinot@adacore.com>
8722             Pablo Oliveira  <oliveira@adacore.com>
8723
8724         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
8725         subprogram Ids, even if they are not yet assigned.
8726         (Build_Subprogram_Id): It is now this function that will take care of
8727         calling Assign_Subprogram_Ids if necessary.
8728         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
8729         should be done only once they are assigned.
8730         (Build_From_Any_Function, case of tagged types): Add missing call to
8731         Allocate_Buffer.
8732         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
8733         type for an RACW type.
8734         (Add_RACW_Features): When processing an RACW declaration for which the
8735         designated type is already frozen, enforce E.2.2(14) rules immediately.
8736         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
8737         special reordering of controlling formals.
8738
8739         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
8740         associated stub type for an RACW type.
8741
8742 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
8743
8744         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
8745         fixed-point operations in an integer context, i.e. as operands of a
8746         conversion to an integer type, indicate that result must be rounded.
8747
8748 2006-10-31  Robert Dewar  <dewar@adacore.com>
8749
8750         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
8751         cases, pass the encoding method, since it is now required by the run
8752         time.
8753
8754         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
8755         assumption that Str'First = 1.
8756         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
8757         it on to the Value_Wide_Wide_Character call.
8758         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
8759         properly handles a string of the form quote-encoded_wide_char-quote.
8760
8761         * s-wchcnv.adb: Minor reformatting
8762
8763 2006-10-31  Javier Miranda  <miranda@adacore.com>
8764
8765         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8766         run-time membership test to ensure that the constructed object
8767         implements the target abstract interface.
8768
8769 2006-10-31  Robert Dewar  <dewar@adacore.com>
8770
8771         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
8772         Machine_Attribute pragma internally to implement the user pragma.
8773         Add processing for pragma Interface so that it is now completely
8774         equivalent to pragma Import.
8775
8776         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
8777         so that it can be applied to all entities, including record components
8778         and enumeration literals.
8779         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
8780         priority ranges are correct, verify compatibility against task
8781         dispatching and locking policies, and if everything is correct an entry
8782         is added to the table containing priority specific dispatching entries
8783         for this compilation unit.
8784         (Delay_Config_Pragma_Analyze): Delay processing
8785         Priority_Specific_Dispatching pragmas because when processing the
8786         pragma we need to access run-time data, such as the range of
8787         System.Any_Priority.
8788         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
8789         Allow pragma Unreferenced as a context item
8790         Add pragma Preelaborable_Initialization
8791         (Analyze_Pragma, case Interface): Interface is extended so that it is
8792         now syntactically and semantically equivalent to Import.
8793         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
8794         insertion characters.
8795         Add handling for Pragma_Wide_Character_Encoding
8796         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
8797         never supercedes a real restriction, and that a real restriction
8798         always supercedes a warning.
8799         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
8800         appropriate form.
8801
8802 2006-10-31  Bob Duff  <duff@adacore.com>
8803             Ed Schonberg  <schonberg@adacore.com>
8804             Robert Dewar  <dewar@adacore.com>
8805
8806         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
8807         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
8808         Is_Inherently_Limited_Type, because return-by-reference has no meaning
8809         in Ada 2005.
8810         (Find_Node_To_Be_Wrapped): Use new method of determining the result
8811         type of the function containing a return statement, because the
8812         Return_Type field was removed. We now use the Return_Applies_To field.
8813
8814         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
8815         (Build_Task_Image_Decl): If procedure is not called from an
8816         initialization procedure, indicate that function that builds task name
8817         uses the sec. stack. Otherwise the enclosing initialization procedure
8818         will carry the indication.
8819         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
8820         N_Object_Declaration instead.
8821         (Kill_Dead_Code): New interface to implement -gnatwt warning for
8822         conditional dead code killed, and change implementation accordingly.
8823         (Insert_Actions): Add N_Return_Object_Declaration case.
8824         Correct comment to mention N_Extension_Aggregate node.
8825         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
8826         attempts to save information for global variables which cannot be
8827         safely tracked.
8828         (Get_Current_Value_Condition): Handle conditions the other way round
8829         (constant on left). Also handle right operand of AND and AND THEN
8830         (Set_Current_Value_Condition): Corresponding changes
8831         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
8832         (Get_Current_Value_Condition): Handle simple boolean operands
8833         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
8834         (Get_Current_Value_Condition): If the variable reference is within an
8835         if-statement, does not appear in the list of then_statments, and does
8836         not come from source, treat it as being at unknown location.
8837         (Get_Current_Value_Condition): Enhance to allow while statements to be
8838         processed as well as if statements.
8839         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
8840         come from source.
8841         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
8842         of loop. This is safe now that we fixed Kill_Current_Values.
8843         (OK_To_Do_Constant_Replacement): Check whether current scope is
8844         Standard, before examining outer scopes.
8845
8846 2006-10-31  Vincent Celier  <celier@adacore.com>
8847
8848         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
8849         When True, apply VMS treatment to children of packages A, G, I and S.
8850         For F320-016
8851
8852         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
8853
8854 2006-10-31  Robert Dewar  <dewar@adacore.com>
8855             Ed Schonberg  <schonberg@adacore.com>
8856
8857         * freeze.adb: Add handling of Last_Assignment field
8858         (Warn_Overlay): Supply missing continuation marks in error msgs
8859         (Freeze_Entity): Add check for Preelaborable_Initialization
8860
8861         * g-comlin.adb: Add Warnings (Off) to prevent new warning
8862
8863         * g-expect.adb: Add Warnings (Off) to prevent new warning
8864
8865         * lib-xref.adb: Add handling of Last_Assignment field
8866         (Generate_Reference): Centralize handling of pragma Obsolescent here
8867         (Generate_Reference): Accept an implicit reference generated for a
8868         default in an instance.
8869         (Generate_Reference): Accept a reference for a node that is not in the
8870         main unit, if it is the generic body corresponding to an subprogram
8871         instantiation.
8872
8873         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
8874
8875         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
8876         -gnatwq/Q.
8877         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
8878         exception handler.
8879         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
8880         use clauses, to avoid messages on packages used to qualify, and also
8881         to avoid messages from obsolescent units.
8882         (Warn_On_Useless_Assignments): Don't generate messages for imported
8883         and exported variables.
8884         (Warn_On_Useless_Assignments): New procedure
8885         (Output_Obsolescent_Entity_Warnings): New procedure
8886         (Check_Code_Statement): New procedure
8887
8888         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
8889         Change name Is_Ada_2005 to Is_Ada_2005_Only
8890         (Last_Assignment): New field for useless assignment warning
8891
8892 2006-10-31  Olivier Hainque  <hainque@adacore.com>
8893
8894         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
8895         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
8896
8897 2006-10-31  Bob Duff  <duff@adacore.com>
8898             Robert Dewar  <dewar@adacore.com>
8899             Ed Schonberg  <schonberg@adacore.com>
8900
8901         * g-awk.adb (Default_Session, Current_Session): Compile this file in
8902         Ada 95 mode, because it violates the new rules for AI-318.
8903
8904         * g-awk.ads: Use overloaded subprograms in every case where we used to
8905         have a default of Current_Session. This makes the code closer to be
8906         correct for both Ada 95 and 2005.
8907
8908         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
8909         code, relying on the fact that the compiler generates a warning
8910         instead of an error in -gnatg mode.
8911
8912         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
8913         E_Return_Statement entity kind.
8914         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
8915
8916         * par.adb (P_Interface_Type_Definition): Addition of one formal to
8917         report an error if the reserved word abstract has been previously found.
8918         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
8919
8920         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
8921         parenthesized range attribute usage
8922         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
8923
8924         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
8925         in the syntax for extended_return_statement. This is not in the latest
8926         RM, but the ARG is expected to issue an AI allowing this.
8927         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
8928         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
8929         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
8930         P_Return_Statement): Parse the new syntax for extended_return_statement.
8931
8932         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
8933         Output_End_Missing): Add error-recovery code for the new
8934         extended_return_statement syntax; that is, the new E_Return entry on
8935         the scope stack.
8936
8937         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
8938         limited to nonlimited, because otherwise we violate the new Ada 2005
8939         rules about returning limited types in function Create_AST_Handler in
8940         s-asthan.adb.
8941
8942         * sem.adb (Analyze): Add cases for new node kinds
8943         N_Extended_Return_Statement and N_Return_Object_Declaration.
8944
8945         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
8946         type is in the same category as type of context before applying check,
8947         to prevent anomalies in instantiations.
8948         (Resolve_Aggregate): Remove test for limited components in aggregates.
8949         It's unnecessary in Ada 95, because if it has limited components, then
8950         it must be limited. It's wrong in Ada 2005, because limited aggregates
8951         are now allowed.
8952         (Resolve_Record_Aggregate): Move check for limited types later, because
8953         OK_For_Limited_Init requires its argument to have been resolved.
8954         (Get_Value): When copying the component default expression for a
8955         defaulted association in an aggregate, use the sloc of the aggregate
8956         and not that of the original expression, to prevent spurious
8957         elaboration errors, when the expression includes function calls.
8958         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
8959         were missing. We also didn't handle qualified expressions. Now also
8960         allow function calls. Use new common routine OK_For_Limited_Init.
8961         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
8962         with space can upper case letter).
8963
8964         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
8965         Has_Static_Discriminants flag
8966         (Record_Type_Declaration): Diagnose an attempt to declare an interface
8967         type with discriminants.
8968         (Process_Range_Expr_In_Decl): Do validity checks on range
8969         (Build_Discriminant_Constraints): Use updated form of
8970         Denotes_Discriminant.
8971         (Process_Subtype): If the subtype is a private subtype whose full view
8972         is a concurrent subtype, introduce an itype reference to prevent scope
8973         anomalies in gigi.
8974         (Build_Derived_Record_Type, Collect_Interface_Primitives,
8975         Record_Type_Declaration):  The functionality of the subprograms
8976         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
8977         is now performed by a single routine.
8978         (Build_Derived_Record_Type): If the type definition includes an explicit
8979         indication of limitedness, then the type must be marked as limited here
8980         to ensure that any access discriminants will not be treated as having
8981         a local anonymous access type.
8982         (Check_Abstract_Overriding): Issue a detailed error message when an
8983         abstract subprogram was not overridden due to incorrect mode of its
8984         first parameter.
8985         (Analyze_Private_Extension_Declaration): Add support for the analysis of
8986         synchronized private extension declarations. Verify that the ancestor is
8987         a limited or synchronized interface or in the generic case, the ancestor
8988         is a tagged limited type or synchronized interface and all progenitors
8989         are either limited or synchronized interfaces.
8990         Derived_Type_Declaration): Check for presence of private extension when
8991         dealing with synchronized formal derived types.
8992         Process_Full_View): Enchance the check done on the usage of "limited" by
8993         testing whether the private view is synchronized.
8994         Verify that a synchronized private view is completed by a protected or
8995         task type.
8996         (OK_For_Limited_Init_In_05): New function.
8997         (Analyze_Object_Declaration): Move check for limited types later,
8998         because OK_For_Limited_Init requires its argument to have been resolved.
8999         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
9000         in order to alleviate the upward compatibility introduced by AI-318.
9001         (Constrain_Corresponding_Record): If the constraint is for a component
9002         subtype, mark the itype as frozen, to avoid out-of-scope references to
9003         discriminants in the back-end.
9004         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
9005         this subprogram against wrong sources.
9006         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
9007         discriminant of limited type completed with a protected type, when the
9008         discriminant is used to constrain a private component of the type, and
9009         expansion is disabled.
9010         (Find_Type_Of_Object): Do not treat a return subtype that is an
9011         anonymous subtype as a local_anonymous_type, because its accessibility
9012         level is the return type of the enclosing function.
9013         (Check_Initialization): In -gnatg mode, turn the error "cannot
9014         initialize entities of limited type" into a warning.
9015         (OK_For_Limited_Init): Return true for generated nodes, since it
9016         sometimes violates the legality rules.
9017         (Make_Incomplete_Declaration): If the type for which an incomplete
9018         declaration is created happens to be the currently visible entity,
9019         preserve the homonym chain when removing it from visibility.
9020         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
9021         inherited subprograms.
9022         (Access_Definition): If this is an access to function that is the return
9023         type of an access_to_function definition, context is a type declaration
9024         and the scope of the anonymous type is the current one.
9025         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
9026         incomplete subtype to the set of private dependents of the original
9027         incomplete type.
9028         (Constrain_Discriminated_Type): Emit an error message whenever an
9029         incomplete subtype is being constrained.
9030         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
9031         corresponding subtype of the full view of the original incomplete type.
9032         (Check_Incomplete): Properly detect invalid usage of incomplete types
9033         and subtypes.
9034
9035 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9036
9037         * g-catiio.ads, g-catiio.adb (Value): New function.
9038         Given an input String, try and parse a valid Time value.
9039
9040 2006-10-31  Vincent Celier  <celier@adacore.com>
9041
9042         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
9043         Integer_Address arithmetic, as in Set_Valid.
9044
9045 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9046             Robert Dewar  <dewar@adacore.com>
9047
9048         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
9049         handling executable extension manually and duplicating code.
9050
9051         * make.adb: Implement new -S switch
9052         (Gnatmake): Use new function Osint.Executable_Name instead
9053         of handling executable extension manually.
9054
9055         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
9056         is specified, the executable name ends with this suffix.
9057         Take advantage of Osint.Executable_Name instead of duplicating code.
9058
9059         * switch-m.adb: Recognize new gnatmake -S switch
9060
9061         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
9062         variable.
9063         (Get_Target_Parameters): Set Executable_Extension_On_Target if
9064         available.
9065
9066         * makeusg.adb: Add line for gnatmake -S switch
9067
9068 2006-10-31  Vincent Celier  <celier@adacore.com>
9069
9070         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
9071         call it with -static-libgcc, as there are some platforms, such as
9072         Darwin, where one of these two switches is compulsory to link.
9073
9074 2006-10-31  Vincent Celier  <celier@adacore.com>
9075
9076         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
9077         instead of ADA_PROJECT_PATH, for the project path.
9078         (Gnatls): When displaying the project path directories, use host dir
9079         specs.
9080
9081         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
9082         names in the project path, as absolute paths may correspond to
9083         multi-valued VMS logical names.
9084
9085 2006-10-31  Vincent Celier  <celier@adacore.com>
9086
9087         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
9088         absolute path name.
9089         (Locate_Regular_File): Ditto
9090         (Change_Dir): Remove, no longer used
9091         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
9092         on Windows. Get it calling Get_Current_Dir.
9093         (OpenVMS): Remove imported boolean, no longer needed.
9094         (Normalize_Pathname)[VMS]: Do not resolve directory names.
9095         (Pid_To_Integer): New function to convert a Process_Id to  Integer
9096
9097 2006-10-31  Thomas Quinot  <quinot@adacore.com>
9098
9099         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
9100         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
9101         to No_Socket.
9102         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
9103         W_Sig_Socket.
9104
9105 2006-10-31  Robert Dewar  <dewar@adacore.com>
9106
9107         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
9108         initial letter o as a zero.
9109
9110 2006-10-31  Robert Dewar  <dewar@adacore.com>
9111
9112         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
9113
9114 2006-10-31  Robert Dewar  <dewar@adacore.com>
9115
9116         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
9117         variant records
9118         (Layout_Variant_Record): Retrieve the discriminants from the entity
9119         rather than from the type definition, because in the case of a full
9120         type for a private type we need to take the discriminants from the
9121         partial view.
9122         (Layout_Component_List): When applying the Max operator to variants with
9123         a nonstatic size, check whether either operand is static and scale that
9124         operand from bits to storage units before applying Max.
9125         (Layout_Type): In VMS, if a C-convention access type has no explicit
9126         size clause (and does not inherit one in the case of a derived type),
9127         then the size is reset to 32 from 64.
9128
9129 2006-10-31  Vincent Celier  <celier@adacore.com>
9130
9131         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
9132         its file has already been loaded, according to the unit being loaded,
9133         not to the current value of Multiple_Unit_Index.
9134
9135 2006-10-31  Thomas Quinot  <quinot@adacore.com>
9136             Eric Botcazou  <ebotcazou@adacore.com>
9137             Arnaud Charlet  <charlet@adacore.com>
9138
9139         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
9140         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
9141         possible.
9142         (a-except.o): Pass it to the compiler.
9143         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
9144         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
9145         a-calend-mingw.adb version.
9146
9147         * Makefile.rtl: Added s-dsaser.
9148         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
9149         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
9150         Ada.Dispatching.Round_Robin.
9151         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
9152
9153         * Make-lang.in: Remove all references to gt-ada-decl.h.
9154         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
9155         sources.
9156         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
9157         Update dependencies.
9158
9159         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
9160
9161 2006-10-31  Vincent Celier  <celier@adacore.com>
9162
9163         * mlib-utl.adb (Initialized): Remove, no longer used
9164         (Initialize): Remove, no longer used
9165         (Ar): If Ar_Exec is null, get the location of the archive builder and,
9166         if there is one, the archive indexer. Fail if the archive builder cannot
9167         be found.
9168         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
9169         be found.
9170
9171 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9172
9173         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
9174         Process_Body_Clauses): If the context of a body includes a use clause
9175         for P.Q then a with_clause for P in the same body is not redundant,
9176         even if the spec also has a with_clause on P.
9177         Add missing continuation mark to error msg
9178         (Build_Limited_Views): A limited view of a type is tagged if its
9179         declaration includes a record extension.
9180         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
9181         node, even if the subunit has errors. This avoids malfunction by
9182         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
9183         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
9184         generation of obsolescent messages for with statements (cannot do
9185         this too early, or we cannot implement avoiding the messages in the
9186         case of obsolescent units withing obsolescent units).
9187         (Install_Siblings): If the with_clause is on a remote descendant of
9188         an ancestor of the current compilation unit, find whether there is
9189         a sibling child unit that is immediately visible.
9190         (Remove_Private_With_Clauses): New procedure, invoked after completing
9191         the analysis of the private part of a nested package, to remove from
9192         visibility the private with_clauses of the enclosing package
9193         declaration.
9194         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
9195         now centralized in Generate_Reference.
9196         (Install_Limited_Context_Clauses): Remove superfluous error
9197         message associated with unlimited view visible through use
9198         and renamings. In addition, at the point in which the error
9199         is reported, we add the backslash to the text of the error
9200         to ensure that it is reported as a single error message.
9201         Use new // insertion for some continuation messages
9202         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
9203         to create implicit with_clause for parent unit mentioned in original
9204         limited_with_clause.
9205         (Install_Limited_With_Unit): Set entity of parent identifiers if the
9206         unit is a child unit. For ASIS queries.
9207         (Analyze_Subunit): If the subunit appears within a child unit, make all
9208         ancestor child units directly visible again.
9209
9210 2006-10-31  Robert Dewar  <dewar@adacore.com>
9211
9212         * par-ch10.adb (P_Context_Clause): Minor error message fix
9213
9214 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9215             Javier Miranda  <miranda@adacore.com>
9216
9217         * par-ch12.adb: Grammar update and cleanup.
9218         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
9219         support for synchronized derived type definitions.
9220         Add the new actual Abstract_Present to every call to
9221         P_Interface_Type_Definition.
9222         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
9223         a formal object declaration with an access definition or a subtype mark
9224         with a null exclusion.
9225         (P_Generic_Association): Handle association with box, and others_choice
9226         with box, to support Ada 2005 partially parametrized formal packages.
9227
9228 2006-10-31  Robert Dewar  <dewar@adacore.com>
9229             Javier Miranda  <miranda@adacore.com>
9230
9231         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
9232         (P_Type_Declaration): Remove barrier against the reserved word "limited"
9233         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
9234         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
9235         private extensions.
9236         (P_Type_Declaration): Add the new actual Abstract_Present to every call
9237         to P_Interface_Type_Definition.
9238         (P_Interface_Type_Definition): Addition of one formal to report an error
9239         if the reserved word abstract has been previously found.
9240         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
9241         object renaming declaration with an access definition or subtype mark
9242         with a possible null exclusion.
9243
9244         * par-ch9.adb: Minor error msg fix
9245
9246         * par-load.adb: Add missing continuation mark to error msg
9247
9248         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
9249
9250 2006-10-31  Vincent Celier  <celier@adacore.com>
9251
9252         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
9253         unknown attribute in unknown package or in package that does not need
9254         to be checked.
9255         (Parse_Package_Declaration): Do not issue warning for unknown package in
9256         quiet output.
9257
9258 2006-10-31  Vincent Celier  <celier@adacore.com>
9259
9260         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
9261         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
9262         Packages_To_Check.
9263
9264 2006-10-31  Vincent Celier  <celier@adacore.com>
9265
9266         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
9267         on VMS, change "__" to '.' before checking the name.
9268         (Record_Ada_Source): Always add the source file name in the list of
9269         of sources, even if it is not the first time, as it is for another
9270         source index.
9271         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
9272         dot, instead of replacing only the first '_'.
9273
9274         * prj-part.adb (Parse): Convert project file path to canonical form
9275
9276         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
9277         extended, the project id of the project extending it is recorded in its
9278         data, even when it has already been processed as an imported project.
9279
9280 2006-10-31  Robert Dewar  <dewar@adacore.com>
9281
9282         * repinfo.adb (List_Entities): Don't list entities from renaming
9283         declarations.
9284
9285 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9286             Robert Dewar  <dewar@adacore.com>
9287
9288         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
9289         only a restriction warning is active for the given restriction. This is
9290         desirable because we do not want to modify code in the case where only
9291         a warning is set.
9292         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
9293         causes overriding of real restrictions.
9294         Take advantage of new No_Restrictions constant.
9295
9296         * raise.h: (__gnat_set_globals): Change profile.
9297
9298 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9299
9300         * rtsfind.adb: Remove s-polint from comment as it exists no more.
9301
9302         * rtsfind.ads: 
9303         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
9304         Move all the entities in obsolete package System.PolyORB_Interface to
9305         System.Partition_Interface.
9306         (RE_Storage_Size): New function in System.Tasking.
9307         (RE_Get_Ceiling): New entity.
9308         (RE_Set_Ceiling): New entity.
9309         (RO_PE_Get_Ceiling): New entity.
9310         (RO_RE_Set_Ceiling): New entity.
9311         (Inherit_CPP_DT): New entity
9312
9313 2006-10-31  Robert Dewar  <dewar@adacore.com>
9314
9315         * scng.adb (Scan, case of numeric literal): Better msg for identifier
9316         starting with a digit.
9317
9318 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9319             Thomas Quinot  <quinot@adacore.com>
9320             Javier Miranda  <miranda@adacore.com>
9321             Gary Dismukes  <dismukes@adacore.com>
9322
9323         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
9324         properly an attempt to apply Unchecked_Access to a protected operation.
9325         (OK_Self_Reference): New subprogram to check the legality of an access
9326         attribute whose prefix is the type of an enclosing aggregate.
9327         Generalizes previous mechanism to handle attribute references nested
9328         arbitrarily deep within the aggregate.
9329         (Analyze_Access_Attribute): An access attribute whose prefix is a type
9330         can appear in an aggregate if this is a default-initialized aggregate
9331         for a self-referential type.
9332         (Resolve_Attribute, case Access): Ditto.
9333         Add support for new implementation defined attribute Stub_Type.
9334         (Eval_Attribute, case Attribute_Stub_Type): New case.
9335         (Analyze_Attribute, case Attribute_Stub_Type): New case.
9336         (Stream_Attribute_Available): Implement using new subprogram from
9337         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
9338         Has_Specified_Stream_Attribute flag.
9339         Disallow Storage_Size and Storage_Pool for access to subprogram
9340         (Resolve_Attribute, case 'Access et al): Take into account anonymous
9341         access types of return subtypes in extended return statements. Remove
9342         accessibility checks on anonymous access types when Unchecked_Access is
9343         used.
9344         (Analyze_Attribute): Add support for the use of 'Class to convert
9345         a class-wide interface to a tagged type.
9346         Add support for the attribute Priority.
9347         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
9348         whether the designated type is discriminated with a constrained partial
9349         view and require static matching in that case.
9350         Add local variable Des_Btyp. The Designated_Type
9351         of an access to incomplete subtype is either its non-limited view if
9352         coming from a limited with or its etype if regular incomplete subtype.
9353
9354         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
9355         Fix predicate to identify and allow cases of (expander-generated)
9356         references to tag of designated object of a RACW.
9357         (Validate_Static_Object_Name): In Ada 2005, a formal object is
9358         non-static, and therefore cannot appear as a primary in a preelaborable
9359         package.
9360         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
9361         Has_Read_Write_Attributes.
9362         (Has_Read_Write_Attributes): Reimplement in termes of
9363         Has_Stream_Attribute_Definition.
9364         (Missing_Read_Write_Attributes): When checking component types in a
9365         record, unconditionally call Missing_Read_Write_Attributes recursively
9366         (remove guard checking for Is_Record_Type / Is_Access_Type).
9367
9368 2006-10-31  Robert Dewar  <dewar@adacore.com>
9369
9370         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
9371         useless assignments here and conditionalize it on absence of exception
9372         handlers.
9373         (Analyze_Exception_Handlers): Small code reorganization of error
9374         detection code, for new handling of formal packages.
9375
9376 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9377             Hristian Kirtchev  <kirtchev@adacore.com>
9378
9379         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
9380         that has been constant-folded, preserve information of original tree,
9381         for ASIS uses.
9382         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
9383         generated private extension declaration if the formal derived type is
9384         synchronized. Carry synchronized present over to the generated private
9385         extension.
9386         (Validate_Derived_Type_Instance): Ensure that the actual of a
9387         synchronized formal derived type is a synchronized tagged type.
9388         (Instantiate_Formal_Package): When creating the instantiation used to
9389         validate the actual package of a formal declared without a box, check
9390         whether the formal itself depends on a prior actual.
9391         (Instantiate_Formal_Subprogram): Create new entities for the defining
9392         identifiers of the formals in the renaming declaration, for ASIS use.
9393         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
9394         a renaming declaration or a subtype declaration for an actual in an
9395         instance, capture location information of declaration in generic, for
9396         ASIS use.
9397         (Instantiate_Formal_Package): Add comments on needed additional tests.
9398         AI-317 (partial parametrization) is fully implemented.
9399         (Validate_Private_Type_Instance): Add check for actual which
9400         must have preelaborable initialization
9401         Use new // insertion for some continuation messages
9402         (Analyze_Formal_Object_Declaration): Change usage of Expression to
9403         Default_Expression. Add type retrieval when the declaration has an
9404         access definition. Update premature usage of incomplete type check.
9405         (Check_Access_Definition): New subsidiary routine. Check whether the
9406         current compilation version is Ada 05 and the supplied node has an
9407         access definition.
9408         (Instantiate object): Alphabetize local variables. Handle the creation
9409         of new renaming declarations with respect to the kind of definition
9410         used - either an access definition or a subtype mark. Guard against
9411         unnecessary error message in the context of anonymous access types after
9412         they have been resolved. Add check for required null exclusion in a
9413         formal object declaration.
9414         (Switch_View): A private subtype of a non-private type needs to be
9415         switched (the base type can have been switched without its private
9416         dependents because of the last branch of Check_Private_View.
9417         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
9418         value from BT.
9419         (Instantiate_Type): Emit an error message whenever a class-wide type of
9420         a tagged incomplete type is used as a generic actual.
9421         (Find_Actual_Type): Extend routine to handle a component type in a child
9422         unit that is imported from a formal package in a parent.
9423         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
9424         agree on constrainedness, rather than checking against ultimate ancestor
9425         (Instantiate_Subprogram_Body): Create a cross-reference link to the
9426         generic body, for navigation purposes.
9427
9428 2006-10-31  Robert Dewar  <dewar@adacore.com>
9429             Thomas Quinot  <quinot@adacore.com>
9430
9431         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
9432         type.
9433         (New_Stream_Subprogram): When processing an attribute definition clause
9434         for a stream-oriented subprogram, record an entity node occurring at
9435         the point of clause to use for checking the visibility of the clause,
9436         as defined by 8.3(23) as amended by AI-195.
9437         (New_Stream_Subprogram): New procedure, factoring behaviour from both
9438          New_Stream_Function and New_Stream_Procedure.
9439         (New_Stream_Function, New_Stream_Procedure): Removed.
9440         (Analyze_Attribute_Definition_Clause, case Address): Check new
9441         Alignment_Check check
9442
9443 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9444             Javier Miranda  <miranda@adacore.com>
9445             Robert Dewar  <dewar@adacore.com>
9446
9447         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
9448         generate the same errors compiling under -gnatc.
9449         (Try_Object_Operation): If no candidate interpretation succeeds, but
9450         there is at least one primitive operation with the right name, report
9451         error in call rather than on a malformed selected component.
9452         (Analyze_Selected_Component): If the prefix is an incomplete type from
9453         a limited view, and the full view is available, use the full view to
9454         determine whether this is a prefixed call to a primitive operation.
9455         (Operator_Check): Verify that a candidate interpretation is a binary
9456         operation before checking the type of its second formal.
9457         (Analyze_Call): Add additional warnings for function call contexts not
9458         yet supported.
9459         (Analyze_Allocator): Move the check for "initialization not allowed for
9460         limited types" after analyzing the expression. This is necessary,
9461         because OK_For_Limited_Init looks at the structure of the expression.
9462         Before analysis, we don't necessarily know what sort of expression it
9463         is. For example, we don't know whether F(X) is a function call or an
9464         indexed component; the former is legal in Ada 2005; the latter is not.
9465         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
9466         were missing. We also didn't handle qualified expressions. Now also
9467         allow function calls. Use new common routine OK_For_Limited_Init.
9468         (Analyze_Type_Conversion): Do not perform some legality checks in an
9469         instance, because the error message will be redundant or spurious.
9470         (Analyze_Overloaded_Selected_Component): Do not do style check when
9471         setting an entity, since we do not know it is the right entity yet.
9472         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
9473         (Analyze_Overloaded_Selected_Component): Same change
9474         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
9475         since regular incomplete subtypes are transformed into corresponding
9476         subtypes of their full views.
9477         (Complete_Object_Operation): Treat name of transformed subprogram call
9478         as coming from source, for browsing purposes.
9479         (Try_Primitive_Operation): If formal is an access parameter, compare
9480         with base type of object to determine whether it is a primitive
9481         operation.
9482         (Operator_Check): If no interpretation of the operator matches, check
9483         whether a use clause on any candidate might make the operation legal.
9484         (Try_Class_Wide_Operation): Check whether the first parameter is an
9485         access type whose designated type is class-wide.
9486
9487 2006-10-31  Robert Dewar  <dewar@adacore.com>
9488             Ed Schonberg  <schonberg@adacore.com>
9489             Gary Dismukes  <dismukes@adacore.com>
9490
9491         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
9492         warn on infinite loops.
9493         Add \\ to some continuation messages
9494         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
9495         (Process_Bounds): If the bounds are integer literals that result from
9496         constant-folding, and they carry a user-defined type, preserve that type
9497         rather than treating this as an integer range.
9498         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
9499         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
9500         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
9501         left hand side of assignment.
9502         (Analyze_Assignment): Add suport to manage assigments to the attribute
9503         priority of a protected object.
9504         (Check_Possible_Current_Value_Condition): Allow fully qualified names
9505         not just identifiers.
9506         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
9507         or AND THEN for possible tracking.
9508         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
9509         case of while loops so we can track values in the loop body.
9510
9511 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9512             Hristian Kirtchev  <kirtchev@adacore.com>
9513             Bob Duff  <duff@adacore.com>
9514
9515         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
9516         procedure cannot be a protected operation (it is a basic_declaration,
9517         not a subprogram_declaration).
9518         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
9519         Subp. Add logic for entry processing.
9520         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
9521         Determine whether an entry or subprogram of a protected or task type
9522         override an inherited primitive of an implemented interface.
9523         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
9524         Update the actual used in calls to Check_Overriding_Indicator.
9525         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
9526         generate the proper reference to the parent unit, for cross-reference.
9527         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
9528         Is_Formal.
9529         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
9530         (Add_Extra_Formal): Revise procedure to allow passing in associated
9531         entity, scope, and name suffix, and handle setting of the new
9532         Extra_Formals field.
9533         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
9534         pass new parameters. Add support for adding the new extra access formal
9535         for functions whose calls are treated as build-in-place.
9536         (Analyze_A_Return_Statement): Correct casing in error message.
9537         Move Pop_Scope to after Analyze_Function_Return, because an extended
9538         return statement really is a full-fledged scope. Otherwise, visibility
9539         doesn't work right. Correct use of "\" for continuation messages.
9540         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
9541         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
9542         the node doesn't get properly marked as analyzed.
9543         (Analyze_Subprogram_Body): If subprogram is a function that returns
9544         an anonymous access type that denotes a task, build a Master Entity
9545         for it.
9546         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
9547         proper usage of null exclusion in a result definition.
9548         (Process_Formals): Code cleanup and new error message.
9549         (Process_Formals): Detect incorrect application of null exclusion to
9550         non-access types.
9551         (Conforming_Types): Handle conformance between [sub]types and itypes
9552          generated for entities that have null exclusions applied to them.
9553         (Maybe_Primitive_Operation): Add an additional type retrieval when the
9554          base type is an access subtype. This case arrises with null exclusions.
9555         (New_Overloaded_Entity): Do not remove the overriden entity from the
9556         homonym chain if it corresponds with an abstract interface primitive.
9557         (Process_Formals): Replace membership test agains Incomplete_Kind with a
9558         call to the synthesized predicate Is_Incomplete_Type.
9559         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
9560         primitives.
9561         (Analyze_Subprogram_Declaration): Check that abstract interface
9562         primitives are abstract or null.
9563         (Analyze_Subprogram_Specification): Remove previous check for abstract
9564         interfaces because it was not complete.
9565         (Has_Interface_Formals): Removed.
9566
9567 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9568             Javier Miranda  <miranda@adacore.com>
9569
9570         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
9571         of Analyze_Package_Body, to create Itype references for anonymous
9572         access types created in the package declaration, whose designated types
9573         may have only a limited view.
9574         (Analyze_Package_Specification): For the private part of a nested
9575         package, install private_with_clauses of enclosing compilation unit if
9576         we are in its visible part.
9577         (Declare_Inherited_Private_Subprograms): Complete barrier
9578         to ensure that the primitive operation has an alias to some parent
9579         primitive. This is now required because, after the changes done for the
9580         implementation of abstract interfaces, the contents of the list of
9581         primitives has entities whose alias attribute references entities of
9582         such list of primitives.
9583         (Analyze_Package_Specification): Simplify code that handles parent units
9584         of instances and formal packages.
9585         (Uninstall_Declarations): Check the convention consistency among
9586         primitive overriding operations of a tagged record type.
9587
9588 2006-10-31  Robert Dewar  <dewar@adacore.com>
9589             Hristian Kirtchev  <kirtchev@adacore.com>
9590             Javier Miranda  <miranda@adacore.com>
9591             Ed Schonberg  <schonberg@adacore.com>
9592
9593         * sem_ch8.adb: Minor error msg rewording
9594         (Undefined): When checking for misspellings, invert arguments (to get
9595         expected and found set right)
9596         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
9597         (Analyze_Generic_Renaming): Same fix
9598         (Use_One_Package): Do not take into account the internal entities of
9599         abstract interfaces during the analysis of entities that are marked
9600         as potentially use-visible.
9601         (Find_Type): Handle the case of an attribute reference for
9602         implementation defined attribute Stub_Type (simply let the analysis of
9603         the attribute reference rewrite it).
9604         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
9605         type that appears in a Use_Type clause.
9606         (Analyze_Object_Renaming): Add support for renaming of the Priority
9607         attribute.
9608         (Find_Type): In Ada 2005, a task type can be used within its own body,
9609         when it appears in an access definition.
9610         (Analyze_Object_Renaming): Remove warning on null_exclusion.
9611         (Analyze_Object_Renaming): Introduce checks for required null exclusion
9612          in a formal object declaration or in a subtype declaration.
9613         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
9614         (Check_Null_Exclusion): New local routine to
9615         Analyze_Subprogram_Renaming. Check whether the formals and return
9616         profile of a renamed subprogram have required null exclusions when
9617         their counterparts of the renaming already impose them.
9618         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
9619         Determine whether an entity is inside a generic scope.
9620         (In_Open_Scope): First pass of documentation update.
9621         (Find_Expanded_Name): Add support for shadow entities associated with
9622         limited withed packages. This is required to handle nested packages.
9623         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
9624         that makes a renaming of a limited withed package illegal.
9625
9626 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9627             Ed Schonberg  <schonberg@adacore.com>
9628
9629         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
9630         Check_Overriding_Indicator.
9631         (Analyze_Task_Definition): Ditto.
9632         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
9633         (Check_Overriding_Indicator): To find overridden interface operation,
9634         examine only homonyms that have an explicit subprogram declaration, not
9635         inherited operations created by an unrelated type derivation.
9636         (Check_Overriding_Indicator): When checking for the presence of "null"
9637         in a procedure, ensure that the queried node is a procedure
9638         specification.
9639         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
9640         type when the formal is an access to variable.
9641         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
9642         (Analyze_Task_Type): Same addition
9643         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
9644         provide navigation capabilities for entries.
9645
9646 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
9647             Ed Schonberg  <schonberg@adacore.com>
9648             Javier Miranda  <miranda@adacore.com>
9649             Gary Dismukes  <dismukes@adacore.com>
9650
9651         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
9652         inherited from an interface ancestor by another interface in the
9653         context of an instance as 'late'.
9654         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
9655         of a call to a function that dispatches on access result.
9656         (Check_Dispatching_Operation): In case of late overriding of a primitive
9657         that covers abstract interface subprograms we register it in all the
9658         secondary dispatch tables associated with abstract interfaces.
9659         (Check_Dispatching_Call): Add check that a dispatching call is not made
9660         to a function with a controlling result of a limited type. This is a
9661         current implementation restriction.
9662         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
9663         (Check_Dispatching_Operation): Do no emit a warning if the controlling
9664         argument is an interface type that is a generic formal.
9665         (Is_Interface_Subprogram): Removed.
9666         (Check_Dispatching_Operation): If the subprogram is not a dispatching
9667         operation, check the formals to handle the case in which it is
9668         associated with an abstract interface type.
9669
9670 2006-10-31  Robert Dewar  <dewar@adacore.com>
9671             Ed Schonberg  <schonberg@adacore.com>
9672
9673         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
9674         Add new calls to this procedure during traversal
9675         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
9676         another unit if expansion is disabled.
9677
9678 2006-10-31  Robert Dewar  <dewar@adacore.com>
9679
9680         * sem_eval.adb (Compile_Time_Compare): Make use of information from
9681         Current_Value in the conditional case, to evaluate additional
9682         comparisons at compile time.
9683
9684 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9685             Hristian Kirtchev  <kirtchev@adacore.com>
9686             Javier Miranda  <miranda@adacore.com>
9687
9688         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
9689         subprogram type to provide better diagnostics in case of ambiguity.
9690         (Covers): Handle coverage of formal and actual anonymous access types in
9691         the context of generic instantiation.
9692         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
9693         abstract interface types; this is required to handle concurrent types
9694         with discriminants and abstract interface types.
9695         (Covers): Include type coverage of both regular incomplete subtypes and
9696         incomplete subtypes of incomplete type visibles through a limited with
9697         clause.
9698
9699 2006-10-31  Robert Dewar  <dewar@adacore.com>
9700             Hristian Kirtchev  <kirtchev@adacore.com>
9701             Ed Schonberg  <schonberg@adacore.com>
9702
9703         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
9704         messages for entities in packages which are not used.
9705         (Collect_Synchronized_Interfaces): New procedure.
9706         (Overrides_Synchronized_Primitive): New function.
9707         (Denotes_Discriminant): Extend predicate to apply to task types.
9708         Add missing continuation marks in error msgs
9709         (Unqualify): New function for removing zero or more levels of
9710         qualification from an expression. There are numerous places where this
9711         ought to be used, but we currently only deal properly with zero or one
9712         level.
9713         (In_Instance); The analysis of the actuals in the instantiation of a
9714         child unit is not within an instantiation, even though the parent
9715         instance is on the scope stack.
9716         (Safe_To_Capture_Value): Exclude the case of variables that are
9717         renamings.
9718         (Check_Obsolescent): Removed
9719         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
9720         is an aliased view, even when rewritten as a reference to the target
9721         object in an assignment.
9722         (Get_Subprogram_Entity): New function
9723         (Known_To_Be_Assigned): New function
9724         (Type_Access_Level): Compute properly the access level of a return
9725         subtype that is an anonymous access type.
9726         (Explain_Limited_Type): Correct use of "\" for continuation messages.
9727         (Is_Transfer): The new extended_return_statement causes a transfer of
9728         control.
9729         (Has_Preelaborable_Initialization): New function
9730         (Has_Null_Exclusion): New function. Given a node N, determine whether it
9731         has a null exclusion depending on its Nkind.
9732         Change Is_Lvalue to May_Be_Lvalue
9733         (May_Be_Lvalue): Extensive additional code to deal with subprogram
9734         arguments (IN parameters are not Lvalues, IN OUT parameters are).
9735         (Safe_To_Capture_Value): Extend functionality so it can be used for
9736         the current value condition case.
9737         (Has_Compatible_Alignment): New function
9738         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
9739         objects to handle the Ada 2005 case, where aliasedness no longer implies
9740         that the object is constrained. In particular, for dereferenced names,
9741         the designated object must be assumed to be unconstrained.
9742         (Kill_Current_Values): Properly deal with the case where we encounter
9743         a loop in the scope chain.
9744         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
9745         a value.
9746         (Compile_Time_Constraint_Error): Improve error message in error case
9747
9748         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
9749         associated with entities of abstract interface primitives.
9750         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
9751
9752 2006-10-31  Robert Dewar  <dewar@adacore.com>
9753
9754         * s-osinte-tru64.adb: 
9755         Mark Asm statements Volatile to prevent warnings (seems a
9756         reasonable change anyway)
9757         Fixes new warnings
9758
9759         * s-mastop-irix.adb: Add Volatile to Asm statements
9760         Suppresses warning, and seems appropriate in any case
9761
9762         * s-osinte-vms.adb: Add Volatile to Asm statement
9763
9764         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
9765
9766         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
9767         returned.
9768         Add call to Check_Code_Statement
9769
9770 2006-10-31  Robert Dewar  <dewar@adacore.com>
9771             Ed Schonberg  <schonberg@adacore.com>
9772             Bob Duff  <duff@adacore.com>
9773
9774         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
9775         Synchronized_Present): Add Formal_Derived_Type_Definition and
9776         Private_Extension_Declaration to the list of assertions.
9777         (Is_Entry_Barrier_Function): New flag
9778         (Has_Self_Reference): New flag on aggregates, to indicate that they
9779         contain a reference to the enclosing type, inserted through a default
9780         initialization.
9781         (Next_Rep_Item): Move from Node4 to Node5.
9782         (Entity): Add this field for N_Attribute_Definition_Clause.
9783         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
9784         (N_Return_Object_Declaration): Remove this node kind. We now use
9785         N_Object_Declaration instead.
9786         (Actual_Designated_Subtype): Move to a different place to make room in
9787         N_Extended_Return_Statement.
9788         (Procedure_To_Call): Move to a different place to make room in
9789         N_Extended_Return_Statement.
9790         (Return_Type): Removed this field to make room in return statements
9791         (both kinds).
9792         (Return_Statement_Entity): New field in return statements, in part to
9793         replace Return_Type, and in part to support the fact that return
9794         statements are now pushed on the scope stack during semantic analysis.
9795         (Return_Object_Declarations): New field to support extended return
9796         statements.
9797         (N_Extended_Return_Statement): New node for extended_return_statement
9798         nonterminal.
9799         (N_Return_Object_Declaration): New node for part of
9800         extended_return_statement nonterminal. Needed because all the necessary
9801         fields won't fit in N_Extended_Return_Statement.
9802         Generic_associations now carry the Box_Present flag, to indicate a
9803         default for an actual in a partially parametrized formal package.
9804
9805         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
9806         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
9807         and for the new predefined dispatching policies: EDF_Across_Priorities,
9808         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
9809         Introduce new name Stub_Type for implementation defined attribute.
9810         Add pragma Preelaborable_Initialization
9811         Add entry for Priority attribute.
9812         Add Pragma_Wide_Character_Encoding
9813         (Get_Convention_Name): Given a convention id, this function returns the
9814         corresponding name id from the names table.
9815
9816 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
9817             Robert Dewar  <dewar@adacore.com>
9818             Bob Duff  <duff@adacore.com>
9819
9820         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
9821         print null exclusion twice in the case of an access definition,
9822         Implement new -gnatL switch
9823         Remove N_Return_Object_Declaration. We now use
9824         N_Object_Declaration instead. Implement the case for
9825         N_Extended_Return_Statement. Alphabetize the cases.
9826         Add cases for new nodes N_Extended_Return_Statement and
9827         N_Return_Object_Declaration. The code is not yet written.
9828         Update the output for N_Formal_Object_Declaration
9829         and N_Object_Renaming_Declaration.
9830         (Write_Itype): Account for the case of a modular integer subtype whose
9831         base type is private.
9832
9833 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
9834
9835         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
9836         Remove elaboration code, now done in the binder.
9837
9838         * s-rident.ads: Make this unit Preelaborate.
9839         (No_Restrictions): New constant used to clean up code and follow
9840         preelaborate constraints.
9841
9842         * s-stalib.adb: 
9843         Add System.Restrictions dependence, referenced directly from the
9844         binder generated file.
9845
9846 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
9847
9848         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
9849         True when AAMP extended floating-point is in use (48-bit). Change type
9850         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
9851         the two byte array types on AFloat. Change type of IV_Ilf overlay
9852         variable from Byte8 to ByteLF. Add appropriate initializations of
9853         floating-point overlays for AAMP cases.
9854
9855 2006-10-31  Javier Miranda  <miranda@adacore.com>
9856
9857         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
9858         (Get_Ceiling): New subprogram that returns
9859         the ceiling priority of the protected object.
9860         (Set_Ceiling): New subprogram that sets the new ceiling priority of
9861         the protected object.
9862
9863         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
9864
9865         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
9866
9867 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
9868
9869         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
9870         requeuing to the same protected object to give higher priority tasks
9871         the opportunity to execute.
9872
9873 2006-10-31  Robert Dewar  <dewar@adacore.com>
9874
9875         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
9876         add more precise check for the character sequence that follows '[' to
9877         avoid possible confusion in case if '[' is the last character of a
9878         string literals.
9879         (Scan_Wide): Always allow brackets encoding
9880
9881 2006-10-31  Olivier Hainque  <hainque@adacore.com>
9882
9883         * s-stchop.ads: make this unit preelaborate. This is desirable in
9884         general and made mandatory by the use of this unit by s-taprop which
9885         is itself preelaborate.
9886
9887         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
9888         Td_Events component.
9889
9890 2006-10-31  Vincent Celier  <celier@adacore.com>
9891
9892         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
9893         in file names.
9894
9895 2006-10-31  Vincent Celier  <celier@adacore.com>
9896
9897         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
9898
9899 2006-10-31  Vincent Celier  <celier@adacore.com>
9900
9901         * makegpr.adb (Check_Compilation_Needed): Take into account path names
9902         with spaces.
9903         (Check_Compilation_Needed): When checking a C or C++ source, do not
9904         resolve symbolic links.
9905         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
9906         When not in verbose mode and Ellipse is True, display "..." for the
9907         first argument with Display set to False.
9908         (Build_Global_Archive): Always set Display True for the first object
9909         file. Call Display_Command with Ellipse set to True.
9910
9911 2006-10-31  Matt Heaney  <heaney@adacore.com>
9912
9913         * a-crbtgo.ads: Commented each subprogram
9914
9915         * a-crbtgo.adb: Added reference to book from which algorithms were
9916         adapted.
9917
9918         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
9919         indicate which child.
9920         (Generic_Conditional_Insert): changed parameter name from "Success" to
9921         "Inserted".
9922         (Generic_Unconditional_Insert_With_Hint): improved algorithm
9923
9924         * a-coorse.adb (Replace_Element): changed parameter name in call to
9925         conditional insert operation.
9926
9927         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
9928
9929         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
9930         Generic_Iteration
9931
9932         * a-ciorse.adb (Replace_Element): changed parameter name in call to
9933         conditional insert operation.
9934
9935         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
9936         Generic_Iteration.
9937
9938         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
9939         instead of mode inout.
9940
9941         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
9942         draft
9943         (Generic_Read): preserve existing buckets array if possible
9944         (Generic_Write): don't send buckets array length anymore
9945
9946         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
9947         instead of mode inout.
9948
9949         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
9950         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
9951
9952         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
9953         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
9954         (Replace_Element): local operation is now an instantiation
9955
9956         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
9957         check current length.
9958         (Generic_Replace_Element): new operation
9959
9960 2006-10-31  Doug Rupp  <rupp@adacore.com>
9961
9962         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
9963         Call TBK$SYMBOLIZE without omitting parameters.
9964
9965 2006-10-31  Vincent Celier  <celier@adacore.com>
9966
9967         * symbols-processing-vms-ia64.adb,
9968         symbols-processing-vms-alpha.adb (Process): Do not include symbols
9969         that come from generic instantiations in bodies.
9970
9971 2006-10-31  Pat Rogers  <rogers@adacore.com>
9972
9973         * a-rttiev.ads, a-rttiev.adb: 
9974         This is a significant redesign primarily for the sake of automatic
9975         timer task termination but also to fix a design flaw.
9976         Therefore we are now using an RTS lock, instead of a protected
9977         object, to provide mutual exclusion to the queue of pending events
9978         and the type Timing_Event is no longer a protected type.
9979
9980 2006-10-31  Robert Dewar  <dewar@adacore.com>
9981             Cyrille Comar  <comar@adacore.com>
9982             Ben Brosgol  <brosgol@adacore.com>
9983
9984         * debug.adb:  Update flags documentation
9985
9986         * gnat_ugn.texi: Add documentation for new -gnatwq switch
9987         Clean up documentation for several other warning switches
9988         Clarify how task stack size can be specified with various
9989         versions of Windows.
9990         Add note that -gnatVo includes ranges including loops
9991         Add documentation for -gnatL switch
9992         Add note on elaboration warning for initializing variables
9993         Add documentation for new -gnatwt warning switch
9994         Document new form of pragma Warnings (On|Off, string)
9995         Add comment on use of pragma Warnings to control warnings
9996         Add documentation for -gnatjnn switch
9997         Modify section on interfacing with C for VMS 64-bit.
9998         Add doc for -gnatVe/E
9999         Add documentation of new warning flags -gnatww/-gnatwW
10000         Add warnings about address clause overlays to list of warnings
10001         (Exception Handling Control): Document that the option --RTS must be
10002         used consistently for gcc and gnatbind.
10003         Clarify that inlining is not always possible
10004         Update documentation on pragma Unchecked_Union.
10005
10006         * gnat_rm.texi: 
10007         Add documentation for new extended version of pragma Obsolescent
10008         Add documentation for implementation defined attribute 'Stub_Type.
10009         Add note on use of Volatile in asm statements
10010         Add documentation on use of pragma Unreferenced in context clause
10011         Document new form of pragma Warnings (On|Off, pattern)
10012         Document pragma Wide_Character_Encoding
10013         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
10014         enforced if code generation is active.
10015         Add section on pragma Suppress to document GNAT specific check
10016         Alignment_Check
10017         Clarify difference between No_Dispatching_Calls & No_Dispatch.
10018         Add documentation for pragma Restrictions (No_Elaboration_Code)
10019
10020         * gnat-style.texi: 
10021         Add comments on layout of subprogram local variables in the
10022         presence of nested subprograms.
10023
10024         * ug_words: Resync.
10025
10026         * elists.ads: Minor reformatting
10027         Node returns Node_Or_Entity_Id (doc change only)
10028
10029         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
10030
10031         * g-arrspl.ads (Create): Update comments.
10032
10033         * sem.ads: Add details on the handling of the scope stack.
10034
10035         * usage.adb: Update documentation.
10036
10037         * validsw.ads, validsw.adb: 
10038         Add definition of Validity_Check_Components and implement -gnatVe/E
10039
10040         * vms_data.ads: Add missing VMS qualifiers.
10041
10042         * s-addope.ads: Add documentation on overflow and divide by zero
10043
10044 2006-10-31  Robert Dewar  <dewar@adacore.com>
10045             Thomas Quinot  <quinot@adacore.com>
10046             Arnaud Charlet  <charlet@adacore.com>
10047
10048         * fmap.adb: Put routines in alpha order
10049
10050         * g-boumai.ads: Remove redundant 'in' keywords
10051
10052         * g-cgi.adb: Minor reformatting
10053
10054         * g-cgi.ads: Remove redundant 'in' keywords
10055
10056         * get_targ.adb: Put routines in alpha order
10057
10058         * prj-attr.ads: Minor reformatting
10059
10060         * s-atacco.ads: Minor reformatting
10061
10062         * scn.adb: Put routines in alpha order
10063
10064         * sinput-l.adb: Minor comment fix
10065
10066         * sinput-p.adb: Minor comment fix
10067
10068         * s-maccod.ads: Minor reformatting
10069
10070         * s-memory.adb: Minor reformatting
10071
10072         * s-htable.adb: Fix typo in comment.
10073
10074         * s-secsta.adb: Minor comment update.
10075
10076         * s-soflin.adb: Minor reformatting
10077
10078         * s-stoele.ads: 
10079         Add comment about odd qualification in Storage_Offset declaration
10080
10081         * s-strxdr.adb: 
10082         Remove unnecessary 'in' keywords for formal parameters.
10083
10084         * treeprs.adt: Minor reformatting
10085
10086         * urealp.adb: Put routines in alpha order
10087
10088         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
10089         taking string.
10090
10091         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
10092
10093         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
10094
10095         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
10096         workaround as on other platforms.
10097
10098         * g-eacodu-vms.adb: Remove redundant 'in' keywords
10099         * g-expect-vms.adb: Remove redundant 'in' keywords
10100
10101         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
10102         clear error message if the list-of-files file cannot be opened.
10103
10104         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
10105         equality operator is always visible.
10106
10107         * lang.opt: Woverlength-strings: New option.
10108
10109         * nmake.adt: 
10110         Update copyright, since nmake.ads and nmake.adb have changed.
10111
10112         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
10113         (Binder_Output_Time_Stamps_Set): removed.
10114         (Old_Binder_Output_Time_Stamp): idem.
10115         (New_Binder_Output_Time_Stamp): idem.
10116         (Recording_Time_From_Last_Bind): idem.
10117         (Recording_Time_From_Last_Bind): Make constant.
10118
10119         * output.ads, output.adb (Write_Str): Allow LF characters
10120         (Write_Spaces): New procedure
10121
10122         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
10123
10124         * inline.adb: Minor reformatting
10125
10126         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
10127
10128         * s-mastop-vms.adb: Remove redundant 'in' keywords
10129
10130         * s-osprim-vms.adb: Remove redundant 'in' keywords
10131
10132         * s-trafor-default.adb: Remove redundant 'in' keywords
10133
10134         * 9drpc.adb: Remove redundant 'in' keywords
10135
10136         * s-osinte-mingw.ads: Minor reformatting
10137
10138         * s-inmaop-posix.adb: Minor reformatting
10139
10140         * a-direio.ads: Remove quotes from Compile_Time_Warning message
10141
10142         * a-exexda.adb: Minor code reorganization
10143
10144         * a-filico.adb: Minor reformatting
10145
10146         * a-finali.adb: Minor reformatting
10147
10148         * a-nudira.ads: Remove quote from Compile_Time_Warning message
10149
10150         * a-numeri.ads: Minor reformatting
10151
10152         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
10153
10154         * exp_pakd.ads: Fix obsolete comment
10155
10156         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
10157         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
10158         Probably not a bug, but certainly neater and more efficient.
10159
10160         * a-tienio.adb: Minor reformatting
10161
10162         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
10163         Avoid assuming low bound of string is 1.
10164
10165         * gnatbind.adb: Change Bindusg to package and rename procedure as
10166         Display, which now ensures that it only outputs usage information once.
10167         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
10168
10169         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
10170         Table'First.
10171
10172         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
10173         warning.
10174         (Match): Add pragma Assert to ensure that Matches'First is zero
10175
10176         * g-regpat.ads (Match): Document that Matches lower bound must be zero
10177
10178         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
10179         documented preconditions (also kills warnings about bad indexes).
10180
10181         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
10182         is 1.
10183         (Build_Import_Library): Ditto;
10184
10185         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
10186
10187         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
10188
10189         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
10190         lower bound of choice table is 1.
10191
10192         * sem_case.ads (Analyze_Choices): Document that lower bound of
10193         Choice_Table is 1.
10194
10195         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
10196         string is 1.
10197
10198         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
10199         and add appropriate Assert pragma to suppress warnings.
10200
10201         * atree.h, atree.ads, atree.adb
10202         Change Elist24 to Elist25
10203         Add definitions of Field28 and Node28
10204         (Traverse_Field): Use new syntactic parent table in sinfo.
10205
10206         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
10207
10208         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
10209
10210         * exp_tss.adb: Put routines in alpha order
10211
10212         * fe.h: Remove redundant declarations.
10213
10214 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
10215
10216         * utils.c (builtin_function): Rename to gnat_builtin_function.
10217         Move common code to add_builtin_function.
10218         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
10219         gnat_builtin_function.
10220         * gigi.h (builtin_function): Rename to gnat_builtin_function.
10221         Change the signature.
10222
10223 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
10224
10225         * Makefile.in: Add TEXI2PDF definition.
10226         * Make-lang.in: Add "ada.pdf" target.
10227
10228 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
10229
10230         * decl.c, utils.c: Fix comment typos.
10231         * utils.c: Fix a typo.
10232
10233 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
10234
10235         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
10236         on "pure" Ada subprograms if SJLJ exceptions are used.
10237         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
10238         on the declaration node of JMPBUF_SAVE.
10239         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
10240         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
10241         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
10242
10243 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
10244
10245         PR ada/28716
10246         g-socket.adb (Bind_Socket): Call Set_Address.
10247
10248 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
10249
10250         PR ada/15802
10251         * decl.c (same_discriminant_p): New static function.
10252         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
10253         subtype and we have discriminants, fix up the COMPONENT_REFs
10254         for the discriminants to make them reference the corresponding
10255         fields of the parent subtype after it has been built.
10256
10257 2006-09-15  Roger Sayle  <roger@eyesopen.com>
10258
10259         PR ada/18817
10260         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
10261         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
10262
10263 2006-09-13  Olivier Hainque  <hainque@adacore.com>
10264
10265         PR ada/29025
10266         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
10267         of a SAVE_EXPR, just make the operand addressable/not-readonly and
10268         let the common gimplifier code make and propagate a temporary copy.
10269         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
10270         out/in-out actuals and defer setting the addressable/readonly bits
10271         to the gimplifier.
10272
10273 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
10274
10275         PR ada/28591
10276         * decl.c (components_to_record): Defer emitting debug info for the
10277         record type associated with the variant until after we are sure to
10278         actually use it.
10279
10280 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
10281
10282         PR ada/21952
10283         * gigi.h (gnat_internal_attribute_table): Declare.
10284         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
10285         * utils.c (gnat_internal_attribute_table): New global variable.
10286         (builtin_function): Always call decl_attributes on the builtin.
10287         (handle_const_attribute): New static function.
10288         (handle_nothrow_attribute): Likewise.
10289
10290 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10291
10292         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
10293
10294 2006-06-23  Olivier Hainque  <hainque@adacore.com>
10295
10296         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
10297         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
10298
10299 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
10300             Eric Botcazou  <ebotcazou@adacore.com>
10301
10302         PR ada/18692
10303         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
10304         check-gnat into check-acats.
10305
10306 2006-06-17  Karl Berry  <karl@gnu.org>
10307
10308         * gnat-style.texi (@dircategory): Use "Software development"
10309         instead of "Programming", following the Free Software Directory.
10310
10311 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10312
10313         PR ada/27944
10314         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
10315
10316 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
10317
10318         PR ada/27769
10319         mlib-utl.adb: Use Program_Name.
10320
10321 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
10322
10323         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
10324         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
10325         trans.c, utils.c: Fix comment typos.  Follow spelling
10326         conventions.
10327         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
10328         conventions.
10329
10330 2006-05-19  Nicolas Setton  <setton@adacore.com>
10331
10332         * misc.c (gnat_dwarf_name): New function.
10333         (LANG_HOOKS_DWARF_NAME): Define to it.
10334
10335 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
10336
10337         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
10338         (ada/misc.o): Likewise.
10339         (ada/utils.o): Likewise.
10340
10341 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
10342
10343         * Makefile.in: Add Ada support for GNU/kFreeBSD.
10344         * s-osinte-kfreebsd-gnu.ads: New file.
10345
10346 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
10347
10348         * Make-lang.in: Rename docdir to gcc_docdir.
10349
10350 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
10351
10352         * gigi.h (get_ada_base_type): Delete.
10353         * utils2.c (get_ada_base_type): Likewise.
10354         * trans.c (convert_with_check): Operate in the real base type.
10355
10356 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10357
10358         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
10359
10360 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
10361
10362         * utils.c (create_var_decl): Use have_global_bss_p when deciding
10363         whether to make the decl common.
10364
10365 2006-02-20  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
10366
10367         * Make-lang.in (Ada): Remove.
10368         (.PHONY): Remove Ada
10369
10370 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10371
10372         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
10373         aggregate, check the interpretations of the other operand to find one
10374         that may be a boolean array.
10375
10376         (Analyze_Selected_Component): Fix flow-of-control typo in case where
10377         the prefix is a private extension.
10378
10379 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
10380
10381         PR ada/26315
10382         * utils2.c (find_common_type): If both input types are BLKmode and
10383         have the same constant size, keep using the first one.
10384
10385         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
10386
10387         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
10388
10389         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
10390
10391 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
10392
10393         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
10394         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
10395         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
10396         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
10397         Abort_Defer/Undefer pairs to avoid the possibility of a task being
10398         aborted while owning a lock.
10399
10400 2006-02-17  Javier Miranda  <miranda@adacore.com>
10401             Robert Dewar  <dewar@adacore.com>
10402
10403         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
10404         through an access to class-wide interface we force the displacement of
10405         the pointer to the allocated object to reference the corresponding
10406         secondary dispatch table.
10407         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
10408         if Long_Shifts are supported on the target, even if 64 bit divides
10409         are not supported (configurable run time mode).
10410         (Expand_N_Type_Conversion): Do validity check if validity checks on
10411         operands are enabled.
10412         (Expand_N_Qualified_Expression): Do validity check if validity checks
10413         on operands are enabled.
10414
10415 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10416
10417         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
10418         must be materialized when the renamed expression is an explicit
10419         dereference.
10420
10421 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10422
10423         * freeze.adb (Statically_Discriminated_Components): Return false if
10424         the bounds of the type of the discriminant are not static expressions.
10425
10426         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
10427         the bounds of the discriminant type are not static.
10428
10429 2006-02-17  Robert Dewar  <dewar@adacore.com>
10430
10431         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
10432         then we close To if it is valid.
10433
10434 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
10435
10436         * init.c (facility_resignal_table): new array
10437         (__gnat_default_resignal_p): enhance default predicate to resignal if
10438         VMS condition has one of the predefined facility codes.
10439
10440 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
10441
10442         * Makefile.in: Use VMS64 specialized versions of several units in
10443         Interfaces.C hierarchy to be compatible with HP C default size choices.
10444         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
10445
10446 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10447
10448         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
10449         instantiation, the corresponding entity is the related_instance of the
10450         wrapper package created for the instance.
10451
10452 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10453
10454         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
10455         the current instance is nested within another instance in a child unit.
10456
10457 2006-02-17  Javier Miranda  <miranda@adacore.com>
10458             Ed Schonberg  <schonberg@adacore.com>
10459
10460         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
10461         type we cannot inherit the primitive operations; we inherit the
10462         Corresponding_Record_Type (which has the list of primitive operations).
10463         (Check_Anonymous_Access_Types): When creating anonymous access types for
10464         access components, use Rewrite in order to preserve the tree structure,
10465         for ASIS use.
10466         (Analyze_Object_Declaration): For limited types with access
10467         discriminants with defaults initialized by an aggregate, obtain
10468         subtype from aggregate as for other mutable types.
10469         (Derived_Type_Declaration): If the derived type is a limited interface,
10470         set the corresponding flag (Is_Limited_Record is not sufficient).
10471
10472 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
10473
10474         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
10475         to inline a function that returns an unconstrained type, the return
10476         expression must be the first variable declared in the body of the
10477         function.
10478
10479 2006-02-17  Javier Miranda  <miranda@adacore.com>
10480
10481         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
10482         abstract interface type, the static analysis is not enough to know if
10483         the interface is implemented or not by the source tagged type. Hence
10484         we must pass the work to the expander to generate the required code to
10485         evaluate the conversion at run-time.
10486         (Resolve_Equality_Op): Do not apply previous
10487         transformation if expansion is disasbled, to prevent anomalies when
10488         locating global references in a generic unit.
10489
10490 2006-02-17  Vincent Celier  <celier@adacore.com>
10491
10492         * snames.ads, snames.adb: New standard names for new project attributes:
10493         archive_builder, archive_indexer, compiler_pic_option,
10494         config_body_file_name, config_body_file_name_pattern,
10495         config_file_switches, config_file_unique, config_spec_file_name,
10496         config_spec_file_name_pattern, default_builder_switches,
10497         default_global_compiler_switches, default_language,
10498         dependency_file_kind, global_compiler_switches, include_path,
10499         include_path_file, language_kind, linker_executable_option,
10500         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
10501         roots, runtime_project.
10502
10503 2006-02-17  Matthew Heaney  <heaney@adacore.com>
10504
10505         * a-convec.ads, a-convec.adb: 
10506         (operator "&"): handle potential overflow for large index types
10507         (Insert): removed Contraint_Error when using large index types
10508         (Insert_Space): removed Constraint_Error for large index types
10509         (Length): moved constraint check from Length to Insert
10510
10511         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
10512         as not null access.
10513         Explicit raise statements now include an exception message.
10514         (operator "&"): handle potential overflow for large index types
10515         (Insert): removed Contraint_Error when using large index types
10516         (Insert_Space): removed Constraint_Error for large index types
10517         (Length): moved constraint check from Length to Insert
10518
10519 2006-02-17  Robert Dewar  <dewar@adacore.com>
10520
10521         * s-wchcnv.adb: Document handling of [ on output (we do not change
10522         this to ["5B"] and the new comments say why not.
10523
10524         * gnat_ugn.texi: 
10525         Add note for -gnatVo that this now includes the cases of type
10526         conversions and qualified expressions.
10527         Add comments on handling of brackets encoding for Text_IO
10528
10529 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
10530             Thomas Quinot  <quinot@adacore.com>
10531             Robert Dewar  <dewar@adacore.com>
10532             Javier Miranda  <miranda@adacore.com>
10533
10534         * expander.adb: Fix typo in comment
10535
10536         * exp_pakd.adb: Fix typo
10537         Minor comment reformatting.
10538
10539         * g-dyntab.adb: Minor reformatting
10540
10541         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
10542         aliased subprograms to look for the abstract interface subprogram.
10543
10544 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
10545
10546         * env.c (__gnat_setenv): Use size_t.
10547         (__gnat_unsetenv): Likewise.
10548         (__gnat_clearenv): Likewise.
10549
10550 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
10551
10552         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
10553
10554 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10555
10556         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
10557         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
10558         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
10559         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
10560         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
10561         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
10562         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
10563         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
10564         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
10565         no longer used.
10566
10567 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
10568
10569         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
10570         protection against race conditions is not needed.
10571         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
10572         fallback handler.
10573         (Set_Specific_Handler): Add mutual exclusive access to the specific
10574         handler.
10575         (Specific_Handler): Add mutual exclusive access for retrieving the
10576         specific handler.
10577
10578         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
10579         back handler.
10580
10581         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
10582         Fall_Back_Handler and Specific_Handler.
10583
10584         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
10585         termination handlers.
10586         Set two different owerflow depending on the maximal stack size.
10587
10588         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
10589         protection against race conditions is not needed when executing the
10590         task termination handler.
10591
10592 2006-02-13  Robert Dewar  <dewar@adacore.com>
10593
10594         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
10595         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
10596         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
10597         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
10598         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
10599         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
10600         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
10601         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
10602         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
10603         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
10604         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
10605         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
10606         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
10607         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
10608         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
10609         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
10610         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
10611         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
10612         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
10613         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
10614         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
10615         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
10616         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
10617         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
10618         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
10619         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
10620         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
10621         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
10622         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
10623         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
10624         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
10625         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
10626         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
10627         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
10628         reformatting.
10629
10630 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
10631
10632         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
10633         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
10634         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
10635         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
10636         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
10637         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
10638         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
10639         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
10640         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
10641
10642 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10643
10644         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
10645         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
10646         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
10647         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
10648         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
10649         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
10650         replaced by anonymous access type.
10651         (pthread_sigmask): Now take an access sigset_t
10652
10653         * s-osinte-hpux.ads:  Ditto.
10654         (pthread_mutex_t, pthread_cond_t): Update definitions to support
10655         properly 32 and 64 bit ABIs.
10656
10657 2006-02-13  Pascal Obry  <obry@adacore.com>
10658
10659         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
10660         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
10661         s-taprop-linux.adb, s-taprop-solaris.adb,
10662         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
10663         adjustement is already done when calling this routine.
10664
10665 2006-02-13  Pascal Obry  <obry@adacore.com>
10666
10667         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
10668         table to take advantage of the 16 priority levels available on Windows
10669         2000 and XP. On NT4 there are only 7 priority levels, this is properly
10670         supported by this new mapping.
10671
10672 2006-02-13  Nicolas Setton  <setton@adacore.com>
10673
10674         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
10675         (get_encoding): New subprogram. Extracts the encodings from an encoded
10676         Ada name.
10677
10678 2006-02-13  Pascal Obry  <obry@adacore.com>
10679             Nicolas Roche  <roche@adacore.com>
10680             Arnaud Charlet  <charlet@adacore.com>
10681
10682         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
10683         support.
10684         (__gnat_try_lock): Add unicode support by using a specific section on
10685         Windows.
10686         (__gnat_get_current_dir): Idem.
10687         (__gnat_open_read): Idem.
10688         (__gnat_open_rw): Idem.
10689         (__gnat_open_create): Idem.
10690         (__gnat_create_output_file): Idem.
10691         (__gnat_open_append): Idem.
10692         (__gnat_open_new): Idem.
10693         (__gnat_file_time_name): Idem.
10694         (__gnat_set_file_time_name): Idem.
10695         (__gnat_stat): Idem.
10696         (win32_no_block_spawn): Idem.
10697         (__gnat_locate_exec_on_path): Idem.
10698         (__gnat_opendir): New routine.
10699         (__gnat_closedir): Idem.
10700         (__gnat_readdir): Add new parameter length (pointer to int). Update
10701         implementation to use it and add specific Win32 code for Unicode
10702         support.
10703         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
10704         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
10705         (convert_addresses): Do not define this dummy routine on VMS.
10706
10707         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
10708         runtime Unicode support will be activated.
10709         (S2WS): String to Wide-String conversion. This version just copy a
10710         string in non Unicode version.
10711         (WS2S): Wide-String to String conversion. This version just copy a
10712         string in non Unicode version.
10713
10714         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
10715         (Open): Now import __gnat_opendir from adaint.c.
10716         (Read): Change the implementation to support unicode characters. It is
10717         not possible to use strlen() on Windows as this version supports only
10718         standard ASCII characters. So the length of the directory entry is now
10719         returned from the imported __gnat_readdir routine.
10720         Update copyright notice.
10721
10722         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
10723         (opendir): Moved to adaint.c.
10724
10725         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
10726         (Get_Directory): Fix wrong indexing.
10727         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
10728         __gnat_getenv from env.c
10729         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
10730         from env.c
10731
10732         * env.h, env.c: New file.
10733
10734         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
10735         adaint.c by __gnat_getenv from env.c
10736
10737         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
10738         adaint.c by __gnat_getenv from env.c
10739
10740         * Make-lang.in: Add env.o in the list of C object needed by gnat1
10741         and gnatbind.
10742         Update dependencies.
10743
10744 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10745             Olivier Hainque  <hainque@adacore.com>
10746             Eric Botcazou  <ebotcazou@adacore.com>
10747
10748         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
10749         
10750         * gigi.h (value_factor_p): Add prototype and description, now public.
10751
10752         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
10753         promotion for field with rep clause if the associated size was proven
10754         to be in error.
10755         Expand comments describing attempts to use a packable type.
10756         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
10757         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
10758         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
10759         necessary since these are not different types and pointers may
10760         actually designate any subtype in this hierarchy.
10761         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
10762         discriminants but put them into record only if not Unchecked_Union;
10763         pass flag to components_to_record showing Unchecked_Union.
10764         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
10765         components before variants; don't set TYPE_UNCHECKED_UNION_P.
10766         (components_to_record): New argument UNCHECKED_UNION.
10767         Remove special case code for Unchecked_Union and instead use main code
10768         with small changes.
10769
10770         PR ada/26096
10771         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
10772         variable with the expression being built, only its inner field.
10773
10774         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
10775         emit_sequence_entry_statements.
10776         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
10777         (establish_gnat_vms_condition_handler): Move before
10778         Subprogram_Body_to_gnu.
10779         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
10780         for a subprogram if it has a foreign convention or is exported.
10781         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
10782         substituted for a CONST_DECL.
10783         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
10784         Etype to assoc_to_constructor.
10785         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
10786         discriminants of Unchecked_Union.
10787         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
10788         don't need cluttering preprocessor directives.
10789         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
10790         condition handler as current in the compiled function.
10791         (body_with_handlers_p): New function. Tell whether a given sequence of
10792         statements node is attached to a package or subprogram body and involves
10793         exception handlers possibly nested within inner block statements.
10794         (emit_sequence_entry_statements): New function, to emit special
10795         statements on entry of sequences when necessary. Establish GNAT
10796         condition handler in the proper cases for VMS.
10797         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
10798         emit_sequence_entry_statements.
10799
10800         * utils2.c (find_common_type): If both input types are BLKmode and
10801         have a constant size, use the smaller one.
10802         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
10803         the same.
10804
10805         * utils.c (value_factor_p): Make public, to allow uses from other gigi
10806         units.
10807         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
10808         (convert, case UNION_TYPE): Remove special treatment for unchecked
10809         unions.
10810
10811         PR ada/18659
10812         (update_pointer_to): Update variants of pointer types to unconstrained
10813         arrays by attaching the list of fields of the main variant.
10814
10815 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10816             Robert Dewar  <dewar@adacore.com>
10817
10818         * a-exexpr.adb, a-exexpr-gcc.adb
10819         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
10820         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
10821         Remove code unused for exception propagation for the compiler itself
10822         from a-except.adb and update to still share separate packages.
10823
10824         * a-except.ads, a-except.adb: Ditto.
10825         Add comments that this version is now used only by the compiler and
10826         other basic tools. The full version that includes the Ada 2005 stuff
10827         is in separate files a-except-2005.ads/adb. The reason is that we do
10828         not want to cause bootstrap problems with compilers not recognizing
10829         Wide_Wide_String.
10830         Add exception reason code PE_Implicit_Return
10831         Add new exception reason code (Null Exception_Id)
10832
10833         * a-except-2005.adb, a-except-2005.ads: New files.
10834
10835         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
10836
10837         * s-wchcon.adb: New file.
10838
10839         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
10840         (traceback.o deps): Likewise.
10841         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
10842         Activate build of GMEM instrumentation library on VMS targets.
10843         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
10844         Use a-except-2005.ads/adb for all run-time library builds unless
10845         specified otherwise.
10846         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
10847         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
10848         Use s-parame.adb on all native platforms.
10849         Use s-parame-vxworks.adb on all vxworks platforms.
10850         Add env.c env.h in LIBGNAT_SRCS
10851         Add env.o in LIBGNAT_OBJS
10852         (GNATMAKE_OBJS): Remove ctrl_c.o object.
10853         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
10854         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
10855         supports VxWorks 6 RTPs.
10856         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
10857         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
10858
10859         * types.h, types.ads (Terminate_Program): New exception
10860         Add comment on modifying multiple versions of a-except.adb when the
10861         table of exception reasons is modified.
10862         Add exception reason code PE_Implicit_Return
10863         Add new exception reason code (Null Exception_Id)
10864
10865         * clean.adb (Initialize): Get the target parameters before checking
10866         if target is OpenVMS. Move the OpenVMS specific code here from package
10867         body elaboration code.
10868
10869 2006-02-13  Thomas Quinot  <quinot@adacore.com>
10870             Vincent Celier  <celier@adacore.com>
10871             Robert Dewar  <dewar@adacore.com>
10872
10873         * ali-util.adb (Get_File_Checksum): Update to account for change in
10874         profile of Initialize_Scanner.
10875
10876         * gprep.adb (Gnatprep): Update to account for change in profile of
10877         Initialize_Scanner.
10878         (Process_One_File): Same.
10879
10880         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
10881         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
10882         that behaviour using the new Unit information recorded in the source
10883         files table, rather than going through all units every time.
10884         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
10885         (Get_Source_Unit): Same.
10886
10887         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
10888         change in profile of Initialize_Scanner.
10889         (Prepare_To_Preprocess): Same.
10890
10891         * lib.ads: Fix typo in comment (templace -> template).
10892
10893         * prj-part.adb (Parse_Single_Project): Update to account for change in
10894         profile of Initialize_Scanner.
10895
10896         * scn.adb (Initialize_Scanner): Account for change in profile of
10897         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
10898         Also record the association of the given Source_File_Index to the
10899         corresponding Unit_Number_Type.
10900
10901         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
10902         procedure.
10903         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
10904         Remove Unit formal for generic scanner: this formal
10905         is only relevant to Scn (the scanner instance used to parse Ada source
10906         files), not to other instances. Update comment accordingly.
10907         (Scan): Use new function Snames.Is_Keyword_Name.
10908
10909         * sinfo-cn.adb: Fix typo in comment.
10910
10911         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
10912         Unit.
10913
10914         * sinput.ads (Source_File_Record): New component Unit, used to capture
10915         the unit identifier (if any) associated to a source file.
10916
10917         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
10918         Unit in Source_File_Record.
10919
10920         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
10921         in profile of Initialize_Scanner.
10922
10923         * scans.adb (Initialize_Ada_Keywords): New procedure
10924
10925         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
10926         Ada keywords in the Namet table, without the need to call
10927         Initialize_Scanner.
10928
10929         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
10930         (Is_Keyword_Name): New function
10931
10932         * snames.ads: Add subtype Configuration_Pragma_Names
10933         Add pragma Ada_2005 (synonym for Ada_05)
10934         (Is_Keyword_Name): New function
10935
10936         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
10937
10938 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10939
10940         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
10941         index.
10942
10943         * a-stwima.adb (To_Set): Add extra check when N = 0.
10944
10945         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
10946
10947 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
10948
10949         * s-parame-mingw.adb, s-parame-linux.adb,
10950         s-parame-solaris.adb: Removed, replaced by s-parame.adb
10951
10952         * s-parame-vxworks.ads: Fix typo.
10953
10954         * s-parame-vxworks.adb: New file.
10955
10956         * s-parame.adb: Version now used by all native platforms.
10957         (Default_Stack_Size): Use 2 megs for default stack size and use
10958         __gl_default_stack_size when available.
10959         (Minimum_Stack_Size): Use 12K.
10960
10961         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
10962         (Create_Task): Refine implementation taking advantage of the XP stack
10963         size support. On XP, we now create the thread using the flag
10964         STACK_SIZE_PARAM_IS_A_RESERVATION.
10965
10966         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
10967
10968         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
10969         XP and 0 on older Windows versions.
10970
10971         * interfac-vms.ads: Removed, no longer used.
10972
10973 2006-02-13  Matthew Heaney  <heaney@adacore.com>
10974
10975         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
10976         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
10977         a-cohase.adb: All explicit raise statements now include an exception
10978         message.
10979
10980         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
10981         (Update_Element_Preserving_Key): renamed op to just Update_Element.
10982         Explicit raise statements now include an exception message
10983
10984         * a-cihase.ads, a-cohase.ads: Removed comment.
10985
10986         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
10987         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
10988         a-szbzha.adb, a-szfzha.ads: New files.
10989
10990 2006-02-13  Matthew Heaney  <heaney@adacore.com>
10991
10992         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
10993         quicksort.
10994
10995 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
10996
10997         * lang.opt: Wvariadic-macros: New option.
10998         Wold-style-definition: Likewise.
10999         Wmissing-format-attribute: Likewise.
11000
11001         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
11002         -Wold-style-definition and -Wmissing-format-attribute.
11003
11004 2006-02-13  Robert Dewar  <dewar@adacore.com>
11005
11006         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
11007
11008         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
11009
11010 2006-02-13  Nicolas Roche  <roche@adacore.com>
11011
11012         * a-envvar.adb, a-envvar.ads: New files.
11013
11014 2006-02-13  Douglas Rupp  <rupp@adacore.com>
11015
11016         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
11017
11018         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
11019
11020 2006-02-13  Pat Rogers  <rogers@adacore.com>
11021
11022         * a-rttiev.adb, a-rttiev.ads: New files.
11023
11024 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
11025
11026         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
11027         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
11028
11029         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
11030
11031 2006-02-13  Robert Dewar  <dewar@adacore.com>
11032
11033         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
11034         sem_case.adb: Minor code reorganization (not Present should be No)
11035
11036 2006-02-13  Geert Bosch  <bosch@adacore.com>
11037             Gary Dismukes  <dismukes@adacore.com>
11038
11039         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
11040         0, since the lower bound of the actual string may be greater than one.
11041
11042         PR ada/20753
11043         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
11044         layout is requested.
11045
11046 2006-02-13  Vincent Celier  <celier@adacore.com>
11047
11048         * back_end.adb (Scan_Compiler_Arguments): Check if
11049         Search_Directory_Present is True and, if it is, add the argument in
11050         the source search directory path.
11051
11052         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
11053         Search_Directory_Present to True.
11054
11055 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
11056
11057         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
11058         volatile, to tell the compiler to preserve this variable at any level
11059         of optimization.
11060         (Gen_Versions_Ada): Temporarily work around codegen bug.
11061
11062 2006-02-13  Vincent Celier  <celier@adacore.com>
11063
11064         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
11065         gcc to link with option -shared-libgcc.
11066         (Gnatlink): Remove duplicate switches -shared-libgcc
11067
11068 2006-02-13  Robert Dewar  <dewar@adacore.com>
11069
11070         * gnatvsn.ads (Current_Year): New constant, used to easily update
11071         copyright on all GNAT tools.
11072
11073         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
11074         copyright notice.
11075
11076 2006-02-13  Robert Dewar  <dewar@adacore.com>
11077
11078         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
11079         after hyphen (small aesthetic change useful for a range of numbers
11080         using ^-^.
11081         Suppress range checks for a couple of assignments which otherwise
11082         cause validity checks with validity checking turned on.
11083
11084         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
11085         Improvement in error message for object.
11086         (Rep_Item_Too_Late): Remove '!' in warning message.
11087
11088 2006-02-13  Robert Dewar  <dewar@adacore.com>
11089             Eric Botcazou  <ebotcazou@adacore.com>
11090
11091         * err_vars.ads: Suppress range checks for a couple of assignments
11092         which otherwise cause validity checks with validity checking turned on.
11093         Update comments.
11094
11095         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
11096         Make message unconditional if it is a warning.
11097         (Error_Msg_NEL): Always output warning messages.
11098         Suppress range checks for a couple of assignments which otherwise
11099         cause validity checks with validity checking turned on.
11100
11101         * errout.ads (Message Insertion Characters): Document that '!' is
11102         implied by '?' in error messages.
11103
11104         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
11105         (Gnat1drv): Use a goto to end of main subprogram instead of
11106         Exit_Program (E_Success) so that finalization can occur normally.
11107
11108 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
11109
11110         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
11111         wrapped around.
11112
11113 2006-02-13  Vincent Celier  <celier@adacore.com>
11114
11115         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
11116         Unchecked_Conversion functions.
11117         (Modification_Time): Use direct conversion of OS_Time to Calendar time
11118         when OpenVMS returns False.
11119
11120         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
11121         a-dirval.adb (OpenVMS): New Boolean function
11122
11123 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11124             Thomas Quinot  <quinot@adacore.com>
11125
11126         * checks.adb (Build_Discriminant_Checks): If the expression being
11127         checks is an aggregate retrieve the values of its discriminants to
11128         generate the check, rather than creating a temporary and a reference
11129         to it.
11130         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
11131         (Install_Null_Excluding_Check): Ditto
11132         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
11133         not for the renamed object, so that the actual itype is attached in the
11134         proper context.
11135
11136 2006-02-13  Robert Dewar  <dewar@adacore.com>
11137             Vincent Celier  <celier@adacore.com>
11138
11139         * debug.adb: Eliminate numeric switches for binder/gnatmake
11140
11141         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
11142         switches for the compiler.
11143         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
11144         (Scan_Make_Switches): When failing with an illegal switch, output an
11145         error message with the full switch.
11146         Eliminate numeric switches for binder/gnatmake
11147
11148         * switch.ads, switch.adb (Bad_Switch): New procedure
11149
11150         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
11151         Remove 0-9 as debug flag character possibilities
11152         -d is now controlling the primary stack size when its value is a
11153         positive. Also add checks against invalid values, and support for kb,
11154         mb. Ditto for -D switch.
11155
11156 2006-02-13  Robert Dewar  <dewar@adacore.com>
11157             Serguei Rybin  <rybin@adacore.com>
11158
11159         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
11160         save/restore routines.
11161         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11162         were not always properly handled previously.
11163         Since we are changing the tree format anyway, also get rid of the
11164         junk obsolete Immediate_Errors flag.
11165         (Tree_Read): Change the way of reading Tree_Version_String - now we
11166         read the version string from the tree even if its length is not the
11167         same as the length of the version string computed from Gnatvsn.
11168         (Search_Directory_Present): New Boolean flag for the compiler.
11169         Define Tree_Version_String as a dynamic string.
11170         (Default_Stack_Size): new variable, used to handle switch -d.
11171
11172         * par-prag.adb: 
11173         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
11174         only for main unit.
11175         Add pragma Ada_2005 (synonym for Ada_05)
11176         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11177         were not always properly handled previously.
11178
11179         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
11180         explicit Ada_95 to Ada_2005.
11181
11182 2006-02-13  Javier Miranda  <miranda@adacore.com>
11183             Robert Dewar  <dewar@adacore.com>
11184             Ed Schonberg  <schonberg@adacore.com>
11185
11186         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
11187         against errors in the source program: a private types for which the
11188         corresponding full type declaration is missing and pragma CPP_Virtual
11189         is used.
11190         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
11191         (Is_Known_Null): New flag
11192         (Has_Pragma_Pure): New flag
11193         (No_Return): Present in all entities, set only for procedures
11194         (Is_Limited_Type): A type whose ancestor is an interface is limited if
11195         explicitly declared limited.
11196         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
11197         entities. Only used for component marked Is_Tag. If present it stores
11198         the Offset_To_Top function used to provide this value in tagged types
11199         whose ancestor has discriminants.
11200
11201         * exp_ch2.adb: Update status of new Is_Known_Null flag
11202
11203         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
11204
11205         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
11206         the categorization sense if Is_Pure was set by pragma Pure_Function.
11207
11208 2006-02-13  Quentin Ochem  <ochem@adacore.com>
11209             Olivier Hainque  <hainque@adacore.com>
11210
11211         * bindusg.adb: Updated documentation for -d and -D switches.
11212
11213         * raise.h (__gnat_set_globals): added new parameter for
11214         Default_Stack_Size.
11215
11216         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
11217         (__gnat_handle_vms_condition): Adjust context before raise.
11218         (__gnat_install_handler): Restore the global vector setup for GCC
11219         versions before 3.4, as the frame based circtuitry is not available
11220         in this case.
11221         (__gnat_set_globals): added a parameter default_stack_size
11222         (__gl_default_stack_size): new variable.
11223
11224 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11225
11226         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
11227         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
11228         does not exist in the Ada RM.
11229         (Compatible_Int_Bounds): Determine whether two integer range bounds
11230         are of equal length and have the same start and end values.
11231         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
11232         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
11233         aggregate when it is part of an object declaration.
11234         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
11235         constrains discriminants of its parent, add explicitly the discriminant
11236         constraints of the ancestor by retrieving them from the
11237         stored_constraint of the parent.
11238
11239 2006-02-13  Robert Dewar  <dewar@adacore.com>
11240
11241         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
11242         attribute Mechanism_Code is applied to renamed subprogram, modify
11243         prefix to point to base subprogram.
11244         Max/Min attributes now violate Restriction No_Implicit_Conditionals
11245
11246         * sinfo.ads: Document that Mechanism_Code cannot be applied to
11247         renamed subprograms so that the front-end must replace the prefix
11248         appropriately.
11249
11250 2006-02-13  Javier Miranda  <miranda@adacore.com>
11251             Gary Dismukes  <dismukes@adacore.com>
11252
11253         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
11254         availability of RE_Interface_Tag.
11255         (Build_Initialization_Call): Fix wrong access to the discriminant value.
11256         (Freeze_Record_Type): Do not generate the tables associated with
11257         timed and conditional dispatching calls through synchronized
11258         interfaces if compiling under No_Dispatching_Calls restriction.
11259         When compiling for Ada 2005, for a nonabstract
11260         type with a null extension, call Make_Controlling_Function_Wrappers
11261         and insert the wrapper function declarations and bodies (the latter
11262         being appended as freeze actions).
11263         (Predefined_Primitive_Bodies): Do not generate the bodies of the
11264         predefined primitives associated with timed and conditional
11265         dispatching calls through synchronized interfaces if we are
11266         compiling under No_Dispatching_Calls.
11267         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
11268         service is available before generating a call.
11269         (Make_Controlling_Function_Wrappers): New procedure.
11270         (Expand_N_Full_Type_Declaration): Create a class-wide master for
11271         access-to-limited-interfaces because they can be used to reference
11272         tasks that implement such limited interface.
11273         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
11274         procedure spec and body of the Offset_To_Top function that is generated
11275         when the parent of a type with discriminants has secondary dispatch
11276         tables.
11277         (Init_Secondary_Tags): Handle the case in which the parent of the type
11278         containing secondary dispatch tables has discriminants to generate the
11279         correct arguments to call Set_Offset_To_Top.
11280         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
11281
11282         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
11283         Add Wide_[Wide_]Expanded_Name.
11284         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
11285         the same functionality of Get_Prim_Op_Address but applied to predefined
11286         primitive operations because the pointers to the predefined primitives
11287         are now saved in a separate table.
11288         (Parent_Size): Modified to get access to the separate table of primitive
11289         operations or the parent type.
11290         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
11291         functionality of Set_Prim_Op_Address but applied to predefined primitive
11292         operations.
11293         (Set_Signature): New subprogram used to store the signature of a DT.
11294         (Displace): If the Offset_To_Top value is not static then call the
11295         function generated by the expander to get such value; otherwise use
11296         the value stored in the table of interfaces.
11297         (Offset_To_Top): The type of the actual has been changed to Address to
11298         give the correct support to tagged types with discriminants. In this
11299         case this value is stored just immediately after the tag field.
11300         (Set_Offset_To_Top): Two new formals have been added to indicate if the
11301         offset_to_top value is static and hence pass this value to the run-time
11302         to store it in the table of interfaces, or else if this value is dynamic
11303         and then pass to the run-time the address of a function that is
11304         generated by the expander to provide this value for each object of the
11305         type.
11306
11307         * rtsfind.ads (Default_Prin_Op_Count): Removed.
11308         (Default_Prim_Op_Count): New entity
11309         (Get_Predefined_Prim_Op_Address): New entity
11310         (Set_Predefined_Prim_Op_Address): New entity
11311         (RE_Set_Signature): New entity
11312
11313 2006-02-13  Thomas Quinot  <quinot@adacore.com>
11314             Ed Schonberg  <schonberg@adacore.com>
11315
11316         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
11317         Make_Adjust_Call done for a newly-allocated object.
11318
11319         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
11320         in a subprogram are wrapped in a cleanup block, indicate that the
11321         subprogram contains an inner block with an exception handler.
11322         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
11323         Adjust call is for a newly-allocated object. In that case we must not
11324         assume that the finalization list chain pointers are correct (since they
11325         come from a bit-for-bit copy of the original object's pointers) so if
11326         the attach level would otherwise be zero (no change), we set it to 4
11327         instead to cause the pointers to be reset to null.
11328
11329         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
11330         reset chain pointers to null.
11331
11332 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11333
11334         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
11335         string, and the context requires a loop for the assignment (e.g.
11336         because the left-hand side is packed), generate a unique name for the
11337         temporary that holds the string, to prevent spurious name clashes.
11338
11339 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11340             Javier Miranda  <miranda@adacore.com>
11341             Robert Dewar  <dewar@adacore.com>
11342             Gary Dismukes  <dismukes@adacore.com>
11343
11344         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
11345         return unconstrained arrays.
11346         Update comments.
11347         (Expand_Call):  An indirect call through an access parameter of a
11348         protected operation is not a protected call.
11349         Add circuit to raise CE in Ada 2005 mode following call
11350         to Raise_Exception.
11351         (Register_DT_Entry): Do nothing if
11352         the run-time does not give support to abstract interfaces.
11353         (Freeze_Subprogram): In case of dispatching operations, do not generate
11354         code to register the operation in the dispatch table if the source
11355         is compiled with No_Dispatching_Calls.
11356         (Register_Predefined_DT_Entry): Generate code that calls the new
11357         run-time subprogram Set_Predefined_Prim_Op_Address instead of
11358         Set_Prim_Op_Address.
11359
11360         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
11361         on array assignments if the right-hand side is a function call that has
11362         been inlined. Check is performed on the assignment in the block.
11363         (Process_Bounds): If bounds and range are overloaded, apply preference
11364         rule for root operations to disambiguate, and diagnose true ambiguity.
11365         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
11366         a tag-indeterminate right-hand side even when Expander_Active is True.
11367         Needed to ensure that dispatching calls to T'Input are allowed and
11368         get the tag of the target class-wide object.
11369
11370         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
11371         an inherited primitive operation that already overrides several
11372         abstract interface primitives. For transitivity, the new entity must
11373         also override all the abstract interface primitives covered by the
11374         inherited overriden primitive.
11375         Emit warning if new entity differs from homograph in same scope only in
11376         that one has an access parameter and the other one has a parameter of
11377         a general access type with the same designated type, at the same
11378         position in the signature.
11379         (Make_Inequality_Operator): Use source locations of parameters and
11380         subtype marks from corresponding equality operator when creating the
11381         tree structure for the implicit declaration of "/=". This does not
11382         change anything in behaviour except that the decoration of the
11383         components of the subtree created for "/=" allows ASIS to get the
11384         string images of the corresponding identifiers.
11385         (Analyze_Return_Statement): Remove '!' in warning message.
11386         (Check_Statement_Sequence): Likewise.
11387         (Analyze_Subprogram_Body): For an access parameter whose designated type
11388         is an incomplete type imported through a limited_with clause, use the
11389         type of the corresponding formal in the body.
11390         (Check_Returns): Implicit return in No_Return procedure now raises
11391         Program_Error with a compile time warning, instead of beging illegal.
11392         (Has_Single_Return):  Function returning unconstrained type cannot be
11393         inlined if expression in unique return statement is not an identifier.
11394         (Build_Body_To_Inline): It is possible to inline a function call that
11395         returns an unconstrained type if all return statements in the function
11396         return the same local variable. Subsidiary procedure Has_Single_Return
11397         verifies that the body conforms to this restriction.
11398
11399         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
11400         same type, and  one of them is of an anonymous access type, convert
11401         the other operand to it, so that this is a valid binary operation for
11402         gigi.
11403         (Resolve_Type_Conversion): Handle subtypes of protected types and
11404         task types when accessing to the corresponding record type.
11405         (Resolve_Allocator): Add '\' in 2-line warning message.
11406         Remove '!' in warning message.
11407         (Resolve_Call): Add '\' in 2-line warning message.
11408         (Valid_Conversion): Likewise.
11409         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
11410         resulting type may be an access type with an implicit dereference.
11411         Obtain the proper component from the designated type.
11412         (Make_Call_Into_Operator): Handle properly a call to predefined equality
11413         given by an expanded name with prefix Standard, when the operands are
11414         of an anonymous access type.
11415         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
11416         Explicit_Dereference and Resolve_Selected_Component, to verify that the
11417         prefix of the expression is not of an incomplete type. Allows full
11418         diagnoses of all semantic errors.
11419         (Resolve_Actuals): If the actual is an allocator whose directly
11420         designated type is a class-wide interface we build an anonymous
11421         access type to use it as the type of the allocator. Later, when
11422         the subprogram call is expanded, if the interface has a secondary
11423         dispatch table the expander will add a type conversion to force
11424         the displacement of the pointer.
11425         (Resolve_Call): If a function that returns an unconstrained type is
11426         marked Inlined_Always and inlined, the call will be inlined and does
11427         not require the creation of a transient scope.
11428         (Check_Direct_Boolean_Op): Removed
11429         (Resolve_Comparison_Op): Remove call to above
11430         (Resolve_Equality_Op): Remove call to above
11431         (Resolve_Logical_Op): Inline above, since this is only call.
11432         (Valid_Conversion): Handle properly conversions between arrays of
11433         convertible anonymous access types.
11434
11435         PR ada/25885
11436         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
11437         the literal in an unchecked conversion, because GCC 4.x needs a static
11438         value for a string bound.
11439
11440 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11441             Hristian Kirtchev  <kirtchev@adacore.com>
11442
11443         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
11444         components of the corresponding record, take into account component
11445         definitions that are access definitions.
11446         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
11447         procedure is not considered a dispatching call and will be expanded
11448         properly.
11449
11450 2006-02-13  Javier Miranda  <miranda@adacore.com>
11451
11452         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
11453         controlling argument of the dispatching call is an abstract interface
11454         class-wide type then we use it directly.
11455         Check No_Dispatching_Calls restriction.
11456         (Default_Prim_Op_Position): Remove the code that looks for the last
11457         entity in the list of aliased subprograms. This code was wrong in
11458         case of renamings.
11459         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
11460         when the source is compiled with the No_Dispatching_Calls restriction.
11461         (Init_Predefined_Interface_Primitives): No need to inherit primitives
11462         if we are compiling with restriction No_Dispatching_Calls.
11463         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
11464         subprograms if we are compiling under No_Dispatching_Calls restriction.
11465         (Make_DT): Generate a dispatch table with a single dummy entry if
11466         we are compiling with the No_Dispatching_Calls restriction. In
11467         addition, in this case we don't generate code that calls to the
11468         following run-time subprograms: Set_Type_Kind, Inherit_DT.
11469         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
11470         of this subprogram if compiling with the No_Dispatching_Calls
11471         restriction.
11472         (Expand_Type_Conversion): Instead of using the actual parameter,
11473         the argument passed as parameter to the conversion function was
11474         erroneously referenced by the expander.
11475         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
11476         Set_Predefined_Primitive_Op_Address and Set_Signature.
11477         (Expand_Dispatching_Call): Generate call to
11478         Get_Predefined_Prim_Op_Address for predefined primitives.
11479         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
11480         predefined primitives.
11481         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
11482         primitives we reserve one dummy entry to ensure that the tag does not
11483         point to some memory that is associated with some other object. In
11484         addition, remove all the old code that generated the assignments
11485         associated with the signature of the dispatch table and replace them
11486         by a call to the new subprogram Set_Signature.
11487         (Set_All_DT_Position): Change the algorithm because now we have a
11488         separate dispatch table associated with predefined primitive operations.
11489         (Expand_Interface_Conversion): In case of non-static offset_to_top
11490         add explicit dereference to get access to the object after the call
11491         to displace the pointer to the object.
11492         (Expand_Interface_Thunk): Modify the generation of the actual used
11493         in the calls to the run-time function Offset_To_Top to fulfil its
11494         new interface.
11495         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
11496
11497 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11498
11499         * exp_dist.adb (Copy_Specification): For access parameters, copy
11500         Null_Exclusion flag, which will have been set for stream subprograms
11501         in Ada2005 mode.
11502
11503 2006-02-13  Pascal Obry  <obry@adacore.com>
11504
11505         * expect.c (__gnat_expect_portable_execvp): New implementation. The
11506         previous implementation was using the C runtime spawnve routine but
11507         the corresponding wait was using directly the Win32 API. This was
11508         causing some times a lock when waiting for an event using
11509         WaitForSingleObject in __gnat_waitpid. This new implementation uses
11510         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
11511         API fixes this problem.
11512
11513 2006-02-13  Robert Dewar  <dewar@adacore.com>
11514
11515         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
11516         call.
11517
11518 2006-02-13  Thomas Quinot  <quinot@adacore.com>
11519
11520         * exp_pakd.ads: Fix typos in comments.
11521
11522         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
11523         array reference that is an explicit dereference, mark the converted
11524         (packed) array reference as analyzed to prevent a forthcoming
11525         reanalysis from resetting its type to the original (non-packed) array
11526         type.
11527
11528 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11529             Javier Miranda  <miranda@adacore.com>
11530             Eric Botcazou  <ebotcazou@adacore.com>
11531
11532         * exp_util.ads, exp_util.adb (Find_Prim_Op,
11533         Is_Predefined_Primitive_Operation): When
11534         searching for the predefined equality operator, verify that operands
11535         have the same type.
11536         (Is_Predefined_Dispatching_Operation): Remove the code that looks
11537         for the last entity in the list of aliased subprograms. This code
11538         was wrong in case of renamings.
11539         (Set_Renamed_Subprogram): New procedure
11540         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
11541         Exp_Type constant computed when entering this subprogram.
11542         (Known_Null): New function
11543         (OK_To_Do_Constant_Replacement): New function
11544         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
11545         (Side_Effect_Free): An attribute reference 'Input is not free of
11546         side effect, unlike other attributes that are functions. (from code
11547         reading).
11548         (Remove_Side_Effects): Expressions that involve packed arrays or records
11549         are copied at the point of reference, and therefore must be marked as
11550         renamings of objects.
11551         (Is_Predefined_Dispatching_Operation): Return false if the operation is
11552         not a dispatching operation.
11553
11554         PR ada/18819
11555         (Remove_Side_Effects): Lift enclosing type conversion nodes for
11556         elementary types in all cases.
11557
11558 2006-02-13  Javier Miranda  <miranda@adacore.com>
11559
11560         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
11561         task types when accessing to the corresponding record type.
11562         Remove '!' in warning message.
11563
11564 2006-02-13  Olivier Hainque  <hainque@adacore.com>
11565
11566         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
11567         to avoid useless and space inefficient overalignments on targets where
11568         Max_Alignment is larger than 16.
11569
11570 2006-02-13  Pascal Obry  <obry@adacore.com>
11571
11572         * g-catiio.adb (Sec_Number): New type used to compute the number of
11573         seconds since 1-1-1970.
11574         (Image) [Natural]: The parameter was an Integer, as we can't deal with
11575         negative numbers (years, months...) it is better to have a Natural here.
11576         Code clean-up.
11577         (Image) [Number]: Change parameter from Long_Integer to Number.
11578         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
11579         overflow for dates past year 2038.
11580
11581 2006-02-13  Matthew Heaney  <heaney@adacore.com>
11582
11583         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
11584         Constraint_Error.
11585
11586 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
11587
11588         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
11589         native platforms.
11590         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
11591         finalization can occur normally.
11592
11593 2006-02-13  Vincent Celier  <celier@adacore.com>
11594
11595         * gnatcmd.adb (Rules_Switches): New table
11596         (Add_To_Rules_Switches): New procedure
11597         (GNATCmd): For command CHECK, put all options following "-rules" in the
11598         Rules_Switches table. Append these -rules switches after the -cargs
11599         switches.
11600
11601 2006-02-13  Robert Dewar  <dewar@adacore.com>
11602
11603         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
11604         These two cases were generating incorrect output, and if this unit
11605         was built with checks on, generated a discriminant mismatch constraint
11606         error.
11607
11608 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11609             Robert Dewar  <dewar@adacore.com>
11610
11611         * lib-xref.adb (Get_Type_Reference): For a private type whose full
11612         view is an array type, indicate the component type as well, for
11613         navigation purposes.
11614         (Generate_Reference): Don't consider array ref on LHS to be a case
11615         of violating pragma Unreferenced.
11616         Do not give Ada 2005 warning except on real reference.
11617
11618 2006-02-13  Vincent Celier  <celier@adacore.com>
11619
11620         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
11621         main source, add switch -mdebug-main=_ada_ so that the executable can
11622         be debugged by the standard VMS debugger.
11623         (Gnatmake): Set No_Main_Subprogram to True when there is no main
11624         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
11625         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
11626         of the last source, as the binding and linking phases are never
11627         performed.
11628         Set all executable obsolete when rebuilding a library.
11629
11630         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
11631         options.
11632
11633 2006-02-13  Javier Miranda  <miranda@adacore.com>
11634
11635         PR ada/23973
11636         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
11637         code to improve the error message reported when the program has
11638         declarations of abstract interface types and it is not compiled with
11639         the -gnat05 switch.
11640         (P_Access_Definition): Reorganize the code to improve the error
11641         message reported when the new Ada 2005 syntax for anonymous
11642         access types is used and the program is not compiled with the
11643         -gnat05 switch.
11644
11645 2006-02-13  Robert Dewar  <dewar@adacore.com>
11646
11647         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
11648         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
11649         (MODE_IN)
11650
11651 2006-02-13  Javier Miranda  <miranda@adacore.com>
11652
11653         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
11654         against source containing syntax errors.
11655
11656 2006-02-13  Vincent Celier  <celier@adacore.com>
11657
11658         * prj.adb (Reset): Initialize the first element of table Namings with
11659         the standard naming data.
11660
11661 2006-02-13  Vincent Celier  <celier@adacore.com>
11662
11663         * prj.ads (Error_Warning): New enumeration type
11664
11665         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
11666         unknown, use the location of the project to report the error.
11667         (When_No_Sources): New global variable
11668         (Report_No_Ada_Sources): New procedure
11669         (Check): New parameter When_No_Sources. Set value of global variable
11670         When_No_Sources,
11671         (Find_Sources): Call Report_No_Ada_Sources when appropriate
11672         (Get_Sources_From_File): Ditto
11673         (Warn_If_Not_Sources): Better warning messages indicating the unit name
11674         and the file name.
11675
11676         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
11677         Call Prj.Proc.Process with parameter When_No_Sources.
11678
11679         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
11680         Call Recursive_Check with parameter When_No_Sources.
11681         (Recursive_Check): New parameter When_No_Sources. Call itself and
11682         Prj.Nmsc.Check with parameter When_No_Sources.
11683         (Process): New parameter When_No_Sources. Call Check with parameter
11684         When_No_Sources.
11685         (Copy_Package_Declarations): New procedure to copy renamed parameters
11686         and setting the location of the declared attributes to the location
11687         of the renamed package.
11688         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
11689         packages.
11690
11691 2006-02-13  Vincent Celier  <celier@adacore.com>
11692
11693         * prj-makr.adb (Make): Preserve the comments from the original project
11694         file.
11695         When removing nodes (attributes Source_Dirs, Source_Files,
11696         Source_List_File and package Naming), save the comments and attach the
11697         saved comments to the newly created nodes.
11698         Do not add a with clause for the naming package if one already exists.
11699
11700 2006-02-13  Javier Miranda  <miranda@adacore.com>
11701             Gary Dismukes  <dismukes@adacore.com>
11702             Robert Dewar  <dewar@adacore.com>
11703
11704         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
11705
11706         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
11707         aliased entities to look for the overriden abstract interface
11708         subprogram.
11709         (Is_Interface_Subprogram): Complete documentation.
11710         (Check_Dispatching_Operation): Do not generate code to register the
11711         operation in the dispatch table if the source is compiled with
11712         restriction No_Dispatching_Calls.
11713         (Override_Dispatching_Operation): Check for illegal attempt to override
11714         No_Return procedure with procedure that is not No_Return
11715         (Check_Dispatching_Call): Suppress the check for an abstract operation
11716         when the original node of an actual is a tag-indeterminate attribute
11717         call, since the attribute, which must be 'Input, can never be abstract.
11718         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
11719         call to the Input attribute (even when rewritten).
11720         (Propagate_Tag): Augment comment to indicate the possibility of a call
11721         to an Input attribute.
11722
11723         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
11724         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
11725
11726         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
11727         No_Wide_Characters is no longer partition-wide
11728         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
11729         rather than GNAT
11730
11731 2006-02-13  Douglas Rupp  <rupp@adacore.com>
11732
11733         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
11734
11735 2006-02-13  Javier Miranda  <miranda@adacore.com>
11736
11737         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
11738         handles default-initialized components to keep separate the management
11739         of this feature but also avoid the unrequired resolution and
11740         expansion of components that do not have partially initialized
11741         values.
11742         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
11743         (Check_Bounds): Likewise.
11744         (Check_Length): Likewise.
11745
11746 2006-02-13  Javier Miranda  <miranda@adacore.com>
11747             Ed Schonberg  <schonberg@adacore.com>
11748
11749         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
11750         abstract interface type call analyze_and_resolve to expand the type
11751         conversion into the corresponding displacement of the
11752         reference to the base of the object.
11753         (Eval_Attribute, case Width): For systems where IEEE extended precision
11754         is supported, the maximum exponent occupies 4 decimal digits.
11755         (Accessibility_Message): Add '\' in 2-line warning message.
11756         (Resolve_Attribute): Likewise.
11757         (case Attribute_Access): Significantly revise checks
11758         for illegal access-to-subprogram Access attributes to properly enforce
11759         the rules of 3.10.2(32/2).
11760         Diagnose use of current instance with an illegal attribute.
11761
11762         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
11763         to a Node_Id.
11764         (Enclosing_Generic_Unit): New function to return a node's innermost
11765         enclosing generic declaration node.
11766         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
11767         (Type_Access_Level): The accessibility level of anonymous acccess types
11768         associated with discriminants is that of the current instance of the
11769         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
11770         (Compile_Time_Constraint_Error): Handle case of conditional expression.
11771         (Kill_Current_Values_For_Entity): New function
11772         (Enter_Name): Change formal type to Entity_Id
11773
11774 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
11775             Ed Schonberg  <schonberg@adacore.com>
11776             Gary Dismukes  <dismukes@adacore.com>
11777
11778         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
11779         Analyze_Compilation_Unit.
11780         Detect and warn on redundant with clauses detected in a package spec
11781         and/or body when -gnatwr is used.
11782         (Analyze_Context): Analyze config pragmas before other items
11783         (Install_Context_Items): Don't analyze config pragmas here
11784         (Install_Limited_Withed_Unit): Set limited entity of package in
11785         with_clause so that cross-reference information or warning messages on
11786         unused packages can be properly generated
11787         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
11788         has Error_Posted set. Prevent infinite loops in illegal programs.
11789         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
11790         to the point of the error test requiring the current unit to be private.
11791         This ensures that private with clauses are not exempted from the basic
11792         checking for being a descendant of the same library unit parent as a
11793         withed private descendant unit.
11794         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
11795         handle private with clauses properly, as well as to account for cases
11796         where the withed unit is a public descendant of a private ancestor
11797         (in which case the current unit must be a descendant of the private
11798         ancestor's parent). The spec comments were updated accordingly. Also,
11799         the old error message in this subprogram was replaced with error
11800         messages that mirror the errors tested and reported by
11801         Check_Private_Child_Unit.
11802         Parameter and variable names improved for readability.
11803         (Install_Limited_Context_Clauses): Remove test for a withed unit being
11804         private as the precondition for calling
11805         Check_Private_Limited_Withed_Unit since that subprogram has been
11806         revised to test public units as well as private units.
11807
11808 2006-02-13  Thomas Quinot  <quinot@adacore.com>
11809             Robert Dewar  <dewar@adacore.com>
11810             Ed Schonberg  <schonberg@adacore.com>
11811             Javier Miranda  <miranda@adacore.com>
11812
11813         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
11814         that Scope_Stack.First = 1.
11815         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11816         were not always properly handled previously.
11817         (Formal_Entity): Complete rewrite, to handle properly some complex case
11818         with multiple levels of parametrization by formal packages.
11819         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
11820         to the corresponding derived type declaration for proper semantics.
11821
11822         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
11823         (Check_Component): Enforce restriction on components of
11824         unchecked_unions: a component in a variant cannot contain tasks or
11825         controlled types.
11826         (Unchecked_Union): Allow nested variants and multiple discriminants, to
11827         conform to AI-216.
11828         Add pragma Ada_2005 (synonym for Ada_05)
11829         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11830         were not always properly handled previously.
11831         Document that pragma Propagate_Exceptions has no effect
11832         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
11833         (Set_Convention_From_Pragma): Check that if a convention is
11834         specified for a dispatching operation, then it must be
11835         consistent with the existing convention for the operation.
11836         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
11837         longer required to specify an vtable-ptr component in the record. For
11838         compatibility reasons we leave the support for the previous definition.
11839         (Analyze_Pragma, case No_Return): Allow multiple arguments
11840
11841         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
11842         non-overrideen inherited operation with a controlling result as
11843         illegal only its implicit declaration comes from the derived type
11844         declaration of its result's type.
11845         (Check_Possible_Deferred_Completion): Relocate the object definition
11846         node of the subtype indication of a deferred constant completion rather
11847         than directly analyzing it. The analysis of the generated subtype will
11848         correctly decorate the GNAT tree.
11849         (Record_Type_Declaration): Check whether this is a declaration for a
11850         limited derived record before analyzing components.
11851         (Analyze_Component_Declaration): Diagnose record types  not explicitly
11852         declared limited when a component has a limited type.
11853         (Build_Derived_Record_Type): Code reorganization to check if some of
11854         the inherited subprograms of a tagged type cover interface primitives.
11855         This check was missing in case of a full-type associated with a private
11856         type declaration.
11857         (Constant_Redeclaration): Check that the subtypes of the partial and the
11858         full view of a constrained deferred constant statically match.
11859         (Mentions_T): A reference to the current type in an anonymous access
11860         component declaration  must be an entity name.
11861         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
11862         class_wide type to refer to full type, not to the incomplete one.
11863         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
11864         available. Required to give support to the certified run-time.
11865         (Analyze_Component_Declaration): In case of anonymous access components
11866         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
11867         (Process_Discriminants): For an access discriminant, use the
11868         discriminant specification as the associated_node_for_itype, to
11869         simplify accessibility checks.
11870
11871 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11872             Javier Miranda  <miranda@adacore.com>
11873
11874         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
11875         abstract interpretations on an operator, remove interpretations that
11876         yield Address or a type derived from it, if one of the operands is an
11877         integer literal.
11878         (Try_Object_Operation.Try_Primitive_Operation,
11879         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
11880         location when creating the new reference to a primitive or class-wide
11881         operation as a part of rewriting a subprogram call.
11882         (Try_Primitive_Operations): If context requires a function, collect all
11883         interpretations after the first match, because there may be primitive
11884         operations of the same type with the same profile and different return
11885         types. From code reading.
11886         (Try_Primitive_Operation): Use the node kind to choose the proper
11887         operation when a function and a procedure have the same parameter
11888         profile.
11889         (Complete_Object_Operation): If formal is an access parameter and prefix
11890         is an object, rewrite as an Access reference, to match signature of
11891         primitive operation.
11892         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
11893         by an expanded name with prefix Standard, when the operands are of an
11894         anonymous access type.
11895         (Remove_Abstract_Operations): If the operation is abstract because it is
11896         inherited by a user-defined type derived from Address, remove it as
11897         well from the set of candidate interpretations of an overloaded node.
11898         (Analyze_Membership_Op): Membership test not applicable to cpp-class
11899         types.
11900
11901 2006-02-13  Bob Duff  <duff@adacore.com>
11902
11903         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
11904         redundant use clauses.
11905         In particular, if the scope of two use clauses overlaps, but one is not
11906         entirely included in the other, we should not warn.  This can happen
11907         with nested packages.
11908         (Analyze_Subprogram_Renaming): Protect the compiler against previously
11909         reported errors. The bug was reported when the compiler was built
11910         with assertions enabled.
11911         (Find_Type): If the node is a 'Class reference and the prefix is a
11912         synchronized type without a corresponding record, return the type
11913         itself.
11914
11915 2006-02-13  Javier Miranda  <miranda@adacore.com>
11916
11917         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
11918         if this is the full-declaration associated with a private declaration
11919         that implement interfaces, then the private type declaration must be
11920         limited.
11921         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
11922         as aliased. The use of the 'access attribute is not available for such
11923         object (for this purpose the object should be explicitly marked as
11924         aliased, but being an anonymous type this is not possible).
11925
11926 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11927             Robert Dewar  <dewar@adacore.com>
11928
11929         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
11930         compilation unit is an elaboration scope.
11931         (Add_Task_Proc): Add '\' in 2-line warning message.
11932         (Activate_All_Desirable): Deal with case of unit with'ed by parent
11933
11934 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11935             Javier Miranda  <miranda@adacore.com>
11936
11937         * sem_type.adb (Write_Overloads): Improve display of candidate
11938         interpretations.
11939         (Add_One_Interp): Do not add to the list of interpretations aliased
11940         entities corresponding with an abstract interface type that is an
11941         immediate ancestor of a tagged type; otherwise we have a dummy
11942         conflict between this entity and the aliased entity.
11943         (Disambiguate): The predefined equality on universal_access is not
11944         usable if there is a user-defined equality with the proper signature,
11945         declared in the same declarative part as the designated type.
11946         (Find_Unique_Type): The universal_access equality operator defined under
11947         AI-230 does not cover pool specific access types.
11948         (Covers): If one of the types is a generic actual subtype, check whether
11949         it matches the partial view of the other type.
11950
11951 2006-02-13  Thomas Quinot  <quinot@adacore.com>
11952
11953         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
11954         line. This is necessary to allow In_Extended_Main_Unit to provide
11955         correct results for itypes while writing out expanded source.
11956         (Close_File): No need to update the source_index_table here since it's
11957         now done for each line.
11958
11959 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
11960             Robert Dewar  <dewar@adacore.com>
11961
11962         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
11963         preserve the source unit where the itype is declared, and prevent a
11964         backend abort.
11965         (Note_Implicit_Run_Time_Call): New procedure
11966         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
11967         E_Subprogram_Type)
11968
11969         * sprint.ads: Document use of $ for implicit run time routine call
11970
11971 2006-02-13  Quentin Ochem  <ochem@adacore.com>
11972
11973         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
11974         task name.
11975
11976 2006-02-13  Bob Duff  <duff@adacore.com>
11977
11978         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
11979         Scan_Unsigned, so we do not scan leading blanks and sign twice.
11980         Integer'Value("- 5") and Integer'Value("-+5") now correctly
11981         raise Constraint_Error.
11982
11983         * s-vallli.adb (Scan_Long_Long_Integer): Call
11984         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
11985         do not scan leading blanks and sign twice.
11986         Integer'Value("- 5") and Integer'Value("-+5") now correctly
11987         raise Constraint_Error.
11988
11989         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
11990         Scan_Long_Long_Unsigned): Split out most of the processing from
11991         Scan_Long_Long_Unsigned out into
11992         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
11993         This prevents scanning leading blanks and sign twice.
11994         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
11995         See RM-3.5(44).
11996
11997         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
11998         out most of the processing from Scan_Unsigned out into
11999         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
12000         This prevents scanning leading blanks and sign twice.
12001
12002         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
12003         use with Modular'Value attribute.
12004         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
12005         attribute.
12006
12007 2006-02-13  Robert Dewar  <dewar@adacore.com>
12008
12009         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
12010
12011 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
12012
12013         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
12014         (PPC VxWorks): Likewise.
12015         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
12016         (forced_callee): Make non-inlinable and non-pure.
12017         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
12018
12019 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
12020             Ben Brosgol  <brosgol@adacore.com>
12021             Robert Dewar  <dewar@adacore.com>
12022
12023         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
12024         support.
12025         Document that gnatbind -M option is for cross environments only.
12026         Added description of using gnatmem to trace gnat rtl allocs and deallocs
12027         Add note on use of $ to label implicit run time calls
12028         Add documentation for -gnatyI (check mode IN)
12029         Updated chapter on compatibility with HP Ada
12030         VMS-oriented edits.
12031         Ran spell and corrected errors
12032         Add documentation for gnatbind -d and rework documentation of -D
12033         at the same time.
12034         Add subprogram/data elimination section.
12035         Minor editing of annex A.
12036         Add section for gnatcheck.
12037         Add documentation for restriction No_Dispatching_Calls
12038         Add documentation for pragma Ada_2005
12039         Remove mention of obsolete pragma Propagate_Exceptions
12040         Document that pragma Unreferenced can appear after DO in ACCEPT
12041         Clarify Pure_Function for library level units
12042         Mention Max/Min in connection with No_Implicit_Conditionals
12043         No_Wide_Characters restriction is no longer partition-wide
12044         Add a nice example for Universal_Literal_String attribute
12045         Document that pragma No_Return can take multiple arguments
12046
12047         * ug_words: Added entry for gnatcheck
12048
12049         * g-ctrl_c.ads (Install_Handler): Enhance comments
12050
12051         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
12052
12053         * g-trasym.ads: Add documentation on how to do off line symbolic
12054         traceback computation.
12055
12056         * s-fatgen.adb: Add comments for Unaligned_Valid
12057
12058         * stand.ads: Fix typo in comment
12059
12060 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12061
12062         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
12063
12064 2006-02-06  Roger Sayle  <roger@eyesopen.com>
12065
12066         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
12067
12068 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12069
12070         PR target/25926
12071         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
12072         implementation that calls __main.
12073
12074 2006-01-25  Peter O'Gorman  <peter@pogma.com>
12075
12076         PR bootstrap/25859
12077         * Makefile.in (GCC_LINK): Remove quotes.
12078         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
12079         or $(GCC_LINK).
12080
12081         (powerpc-darwin): Pass -shared-libgcc when building shared library.
12082
12083 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12084
12085         PR ada/24533
12086         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
12087
12088 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12089
12090         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
12091
12092 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12093
12094         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
12095         needed.
12096
12097 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12098
12099         * Make-lang.in: Update dependencies
12100
12101 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12102
12103         * Make-lang.in: Add rule for ada/exp_sel.o
12104
12105 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12106
12107         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
12108
12109 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
12110
12111         * gnatvsn.ads (Library_Version): Bump to version 4.2
12112         (ASIS_Version_Number): Bumped.
12113
12114 2005-12-09  Doug Rupp  <rupp@adacore.com>
12115
12116         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
12117         Ada bind file prefix on VMS from b$ to b__.
12118         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
12119         __init.
12120
12121         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
12122         Targparm.OpenVMS_On_Target.
12123         (Object_Suffix): Initialize with target object suffix.
12124         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
12125
12126         * butil.adb: Change some Hostparm.OpenVMS checks to
12127         Targparm.OpenVMS_On_Target.
12128
12129         * clean.adb: Change some Hostparm.OpenVMS checks to
12130         Targparm.OpenVMS_On_Target.
12131         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
12132         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
12133         Ada bind file prefix on VMS from b$ to b__.
12134
12135         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
12136         --GCC so that Get_Target_Parameters can find system.ads.
12137         (Gnatlink): Call Get_Target_Parameters in mainline.
12138         Initialize standard packages for Targparm.
12139         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
12140         (Process_Args): Also Check for object files with target object
12141         extension.
12142         (Make_Binder_File_Names): Create with target object extension.
12143         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
12144         to b__.
12145
12146         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
12147         Targparm.OpenVMS_On_Target.
12148         ({declaration},Build_Library,Check_Library): Change Ada bind file
12149         prefix on VMS from b$ to b__.
12150
12151         * osint-b.adb: Change some Hostparm.OpenVMS checks to
12152         Targparm.OpenVMS_On_Target.
12153         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
12154         b__.
12155
12156         * targext.c: New file.
12157
12158         * Makefile.in: add support for vxworks653 builds
12159         (../../vxaddr2line): gnatlink with targext.o.
12160         (TOOLS_LIBS): Move targext.o to precede libgnat.
12161         (init.o, initialize.o): Minor clean up in dependencies.
12162         (GNATLINK_OBJS): Add targparm.o, snames.o
12163         Add rules fo building targext.o and linking it explicitly with all
12164         tools.
12165         Also add targext.o to gnatlib.
12166
12167         * Make-lang.in: Add rules for building targext.o and linking it in
12168         with gnat1 and gnatbind.
12169         Add entry for exp_sel.o.
12170
12171         * osint.adb Change some Hostparm.OpenVMS checks to
12172         Targparm.OpenVMS_On_Target.
12173         (Object_File_Name): Use target object suffix.
12174
12175         * osint.ads (Object_Suffix): Remove, no longer used.
12176         (Target_Object_Suffix): Initialize with target object suffix.
12177
12178         * rident.ads: Add special exception to license.
12179
12180         * targparm.adb (Get_Target_Parameters): Set the value of
12181         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
12182         value.
12183         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
12184         
12185         * targparm.ads: Add special exception to license.
12186
12187         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
12188         function.
12189         (Copy_File): Make sure from file is closed if error on to file
12190         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
12191
12192         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
12193         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
12194
12195         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
12196         target object suffix.
12197
12198 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
12199             Quentin Ochem  <ochem@adacore.com>
12200             Florian Villoing  <villoing@adacore.com>
12201
12202         * a-taster.ads, a-taster.adb: New files.
12203
12204         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
12205         link to the version that does nothing. This way the task termination
12206         routine is not executed twice for the environment task when finishing
12207         because of an unhandled exception.
12208
12209         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
12210         handler because of an unhandled exception.
12211
12212         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
12213         System.Tasking.Utilities instead of that in System.Tasking.Stages.
12214
12215         * s-finimp.adb (initialization code): Modify the soft link for the
12216         finalization of the global list instead of Adafinal.
12217
12218         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
12219         non-tasking version of the soft link for task termination. We do
12220         nothing since if we are using the non-tasking version it
12221         means that the task termination functionality is not used.
12222         (Null_Finalize_Global_List): Add this null version for the procedure
12223         in charge of finalizing the global list for controlled objects.
12224         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
12225         instead for handling run-time termination in a more flexible way.
12226         (Adafinal_NT): This new procedure will take care of finalizing the
12227         global list for controlled objects if needed, but no tasking
12228         finalization.
12229
12230         * s-tarest.adb (Task_Lock): Do not try to lock again the
12231         Global_Task_Lock if we already own it. Otherwise, we get blocked in
12232         some run-time operations.
12233         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
12234         until all nested locks have been released.
12235         (Task_Wrapper): Call the fall-back task termination handler. It
12236         applies to all tasks but the environment task.
12237         (Finalize_Global_Tasks): Add the call for the task termination
12238         procedure for the environment task.
12239         (Task_Wrapper): suppress warnings around declaration of
12240         Secondary_Stack_Address.
12241
12242         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
12243         moved to the Common_ATCB record.
12244         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
12245         Common_ATCB record.
12246         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
12247         Common_ATCB record.
12248
12249         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
12250         Fall_Back_Handler, and Specific_Handler.
12251
12252         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
12253         defined in Ada.Task_Termination, to avoid circular dependencies.
12254         (Termination_Handler): Redefine this type here, alredy defined in
12255         Ada.Task_Termination, for avoiding circular dependencies.
12256         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
12257         for storing task termination handlers. In addition,
12258         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
12259         Common_ATCB because it is used by both the regular and the restricted
12260         run times.
12261         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
12262         Common_ATCB because it is used by both the regular and the restricted
12263         run times.
12264         (Common_ATCB): Added a dynamic task analyzer field.
12265
12266         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
12267         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
12268         (Task_Wrapper): Call the task termination handler. It applies to all
12269         tasks but the environment task.
12270         (Finalize_Global_Tasks): Call the task termination procedure for the
12271         environment task. The call to Finalize_Global_List is now performed
12272         using the soft links mechanism.
12273         (Task_Wrapper): added dynamic stack analysis.
12274
12275         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
12276         potentially blocking operations has been moved from
12277         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
12278         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
12279         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
12280         this run-time check.
12281
12282         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
12283         of task termination procedure.
12284         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
12285         link for the task termination procedure.
12286
12287         * bindusg.adb: (Bindusg): Added documentation for -u option.
12288
12289         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
12290         (Get_Main_C): Add handling of dynamic stack analysis.
12291         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
12292
12293         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
12294         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
12295         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
12296
12297         * opt.ads: Added flags used by dynamic stack measurement.
12298         (Max_Line_Length): Remove (not used anymore)
12299
12300         * s-io.ads, s-io.adb (Standard_Error): new subprogram
12301         (Standart_Output): new subprogram
12302         (Set_Output): new subprogram
12303         (Put): now uses the value of Current_Out to know if the output has to be
12304         send to stderr or stdout.
12305         
12306         * s-stausa.ads: Complete implementation.
12307
12308         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
12309         
12310         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
12311         list of Ada 05 files.
12312         (GNAT Library Units): Add AltiVec files.
12313
12314         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
12315         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
12316         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
12317
12318 2005-12-09  Nicolas Setton  <setton@adacore.com>
12319
12320         * adaint.c (__gnat_locate_regular_file): Return immediately if
12321         file_name is empty.
12322
12323 2005-12-09  Javier Miranda  <miranda@adacore.com>
12324             Hristian Kirtchev  <kirtchev@adacore.com>
12325
12326         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
12327         to the specification because the frontend generates code that uses this
12328         subprogram.
12329         (Set_Interface_Table): Add missing assertion.
12330         Update documentation describing the run-time structure.
12331         (Displace): New subprogram that displaces the pointer to the object
12332         to reference one of its secondary dispatch tables.
12333         (IW_Membership): Modified to use the new table of interfaces.
12334         (Inherit_TSD): Modified to use the new table of interfaces.
12335         (Register_Interface_Tag): Use the additional formal to fill the
12336         contents of the new table of interfaces.
12337         (Set_Interface_Table): New subprogram that stores in the TSD the
12338         pointer to the table of interfaces.
12339         (Set_Offset_To_Top): Use the additional formal to save copy of
12340         the offset value in the table of interfaces.
12341         Update structure of GNAT Primary and Secondary dispatch table diagram.
12342         Add comment section on GNAT dispatch table prologue.
12343         (Offset_To_Signature): Update the constant value of the Signature field.
12344         (Dispatch_Table): Update comment on hidden fields in the prologue.
12345         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
12346         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
12347         the type of formal parameter T to Tag, introduce additional assertions.
12348         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
12349         conversion.
12350         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
12351
12352         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
12353         in all the calls to Expand_Interface_Thunk. Instead of referencing the
12354         record component containing the tag of the secondary dispatch table we
12355         have to use the Offset_To_Top run-time function to get this information;
12356         otherwise if the pointer to the base of the object has been displace
12357         we get a wrong value if we use the 'position attribute.
12358
12359         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
12360         all the calls to Expand_Interface_Thunk.
12361         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
12362         interfaces; hence the call to Set_Interface_Table was clearly wrong.
12363         (Collect_All_Interfaces): Modify the internal subprogram Collect to
12364         ensure that the interfaces implemented by the ancestors are placed
12365         at the header of the generated list.
12366         (Expand_Interface_Conversion): Handle the case in which the displacement
12367         associated with the interface conversion is not statically known. In
12368         this case we generate a call to the new run-time subprogram Displace.
12369         (Make_DT): Generate and fill the new table of interfaces.
12370         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
12371         Get_Tagged_Kind and Set_Tagged_Kind.
12372         (Tagged_Kind): New function that determines the tagged kind of a type
12373         with respect to limitedness and concurrency and returns a reference to
12374         RE_Tagged_Kind.
12375         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
12376         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
12377         primary dispatch table for a type.
12378         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
12379         secondary dispatch table respectively of a tagged type.
12380
12381         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
12382         (Expand_Interface_Conversion): New subprogram to indicate if the
12383         displacement of the type conversion is statically known.
12384         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
12385
12386         * rtsfind.ads (RE_Offset_To_Top): New entity
12387         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
12388         accessible to users.
12389         (Re_Displace): New entity
12390         (RE_Interface_Data): New entity
12391         (RE_Set_Interface_Data): New_Entity
12392         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
12393         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
12394         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
12395         RE_TK_Tagged, RE_TK_Task.
12396
12397         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
12398         Init_Secondary_Tags_Internal to allow its use with interface types and
12399         also to generate the code for the new additional actual required
12400         by Set_Offset_To_Top.
12401         (Build_Init_Statements): In case of components associated with abstract
12402         interface types there is no need to generate a call to its IP.
12403         (Freeze_Record_Type): Generate Select Specific Data tables only for
12404         concurrent types.
12405         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
12406         the bodies and specifications of the predefined primitive operations
12407         dealing with dispatching selects and abort, 'Callable, 'Terminated only
12408         for concurrent types.
12409
12410         * exp_sel.ads, exp_sel.adb: New files.
12411
12412         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
12413         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
12414         properly protected objects and attach handler in the case of the
12415         restricted profile.
12416         Move embeded package Select_Expansion_Utilities into a separate external
12417         package.
12418         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
12419         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
12420         (Build_K, Build_S_Assignment): New subprograms, part of the select
12421         expansion utilities.
12422         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
12423         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
12424         where the trigger is a dispatching procedure of a limited tagged type.
12425
12426 2005-12-09  Olivier Hainque  <hainque@adacore.com>
12427
12428         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
12429         pointer initialization values. Make a SAVE_EXPR instead. Add comments
12430         about the use and expansion of SAVE_EXPRs in the various possible
12431         renaming handling cases.
12432         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
12433         abusing DECL_FCONTEXT.
12434
12435 2005-12-09  Matthew Heaney  <heaney@adacore.com>
12436
12437         * a-convec.adb (Merge): Added assertions to check whether vector params
12438         are sorted.
12439
12440         * a-coinve.adb (Merge): Added assertions to check whether vector params
12441         are sorted.
12442
12443         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
12444         draft.
12445         (Cursor'Read): raises PE
12446
12447         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
12448         to its default value.
12449
12450         * a-cihama.adb: Manually check whether cursor's key and elem are
12451         non-null
12452
12453         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
12454         (Merge): Assert that target and source lists are in order
12455         (Swap): Declare non-const temporaries, to pass to Splice
12456
12457         * a-cdlili.ads: (Splice): Changed param name and param mode
12458
12459         * a-cdlili.adb: (Splice): Changed param name and param mode
12460         (Merge): Assert that target and source lists are in order
12461         (Swap): Declare non-const temporaries, to pass to Splice
12462
12463         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
12464         (Write): declare Stream param as not null
12465
12466         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
12467         an exception message.
12468
12469 2005-12-09  Thomas Quinot  <quinot@adacore.com>
12470             Robert Dewar  <dewar@adacore.com>
12471
12472         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
12473         which is the absolute maximum length we can support.
12474
12475         * frontend.adb: For the processing of configuration pragma files,
12476         remove references to Opt.Max_Line_Length, which is not checked anymore.
12477
12478         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
12479         length.
12480
12481         * scn.adb, scng.adb: 
12482         Always check line length against the absolute supported maximum,
12483         Hostparm.Max_Line_Length.
12484
12485         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
12486         value for the maximum line length is Max_Line_Length (not
12487         Column_Number'Last).
12488         Minor error msg update
12489         (Set_Style_Check_Options): New interface returning error msg
12490         Minor code reorganization (processing for 'M' was out of alpha order)
12491
12492         * switch-c.adb: New interface for Set_Style_Check_Options
12493
12494         * stylesw.ads (Set_Style_Check_Options): New interface returning error
12495         msg.
12496
12497 2005-12-09  Javier Miranda  <miranda@adacore.com>
12498
12499         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
12500         with IP subprogram were only supported if there were limited types.
12501
12502         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
12503         records with IP subprogram were only supported if there were limited
12504         types.
12505
12506 2005-12-09  Olivier Hainque  <hainque@adacore.com>
12507             Eric Botcazou  <ebotcazou@adacore.com>
12508
12509         * trans.c (tree_transform, emit_check): Adjust calls to
12510         build_call_raise, passing the now expected GNAT_NODE argument.
12511
12512         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
12513         source line information than what the current global locus indicates
12514         when appropriate.
12515
12516         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
12517         field has overflowed.
12518         (build_call_raise): Add a GNAT_NODE argument to convey better source
12519         line information than what the current global locus indicates when
12520         appropriate.
12521         (build_component_ref): Adjust call to build_call_raise.
12522
12523 2005-12-09  Pascal Obry  <obry@adacore.com>
12524
12525         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
12526         the iterator is quitting iteration on parent directory.
12527
12528 2005-12-09  Javier Miranda  <miranda@adacore.com>
12529
12530         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
12531         and the assignment to a class-wide object, before the assignment we
12532         generate a run-time check to ensure that the tag of the Target is
12533         covered by the tag of the source.
12534
12535 2005-12-09  Robert Dewar  <dewar@adacore.com>
12536
12537         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
12538         parameter in call to Image_Wide_Character.
12539
12540         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
12541         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
12542         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
12543         annoying FFFE/FFFF inconsistency.
12544
12545 2005-12-09  Robert Dewar  <dewar@adacore.com>
12546             Javier Miranda  <miranda@adacore.com>
12547             Ed Schonberg  <schonberg@adacore.com>
12548
12549         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
12550         of type conversion.
12551         (Find_Interface): New subprogram that given a tagged type and one of its
12552         component associated with the secondary table of an abstract interface
12553         type, return the entity associated with such abstract interface type.
12554         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
12555         base type to create anonymous subtype, because entity may be a locally
12556         declared subtype or generic actual.
12557         (Find_Interface): New subprogram that given a tagged type and one of its
12558         component associated with the secondary table of an abstract interface
12559         type, return the entity associated with such abstract interface type.
12560
12561         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
12562         conversion cannot be handled at compile time. In this case we pass this
12563         information to the expander to generate the appropriate code.
12564
12565 2005-12-09  Robert Dewar  <dewar@adacore.com>
12566             Ed Schonberg  <schonberg@adacore.com>
12567             Gary Dismukes  <dismukes@adacore.com>
12568             Javier Miranda  <miranda@adacore.com>
12569             Hristian Kirtchev  <kirtchev@adacore.com>
12570
12571         * einfo.adb (Itype_Printed): New flag
12572         (Is_Limited_Type): Derived types do not inherit limitedness from
12573         interface progenitors.
12574         (Is_Return_By_Reference_Type): Predicate does not apply to limited
12575         interfaces.
12576
12577         * einfo.ads (Itype_Printed): New flag
12578         Move Is_Wrapper_Package to proper section
12579         Add missing Inline for Is_Volatile
12580
12581         * output.ads, output.adb (Write_Erase_Char): New procedure
12582         (Save/Restore_Output_Buffer): New procedures
12583         (Save/Restore_Output_Buffer): New procedures
12584
12585         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
12586         Add missing support for anonymous access type
12587         (Write_Id): Insert calls to Write_Itype
12588         (Write_Itype): New procedure to output itypes
12589
12590         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
12591         use of "limited" in declaration.
12592
12593         * sinfo.ads, sinfo.adb: 
12594         Formal derived types can carry an explicit "limited" indication.
12595
12596         * sem_ch3.adb: Add with and use of Targparm.
12597         (Create_Component): If Frontend_Layout_On_Target is True and the
12598         copied component does not have a known static Esize, then reset
12599         the size and positional fields of the new component.
12600         (Analyze_Component_Declaration): A limited component is
12601         legal within a protected type that implements an interface.
12602         (Collect_Interfaces): Do not add to the list the interfaces that
12603         are implemented by the ancestors.
12604         (Derived_Type_Declaration): If the parent of the full-view is an
12605         interface perform a transformation of the tree to ensure that it has
12606         the same parent than the partial-view. This simplifies the job of the
12607         expander in order to generate the correct object layout, and it is
12608         needed because the list of interfaces of the full-view can be given in
12609         any order.
12610         (Process_Full_View): The parent of the full-view does not need to be
12611         a descendant of the parent of the partial view if both parents are
12612         interfaces.
12613         (Analyze_Private_Extension_Declaration): If declaration has an explicit
12614         "limited" the parent must be a limited type.
12615         (Build_Derived_Record_Type): A derived type that is explicitly limited
12616         must have limited ancestor and progenitors.
12617         (Build_Derived_Type): Ditto.
12618         (Process_Full_View): Verify that explicit uses of "limited" in partial
12619         and full declarations are consistent.
12620         (Find_Ancestor_Interface): Remove function.
12621         (Collect_Implemented_Interfaces): New procedure used to gather all
12622         implemented interfaces by a type.
12623         (Contain_Interface): New function used to check whether an interface is
12624         present in a list.
12625         (Find_Hidden_Interface): New function used to determine whether two
12626         lists of interfaces constitute a set equality. If not, the first
12627         differing interface is returned.
12628         (Process_Full_View): Improve the check for the "no hidden interface"
12629         rule as defined by AI-396.
12630
12631 2005-12-09  Robert Dewar  <dewar@adacore.com>
12632
12633         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
12634         types, not on record subtypes.
12635         (Freeze_Entity): Code cleanup. Add barrier to the loop
12636         that generates the references for primitive operations. This allows to
12637         remove an unnecessary exception handler.
12638         Code reformatting and comment clean ups.
12639
12640 2005-12-09  Vincent Celier  <celier@adacore.com>
12641
12642         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
12643         If GNAT CHECK is called with a project file, but with no
12644         source on the command line, call gnatcheck with all the compilable
12645         sources of the project.
12646         Take into account the new command Check, for gnatcheck. Treat as for
12647         other ASIS tools: take into account project, specific package Check and
12648         Compiler switches.
12649         For ASIS tools, add the switches in package Compiler for
12650         the invocation of the compiler.
12651
12652         * prj-attr.adb: Add package Check and its attributes
12653
12654         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
12655
12656         * vms_conv.adb (Initialize): Change Params of command Check to
12657         unlimited files.
12658         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
12659         Add data for new command Check
12660
12661         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
12662         ELIM.
12663         Add qualifiers for Check command options
12664         (Command_Type): New command Check
12665
12666 2005-12-09  Thomas Quinot  <quinot@adacore.com>
12667
12668         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
12669         command line switch overruns the output buffer.
12670
12671 2005-12-09  Robert Dewar  <dewar@adacore.com>
12672
12673         * sem_prag.adb: Processing for new pragma Complete_Representation
12674         (Analyze_Pragma, case Debug): Implement two argument form.
12675
12676         * par-prag.adb: Entry for new pragma Complete_Representation
12677         (Prag, case Debug): Recognize two argument form of pragma Debug
12678         New interface for Set_Style_Check_Options.
12679
12680         * sem_ch13.adb: Implement new pragma Complete_Representation.
12681
12682         * snames.adb, snames.ads, snames.h: Entry for new pragma
12683         Complete_Representation.
12684
12685 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
12686
12687         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
12688         available user-specified stream attributes on limited parameters to
12689         also test the type directly rather than only its underlying type (for
12690         Ada 95) and, in the case of Ada 2005, to check that the user-specified
12691         attributes are visible at the point of the subprogram declaration.
12692         For Ada 2005, the error message is modified to indicate that the
12693         type's stream attributes must be visible (again, only for -gnat05).
12694
12695 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
12696
12697         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
12698         anonymous access types.
12699
12700         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
12701         matching of anonymous access types and anonymous access to subprogram
12702         types. 'R'M 4.9.1 (2/2).
12703
12704 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
12705
12706         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
12707         rule prematurely when operands are universal, remaining ambiguities
12708         will be removed during resolution.
12709         Code cleanup.
12710
12711         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
12712         that are Ada 2005 functions.
12713         (Has_Abstract_Interpretation): Subsidiary to
12714         Remove_Conversions, to remove ambiguities caused by abstract operations
12715         on numeric types when operands are universal.
12716
12717 2005-12-09  Robert Dewar  <dewar@adacore.com>
12718
12719         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
12720         for case where spec is categorized.
12721
12722 2005-12-09  Javier Miranda  <miranda@adacore.com>
12723
12724         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
12725         types use the corresponding record type. This was not needed before
12726         the implementation of Ada 2005 synchronized types because
12727         concurrent types were never tagged types in Ada 95.
12728
12729 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
12730
12731         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
12732         first subtype of the type of the expression to verify that it is a
12733         legal Time type.
12734
12735 2005-12-09  Robert Dewar  <dewar@adacore.com>
12736
12737         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
12738         decoded names.
12739
12740 2005-12-09  Quentin Ochem  <ochem@adacore.com>
12741             Robert Dewar  <dewar@adacore.com>
12742             Ed Falis  <falis@adacore.com>
12743             Florian Villoing  <villoing@adacore.com>
12744             Thomas Quinot  <quinot@adacore.com>
12745             Arnaud Charlet  <charlet@adacore.com>
12746
12747         * gnat_ugn.texi: Created section "Stack Related Tools"
12748         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
12749         "Stack Related Tools"
12750         Added subsection "Static Stack Usage Analysis"
12751         Added subsection "Dynamic Stack Usage Analysis"
12752         Include documentation of itypes in sprint listing (-gnatG)
12753         Documented gnatbind -D switch (default sec stack size for fixed sec
12754         stacks).
12755         Added Interrupt_State and Persistent_BSS to list of configuration
12756         pragmas.
12757         Add missing doc for maximum value of nnn in -gnatyMnnn
12758
12759         * gnat_rm.texi: Document the AltiVec binding.
12760         Add documentation for pragma Complete_Representation
12761         Shortened an overly long line (> 79 chars)
12762         Clarify documentation of unchecked conversion in implementation
12763         defined cases.
12764         Document two argument form of pragma Debug
12765
12766         * types.ads (Column_Number): Update documentation.
12767
12768         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
12769         library level Finalize_Storage_Only objects (these are not attached to
12770         any finalization list).
12771
12772         * system-mingw.ads: (Underlying_Priorities): Update comment.
12773
12774 2005-12-09  Robert Dewar  <dewar@adacore.com>
12775
12776         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
12777         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
12778         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
12779         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
12780         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
12781         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
12782         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
12783         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
12784         reformatting.
12785
12786 2005-12-09  Robert Dewar  <dewar@adacore.com>
12787
12788         * s-vaflop-vms-alpha.adb: (Ne_F): New function
12789         (Ne_G): New function
12790
12791         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
12792         for tag assignment.
12793         (Rewrite_Comparison): Handle case where operation is not a comparison
12794         and ignore, and also handle type conversion case.
12795
12796 2005-12-09  Thomas Quinot  <quinot@adacore.com>
12797
12798         * exp_aggr.ads: Fix typo in comment.
12799         ???-mark Convert_Aggr_In_Assignment as needing documentation.
12800
12801 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
12802
12803         * layout.adb: Replace various uses of byte by storage unit throughout.
12804         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
12805         static size, convert to storage units before returning, to conform to
12806         spec.
12807
12808 2005-12-09  Matthew Gingell  <gingell@adacore.com>
12809
12810         * g-exctra.ads: Fix typo in comment.
12811
12812 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12813
12814         * utils.c: Minor reformatting.
12815
12816 2005-12-09  Robert Dewar  <dewar@adacore.com>
12817
12818         * g-soccon.ads: 
12819         Further comment fixes to make the status of the default file clear
12820
12821         * s-bitops.adb: Clarify comment for Bits_Array
12822
12823 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
12824
12825         * Make-lang.in (ada.install-normal): Remove.
12826
12827 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
12828
12829         * Make-lang.in: Remove all dependencies on s-gtype.
12830
12831 2005-12-05  Richard Guenther  <rguenther@suse.de>
12832
12833         * utils.c (convert): Use fold_convert where appropriate.
12834
12835 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
12836
12837         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
12838         a period is meant.
12839
12840 2005-12-02  Richard Guenther  <rguenther@suse.de>
12841
12842         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
12843
12844 2005-12-01  Roger Sayle  <roger@eyesopen.com>
12845
12846         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
12847         nodes.
12848
12849 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
12850
12851         * mlib-prj.adb (Build_Library): Initialize Delete.
12852
12853 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
12854
12855         * socket.c: Add extern int h_errno for rtems since networking header
12856         files are not available at this point in a tool bootstrap. Newlib
12857         only has basic C library header files.
12858
12859 2005-11-19  Richard Guenther  <rguenther@suse.de>
12860         Roger Sayle  <roger@eyesopen.com>
12861
12862         PR ada/23717
12863         * misc.c (internal_error_function): Don't use vsprintf to format
12864         the error message text, instead use pp_format_text and the new
12865         pretty printer APIs.  This allows handling of %qs, %w, etc.
12866
12867 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
12868
12869         PR ada/24857
12870         * Makefile.in: Use s-auxdec-empty for RTEMS.
12871
12872 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12873
12874         PR ada/22333
12875         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
12876         a temporary if taking the address of something that is neither
12877         reference, declaration, or constant, since the gimplifier
12878         can't handle that case.
12879
12880 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
12881
12882         PR ada/24857
12883         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
12884
12885 2005-11-16  Richard Guenther  <rguenther@suse.de>
12886
12887         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
12888
12889 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
12890
12891         PR ada/24855
12892         * raise-gcc.c: Add missing stdarg.h include.
12893  
12894 2005-11-16  Richard Guenther  <rguenther@suse.de>
12895
12896         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
12897         (ada/misc.o): Likewise.
12898
12899 2005-11-14  Thomas Quinot  <quinot@adacore.com>
12900
12901         * g-soccon.ads: Minor reformatting. Update comments.
12902
12903         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
12904         gain visibility on the declaration of struct timeval.
12905
12906         * g-soccon-freebsd.ads,
12907         g-soccon-darwin.ads,
12908         g-soccon-tru64.ads,
12909         g-soccon-aix.ads,
12910         g-soccon-irix.ads,
12911         g-soccon-hpux.ads,
12912         g-soccon-solaris.ads,
12913         g-soccon-vms.ads,
12914         g-soccon-mingw.ads,
12915         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
12916
12917         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
12918         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
12919         g-soccon-linux-x86.ads: New files.
12920
12921         * g-socthi-mingw.adb: 
12922         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
12923
12924         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
12925         (time_t, suseconds_t): New types constructed to match the tv_sec
12926         and tv_usec fields of C struct timeval.
12927         (Timeval): Construct structure in terms of the new types.
12928         (Host_Errno): New function (imported from socket.c), returns last hosts
12929         database error.
12930
12931         * g-socthi-vxworks.adb:  Add error handling circuitry.
12932
12933         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
12934         components of struct timeval.
12935         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
12936         (Check_Selector): In error conditions, clear internal socket sets to
12937         avoid a memory leak.
12938         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
12939         Send_Timeout, Receive_Timeout.
12940
12941         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
12942         the tv_sec and tv_usec fields of C struct timeval.
12943         (Timeval): Construct structure in terms of the new types.
12944         (Host_Errno): New function (imported from socket.c), returns last hosts
12945         database error.
12946
12947         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
12948         hosts database last error code.
12949
12950         * gen-soccon.c: Complete value expansion should not be performed on
12951         TARGET, as it has the form of a math expression, and some components
12952         may be platform-defined macros.
12953         For VxWorks, generate the OK and ERROR values.
12954         New constants giving the sizes of the components of C struct timeval.
12955
12956 2005-11-14  Robert Dewar  <dewar@adacore.com>
12957             Ed Schonberg  <schonberg@adacore.com>
12958
12959         PR ada/18434
12960         * types.ads: Include All_Checks in Suppress_Array
12961
12962         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
12963         not(a=b), since we no longer do this rewriting, and hence it is not
12964         needed.
12965         (Elaboration_Checks_Suppressed): Add special casing to
12966         deal with different cases of static and dynamic elaboration checks (all
12967         checks does not count in the first case, but does in the second).
12968         (Expr_Known_Valid): Do not assume that the result of any arbitrary
12969         function call is valid, since this is not the case.
12970         (Ensure_Valid): Do not apply validity check to a real literal
12971         in a universal or fixed context
12972
12973         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
12974         elementary types using the operator in standard. It is cleaner not to
12975         modify the programmers intent, especially in the case of floating-point.
12976         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
12977         it did not matter because we always rewrote a/=b to not(a=b).
12978         (Expand_Allocator_Expression): For an allocator expression whose nominal
12979         subtype is an unconstrained packed type, convert the expression to its
12980         actual constrained subtype.
12981         Implement warning for <= or >= where < or > not possible
12982         Fix to Vax_Float tests (too early in many routines, causing premature
12983         Vax_Float expansions.
12984
12985         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
12986         to be used with packages and generic packages as well as with
12987         subprograms.
12988         (Suppress): Set All_Checks, but not Elaboration_Check, for case
12989         of pragma Suppress (All_Checks)
12990         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
12991         a string literal for precise control over warnings.
12992         Avoid raise of pragma in case of unrecognized pragma and just return
12993         instead.
12994
12995         * sem_prag.ads: Minor reformatting
12996
12997         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
12998         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
12999         Switch. Do not handle any exception.
13000         Include -gnatwx as part of -gnatg (warn on redundant parens)
13001         Allow optional = after -gnatm
13002         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
13003         longer sets Elaboration_Checks.
13004         Code to set warning mode moved to Sem_Warn
13005         so that it can be shared by pragma processing.
13006
13007         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
13008         statement.
13009
13010         * s-taprop-solaris.adb: 
13011         Change some <= to =, to avoid new warning
13012
13013         * a-exexda.adb, prj-proc.adb: 
13014         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
13015         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
13016
13017 2005-11-14  Robert Dewar  <dewar@adacore.com>
13018
13019         * exp_vfpt.adb: Handle /= case
13020         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
13021         so that we do not get duplicate scaling for fixed point conversions.
13022
13023         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
13024
13025 2005-11-14  Matthew Gingell  <gingell@adacore.com>
13026
13027         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
13028         Increase default priority on Lynx from 15 to 17, and meet the Ada
13029         requirement that Default_Priority be ((Priority'First +
13030         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
13031
13032 2005-11-14  Vincent Celier  <celier@adacore.com>
13033
13034         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13035         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
13036         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
13037         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
13038         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
13039         mlib-tgt-lynxos.adb (DLL_Prefix): New function
13040
13041 2005-11-14  Doug Rupp  <rupp@adacore.com>
13042
13043         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
13044         private part.
13045
13046 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13047
13048         * s-traces-default.adb, s-trafor-default.ads,
13049         s-tratas-default.adb: Fix compilation errors.
13050
13051 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
13052
13053         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
13054         raising the exception so the memory used is freed.
13055
13056 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13057
13058         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
13059         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
13060         (convert_address): Update comments and list of platforms using this.
13061
13062         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
13063         no longer used.
13064
13065 2005-11-14  Pascal Obry  <obry@adacore.com>
13066             Vincent Celier  <celier@adacore.com>
13067
13068         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
13069         GNAT.Command_Line.
13070
13071         * memroot.adb: Remove redundant with/use clause on
13072         System.Storage_Elements.
13073
13074 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13075
13076         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
13077         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
13078         related code to a-exexpr.adb
13079         (Save_Occurrence_And_Private): Move GCC EH related code to
13080         a-exexpr-gcc.adb
13081         (Raise_Current_Excep): Add new variable Id with pragma
13082         volatile, to ensure that the variable lives on stack.
13083
13084         * a-exexpr-gcc.adb, raise-gcc.c: New file.
13085
13086         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
13087         from a-except.adb.
13088         Move GCC EH related code to a-exexpr-gcc.adb
13089
13090         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
13091         64-bit Solaris
13092         Split the Linux version of g-soccon into separate variants for 32 and 64
13093         bit platforms.
13094         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
13095         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
13096         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
13097         of host variable $(RANLIB_FLAGS).
13098         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
13099         Code clean up: remove unused/obsolete targets.
13100         (EH_MECHANISM): New variable introduced to differenciate between the
13101         two EH mechanisms statically.
13102         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
13103         (LIBGNAT_OBJS): Add raise-gcc.o
13104         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
13105         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
13106         supports VxWorks 6 RTPs.
13107         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
13108         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
13109
13110         * raise.c: Move all GCC EH-related routines to raise-gcc.c
13111
13112 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
13113
13114         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
13115         deferral level, when abort is not allowed, to a later stage (the
13116         Task_Wrapper).
13117         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
13118         it will not get changed by the generated code. It was previously done
13119         in Create_Task.
13120
13121 2005-11-14  Thomas Quinot  <quinot@adacore.com>
13122             Olivier Hainque  <hainque@adacore.com>
13123             Eric Botcazou  <ebotcazou@adacore.com>
13124
13125         * decl.c:
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         (annotate_value): Handle BIT_AND_EXPR.
13129         (annotate_rep): Don't restrict the back annotation of inherited
13130         components to the type_annotate_only case.
13131         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
13132         we are not defining the type.
13133         <E_Record_Type>: Likewise.
13134         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
13135         to get advantage of the new maybe_stabilize_reference interface, to
13136         ensure that what we reference is indeed stabilized instead of relying
13137         on assumptions on what the stabilizer does.
13138         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
13139         type imported through a limited_with clause, use its non-limited view.
13140         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
13141         differentiation.
13142         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
13143         of #if sections + explicit comparisons of convention identifiers.
13144         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
13145         before early-returning for certain types when code generation is
13146         disabled.
13147         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
13148         nullification of gnu_expr we do for objects with address clause and
13149         that we are not defining.
13150         (elaborate_expression_1): Do not create constants when creating
13151         variables needed by the debug info: the dwarf2 writer considers that
13152         CONST_DECLs is used only to represent enumeration constants, and emits
13153         nothing for them.
13154         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
13155         object with an address clause into an indirect reference, drop the
13156         initializing expression.
13157         Include "expr.h".
13158         (STACK_CHECK_BUILTIN): Delete.
13159         (STACK_CHECK_PROBE_INTERVAL): Likewise.
13160         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
13161         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
13162         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
13163         corresponding to the renamed object as ignored for debugging purposes.
13164
13165         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
13166         related): For a prefix that is a dereference of a fat or thin pointer,
13167         if there is an actual subtype provided by the front-end, use that
13168         subtype to build an actual type with bounds template.
13169         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
13170         is provided by the front-end, use that subtype to compute the size of
13171         the deallocated object.
13172         (gnat_to_gnu): When adding a statement into an elaboration procedure,
13173         check for a potential violation of a No_Elaboration_Code restriction.
13174         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
13175         with extra arguments to control whether to recurse through non-values
13176         and to let the caller know if the stabilization has succeeded.
13177         (gnat_stabilize_reference): Now a simple wrapper around
13178         maybe_stabilize, for common uses without restriction on lvalues and
13179         without need to check for the success indication.
13180         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
13181         pass false instead of 0 as the FORCE argument which is a bool.
13182         (Identifier_to_gnu): Remove checks ensuring that an renamed object
13183         attached to a renaming pointer has been properly stabilized, as no such
13184         object is attached otherwise.
13185         (call_to_gnu): Invoke create_var_decl to create the temporary when the
13186         function uses the "target pointer" return mechanism.
13187         Reinstate conversion of the actual to the type of the formal
13188         parameter before any other specific treatment based on the passing
13189         mechanism. This turns out to be necessary in order for PLACEHOLDER
13190         substitution to work properly when the latter type is unconstrained.
13191
13192         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
13193         common pattern.
13194         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
13195         with extra arguments to control whether to recurse through non-values
13196         and to let the caller know if the stabilization has succeeded.
13197
13198         * utils2.c (gnat_build_constructor): Only sort the fields for possible
13199         static output of record constructor if all the components are constant.
13200         (gnat_build_constructor): For a record type, sort the list of field
13201         initializers in increasing bit position order.
13202         Factor common code to build a storage type for an unconstrained object
13203         from a fat or thin pointer type and a constrained object type.
13204         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
13205         types variants, and process special cases of VIEW_CONVERT expressions
13206         as their NOP_EXPR counterpart to ensure we get to the
13207         CORRESPONDING_VARs associated with CONST_DECls.
13208         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
13209         on the right-hand side.
13210
13211         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
13212         a common pattern.
13213         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
13214         are converting back to its original type.
13215         (convert) <JM input>: Fallthrough regular conversion code instead of
13216         extracting the object if converting to a type variant.
13217         (create_var_decl): When a variable has an initializer requiring code
13218         generation and we are at the top level, check for a potential violation
13219         of a No_Elaboration_Code restriction.
13220         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
13221         SIZE and SIZE_UNIT which we need for later back-annotations.
13222         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
13223         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
13224         is an unchecked union.
13225         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
13226         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
13227         main variant, just replace the VIEW_CONVERT_EXPR.
13228         <UNION_TYPE>: Revert 2005-03-02 change.
13229
13230         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
13231
13232         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
13233
13234 2005-11-14  Matthew Heaney  <heaney@adacore.com>
13235
13236         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
13237         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
13238         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
13239         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
13240         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
13241         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
13242         Compiles against the spec for ordered maps described in sections
13243         A.18.6 of the most recent (August 2005) AI-302 draft.
13244
13245 2005-11-14  Olivier Hainque  <hainque@adacore.com>
13246
13247         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
13248         to ensure bias adjustments take place when need be and to prevent
13249         occurrences of intermediate overflows.
13250
13251 2005-11-14  Matthew Gingell  <gingell@adacore.com>
13252             Olivier Hainque  <hainque@adacore.com>
13253
13254         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
13255         ia64 HP-UX.
13256
13257         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
13258         tracebacks on ia64 HP-UX and provide explanatory comment.
13259         Enable backtraces on ia64 GNU/Linux.
13260         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
13261         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
13262
13263 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
13264             Javier Miranda  <miranda@adacore.com>
13265
13266         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
13267         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
13268         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
13269         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
13270
13271         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
13272         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
13273         assertions).
13274
13275         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
13276         subprogram that generates the external name associated with a
13277         secondary dispatch table.
13278         (Get_Secondary_DT_External_Name): New subprogram that generates the
13279         external name associated with a secondary dispatch table.
13280
13281 2005-11-14  Emmanuel Briot  <briot@adacore.com>
13282
13283         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
13284         line in the ALI file to include both an instantiation reference, and a
13285         returned value.
13286
13287 2005-11-14  Vincent Celier  <celier@adacore.com>
13288
13289         * clean.adb (Check_Project): Look for Ada code in extending project,
13290         even if Ada is not specified as a language.
13291         Use new function DLL_Prefix for DLL_Name
13292         (Clean_Interface_Copy_Directory): New procedure
13293         (Clean_Library_Directory): New procedure
13294         (Clean_Directory): Remove procedure, no longer used
13295         (Clean_Project): Do not delete any file in an externally built project
13296
13297         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
13298         directory of an extending project, even when there are no Ada source
13299         present.
13300         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
13301         (Set_Ada_Paths.Add.Recursive_Add): Ditto
13302
13303         * mlib-prj.adb (Check_Library): For all library projects, get the
13304         library file timestamp.
13305         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
13306         (Build_Library): Use new function DLL_Prefix for the DLL_Name
13307         (Clean): Remove procedure, no longer used
13308         (Ultimate_Extension_Of): New function
13309         (Build_Library): When cleaning the library directory, only remove an
13310         existing library file and any ALI file of a source of the project.
13311         When cleaning the interface copy directory, remove any source that
13312         could be a source of the project.
13313
13314         * prj.ads, prj.adb (Project_Empty): Add values of new components
13315         Library_TS and All_Imported_Projects.
13316         (Project_Empty): Add values for new components of Project_Data:
13317         Library_ALI_Dir and Display_Library_ALI_Dir
13318
13319         * prj-attr.adb: New project level attribute name Library_ALI_Dir
13320
13321         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
13322         attribute Library_ALI_Dir.
13323         (Check_Library_Attributes): The library directory cannot be the same as
13324         any source directory of the project tree.
13325         (Check_Stand_Alone_Library): The interface copy directory cannot be
13326         the same as any source directory of the project tree.
13327
13328         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
13329         all temporary files.
13330
13331 2005-11-14  Robert Dewar  <dewar@adacore.com>
13332             Ed Schonberg  <schonberg@adacore.com>
13333
13334         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13335         (Check_Elab_Call): A call within a protected body is never an
13336         elaboration call, and does not require checking.
13337         (Same_Elaboration_Scope): Take into account protected types for both
13338         entities.
13339         (Activate_Elaborate_All_Desirable): New procedure
13340
13341         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
13342         desirable
13343
13344         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
13345         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
13346
13347         * lib-writ.ads, lib-writ.adb: 
13348         Implement new AD/ED for Elaborate_All/Elaborate desirable
13349         Use new Elaborate_All_Desirable flag in N_With_Clause node
13350
13351         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
13352         N_Free_Statement nodes.
13353         Define new class N_Subprogram_Instantiation
13354         Add Elaborate_Desirable flag to N_With_Clause node
13355         Add N_Delay_Statement (covering two kinds of delay)
13356
13357         * debug.adb: Introduce d.f flag for compiler
13358         Add -da switch for binder
13359
13360 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13361             Cyrille Comar  <comar@adacore.com>
13362
13363         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
13364         for task component, in the case of a limited aggregate. The enclosed
13365         object declaration will create it earlier. Otherwise, in the case of a
13366         nested aggregate, the object may appear in the wrong scope.
13367         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
13368         (Gen_Assign): If the component being assigned is an array type and the
13369         expression is itself an aggregate, wrap the assignment in a block to
13370         force finalization actions on the temporary created for each row of the
13371         enclosing object.
13372         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
13373         structures are initialized after all discriminants are set so that
13374         they can be accessed even when their offset is dynamic.
13375
13376 2005-11-14  Robert Dewar  <dewar@adacore.com>
13377             Hristian Kirtchev  <kirtchev@adacore.com>
13378
13379         * sem_attr.adb: Implement Machine_Rounding attribute
13380         (Analyze_Access_Attribute): The access attribute may appear within an
13381         aggregate that has been expanded into a loop.
13382         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
13383         'Terminated whenever the prefix is of a task interface class-wide type.
13384         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
13385         the prefix is of a task interface class-wide type.
13386
13387         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
13388         to avoid warnings.
13389
13390         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
13391         Remove pragma Inline for [Unaligned_]Valid.
13392         Add comments that Valid routines do not work for Vax_Float
13393
13394         * exp_attr.adb: Implement Machine_Rounding attribute
13395
13396         * snames.h: Add entry for Machine_Rounding attribute
13397
13398 2005-11-14  Javier Miranda  <miranda@adacore.com>
13399             Robert Dewar  <dewar@adacore.com>
13400             Hristian Kirtchev  <kirtchev@adacore.com>
13401
13402         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
13403         and related): For a prefix that is an explicit dereference of an
13404         access to unconstrained packed array type, annotate the dereference
13405         with an actual subtype so GIGI can make a correct size computation.
13406         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
13407         'Unrestricted_Access, if the designated type is an interface we
13408         add a type conversion to force the displacement of the pointer
13409         to the secondary dispatch table.
13410         Use Universal_Real instead of Long_Long_Float when we need a high
13411         precision float type for the generated code (prevents gratuitous
13412         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
13413         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
13414         'Terminated for task interface class-wide objects. Generate a call to
13415         the predefined dispatching routine used to retrieve the _task_id from
13416         a task corresponding record.
13417         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
13418
13419         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13420         (Check_Dispatching_Operation): Protect the frontend againts
13421         previously detected errors.
13422
13423         * Makefile.rtl: Add new instantiations of system.fat_gen
13424
13425         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
13426         Change name of instantiated package for better consistency
13427         with newly added system.fat_gen instantiations.
13428
13429         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
13430         s-fvagfl.ads: New files.
13431
13432 2005-11-14  Cyrille Comar  <comar@adacore.com>
13433             Thomas Quinot  <quinot@adacore.com>
13434
13435         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
13436         assignment of a value of a tagged type that has been rewritten to a
13437         block statement, it is known by construction that no checks are
13438         necessary for the statements within the block: analyze it with checks
13439         suppressed.
13440         (Expand_N_If_Statement): When killing a dead then-branch in an
13441         if-statement that has elsif_parts, recompute the Current_Value node
13442         for any entity whose value is known from the condition of the first
13443         elsif_part.
13444         (Expand_N_Return_Statement): When returning a mutable record, convert
13445         the return value into its actual subtype in order to help the backend
13446         to return the actual size instead of the maximum. This is another
13447         aftermath of not returning mutable records on the sec-stack anymore.
13448
13449         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
13450         handling of error msg for suspicious reverse range iteration.
13451         (Check_Possible_Current_Value_Condition): Move declaration from body to
13452         spec, to allow this subprogram to be called from exp_ch5.
13453
13454 2005-11-14  Thomas Quinot  <quinot@adacore.com>
13455
13456         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
13457         generate a set of nested array aggregates instead of a single flat
13458         aggregate for multi-dimensional arrays.
13459
13460 2005-11-14  Pascal Obry  <obry@adacore.com>
13461
13462         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
13463         by spawnve is a process handle, no need to convert. Add a parameter
13464         close to control wether the process handle must be closed.
13465         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
13466         a process handle, not need to convert.
13467         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
13468
13469         * g-expect.adb: (Kill): Document the new close parameter.
13470         (Close): Do not release the process handle in the kill there as
13471         waitpid() is using it.
13472         (Send_Signal): Release the process handle.
13473
13474 2005-11-14  Robert Dewar  <dewar@adacore.com>
13475
13476         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
13477         need a high precision float type for the generated code (prevents
13478         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
13479         used).
13480
13481         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
13482         need a high precision float type for the generated code (prevents
13483         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
13484         used).
13485         (Expand_Width_Attribute): In configurable run-time, the attribute is not
13486         allowed on non-static enumeration subtypes. Force a load error to emit
13487         the correct diagnostic.
13488
13489 2005-11-14  Thomas Quinot  <quinot@adacore.com>
13490             Robert Dewar  <dewar@adacore.com>
13491             Ed Schonberg  <schonberg@adacore.com>
13492
13493         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
13494         subtype to compute the size of the designated object at run-time,
13495         create such a subtype and store it in the Actual_Designated_Subtype
13496         attribute of the N_Free_Statement.
13497         Generate itype for classwide designated object in both cases of
13498         user-specified storage pool: specific and class-wide, not only in the
13499         specific case.
13500         Raise CE when trying to set a not null access type object to null.
13501         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
13502         an explicit loop, because freeze nodes make its position variable.
13503
13504         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
13505         null object.
13506
13507 2005-11-14  Javier Miranda  <miranda@adacore.com>
13508
13509         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
13510         Build_Stream_Procedure): Add the null-excluding attribute to the first
13511         formal.
13512         This has no semantic meaning under Ada95 mode but it is a
13513         requirement under Ada05 mode.
13514
13515         * par-ch3.adb (P_Access_Definition): Addition of warning message if
13516         the null exclusion is used under Ada95 mode
13517         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
13518         (P_Access_Definition): Remove assertion that forbids the use of
13519         the null-exclusion feature in Ada95.
13520
13521 2005-11-14  Robert Dewar  <dewar@adacore.com>
13522
13523         * impunit.adb: Exclude container helper units not intended for use by
13524         users.
13525
13526 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13527
13528         * freeze.adb (Freeze_Entity): For an access formal that is an access
13529         to subprogram, freeze the anonymous subprogram type at the same time,
13530         to prevent later freezing in the wrong scope, such as the enclosing
13531         subprogram body.
13532         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
13533         subprogram whenever available.
13534
13535 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13536
13537         PR ada/23732
13538         * gnatvsn.ads (Library_Version): Bump to 4.1
13539
13540 2005-11-14  Robert Dewar  <dewar@adacore.com>
13541
13542         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
13543         Storage_Offset to avoid wrap around causing invalid results.
13544
13545 2005-11-14  Pascal Obry  <obry@adacore.com>
13546
13547         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
13548         cross-compiler.
13549         (Scan_Bind_Arg): Fail with an error message if -M option is used
13550         on a native compiler.
13551
13552 2005-11-14  Robert Dewar  <dewar@adacore.com>
13553             Vincent Celier  <celier@adacore.com>
13554
13555         * gprep.adb: Implement -C switch to scan comments
13556
13557         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
13558
13559         * scans.ads: Comment updates (including new use of Tok_Comment in
13560         preprocessing)
13561
13562         * opt.ads: Add documentation for flags that are used by gprmake,
13563         currently and in the next version of gprmake.
13564         (Verbosity_Level): New variable
13565         Add Replace_In_Comments switch
13566
13567         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
13568         and -vm.
13569         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
13570
13571 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
13572
13573         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
13574         message, friendlier.
13575
13576 2005-11-14  Robert Dewar  <dewar@adacore.com>
13577
13578         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
13579
13580 2005-11-14  Doug Rupp  <rupp@adacore.com>
13581
13582         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
13583
13584 2005-11-14  Robert Dewar  <dewar@adacore.com>
13585
13586         * interfac.ads: Change declarations of IEEE float types so that we no
13587         longer need a separate version of this package for VMS.
13588
13589 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13590
13591         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
13592         internal entity created for the declaration of a child subprogram body
13593         with no spec as coming from source, to generate proper cross-reference
13594         information.
13595
13596 2005-11-14  Vincent Celier  <celier@adacore.com>
13597
13598         * make.adb (Compile_Sources): Change verbose message to minimum
13599         verbosity level High for "is in an Ada library", "is a read-only
13600         library" and "is an internal library",
13601         (Create_Binder_Mapping_File): Path name of ALI file for library project
13602         must include the library directory, not the object directory.
13603         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
13604         for new switches -vl, -vm and -vh.
13605         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
13606         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
13607         (Compile_Sources): Do not attempt to compile if an ALI file is missing
13608         in a project that is externally built.
13609         (Compute_All_Imported_Projects): New procedure
13610         (Gnatmake): Check if importing libraries should be regenerated because
13611         at least an imported library is more recent.
13612         (Initialize): For each project compute the list of the projects it
13613         imports directly or indirectly.
13614         (Add_Library_Search_Dir): New procedure, used in place of
13615         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
13616         put in the search paths.
13617         (Add_Source_Search_Dir): New procedure, used in place of
13618         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
13619         put in the search paths.
13620         (Mark_Directory): Resolve the absolute path the directory before marking
13621         it.
13622
13623         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
13624         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
13625         Switch. Do not handle any exception.
13626         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
13627         so that the switch is recognized as valid.
13628         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
13629
13630 2005-11-14  GNAT Script  <nobody@adacore.com>
13631
13632         * Make-lang.in: Makefile automatically updated
13633
13634 2005-11-14  Pascal Obry  <obry@adacore.com>
13635
13636         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
13637         used.
13638         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
13639         In both cases the last argument was dropped.
13640
13641 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
13642
13643         * namet.h: (Column_Numbe): New type.
13644         (Get_Column_Number): Define to sinput__get_column_number.
13645         (Instantiation): Define to sinput__instantiation.
13646         (Get_Column_Number): Declare.
13647         (Instantiation): Likewise.
13648
13649 2005-11-14  Robert Dewar  <dewar@adacore.com>
13650
13651         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
13652         syntax, which could cause compiler hangs.
13653
13654 2005-11-14  Vincent Celier  <celier@adacore.com>
13655
13656         * prj-ext.adb: Take into account new environment variable
13657         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
13658         are defined.
13659         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
13660         normalize its path name, making it absolute and resolving symbolic
13661         links, and replace the original if resolved path is different.
13662
13663 2005-11-14  Vincent Celier  <celier@adacore.com>
13664
13665         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
13666         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
13667
13668 2005-11-14  Emmanuel Briot  <briot@adacore.com>
13669
13670         * prj-pp.adb (Print): Do not output the with statement if the
13671         associated name is empty, which happens for virtual extending projects.
13672         (Print): Preserve the "extends all" attribute when printing the project.
13673
13674         * prj-tree.ads (String_Value_Of): Add comment about returned value for
13675         a virtual extending project.
13676
13677 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13678
13679         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
13680         rhs of an assignment even if the type is unconstrained, when the
13681         context is non-expanding.
13682         In an inlined body, if the context type is private,
13683         resolve with its full view, which must be a composite type.
13684
13685 2005-11-14  Robert Dewar  <dewar@adacore.com>
13686             Ed Schonberg  <schonberg@adacore.com>
13687
13688         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13689         Do not give obsolescent warning on with of subprogram (since we
13690         diagnose calls)
13691         (Analyze_With_Clause): Add test for obsolescent package
13692         (Install_Context_Clauses): If the unit is the body of a child unit, do
13693         not install twice the private declarations of the parents, to prevent
13694         circular lists of Use_Clauses in a parent.
13695         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
13696         compiling body of child unit.
13697         Use new class N_Subprogram_Instantiation
13698         (Expand_With_Clause): If this is a private with_clause for a child unit,
13699         appearing in the context of a package declaration, then the implicit
13700         with_clauses generated for parent units are private as well.
13701         (License_Check): Do not generate message if with'ed unit is internal
13702
13703 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
13704             Ed Schonberg  <schonberg@adacore.com>
13705             Thomas Quinot  <quinot@adacore.com>
13706
13707         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
13708         names are internal, because they will not have a corresponding partner
13709         in the actual package.
13710         (Analyze_Formal_Package): Move the setting of the formal package spec's
13711         Generic_Parent field so that it occurs prior to analyzing the package,
13712         to allow proper operation of Install_Parent_Private_Declarations.
13713         (Analyze_Package_Instantiation): Set the instantiated package entity's
13714         Package_Instantiation field.
13715         (Get_Package_Instantiation_Node): Move declaration to package spec.
13716         Retrieve the N_Package_Instantiation node when the Package_Instantiation
13717         field is present.
13718         (Check_Generic_Child_Unit): Within an inlined call, the only possible
13719         instantiation is Unchecked_Conversion, for which no parents are needed.
13720         (Inline_Instance_Body): Deinstall and record the use_clauses for all
13721         parent scopes of a scope being removed prior to inlining an instance
13722         body.
13723         (Analyze_Package_Instantiation): Do not perform front-end inlining when
13724         the current context is itself an instance within a non-instance child
13725         unit, to prevent scope stack errors.
13726         (Save_References): If the node is an aggregate that is an actual in a
13727         call, rewrite as a qualified expression to preserve some type
13728         information, to resolve possible ambiguities in the instance.
13729         (Instance_Parent_Unit): New global variable to record the ultimate
13730         parent unit associated with a generic child unit instance (associated
13731         with the existing Parent_Unit_Visible flag).
13732         (type Instance_Env): New component Instance_Parent_Unit for stacking
13733         parents recorded in the global Instance_Parent_Unit.
13734         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
13735         stack.
13736         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
13737         it's not a top-level unit, and only do this if Instance_Parent_Unit is
13738         not already set. Replace test of Is_Child_Unit with test of parent's
13739         scope against package Standard. Add comments and a ??? comment.
13740         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
13741         on a child instance parent to test that the parent equals
13742         Instance_Parent rather than simply checking that the unit is not a
13743         child unit.
13744         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
13745         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
13746         a formal interface are ancestors of the corresponding actual.
13747         (Validate_Formal_Interface_Type): Additional legality checks.
13748         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
13749         interface types with ancestors.
13750         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
13751         to diagnose attempts to use generic within its own declaration.
13752
13753 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13754             Javier Miranda  <miranda@adacore.com>
13755
13756         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
13757         discriminant.
13758         (Build_Private_Derived_Type): The entity of the created full view of the
13759         derived type does not come from source. If after installing the private
13760         declarations of the parent scope the parent is still private, use its
13761         full view to construct the full declaration of the derived type.
13762         (Build_Derived_Record_Type): Relax the condition that controls the
13763         execution of the check that verifies that the partial view and
13764         the full view agree in the set of implemented interfaces. In
13765         addition, this test now only takes into account the progenitors.
13766         (Derive_Interface_Subprograms): No need to derive subprograms
13767         of ancestors that are interfaces.
13768         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
13769         associated code.
13770         Change name Is_Package to Is_Package_Or_Generic_Package
13771         (Complete_Subprograms_Derivation): Handle the case in which the full
13772         view is a transitive derivation of the ancestor of the partial view.
13773         (Process_Full_View): Rename local subprogram Find_Interface_In_
13774         Descendant to Find_Ancestor_Interface to leave the code more clear.
13775         Remove wrong code that avoids the generation of an error message
13776         when the immediate ancestor of the partial view is an interface.
13777         In addition some minor reorganization of the code has been done to
13778         leave it more clear.
13779         (Analyze_Type_Declaration): If type has previous incomplete tagged
13780         partial view, inherit properly its primitive operations.
13781         (Collect_Interfaces): Make public, for analysis of formal
13782         interfaces.
13783         (Analyze_Interface_Declaration): New procedure for use for regular and
13784         formal interface declarations.
13785         (Build_Derived_Record_Type): Add support for private types to the code
13786         that checks if a tagged type implements abstract interfaces.
13787         (Check_Aliased_Component_Type): The test applies in the spec of an
13788         instance as well.
13789         (Access_Type_Declaration): Clean up declaration of malformed type
13790         declared as an access to its own classwide type, to prevent cascaded
13791         crash.
13792         (Collect_Interfaces): For private extensions and for derived task types
13793         and derived protected types, the parent may be an interface that must
13794         be included in the interface list.
13795         (Access_Definition): If the designated type is an interface that may
13796         contain tasks, create Master_Id for it before analyzing the expression
13797         of the declaration, which may be an allocator.
13798         (Record_Type_Declaration): Set properly the interface kind, for use
13799         in allocators, the creation of master id's for task interfaces, etc.
13800
13801 2005-11-14  Javier Miranda  <miranda@adacore.com>
13802             Ed Schonberg  <schonberg@adacore.com>
13803
13804         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
13805         omitted in case of stream attribute subprograms.
13806         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
13807         appear immediately after a subprogram body, when there is no previous
13808         subprogram declaration.
13809         Change name Is_Package to Is_Package_Or_Generic_Package
13810         (Process_Formals): A non null qualifier on a non null named access
13811         type is not an error, and is a warning only if Redundant_Constructs
13812         are flagged.
13813
13814 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
13815             Ed Schonberg  <schonberg@adacore.com>
13816
13817         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
13818         nested within Analyze_Package_Specification to install the private
13819         declarations and use clauses within each of the parent units of a
13820         package instance of a generic child package.
13821         (Analyze_Package_Specification): When entering a private part of a
13822         package associated with a generic instance or formal package, the
13823         private declarations of the parent must be installed (by calling new
13824         procedure Install_Parent_Private_Declarations).
13825         Change name Is_Package to Is_Package_Or_Generic_Package
13826         (Preserve_Full_Attributes): For a synchronized type, the corresponding
13827         record is absent in a generic context, which does not indicate a
13828         compiler error.
13829
13830 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13831
13832         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
13833         not try to rewrite a renamed stream attribute, because the operations
13834         on the type may not have been generated.
13835         Handle properly a renaming_as_body generated for a stream operation
13836         whose default is abstract because the object type itself is abstract.
13837         (Find_Type): If the type is incomplete and appears as the prefix of a
13838         'Class reference, it is tagged, and its list of primitive operations
13839         must be initialized properly.
13840         (Chain_Use_Clauses): When chaining the use clauses that appear in the
13841         private declaration of a parent unit, prior to compiling the private
13842         part of a child unit, find on the scope stack the proper parent entity
13843         on which to link the use clause.
13844         (Note_Redundant_Use): Emit a warning when a redundant use clause is
13845         detected.
13846         (Analyze_Object_Renaming): An attribute reference is not a legal object
13847         if it is not a function call.
13848
13849 2005-11-14  Robert Dewar  <dewar@adacore.com>
13850             Ed Schonberg  <schonberg@adacore.com>
13851
13852         * sem_eval.adb: Implement d.f flag
13853         (Subtype_Statically_Match): A generic actual type has unknown
13854         discriminants when the corresponding actual has a similar partial view.
13855         If the routine is called to validate the signature of an inherited
13856         operation in a child instance, the generic actual matches the full view,
13857
13858 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
13859             Ed Schonberg  <schonberg@adacore.com>
13860             Robert Dewar  <dewar@adacore.com>
13861             Thomas Quinot  <quinot@adacore.com>
13862
13863         * sem_res.adb (Resolve_Call): Provide a better error message whenever
13864         a procedure call is used as a select statement trigger and is not an
13865         entry renaming or a primitive of a limited interface.
13866         (Valid_Conversion): If the operand has a single interpretation do not
13867         remove address operations.
13868         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
13869         statement to inhibit warning.
13870         (Resolve_Unary_Op): Do not produce a warning when
13871         processing an expression of the form -(A mod B)
13872         Use Universal_Real instead of Long_Long_Float when we need a high
13873         precision float type for the generated code (prevents gratuitous
13874         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
13875         (Resolve_Concatenation_Arg): Improve error message when argument is an
13876         ambiguous call to a function that returns an array.
13877         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
13878         there is an implicit operator in the given scope if we are within an
13879         instance: legality check has been performed on the generic.
13880         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
13881         after resolving operand, to avoid false warnings on overloaded calls.
13882
13883 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13884             Javier Miranda  <miranda@adacore.com>
13885
13886         PR ada/15604
13887         * sem_type.adb (Covers): In an inlined body, a composite type matches
13888         a private type whose full view is a composite type.
13889         (Interface_Present_In_Ancestor): Protect the frontend against
13890         previously detected errors to ensure that its compilation
13891         with assertions enabled gives the same output that its
13892         compilation without assertions.
13893         (Interface_Present_In_Ancestor): Add support for private types.
13894         Change name In_Actual to In_Generic_Actual (clean up)
13895         (Disambiguate): New predicate In_Actual, to recognize expressions that
13896         appear in the renaming declaration generated for generic actuals, and
13897         which must be resolved in the outer context.
13898
13899 2005-11-14  Robert Dewar  <dewar@adacore.com>
13900             Thomas Quinot  <quinot@adacore.com>
13901             Hristian Kirtchev  <kirtchev@adacore.com>
13902             Ed Schonberg  <schonberg@adacore.com>
13903
13904         * sem_util.ads, sem_util.adb: Change name Is_Package to
13905         Is_Package_Or_Generic_Package.
13906         (Check_Obsolescent): New procedure.
13907         (Set_Is_Public): Remove obsolete junk test.
13908         (Set_Public_Status): Do not set Is_Public on an object whose declaration
13909         occurs within a handled_sequence_of_statemets.
13910         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
13911         for a parameterless procedure.
13912         (Enter_Name): Recognize renaming declarations created for private
13913         component of a protected type within protected operations, so that
13914         the source name of the component can be used in the debugger.
13915
13916 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
13917             Robert Dewar  <dewar@adacore.com>
13918
13919         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
13920         of a generic subprogram are not visible outside the body.
13921         (Set_Warning_Switch): New procedure (code to set warning mode moved
13922         here from Switch.C so that it can be shared by pragma processing.
13923         (Check_References): Special case warning for non-modified non-imported
13924         volatile objects.
13925         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
13926         form with a string literal argument
13927
13928 2005-11-14  Javier Miranda  <miranda@adacore.com>
13929
13930         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
13931         anonymous access.
13932         (Write): Addition of "not null" to the anonymous access.
13933         (Read): Addition of "not null" to the anonymous access.
13934         (Write): Addition of "not null" to the anonymous access.
13935
13936         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
13937         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
13938         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
13939         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
13940         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
13941         "not null" to the anonymous access.
13942
13943 2005-11-14  Robert Dewar  <dewar@adacore.com>
13944
13945         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
13946         offset values
13947
13948 2005-11-14  Vincent Celier  <celier@adacore.com>
13949
13950         * switch.adb (Bad_Switch): New procedure
13951         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
13952         message when in error.
13953
13954         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
13955         Too_Many_Output_Files): Remove declarations, no longer used.
13956         (Scan_Nat): New parameter Switch
13957         (Scan_Pos): Ditto
13958         (Bad_Switch): New procedure
13959
13960         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
13961         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
13962         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
13963         to Osint.Fail. Do not handle any exception.
13964
13965 2005-11-14  Vincent Celier  <celier@adacore.com>
13966
13967         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
13968         designates a non existent directory.
13969
13970 2005-11-14  Robert Dewar  <dewar@adacore.com>
13971
13972         * xgnatugn.adb: Replace invalid membership test by 'Valid
13973
13974 2005-11-14  Vincent Celier  <celier@adacore.com>
13975
13976         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
13977         there is no object directory.
13978
13979 2005-11-14  Robert Dewar  <dewar@adacore.com>
13980
13981         * usage.adb: Minor adjustment to output format, use nn instead of nnn
13982         (so that -gnateInnn does not run into next column)
13983
13984 2005-11-14  Ed Falis  <falis@adacore.com>
13985
13986         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
13987         "constrained"
13988
13989 2005-11-14  Cyrille Comar  <comar@adacore.com>
13990
13991         * s-chepoo.ads: Add comments on Dereference.
13992         Remove unnecessary inherited abstract primitives.
13993         Cosmetic cleanup.
13994
13995 2005-11-14  Robert Dewar  <dewar@adacore.com>
13996
13997         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
13998         node parameter, not needed, since it is available as Declaration_Node.
13999
14000 2005-11-14  Geert Bosch  <bosch@adacore.com>
14001
14002         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
14003         grammatically correct.
14004
14005 2005-11-14  Vincent Celier  <celier@adacore.com>
14006
14007         * s-fileio.ads: Correct spelling error in comment
14008
14009 2005-11-14  Cyrille Comar  <comar@adacore.com>
14010             Robert Dewar  <dewar@adacore.com>
14011             Vincent Celier  <celier@adacore.com>
14012             Ben Brosgol  <brosgol@adacore.com>
14013             Jose Ruiz  <ruiz@adacore.com>
14014             Pascal Obry  <obry@adacore.com>
14015
14016         * gnat_ugn.texi: 
14017         Document that -fstack-check is needed for strict compliance with the
14018         Ada 95 Reference Manual.
14019         Correct reference to VAX systems to meet HP guidelines
14020         Add documentation for new gnatmake switches -vl, -vm and -vh
14021         Replace DEC Ada by HP Ada
14022         Replace DIGITAL by HP
14023         Remove empty section on tools in compatibility section
14024         Clarify the Windows convention semantics.
14025         Document the Win32 calling convention.
14026         The Stdcall, Win32 and DLL convention are synonyms.
14027         Add a note in -gnatR description about zero size record components
14028         Note on new >= and <= warnings for -gnatwc
14029         Document that equal sign after -gnatm is optional.
14030         Note that strip is working fine on DLL built with a Library
14031         Project. The restriction apply only to DLL built with gnatdll.
14032         Update section about the way to debug a DLL.
14033         Update information about the DLL convention.
14034         Document -C switch for gnatprep
14035         Document new attribute Library_ALI_Dir
14036         Update elaboration doc to include implicit Elaborate pragmas now
14037         generated for subprogram instantiations.
14038         Document limitation on executable names that include spaces for --GCC,
14039         --GNATBIND, and --GNATLINK switches.
14040         Document that -w causes -gnatws to be added at start of gcc switches
14041
14042         * gnat_rm.texi: Document that -mieee is needed for generating infinite
14043         and NaN values in case of overflow on machines that are not fully
14044         compliant with the IEEE floating-point standard.
14045         Create a section describing the set of compiler options needed for
14046         strict compliance with the Ada 95 Reference Manual.
14047         Add documentation for pragma Obsolescent applied to a package
14048         Clarify potential issues of mixed language programs related to the
14049         I/O buffering enabling in the elaboration of the GNAT runtime.
14050         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
14051         This documentation only patch adds extra documentsion for pragma
14052         Restrictions (No_Elaboration_Code), explaining why it is not possible
14053         to document this restriction in terms of allowed source constructs.
14054         Document string literal form of pragma Warnings
14055         Document new attribute Library_ALI_Dir
14056         Add documentation on stable attributes in project files that was missing
14057
14058         * gnat-style.texi: Indicate that paragraphs within a single comment
14059         should be separated by empty comment lines
14060
14061         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
14062         /05 respectively)
14063
14064         * bindusg.adb: Minor cleanup, put -m before -M for consistency
14065
14066 2005-11-14  Robert Dewar  <dewar@adacore.com>
14067
14068         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
14069         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
14070         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
14071         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
14072         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
14073         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
14074         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
14075         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
14076         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
14077         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
14078         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
14079         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
14080         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
14081         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
14082         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
14083         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
14084         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
14085         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
14086         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
14087         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
14088         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
14089         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
14090         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
14091         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
14092         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
14093         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
14094         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
14095         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
14096         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
14097         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
14098         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
14099         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
14100         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
14101         system-interix.ads, system-solaris-sparc.ads,
14102         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
14103         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
14104         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
14105         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
14106         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
14107         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
14108         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
14109         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
14110         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
14111         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
14112         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
14113         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
14114         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
14115         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
14116         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
14117         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
14118         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
14119         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
14120         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
14121         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
14122         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
14123         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
14124         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
14125         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
14126         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
14127         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
14128         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
14129         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
14130         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
14131         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
14132         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
14133         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
14134         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
14135         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
14136         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
14137         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
14138         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
14139         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
14140         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
14141         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
14142         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
14143         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
14144         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
14145         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
14146         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
14147         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
14148         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
14149         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
14150         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
14151         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
14152         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
14153         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
14154         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
14155         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
14156         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
14157         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
14158         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
14159         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
14160         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
14161         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
14162         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
14163         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
14164         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
14165         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
14166         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
14167         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
14168         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
14169         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
14170         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
14171         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
14172         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
14173         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
14174         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
14175         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
14176         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
14177         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
14178         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
14179         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
14180         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
14181         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
14182         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
14183         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
14184         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
14185         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
14186         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
14187         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
14188         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
14189         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
14190         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
14191         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
14192         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
14193         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
14194         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
14195         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
14196         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
14197         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
14198         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
14199         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
14200         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
14201         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
14202         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
14203         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
14204         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
14205         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
14206         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
14207         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
14208         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
14209         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
14210         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
14211         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
14212         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
14213         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
14214         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
14215         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
14216         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
14217         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
14218         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
14219         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
14220         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
14221         a-numaux-darwin.ads, a-numaux-darwin.adb,
14222         a-swuwha.ads, a-stunha.ads: Minor reformatting
14223
14224 2005-11-14  Robert Dewar  <dewar@adacore.com>
14225
14226         PR ada/18434
14227         * osint-m.adb: Add pragma Elaborate_All for Osint
14228
14229 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
14230
14231         PR ada/23995
14232         * trans.c (call_to_gnu): Restore statement lost in translation.
14233
14234 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
14235
14236         * init.c: Use the Linux-specific section for the IA-64/Linux target.
14237         (__gnat_adjust_context_for_raise): Add conditional code so that the
14238         IA-64 is also supported.
14239
14240 2005-11-03  James E Wilson  <wilson@specifix.com>
14241
14242         PR ada/23427
14243         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
14244         TREE_OVERFLOW check.
14245
14246 2005-09-21  Olivier Hainque  <hainque@adacore.com>
14247
14248         PR ada/22418
14249         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
14250         as we create them to store a size in bits.
14251
14252 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
14253
14254         PR ada/21937
14255         PR ada/22328
14256         PR ada/22381
14257         PR ada/22383
14258         PR ada/22419
14259         PR ada/22420
14260         * utils2.c (build_return_expr): New helper function.
14261         * gigi.h (build_return_expr): Declare it.
14262         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
14263         of manually building the RETURN_EXPR tree.
14264         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
14265         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
14266         build_binary_op for the "target pointer" case.  Use build_return_expr
14267         instead of manually building the RETURN_EXPR tree.
14268
14269 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
14270
14271         PR ada/23788
14272         * s-tpinop.ads: Make this unit Preelaborate.
14273
14274 2005-09-16  Andreas Jaeger  <aj@suse.de>
14275
14276         * socket.c: Add string.h for memcpy.
14277
14278 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
14279
14280         * dec-io.ads, dec-io.adb: Removed, no longer used.
14281
14282 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14283
14284         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
14285
14286         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
14287         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
14288         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
14289         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
14290         dependent units are Preelaborate.
14291         (Initialize): Call Interrupt_Managemeent.Initialize and
14292         OS_Primitives.Initialize to ensure proper initialization of this unit.
14293         Remove use of System.Soft_Links
14294         Make this unit Preelaborate.
14295
14296         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
14297         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
14298         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
14299         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
14300         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
14301         s-tratas.ads, s-tasinf.ads: Minor reformatting.
14302         Add pragma Preelaborate, since these packages are suitable for this
14303         categorization.
14304         Update comments.
14305
14306         * s-traent-vms.ads, s-intman-dummy.adb,
14307         s-taprop-dummy.adb: Make this unit Preelaborate.
14308
14309         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
14310         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
14311         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
14312         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
14313         s-intman-solaris.adb, s-intman-irix-athread.adb,
14314         s-intman-irix.adb: Mark this unit Preelaborate.
14315         (Initialize): New procedure.
14316         Update comments.
14317
14318         * s-taspri-linux.ads: Removed.
14319
14320         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
14321         as done by other implementations (e.g. posix).
14322
14323         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
14324         responsible for deferring abort.
14325         Mark this unit Preelaborate.
14326
14327         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
14328         proper initialization of the tasking run-time.
14329
14330         * s-tasdeb.ads: Mark this unit Preelaborate.
14331         (Known_Tasks): Add explicit default value to avoid elaboration code.
14332
14333         * s-inmaop-vms.adb (Elaboration code): Add call to
14334         Interrupt_Management.Initialize since the elaboration code depends on
14335         proper initialization of this package.
14336
14337         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
14338         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
14339         s-osprim-posix.adb: Make this unit Preelaborate.
14340
14341         * a-calend.adb: Add call to OS_Primitives.Initialize
14342
14343         * a-elchha.adb: Update use of Except.Id.Full_Name.
14344         Minor reformatting.
14345         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
14346
14347         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
14348         Move with clauses outside Warnings Off now that dependent units are
14349         Preelaborate.
14350         Use raise xxx with "..."; Ada 2005 form.
14351
14352         * a-taside.ads, a-taside.adb:
14353         Remove some dependencies, to make it easier to make this unit truly
14354         Preelaborate.
14355         Rewrite some code to be conformant with Preelaborate rules.
14356
14357         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
14358         marked Preelaborate in the future.
14359
14360         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
14361         these units Preelaborate.
14362
14363         * s-exctab.adb: Update use of Except.Id.Full_Name.
14364
14365         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
14366         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
14367         Set_Exc_Stack_Addr): Removed, no longer used.
14368         Remove reference to *Machine_State_Addr*, no longer needed.
14369
14370         * s-stalib.ads: Mark this unit as Preelaborate[_05].
14371         (Exception_Data): Full_Name is now a System.Address so that this unit
14372         can be made Preelaborate.
14373         Clean up/simplify code thanks to Full_Name being a System.Address.
14374         Remove obsolete pragma Suppress (All_Checks), no longer needed.
14375
14376         * s-taskin.ads, s-taskin.adb:
14377         Move with clauses outside Warnings Off now that dependent units are
14378         Preelaborate.
14379         Make this unit Preelaborate.
14380         (Initialize): New proceduure, replace elaboration code and makes the
14381         set up of the tasking run-time cleaner.
14382         (Detect_Blocking): Now a function instead of a deferred boolean, to
14383         obey Preelaborate rules.
14384
14385         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
14386         soft links, no longer used.
14387
14388         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
14389         packages are suitable for this categorization.
14390
14391         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
14392         since we compile run-time sources in Ada 2005 mode.
14393         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
14394         avoid having s-taprop*.adb depend on s-soflin and to avoid code
14395         duplication.
14396         Remove reference to *Machine_State_Addr*, no longer needed.
14397
14398 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14399
14400         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
14401         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
14402         Remove reference to System.Exceptions.
14403
14404         * s-mastop-x86.adb: Removed, no longer used.
14405
14406         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
14407
14408         * a-excach.adb: Minor reformatting.
14409
14410         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
14411         instead fix new warnings that were hidden by this change.
14412         (AAA, ZZZ): Removed, replaced by...
14413         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
14414         are used instead of constants, to help make Ada.Exception truly
14415         preelaborate.
14416         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
14417         Raise_Storage_Error): File is now a System.Address, to simplify code.
14418         (Elab code): Removed, no longer used.
14419         (Null_Occurrence): Remove Warnings Off and make this construct
14420         preelaborate.
14421         Remove code related to front-end zero cost exception handling, since
14422         it is no longer used.
14423         Remove -gnatL/-gnatZ switches.
14424
14425         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
14426         Update use of Except.Msg.
14427
14428         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
14429         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
14430         to front-end zero cost exception handling, since it is no longer used.
14431         Remove -gnatL/-gnatZ switches.
14432
14433         * lib-writ.ads: Minor reformatting
14434         Remove doc of UX
14435
14436         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
14437
14438         * Make-lang.in: Remove references to s-except.ads
14439
14440         * s-except.ads: Removed, no longer used.
14441
14442         * s-mastop.ads, s-mastop.adb:
14443         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
14444         Remove reference to System.Exceptions.
14445
14446         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
14447         switch-b.adb: Remove code related to front-end zero cost exception
14448         handling, since it is no longer used.
14449         Remove -gnatL/-gnatZ switches.
14450
14451 2005-09-01  Robert Dewar  <dewar@adacore.com>
14452             Gary Dismukes  <dismukes@adacore.com>
14453             Javier Miranda  <miranda@adacore.com>
14454
14455         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
14456         type by valid test and generate warning.
14457         (Tagged_Membership): Generate call to the run-time
14458         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
14459         Change formal name Subtype_Mark to Result_Definition in several calls to
14460         Make_Function_Specification.
14461         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
14462         check for proper accessibility of the operand of a class-wide allocator.
14463         The check can be left out if checks are suppressed or if the expression
14464         has a specific tagged type whose level is known to be safe.
14465
14466         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
14467         generates the run-time check associated with null-excluding entities.
14468         (Expand_N_Return_Statement): Add tests to determine if the accessibility
14469         check on the level of the return expression of a class-wide function
14470         can be elided. The check usually isn't needed if the expression has a
14471         specific type (unless it's a conversion or a formal parameter). Also
14472         add a test for whether accessibility checks are suppressed. Augment
14473         the comments to describe the conditions for performing the check.
14474
14475 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
14476             Javier Miranda  <miranda@adacore.com>
14477             Gary Dismukes  <dismukes@adacore.com>
14478             Ed Schonberg  <schonberg@adacore.com>
14479
14480         * a-tags.adb (IW_Membership): Give support to
14481         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
14482         subprogram has been extended to look for the tag in the ancestors tag
14483         table.
14484         Update the structure of the GNAT Dispatch Table to reflect the
14485         additional two tables used in dispatching selects.
14486         Introduce appropriate array types and record components in
14487         Type_Specific_Data to reflect the two tables.
14488         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
14489         the TSD of a tag, indexed by position.
14490         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
14491         operation kind in the TSD of a tag, indexed by position.
14492
14493         * a-tags.ads: Introduce an enumeration type to capture different
14494         primitive operation kinds. Define a constant reflecting the number of
14495         predefined primitive operations.
14496         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
14497         of an entry wrapper.
14498         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
14499         callable entity of a primitive operation.
14500
14501         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
14502         primitive operations used in dispatching selects for limited
14503         interfaces, limited tagged, task and protected types what implement a
14504         limited interface.
14505         (Freeze_Type): Generate the bodies of the primitive operations used in
14506         dispatching selects for limited tagged, task and protected types that
14507         implement a limited interface. Generate statements to populate the two
14508         auxiliary tables used for dispatching in select statements.
14509         (Freeze_Record_Type): Add call to initialize the dispatch table entries
14510         associated with predefined interface primitive operations.
14511         (Build_Dcheck_Function): Change Set_Subtype_Mark to
14512         Set_Result_Definition.
14513         (Build_Variant_Record_Equality): Change Subtype_Mark to
14514         Result_Definition.
14515         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
14516         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
14517         (Build_Assignment): Simplify the code that adds the run-time-check.
14518         (Expand_N_Object_Declaration): Code cleanup.
14519
14520         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
14521         entries when there is a protected type that implements a limited
14522         interface.
14523
14524         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
14525         common routines used in expansion of dispatching selects.
14526         (Add_Private_Declarations): Select the appropriate protection type when
14527         there is a protected type that implements a limited interface.
14528         (Build_Parameter_Block): Generate a wrapped parameter block.
14529         (Build_Protected_Subprogram_Body): Select the appropriate type for
14530         locking entries when there is a protected type that implements a
14531         limited interface.
14532         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
14533         classified as entry wrappers.
14534         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
14535         asynchronous selects.
14536         (Expand_N_Conditional_Entry_Call): Add support for expansion of
14537         dispatching conditional selects.
14538         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
14539         protection when there is a protected type that implements limited
14540         interfaces.
14541         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
14542         timed selects.
14543         (Extract_Dispatching_Call): Extract the entity of the name of a
14544         dispatching call, the object parameter, actual parameters and
14545         corresponding formals.
14546         (Make_Initialize_Protection): Correct logic of protection initialization
14547         when there is a protected type that implements a limited interface.
14548         (Parameter_Block_Pack): Populate a wrapped parameter block with the
14549         values of actual parameters.
14550         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
14551         block and assign them to the original actual parameters.
14552
14553         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
14554         (Build_Protected_Sub_Specification): Change the type and name of the
14555         last formal to account for the increased variety of protection modes.
14556
14557         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
14558         entities. Used to save the value of the Is_Hidden attribute when the
14559         limited-view is installed.
14560         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
14561         the attribute of procedures classified as entry wrappers.
14562         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
14563         entity of a primitive wrapper.
14564         (Write_Entity_Flags): Output the name and value of the
14565         Is_Primitive_Wrapper attribute.
14566         (Write_Field27_Name): Output the name and entity of the field Wrapped_
14567         Entity.
14568         (Underlying_Type): If we have an incomplete entity that comes from
14569         the limited view then we return the Underlying_Type of its non-limited
14570         view if it is already available.
14571         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
14572         including operators.
14573         (Write_Field26_Name): Add entry for Overridden_Operation
14574         (Overridden_Operation): New attribute of functions and procedures.
14575
14576         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
14577         predefined position in the dispatch table for the primitive operations
14578         used in dispatching selects.
14579         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
14580         predefined primitive operations and replace it with
14581         Default_Prim_Op_Count.
14582         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
14583         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
14584         the names of the generated primitive operations used in dispatching
14585         selects.
14586         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
14587         case of abstract interface types. They will be inherit by the objects
14588         implementing the interface.
14589         (Make_DT): There is no need to inherit the dispatch table of the
14590         ancestor interface for the elaboration of abstract interface types.
14591         The dispatch table will be inherited by the object implementing the
14592         interface.
14593         (Copy_Secondary_DTs): Add documentation.
14594         (Validate_Position): Improve this static check in case of
14595         aliased subprograms because aliased subprograms must have
14596         the same position.
14597         (Init_Predefined_Interface_Primitives): New subprogram that initializes
14598         the entries associated with predefined primitives of all the secondary
14599         dispatch tables.
14600         (Build_Anonymous_Access_Type): Removed.
14601         (Expand_Interface_Actuals): With the previous cleanup there is no need
14602         to build an anonymous access type. This allows further cleanup in the
14603         code generated by the expander.
14604         (Expand_Interface_Conversion): If the actual is an access type then
14605         build an internal function to handle the displacement. If the actual
14606         is null this function returns null because no displacement is
14607         required; otherwise performs a type conversion that will be
14608         expanded in the code that returns the value of the displaced actual.
14609         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
14610         conversions that have no effect in the generated code because no
14611         displacement is required. Code cleanup; use local variables to
14612         avoid repeated calls to the subprogram directly_designated_type().
14613
14614         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
14615         Classify the primitive operations used in dispatching selects as
14616         predefined.
14617         (Implements_Limited_Interface): Determine whether some type either
14618         directly implements a limited interface or extends a type that
14619         implements a limited interface.
14620         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
14621         (Expand_Subtype_From_Expr): Do not build actual subtype if the
14622         expression is limited.
14623         (Find_Interface_Tag): Add code to handle class-wide types and
14624         entities from the limited-view.
14625
14626         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
14627         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
14628         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
14629         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
14630         Set_Prim_Op_Kind.
14631
14632         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
14633         of procedure name or prefix that appears as a trigger in a triggering
14634         alternative.
14635
14636         * uintp.ads: Introduce constants Uint_11 and Uint_13.
14637
14638 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14639
14640         * s-tataat.adb, a-tasatt.adb:
14641         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
14642
14643         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
14644         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
14645         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
14646         longer used.
14647
14648 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14649             Jose Ruiz  <ruiz@adacore.com>
14650
14651         * s-taprop-vxworks.adb:
14652         Move with clauses outside Warnings Off now that dependent units are
14653         Preelaborate.
14654         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
14655         initialization of this unit.
14656         (Specific): Add new procedures Initialize and Delete so that this
14657         package can be used for VxWorks 5.x and 6.x
14658         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
14659         differences between VxWorks 5.x and 6.x
14660         Minor reformatting.
14661         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
14662         caller.
14663         Use only Preelaborate-compatible constructs.
14664
14665         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
14666         Primitives.Operations.
14667         (Delete, Initialize): New procedures.
14668
14669         * s-osinte-vxworks.adb: Body used to handle differences between
14670         VxWorks 5.x and 6.x
14671         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
14672
14673         * s-osinte-vxworks.ads: Minor reformatting.
14674         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
14675         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
14676         and 6.
14677         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
14678         between Vxworks 5 and 6.
14679         (taskLock, taskUnlock): Removeed, no longer used.
14680
14681         * adaint.c: The wait.h header is not located in the sys directory on
14682         VxWorks when using RTPs.
14683         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
14684         using RTPs.
14685         (__gnat_dup): dup is available on Vxworks when using RTPs.
14686         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
14687
14688         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
14689
14690         * expect.c: The wait.h header is not located in the sys directory on
14691         VxWorks when using RTPs.
14692
14693 2005-09-01  Thomas Quinot  <quinot@adacore.com>
14694
14695         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
14696
14697         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
14698
14699         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
14700         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
14701         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
14702         g-soccon-freebsd.ads: Add new constants:
14703          IP_MULTICAST_IF
14704          SO_RCVTIMEO/SO_SNDTIMEO
14705          IOV_MAX
14706
14707         * gen-soccon.c:
14708         Move all target-specific file inclusions and macro definitions to
14709         gsocket.h, in order to ensure that any C code in socket.c will see a
14710         set of constants that is consistent with the contents of g-soccon.ads.
14711
14712         * gsocket.h: Code imported from gen-soccon.c:
14713         Move all target-specific file inclusions and macro definitions to
14714         gsocket.h, in order to ensure that any C code in socket.c will see a set
14715         of constants that is consistent with the contents of g-soccon.ads.
14716         This change also makes gen-soccon self-contained (removing dependencies
14717         upon GCC internal headers).
14718
14719         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
14720         iovecs at a time.
14721         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
14722
14723         * socket.c: Minor reformatting.
14724
14725 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
14726             Thomas Quinot  <quinot@adacore.com>
14727
14728         * fname-sf.adb, mlib-tgt.ads,
14729         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
14730         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
14731         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
14732         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
14733         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
14734         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
14735         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
14736         makegpr.adb: Remove redundant use_clauses.
14737
14738 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
14739
14740         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
14741         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
14742         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
14743         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
14744         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
14745         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
14746         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
14747         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
14748         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
14749         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
14750         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
14751         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
14752         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
14753         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
14754         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
14755         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
14756         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
14757         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
14758         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
14759         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
14760         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
14761         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
14762         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
14763         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
14764         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
14765         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
14766         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
14767         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
14768         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
14769         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
14770         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
14771         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
14772         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
14773         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
14774         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
14775         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
14776         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
14777         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
14778         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
14779         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
14780         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
14781         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
14782         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
14783         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
14784         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
14785         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
14786         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
14787         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
14788         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
14789         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
14790         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
14791         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
14792         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
14793         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
14794         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
14795         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
14796         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
14797         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
14798         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
14799         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
14800         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
14801         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
14802         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
14803         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
14804         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
14805         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
14806         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
14807         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
14808         and always use the no parameter form for consistency.
14809
14810         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
14811
14812 2005-09-01  Robert Dewar  <dewar@adacore.com>
14813
14814         * binde.adb: Minor reformatting
14815         (Find_Elab_Order): Output warning if -p used with static elab order
14816
14817 2005-09-01  Robert Dewar  <dewar@adacore.com>
14818
14819         * checks.adb (Check_Needed): New procedure, deals with removing checks
14820         based on analysis of short-circuited forms. Also generates warnings for
14821         improper use of non-short-circuited forms.
14822         Code clean ups.
14823
14824 2005-09-01  Robert Dewar  <dewar@adacore.com>
14825
14826         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
14827         with 'Valid tests.
14828
14829 2005-09-01  Robert Dewar  <dewar@adacore.com>
14830
14831         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
14832         spec.
14833         Implement new insertion char < (conditional warning)
14834         * errutil.adb, erroutc.adb: Implement new insertion char <
14835         (conditional warning).
14836         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
14837         (Error_Msg_Warn): New variable for < insertion char.
14838         * prj-nmsc.adb: Implement new errout insertion char < (conditional
14839         warning).
14840         (Check_For_Source): Change value of Source_Id only after the current
14841         source has been dealt with.
14842
14843 2005-09-01  Robert Dewar  <dewar@adacore.com>
14844             Doug Rupp  <rupp@adacore.com>
14845
14846         * exp_attr.adb: Handle vax fpt for 'Valid attribute
14847         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
14848         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
14849         (Valid_D, Valid_F, Valid_G): New functions
14850
14851 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
14852             Hristian Kirtchev  <kirtchev@adacore.com>
14853             Javier Miranda  <miranda@adacore.com>
14854
14855         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
14856         from object notation, the original node is unanalyzed and carries no
14857         semantic information, so that accessiblity checks must be performed on
14858         the type of the actual itself.
14859         (Expand_N_Subprogram_Declaration): Change last actual parameter for
14860         compatibility with Build_Protected_Sub_Specification.
14861         (Check_Overriding_Inherited_Interfaces): Add suport to handle
14862         overloaded primitives.
14863         (Register_Interface_DT_Entry): Use the new name of the formal
14864         the the calls to Expand_Interface_Thunk
14865
14866         * exp_dbug.ads: Augment comments on encoding of protected types to
14867         include the generation of dispatching subprograms when the type
14868         implements at least one interface.
14869
14870         * lib.ads: Extend information in Load_Stack to include whether a given
14871         load comes from a Limited_With_Clause.
14872
14873         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
14874         whether a potential circularity is harmless, because it includes units
14875         loaded through a limited_with clause. Extends previous treatment which
14876         did not handle properly arbitrary combinations of limited and
14877         non-limited clauses.
14878
14879 2005-09-01  Nicolas Setton  <setton@adacore.com>
14880
14881         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
14882         to be encoded as typ___XBLU_lowerbound__upperbound instead of
14883         typ___XB_lowerbound__upperbound.
14884
14885 2005-09-01  Thomas Quinot  <quinot@adacore.com>
14886
14887         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
14888         dummy access formal for RACW/RAS TypeCode TSS.
14889         (Build_TypeCode_Call): Do not generate dummy null access actual for
14890         calls to the TypeCode TSS.
14891
14892 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
14893
14894         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
14895         fully qualified name, to distinguish instances with the same local name.
14896
14897         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
14898         fully qualified.
14899
14900 2005-09-01  Robert Dewar  <dewar@adacore.com>
14901
14902         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
14903         packed arrays.
14904
14905 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
14906
14907         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
14908         (Free): New deallocation procedure for filter elements
14909         (Close): Deallocate any existing filter for the concerned connection
14910
14911 2005-09-01  Laurent Pautet  <pautet@adacore.com>
14912
14913         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
14914         position set is provided, we compute one in order to reduce the maximum
14915         length of the keys.  This computation first selects a character
14916         position between 1 and the minimum length of the keys in order to
14917         avoid reducing one of the keys to an empty string.
14918         (Initialize, Compute): When the ratio V to K is too low, the algorithm
14919         does not converge. The initialization procedure now comes with a
14920         maximum number of iterations such that when exceeded, an exception is
14921         raised in Compute. The user can initialize this ratio to another value
14922         and try again
14923         Reformating and updated headers.
14924
14925 2005-09-01  Javier Miranda  <miranda@adacore.com>
14926
14927         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
14928         that given an entity T creates and returns an Itype that duplicates the
14929         contents of T. The returned Itype has the null-exclusion
14930         attribute set to True, and its Etype attribute references T
14931         to keep the association between the two entities.
14932         Update copyright notice
14933
14934         * sem_aggr.adb (Check_Can_Never_Be_Null,
14935         Aggregate_Constraint_Checks, Resolve_Aggregate,
14936         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
14937
14938         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
14939
14940 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
14941             Robert Dewar  <dewar@adacore.com>
14942             Hristian Kirtchev  <kirtchev@adacore.com>
14943
14944         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
14945         Result_Definition.
14946
14947         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
14948         function specs.
14949         Call Set_Result_Definition instead of Set_Subtype_Mark.
14950         (P_Subprogram_Specification): Add parsing of anonymous access result
14951         plus null exclusions. Call Set_Result_Definition instead of
14952         Set_Subtype_Mark.
14953
14954         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
14955         (P_Access_Type_Definition): Add parsing for an anonymous access result
14956         subtype, plus parsing for null exclusions. Call Set_Result_Definition
14957         instead of Set_Subtype_Mark.
14958
14959         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
14960         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
14961         (Result_Definition): New function for N_Function_Specifications.
14962         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
14963         N_Function_Specification.
14964         (Set_Null_Exclusion_Present): Allow this flag for
14965         N_Function_Specification.
14966         (Set_Result_Definition): New procedure for N_Function_Specifications.
14967         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
14968         and N_Function_Specification.
14969
14970         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
14971         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
14972         Add support for LIMITED NEW for Ada 2005 AI-419
14973         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
14974         syntax for anonymous access results.
14975         Replace Subtype_Mark field by Result_Definition in
14976         N_Function_Specification and N_Access_Definition specs.
14977         Add Null_Exclusion_Present to spec of N_Function_Specification.
14978         (Result_Definition): New function for N_Function_Specification and
14979         N_Access_Function_Definition.
14980         (Set_Result_Definition): New procedure for N_Function_Specification and
14981         N_Access_Function_Definition.
14982
14983         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
14984         Result_Definition for cases of N_Access_Function_Definition and
14985         N_Function_Specification.
14986         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
14987
14988 2005-09-01  Vincent Celier  <celier@adacore.com>
14989
14990         * lib-writ.adb: Update Copyright notice
14991         (Write_With_Lines): On platforms where file names are case-insensitive,
14992         record the file names in lower case.
14993         (Write_ALI): For D lines, on platforms where file names are
14994         case-insensitive, record the file names in lower case.
14995
14996 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
14997             Emmanuel Briot  <briot@adacore.com>
14998
14999         * lib-xref.adb (Output_Overridden_Op): Display information on
15000         overridden operation.
15001
15002         * lib-xref.ads: Add documentation on overridden operations.
15003
15004         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
15005         information.
15006
15007         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
15008         overriding entity information.
15009
15010 2005-09-01  Vincent Celier  <celier@adacore.com>
15011
15012         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
15013         including those that are inherited.
15014
15015 2005-09-01  Robert Dewar  <dewar@adacore.com>
15016
15017         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
15018
15019         * par-prag.adb: Implement new pragma Debug_Policy
15020
15021         * sem_prag.adb Implement new pragma Debug_Policy
15022         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
15023         Component_Size attribute specification. Give warning for ignored pragma
15024         Pack.
15025
15026         * snames.h, snames.ads, snames.adb: Introduce entries in
15027         Preset_Names for Name_Disp_Asynchronous_Select,
15028         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
15029         Name_Disp_Timed_Select.
15030         New pragma Debug_Policy
15031
15032         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
15033         explicitly.
15034         Switch -gnata also sets Debug_Pragmas_Enabled
15035
15036         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
15037         handle an explicit -gnata when compiling predefined files.
15038
15039 2005-09-01  Vincent Celier  <celier@adacore.com>
15040
15041         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
15042         directories of projects that have no Ada sources.
15043
15044 2005-09-01  Robert Dewar  <dewar@adacore.com>
15045
15046         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
15047         (makes a difference for wide characters)
15048
15049         * widechar.adb, widechar.ads:
15050         Add Wide_Char_Byte_Count feature to count chars vs bytes
15051
15052 2005-09-01  Thomas Quinot  <quinot@adacore.com>
15053             Ed Schonberg  <schonberg@adacore.com>
15054             Robert Dewar  <dewar@adacore.com>
15055
15056         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
15057         'Address attribute reference with an overloaded prefix, use the
15058         location of the prefix (not the location of the attribute reference) as
15059         the error location.
15060         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
15061         a function renaming thereof, is a valid prefix for 'Size (where it is
15062         intepreted as a function call).
15063         (Statically_Denotes_Entity): New predicate to determine whether the
15064         prefix of an array attribute can be considered static.
15065
15066         PR ada/9087
15067         (Eval_Attr): Fix failure to evaluate Component_Size for
15068         unconstrained arrays (resulted in wrong value in packed case, since
15069         back end cannot handle this case)
15070
15071 2005-09-01  Robert Dewar  <dewar@adacore.com>
15072
15073         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
15074         error msgs for most common cases.
15075         Use new errout insertion char < (conditional warning)
15076
15077 2005-09-01  Javier Miranda  <miranda@adacore.com>
15078             Ed Schonberg  <schonberg@adacore.com>
15079
15080         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
15081         become local to the whole package.
15082         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
15083         the package was already analyzed the new algorithm "replaces" the
15084         real entities by the shadow ones. This is required to ensure that
15085         the order of these entities in the homonym chains does not change;
15086         otherwise we can have undefined references at linking time because
15087         in case of conflicts the external name of the entities will have
15088         a suffix that depends on the order of the entities in the chain.
15089         (Remove_Limited_With_Clause): Complementary code that completes the
15090         new algorithm and replaces the shadow entities by the real ones.
15091         (Install_Limited_Withed_Unit): When unchaining entities before the
15092         installation of the shadow entities, only regular entities of the
15093         public part must be taken into account. This is required to
15094         keep this routine in synch with the work done by Remove_Limited_
15095         With_Clause
15096         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
15097         even if unit is analyzed, because the analysis of the unit is
15098         idempotent in any case, and the limited view of the unit may have to
15099         be installed for proper visibility.
15100         (Expand_Limited_With_Clause): Even if the unit in the implicit
15101         with_clause has been analyzed already, a limited view of the package
15102         must be built for the current context, if it does not exist yet.
15103
15104 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15105             Javier Miranda  <miranda@adacore.com>
15106             Gary Dismukes  <dismukes@adacore.com>
15107
15108         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
15109         defining entity for the instance body, make a new defining identifier
15110         rather than copying the entity of the spec, to prevent accidental
15111         sharing of the entity list.
15112         (Check_Private_View): When exchanging views of private types, build the
15113         list of exchanged views as a stack, to ensure that on exit the exchanges
15114         are undone in the proper order.
15115         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
15116         Restore the compilation environment in case of instantiation_error.
15117         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
15118         for an anonymous access result.
15119         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
15120         (Formal_Entity): Handle properly the case of a formal package that
15121         denotes a generic package renaming.
15122
15123 2005-09-01  Thomas Quinot  <quinot@adacore.com>
15124
15125         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
15126         clause if the array aggregate is surrounded by parentheses.
15127
15128 2005-09-01  Cyrille Comar  <comar@adacore.com>
15129             Gary Dismukes  <dismukes@adacore.com>
15130             Ed Schonberg  <schonberg@adacore.com>
15131             Javier Miranda  <miranda@adacore.com>
15132
15133         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
15134         underlying type
15135         to check if a type is Constrained in cases related to code generation
15136         (rather than semantic checking) since otherwise we do not generate
15137         similar code for mutable private types depending if their
15138         discriminants are visible or not.
15139         (Check_Abstract_Overriding): Do not complain about failure to override
15140         the primitive operations used in dispatching selects since they will
15141         always be overriden at the freeze point of the type.
15142         (Access_Definition): Separate out handling for resetting the scope
15143         of an anonymous access function result type. Retrieve the scope
15144         of the associated function rather than using Current_Scope, which
15145         does not have a consistent value (depends on whether we're in the
15146         middle of analyzing formal parameters). Add ??? comment about
15147         finding a cleaner way to handle the special cases of scope setting.
15148         (Process_Incomplete_Dependents): A protected operation is never a
15149         dispatching operation (only its wrapper may be).
15150         (Build_Derived_Record_Type): In case of tagged private types that
15151         implement interfaces add derivation of predefined primitive
15152         operations.
15153         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
15154         by two parameters that are used in case of derivation from abstract
15155         interface types: No_Predefined_Prims is used to avoid the derivation
15156         of predefined primitives from the interface, and Predefined
15157         Prims_Only is used to complete the derivation predefined primitives
15158         in case of private tagged types implementing interfaces.
15159         Fix typo in comments
15160         (Find_Interface_In_Descendant): Protect the frontend against
15161         wrong code with large circularity chains.
15162         (Is_Private_Overriding): Add support for entities overriding interface
15163         subprograms. The test failed because Entities associated with overriden
15164         interface subprograms are always marked as hidden (and used to build
15165         the secondary dispatch table); in this case the overriden entity is
15166         available through the field abstract_interface_alias (cf. override_
15167         dispatching_operation)
15168         (Access_Definition): Set the scope of the type to Current_Scope for the
15169         case of a function with an anonymous access result type.
15170         (Access_Subprogram_Declaration): Handle creation of the type entity for
15171         an access-to-function type with an anonymous access result.
15172         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
15173         in handling for N_Access_Function_Definition.
15174         (Analyze_Subtype_Declaration): Modify the text of error message.
15175         (Derived_Type_Declaration): Modify the text of error message.
15176         (Process_Subtype): Modify the text of error message plus cleanup
15177         of one redundant error message.
15178         (Analyze_Component_Declaration): Code cleanup.
15179         (Analyze_Object_Declaration): Code cleanup.
15180         (Analyze_Subtype_Declaration): Propagate the null-exclusion
15181         attribute in case of access types. Code cleanup.
15182         (Array_Type_Declaration): Code cleanup.
15183         (Process_Discriminants): Create the new null-excluding itype
15184         if required. Code cleanup.
15185         (Process_Subtype): Create the new null-excluding itype if
15186         required. Code cleanup.
15187         (Build_Derived_Record_Type): Code cleanup to avoid calling
15188         twice the subprogram derive_subprograms in case of private
15189         types that implement interfaces. In this particular case the
15190         subprogram Complete_Subprograms_Derivation already does the
15191         job associated with the second call.
15192
15193         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
15194         conversion to the full view when generating an operation for a
15195         discriminant whose type may currently be private.
15196
15197 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15198             Javier Miranda  <miranda@adacore.com>
15199
15200         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
15201         V (Obj.F), the rewriting does not involve the indexed component, but
15202         only the selected component itself.
15203         Do not apply the transformation if the analyzed node is an actual of a
15204         call to another subprogram.
15205         (Complete_Object_Operation): Retain the entity of the
15206         dispatching operation in the selector of the rewritten node. The
15207         entity will be used in the expansion of dispatching selects.
15208         (Analyze_One_Call): Improve location of the error message associated
15209         with interface.
15210         (Analyze_Selected_Component): No need to resolve prefix when it is a
15211         function call, resolution is done when parent node is resolved, as
15212         usual.
15213         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
15214         when attempting to resolve a call transformed from its object notation.
15215         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
15216         of the argument list for each interpretation of the operation.
15217         (Try_Object_Operation): The designated type of an access parameter may
15218         be an incomplete type obtained through a limited_with clause, in which
15219         case the primitive operations of the type are retrieved from its full
15220         view.
15221         (Analyze_Call): If this is an indirect call, and the return type of the
15222         access_to_subprogram is incomplete, use its full view if available.
15223
15224 2005-09-01  Javier Miranda  <miranda@adacore.com>
15225             Gary Dismukes  <dismukes@adacore.com>
15226
15227         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
15228         access types the null-exclusion and access-to-constant attributes must
15229         also match.
15230         (Analyze_Return_Statement): When the result type is an anonymous access
15231         type, apply a conversion of the return expression to the access type
15232         to ensure that appropriate accessibility checks are performed.
15233         (Analyze_Return_Type): For the case of an anonymous access result type,
15234         generate the Itype and set Is_Local_Anonymous_Access on the type.
15235         Add ??? placeholder for check to disallow returning a limited object
15236         in Ada 2005 unless it's an aggregate or a result of a function call.
15237         Change calls from Subtype_Mark to Result_Definition.
15238         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
15239         Result_Definition in call to Make_Function_Specification.
15240         (Build_Body_To_Inline): Change Set_Subtype_Mark to
15241         Set_Result_Definition.
15242         (Make_Inequality_Operator): Change formal Subtype_Mark to
15243         Result_Definition in call to Make_Function_Specification.
15244         (Process_Formals): Create the new null-excluding itype if required.
15245         (New_Overloaded_Entity): For an entity overriding an interface primitive
15246         check if the entity also covers other abstract subprograms in the same
15247         scope. This is required to handle the general case, that is, overriding
15248         other interface primitives and overriding abstract subprograms inherited
15249         from some abstract ancestor type.
15250         (New_Overloaded_Entity): For an overriding entity that comes from
15251         source, note the operation that it overrides.
15252         (Check_Conformance, Type_Conformant): Addition of one new formal
15253         to skip controlling formals in the analysis. This is used to
15254         handle overloading of abstract interfaces.
15255         (Base_Types_Match): Add missing case for types imported from
15256         limited-with clauses
15257         (New_Overloaded_Entity): Add barrier to protect the use of
15258         the "alias" attribute.
15259
15260 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15261
15262         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
15263         verify that the procedure and the entry are mode conformant.
15264         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
15265         as a different operator, which is often a cut-and-paste error.
15266
15267 2005-09-01  Javier Miranda  <miranda@adacore.com>
15268             Ed Schonberg  <schonberg@adacore.com>
15269
15270         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
15271         used in controlling parameters exclude null because it is necessary to
15272         read the tag to dispatch, and null has no tag.
15273         (Override_Dispatching_Operation): If the previous operation is inherited
15274         from an interface, it becomes hidden  and does not participate in later
15275         name resolution.
15276
15277 2005-09-01  Javier Miranda  <miranda@adacore.com>
15278             Ed Schonberg  <schonberg@adacore.com>
15279             Gary Dismukes  <dismukes@adacore.com>
15280
15281         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
15282         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
15283         the expander will generate the corresponding run-time check to evaluate
15284         the expression.
15285         (Resolve_Call): Check for legal type of procedure name or prefix that
15286         appears as a trigger in a triggering alternative.
15287         (Valid_Conversion): If expression is ambiguous and the context involves
15288         an extension of System, remove System.Address interpretations.
15289         (Resolve_Qualified_Expression): Reject the case of a specific-type
15290         qualification applied to a class-wide argument. Enhance comment
15291         to explain checking of Original_Node.
15292         (Resolve_Type_Conversion): The location of the error message was not
15293         general enough to handle the general case and hence it has been removed.
15294         In addition, this patch improves the text of the message.
15295         (Resolve_Type_Conversion): Add missing support for access to interface
15296         types.
15297         (Resolve_Type_Conversion): If the target is a class-wide interface type,
15298         do not expand if the expression is the actual in a call, because proper
15299         expansion will take place when the call itself is expanded.
15300         (Resolve_Allocator): If the context is an unchecked conversion, the
15301         allocator inherits its storage pool, if any, from the target type of
15302         the conversion.
15303
15304 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15305             Javier Miranda  <miranda@adacore.com>
15306
15307         * sem_type.adb (Add_One_Interp): If a candidate operation is an
15308         inherited interface operation that has an implementation, use the
15309         implementation to avoid spurious ambiguities.
15310         (Interface_Present_In_Ancestor): In case of concurrent types we can't
15311         use the Corresponding_Record_Typ attribute to look for the interface
15312         because it is set by the expander (and hence it is not always
15313         available). For this reason we traverse the list of interfaces
15314         (available in the parent of the concurrent type).
15315         (Interface_Present_In_Ancestor): Handle entities from the limited view
15316
15317 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15318
15319         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
15320         from the list of required components.
15321         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
15322         primitive procedure of a limited interface with a controlling first
15323         parameter.
15324         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
15325         of an entry.
15326         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
15327         capture if it is generated in the second operand of a short-circuit
15328         operation.
15329         Do not capture values for variables with address clauses.
15330         (Is_Object_Reference): Treat a function call as an object reference only
15331         if its type is not Standard_Void_Type.
15332
15333 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
15334
15335         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
15336         to a variable that is statically known to be constant.
15337
15338 2005-09-01  Geert Bosch  <bosch@adacore.com>
15339             Robert Dewar  <dewar@adacore.com>
15340
15341         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
15342         (VAXGF_Safe_First): Idem.
15343
15344 2005-09-01  Robert Dewar  <dewar@adacore.com>
15345             Arnaud Charlet  <charlet@adacore.com>
15346
15347         * g-dirope.ads: Minor reformatting
15348         Document that bounds of result of Base_Name match the input index
15349         positions.
15350         Add documentation on environment variable syntax for Expand_Path
15351
15352         * gnat_ugn.texi: Update documentation to include mention of -m switches
15353         Document new treatment of wide characters in max line length
15354         style check.
15355         Remove -gnatL/-gnatZ switches, no longer used.
15356         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
15357         of -gnata switch.
15358
15359         * gnat_rm.texi: Add doc for two argument form of pragma
15360         Float_Representation.
15361         Add documentation for pragma No_Strict_Aliasing
15362         Add note that explicit component clause overrides pragma Pack.
15363         Add documentation of pragma Debug_Policy
15364
15365 2005-09-01  Matthew Heaney  <heaney@adacore.com>
15366
15367         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
15368         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
15369         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
15370         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
15371         draft (Draft 13, August 2005) of Ada Amendment 1.
15372
15373 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
15374
15375         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
15376         Note that the platform-specific version of g-soccon.ads for VMS is now
15377         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
15378         really is a package spec).
15379         Replace s-taspri-linux.ads by s-taspri-posix.ads
15380         Remove references to s-mastop-x86.adb
15381
15382         * system-vxworks-xscale.ads: Removed, no longer used.
15383         * s-vxwork-xscale.ads: Removed, no longer used.
15384
15385 2005-09-01  Robert Dewar  <dewar@adacore.com>
15386
15387         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
15388         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
15389         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
15390         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
15391         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
15392         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
15393         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
15394         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
15395         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
15396         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
15397         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
15398         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
15399         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
15400         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
15401         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
15402         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
15403         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
15404         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
15405         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
15406         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
15407         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
15408
15409 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
15410
15411         PR ada/23187
15412         * adaint.c
15413         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
15414
15415 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
15416             Doug Rupp  <rupp@adacore.com>
15417
15418         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
15419         when needed.
15420         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
15421         this code in the GNAT run-time.
15422
15423         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
15424
15425         PR ada/21053
15426         * init.c (__gnat_error_handler [many]): Mark "msg" as const
15427         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
15428
15429         (__gnat_inside_elab_final_code): Moved here from
15430         Standard_Library and only defined for the compiler.
15431         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
15432         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
15433         using RTPs because directly vectored Interrupt routines are not
15434         supported on this configuration.
15435         (getpid): Do not redefine this function on VxWorks when using RTPs
15436         because this primitive is well supported by the RTP libraries.
15437         (copy_msg): Correct the code that checks for buffer overflow.
15438         Discovered during code reading.
15439
15440 2005-08-29  Olivier Hainque  <hainque@adacore.com>
15441
15442         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
15443         a library level mutable variable with an initializer, tell
15444         build_allocator to ignore the initializer's size. It may not be large
15445         enough for all the values that might be assigned to the variable later
15446         on.
15447
15448 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
15449             Eric Botcazou  <ebotcazou@adacore.com>
15450
15451         * trans.c: Protect < in error msg with quote
15452         Replace GCC_ZCX by Back_End_Exceptions.
15453         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
15454         has been sufficiently aligned in the record.
15455
15456 2005-08-15  James E. Wilson  <wilson@specifix.com>
15457
15458         * system-linux-alpha.ads: Change ia64 to alpha.
15459
15460 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
15461
15462         * decl.c, utils.c: Fix comment typos.
15463
15464 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
15465
15466         * decl.c, init.c, initialize.c: Fix comment typos.
15467
15468 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
15469
15470         Make CONSTRUCTOR use VEC to store initializers.
15471         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
15472         CONSTRUCTOR_ELTS.
15473         * trans.c (extract_values): Likewise.
15474         * utils.c (convert, remove_conversions): Likewise.
15475         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
15476         gnat_build_constructor): Likewise.
15477
15478 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
15479
15480         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
15481         DECL_SECTION_NAME.
15482         (compare_field_bitpos): Likewise.
15483
15484 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
15485
15486         * utils.c (create_var_decl): Only set DECL_COMMON on
15487         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
15488         VAR_OR_FUNCTION_DECL_P.
15489
15490 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
15491
15492         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
15493         removed.
15494
15495 2005-07-07  Pascal Obry  <obry@adacore.com>
15496
15497         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
15498         returned type on Windows.
15499
15500         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
15501         routine.
15502
15503         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
15504         exception in this case.
15505         Simplify the code as "Image (Image'Range)" = "Image".
15506
15507 2005-07-07  Vincent Celier  <celier@adacore.com>
15508
15509         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
15510         the destructor/constructor attributes for <lib>final/<lib>init.
15511
15512         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
15513
15514 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
15515
15516         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
15517         type if the parameter is not passed by copy but reference by default.
15518
15519 2005-07-07  Javier Miranda  <miranda@adacore.com>
15520
15521         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
15522         Reimplementation of the support for abstract interface types in order
15523         to leave the code more clear and easy to maintain.
15524
15525         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
15526         abstract interface types in order to leave the code clearer and easier
15527         to maintain.
15528
15529         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
15530         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
15531         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
15532         appropriate entry of the secondary dispatch table.
15533         (Make_DT): Add code to inherit the secondary dispatch tables of
15534         the ancestors.
15535
15536         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
15537         implementing both functionalities by means of a common routine, each
15538         routine has its own code.
15539
15540 2005-07-07  Javier Miranda  <miranda@adacore.com>
15541
15542         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
15543
15544         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
15545         types:
15546         --
15547           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
15548         --
15549
15550         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
15551         use of tag incomplete types.
15552
15553         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
15554         give support to tagged incomplete types.
15555
15556         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
15557         expression is a discriminant reference and its type is private, as can
15558         happen within a stream operation for a mutable record, use the full
15559         view of the type to resolve the case alternatives.
15560         (Analyze_Assignment): Check wrong dereference of incomplete types.
15561
15562         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
15563         types.
15564
15565         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
15566         incomplete types.
15567
15568         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
15569         N_Incomplete_Type_Declaration nodes.
15570
15571         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
15572         Tag_Present to give support to tagged incomplete types:
15573         --
15574           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
15575         --
15576
15577 2005-07-07  Olivier Hainque  <hainque@adacore.com>
15578
15579         PR ada/22301
15580         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
15581         definitions for the Unwind wrappers in the compiler case.
15582
15583 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
15584             Javier Miranda  <miranda@adacore.com>
15585
15586         * par-load.adb (Load): If a child unit is loaded through a limited_with
15587         clause, each parent must be loaded as a limited unit as well.
15588
15589         * sem_ch10.adb (Previous_Withed_Unit): Better name for
15590         Check_Withed_Unit. Return true if there is a previous with_clause for
15591         this unit, whether limited or not.
15592         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
15593         the current unit.
15594         (Is_Visible_Through_Renamings): New local subprogram of install_limited
15595         _withed_unit that checks if some package installed through normal with
15596         clauses has a renaming declaration of package whose limited-view is
15597         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
15598         of the current Draft document for Ada 2005.
15599         (Analyze_Context): Complete the list of compilation units that
15600         are allowed to contain limited-with clauses. It also contains
15601         checks that were previously done by Install_Limited_Context_Clauses.
15602         This makes the code more clear and easy to maintain.
15603         (Expand_Limited_With_Clause) It is now a local subprogram of
15604         Install_Limited_Context_Clauses, and contains the code that adds
15605         the implicit limited-with clauses for parents of child units.
15606         This functionality was prevously done by Analyze_Context.
15607
15608         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
15609         incomplete type.
15610
15611         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
15612         been erroneously named in a limited-with clause of its own context.
15613         In this case the error has been previously notified by Analyze_Context.
15614
15615 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
15616
15617         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
15618         generic package that contains local declarations with the same name.
15619         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
15620
15621 2005-07-07  Bernard Banner  <banner@adacore.com>
15622
15623         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
15624         ia64 platform only on platforms that you the GCC unwind library
15625         rather than the system unwind library.
15626
15627 2005-07-07  Thomas Quinot  <quinot@adacore.com>
15628
15629         * expect.c: Minor reformatting
15630
15631 2005-07-07  Sergey Rybin  <rybin@adacore.com>
15632
15633         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
15634         --no-separate-is
15635
15636         * gnat_ugn.texi: Add description for new gnatpp option
15637         (--no-separate-is)
15638
15639 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15640
15641         * g-expect-vms.adb, g-expect.ads, g-expect.adb
15642         (Get_Command_Output): New subprogram to launch a process and get its
15643         standard output as a string.
15644
15645 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
15646             Olivier Hainque  <hainque@adacore.com>
15647
15648         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
15649         fetch a code-range descriptor associated with the machine state. On
15650         failure set the machine state's PC to 0; on success, pass the
15651         descriptor to exc_virtual_unwind.
15652
15653         * init.c (Tru64 section): New function __gnat_set_code_loc.
15654
15655 2005-07-04  Vincent Celier  <celier@adacore.com>
15656
15657         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15658         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
15659         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
15660         Remove all auto-initialization code, as this is now done through the
15661         constructor mechanism.
15662
15663         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
15664         __gnat_sals_init_using_constructors): New functions.
15665
15666         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
15667         Linker_Constructor and Linker_Destructor when switch -a is used.
15668
15669         * bindusg.adb: Add line for new switch -a
15670
15671         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
15672         (Gnatbind): When switch -a is used, check if it is allowed
15673
15674         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
15675
15676 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
15677
15678         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
15679         This prevents us from hitting a limitation during the debug info
15680         generation when using stabs.
15681         (Prims_Ptr): Likewise.
15682
15683 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
15684             Ed Schonberg  <schonberg@adacore.com>
15685             Javier Miranda  <miranda@adacore.com>
15686
15687         * checks.adb (Null_Exclusion_Static_Checks): In the case of
15688         N_Object_Declaration, only perform the checks if the Object_Definition
15689         is not an Access_Definition.
15690
15691         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
15692         where the parent of an the access definition is an N_Object_Declaration
15693         when determining the Associated_Node_For_Itype and scope of an
15694         anonymous access-to-subprogram type.
15695
15696         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
15697         Corresponding_Spec on the body created for a null procedure. Add ???
15698         comment. Remove New_Copy_Tree call on body argument to
15699         Set_Body_To_Inline.
15700
15701         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
15702         discriminants, use the type of the actual as well, because the
15703         discriminants may be read by the called subprogram.
15704
15705         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
15706         access type we do not need to handle non-limited views.
15707         (Build_Derived_Record_Type): Additional check to check that in case of
15708         private types, interfaces are only allowed in private extensions.
15709
15710 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
15711
15712         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
15713         <Pragma_Linker_Destructor>: Likewise.
15714
15715         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
15716         Pragma_Linker_Destructor.
15717
15718         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
15719         ATTR_LINK_DESTRUCTOR.
15720         (static_ctors, static_dtors): New variables.
15721
15722         * misc.c (gnat_expand_body): Output current function as constructor
15723         and destructor if requested.
15724
15725         * par-prag.adb: Add processing for pragma Linker_Constructor and
15726         Linker_Destructor.
15727
15728         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
15729         extracted from Check_Interrupt_Or_Attach_Handler.
15730         (Check_Interrupt_Or_Attach_Handler): Invoke it.
15731         Implement pragma Linker_Constructor and Linker_Destructor with the
15732         help of Find_Unique_Parameterless_Procedure.
15733         Replace Name_Alias with Name_Target for pragma Linker_Alias.
15734
15735         * snames.h, snames.ads, snames.adb:
15736         Add Name_Linker_Constructor and Name_Linker_Destructor.
15737         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
15738         * snames.adb: Remove Name_Alias.
15739
15740         * trans.c: Include cgraph.h.
15741         (build_global_cdtor): New function.
15742         (Compilation_Unit_to_gnu): Build global constructor and destructor if
15743         needed.
15744         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
15745         of objects too.
15746         (addressable_p) <COMPONENT_REF>: Unconditionally test
15747         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
15748
15749         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
15750         variable if it is external.
15751
15752         (static_ctors, static_dtors): New global variables.
15753         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
15754         <ATTR_LINK_DESTRUCTOR>: Likewise.
15755         (end_subprog_body): Chain function as constructor and destructor
15756         if requested.
15757
15758         * exp_util.adb (Force_Evaluation): Unconditionally invoke
15759         Remove_Side_Effects with Variable_Ref set to true.
15760         (Remove_Side_Effects): Handle scalar types first. Use a renaming
15761         for non-scalar types even if Variable_Ref is true and for class-wide
15762         expressions.
15763
15764 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15765
15766         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
15767         to prevent spurious warnings.
15768
15769 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15770
15771         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
15772         Itypes. Itypes are really unexpected there.
15773         (Build_TypeCode_Function): Generalise special processing for Itypes to
15774         handle the case of numeric implicit base types as well as enumerated
15775         ones.
15776
15777 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15778
15779         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
15780         controlled, indicate the expected type of the dereference that is
15781         created for the call to Deep_Finalize, to prevent spurious errors when
15782         the designated type is private and completed with a derivation from
15783         another private type.
15784
15785 2005-07-04  Vincent Celier  <celier@adacore.com>
15786
15787         * make.adb (Change_To_Object_Directory): When unable to change the
15788         current dir to the object directory, output the full path of the
15789         directory.
15790
15791 2005-07-04  Matthew Gingell  <gingell@adacore.com>
15792
15793         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
15794
15795         * indepsw-linux.adb: Replace by...
15796
15797         * indepsw-gnu.adb: ...this new file
15798
15799 2005-07-04  Vincent Celier  <celier@adacore.com>
15800
15801         * mlib-prj.adb (Auto_Initialize): New constant String
15802         (SALs_Use_Constructors): New Boolean function
15803         (Build_Library): Call gnatbind with Auto_Initialize switch when
15804         SALs_Use_Constructors returns True.
15805
15806         * mlib-tgt.ads: Minor reformatting
15807
15808         * mlib-utl.ads: Minor reformatting
15809
15810         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
15811
15812 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15813
15814         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
15815         single protected declarations can have an interface list.
15816         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
15817         with seriously malformed entry declarations, and lead to compilation
15818         abandoned messages.
15819
15820 2005-07-04  Javier Miranda  <miranda@adacore.com>
15821
15822         * par-load.adb: Load the context items in two rounds.
15823
15824 2005-07-04  Robert Dewar  <dewar@adacore.com>
15825
15826         * scng.adb: Do not consider Mod used as an attribute to be a keyword
15827
15828 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15829             Javier Miranda  <miranda@adacore.com>
15830
15831         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
15832         type extension needs a limited view.
15833         Remove previous restriction on private types available through the
15834         limited-view (only tagged private types were previously allowed).
15835         (Install_Withed_Unit): In the code that implements the
15836         legality rule given in AI-377, exclude a child unit with the name
15837         Standard, because it is a homonym of the Standard environment package.
15838
15839 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15840
15841         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
15842         overloaded function call, carry interpretations from the original tree
15843         to the copy.
15844
15845 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15846
15847         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
15848         types check whether some designated type is a limited view, and use
15849         the non-limited view if available.
15850
15851 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
15852
15853         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
15854         constraint of full view of a private view T1 if present, when T2 is a
15855         discriminated full view.
15856
15857 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15858
15859         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
15860         actual that is a view conversion of a bit packed array reference.
15861
15862 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15863
15864         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
15865         present before checking whether an interface type covers a synchronized
15866         type.
15867
15868 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
15869
15870         * sem_util.adb (Is_Object_Reference): An indexed or selected component
15871         whose prefix is an implicit dereference is an object reference. Removes
15872         spurious errors when compiling with -gnatc.
15873
15874 2005-07-04  Robert Dewar  <dewar@adacore.com>
15875
15876         PR ada/22039
15877         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
15878
15879 2005-07-04  Matthew Gingell  <gingell@adacore.com>
15880
15881         * tracebak.c: Enable tracebacks on ia64 platforms
15882
15883 2005-07-04  Vincent Celier  <celier@adacore.com>
15884
15885         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
15886         the GNAT BIND command, as gnatbind accepts multiples ALI files with
15887         the -L or -n switches.
15888
15889 2005-07-04  Vincent Celier  <celier@adacore.com>
15890
15891         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
15892         correctly computed and the main project data is not modified while
15893         doing so.
15894         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
15895         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
15896         c++linker as this does not work on some platforms.
15897
15898 2005-07-04  Matthew Heaney  <heaney@adacore.com>
15899
15900         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
15901         was changed.
15902         * a-coinve.adb: Perform constraint checks explicitly.
15903
15904 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15905             Thomas Quinot  <quinot@adacore.com>
15906
15907         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
15908         new target gen-soccon.
15909
15910 2005-07-04  Robert Dewar  <dewar@adacore.com>
15911
15912         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
15913
15914 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15915
15916         * g-socket.ads (Check_Selector): Minor rewording of comment.
15917
15918 2005-07-04  Vincent Celier  <celier@adacore.com>
15919
15920         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
15921
15922 2005-07-04  Thomas Quinot  <quinot@adacore.com>
15923
15924         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
15925
15926 2005-07-04  Sergey Rybin  <rybin@adacore.com>
15927
15928         * gnat_ugn.texi: Add description of --eol gnatpp option
15929
15930 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
15931             Thomas Quinot  <quinot@adacore.com>
15932
15933         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
15934         if the user wants all calls of a subprogram to be flagged,
15935         independently of whether they are made from within the same unit or
15936         another unit.
15937         Mention restriction for pragma Linker_Alias on some platforms.
15938         Document pragma Linker_Constructor and Linker_Destructor.
15939         Rewrite documentation of Weak_External, Linker_Section and
15940         Linker_Alias pragmas.
15941
15942 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
15943
15944         * s-stausa.ads, s-stausa.adb: New files.
15945
15946 2005-06-30  Kelley Cook
15947
15948         * all files:  Update FSF address in copyright headers.
15949         * gen-soccon.co (main): Output new FSF address in generated files.
15950
15951 2005-06-28  Paul Brook  <paul@codesourcery.com>
15952
15953         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
15954
15955 2005-06-14  Olivier Hainque  <hainque@adacore.com>
15956             Eric Botcazou  <ebotcazou@adacore.com>
15957
15958         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
15959         exc_unwind, now that we are generating proper .debug_frame output for
15960         that target.
15961
15962         * tracebak.c: Remove the mips-irix section, as we are now using the
15963         s-mastop based unwinder again.
15964         Under SPARC/Solaris, take into account the stack bias to compute the
15965         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
15966         ABI.
15967
15968 2005-06-14  Doug Rupp  <rupp@adacore.com>
15969
15970         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
15971
15972         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
15973
15974 2005-06-14  Pascal Obry  <obry@adacore.com>
15975
15976         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
15977         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
15978         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
15979         package name).
15980
15981         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
15982         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
15983         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
15984         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
15985         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
15986         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
15987         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
15988         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
15989         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
15990         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
15991         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
15992         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
15993         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
15994         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
15995         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
15996         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
15997         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
15998         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
15999         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
16000         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
16001         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
16002         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
16003         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
16004         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
16005         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
16006         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
16007         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
16008         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
16009         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
16010         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
16011         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
16012         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
16013         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
16014         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
16015         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
16016         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
16017         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
16018         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
16019         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
16020         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
16021         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
16022         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
16023         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
16024         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
16025         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
16026         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
16027         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
16028         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
16029         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
16030         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
16031         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
16032         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
16033         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
16034         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
16035         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
16036         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
16037         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
16038         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
16039         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
16040         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
16041         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
16042         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
16043         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
16044         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
16045         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
16046         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
16047         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
16048         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
16049         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
16050         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
16051         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
16052         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
16053         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
16054         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
16055         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
16056         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
16057         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
16058         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
16059         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
16060         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
16061         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
16062         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
16063         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
16064         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
16065         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
16066         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
16067         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
16068         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
16069         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
16070         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
16071         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
16072         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
16073         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
16074         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
16075         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
16076         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
16077         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
16078         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
16079         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
16080         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
16081         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
16082         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
16083         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
16084         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
16085         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
16086         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
16087         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
16088         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
16089         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
16090         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
16091         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
16092         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
16093         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
16094         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
16095         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
16096         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
16097         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
16098         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
16099         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
16100         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
16101         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
16102         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
16103         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
16104         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
16105         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
16106         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
16107         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
16108         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
16109         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
16110         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
16111         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
16112         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
16113         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
16114
16115 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
16116             Arnaud Charlet  <charlet@adacore.com>
16117
16118         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
16119         longer protected objects. They have been replaced by lower-level
16120         suspension objects made up by a mutex and a condition variable (or
16121         their equivalent given a particular OS) plus some internal data to
16122         reflect the state of the suspension object.
16123         (Initialize, Finalize): Add this initialization procedure for
16124         Suspension_Object, which is a controlled type.
16125         (Finalize): Add the finalization procedure for Suspension_Object,
16126         which is a controlled type.
16127
16128         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
16129         Ada.Synchronous_Task_Control because there is no longer a need for a
16130         VxWorks specific version of this package. Target dependencies
16131         has been moved to System.Task_Primitives.Operations.
16132
16133         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
16134         longer needed.
16135         (InitializeCriticalSection, EnterCriticalSection,
16136         LeaveCriticalSection, DeleteCriticalSection): Replace the type
16137         pCriticalSection by an anonymous access type so that we avoid problems
16138         of accessibility to local objects.
16139
16140         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
16141         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
16142         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
16143         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
16144         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
16145         set the environment task mask here.
16146         (Current_State): Add this function that returns the state of the
16147         suspension object.
16148         (Set_False): Add this procedure that sets the state of the suspension
16149         object to False.
16150         (Set_True): Add this procedure that sets the state of the suspension
16151         object to True, releasing the task that was suspended, if any.
16152         (Suspend_Until_True): Add this procedure that blocks the calling task
16153         until the state of the object is True. Program_Error is raised if
16154         another task is already waiting on that suspension object.
16155         (Initialize): Add this procedure for initializing the suspension
16156         object. It initializes the mutex and the condition variable which are
16157         used for synchronization and queuing, and it sets the internal state
16158         to False.
16159         (Finalize): Add this procedure for finalizing the suspension object,
16160         destroying the mutex and the condition variable.
16161
16162         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
16163         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
16164         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
16165         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
16166         which provides a low-level abstraction (using operating system
16167         primitives) for Ada.Synchronous_Task_Control.
16168         This object is made up by a mutex (for ensuring mutual exclusion), a
16169         condition variable (for queuing threads until the condition is
16170         signaled), a Boolean (State) indicating whether the object is open,
16171         and a Boolean (Waiting) reflecting whether there is a task already
16172         suspended on this object.
16173
16174         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
16175         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
16176         s-intman-vms.ads, s-intman-mingw.adb,
16177         (Initialize_Interrupts): Removed, no longer used.
16178
16179         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
16180         (Setup_Interrupt_Mask): New procedure.
16181
16182         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
16183
16184         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
16185
16186         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
16187         this is no longer done in the body of s-taprop
16188         (Server_Task): Explicitely test for Pending_Action in case
16189         System.Parameters.No_Abort is True.
16190
16191         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
16192         is no longer done in the body of s-taprop
16193
16194 2005-06-14  Robert Dewar  <dewar@adacore.com>
16195
16196         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
16197         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
16198         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
16199         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
16200         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
16201         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
16202         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
16203         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
16204         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
16205         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
16206         system-linux-hppa.ads, system-vms_64.ads,
16207         system-vxworks-alpha.ads: Minor comment update for
16208         AI-362 (unit is Pure).
16209
16210         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
16211         Add pragma Pure_05 for AI-362
16212         Make remaining conversion functions obsolescent in Ada 95
16213
16214         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
16215         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
16216         Add entries for a-wichun and a-zchuni
16217         Add a-widcha a-zchara for AI-395
16218         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
16219
16220         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
16221         Add entries for a-wichun.o and a-zchuni.o
16222         Entries for a-widcha.o and a-zchara.o
16223         Add entry for a-chacon.o
16224
16225         * a-ztenau.adb: Add with of Ada.Characters.Conversions
16226
16227         * a-chacon.ads, a-chacon.adb: New files.
16228
16229         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
16230         categorization violations.
16231
16232         * a-strmap.ads: Add pragma Pure_05 for AI-362
16233         * a-strmap.ads: Add note on implicit categorization for AI-362
16234
16235         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
16236
16237         * par-prag.adb: Dummy entry for pragma Persistent_BSS
16238         Set Ada_Version_Explicit, for implementation of AI-362
16239         Add processing for pragma Pure_05 and Preelaborate_05
16240         Add entry for Assertion_Policy pragma
16241
16242         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
16243         when needed for proper processing of categorization stuff
16244
16245         * sem_cat.adb:
16246         For several cases, make errors in preealborate units warnings,
16247         instead of errors, if GNAT_Mode is set. For AI-362.
16248
16249         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
16250         preelaborate unit is now warning if in GNAT mode
16251
16252         * s-stoele.ads: Document AI-362 for pragma preelaborate
16253
16254 2005-06-14  Doug Rupp  <rupp@adacore.com>
16255
16256         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
16257         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
16258         Default_Exception_Msg_Max_Length: new parameter.
16259
16260         * a-except.ads: (Exception_Msg_Max_Length): Set to
16261         System.Parameters.Default_Exception_Msg_Max_Length
16262         Add pragma Preelaborate_05 for AI-362
16263         Add warnings off to allow categorization violations for AI-362
16264
16265 2005-06-14  Vincent Celier  <celier@adacore.com>
16266
16267         * gnatsym.adb: Adapt to modification of package Symbols: procedure
16268         Process is now in package Processing.
16269
16270         * symbols.ads, symbols.adb:
16271         (Processing): New package, containing procedure Process
16272
16273         * symbols-vms-alpha.adb:
16274         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
16275
16276         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
16277         symbols-processing-vms-ia64.adb: New files.
16278
16279 2005-06-14  Pascal Obry  <obry@adacore.com>
16280
16281         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
16282         implementation. This new version generates the proper DllMain routine
16283         to initialize the SAL. The DllMain is generated in Ada and compiled
16284         before being added as option to the library build command.
16285
16286 2005-06-14  Doug Rupp  <rupp@adacore.com>
16287             Pascal Obry  <obry@adacore.com>
16288
16289         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
16290         call to decc$translate_vms.
16291         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
16292         need to remove those quotes before catenating the filename.
16293         (__gnat_locate_exec_on_path): improvements to the Win32 section:
16294         * avoid allocating the memory twice for better efficiency;
16295         * allocate 32K buffer for environment expansion as suggested by MSDN;
16296         * prepend ".;" to the path so that current directory is searched too.
16297
16298 2005-06-14  Robert Dewar  <dewar@adacore.com>
16299
16300         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
16301         instead of raising CE (AI-241)
16302         Add warnings off to allow categorization violations for AI-362
16303
16304 2005-06-14  Robert Dewar  <dewar@adacore.com>
16305
16306         * ali-util.adb, gnatbind.adb: Remove references to
16307         Force_RM_Elaboration_Order.
16308
16309         * switch-b.adb: Remove recognition of -f switch
16310
16311 2005-06-14  Pascal Obry  <obry@adacore.com>
16312
16313         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
16314         implementation which is slightly more efficient.
16315
16316 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
16317             Javier Miranda  <miranda@adacore.com>
16318             Ed Schonberg  <schonberg@adacore.com>
16319             Hristian Kirtchev  <kirtchev@adacore.com>
16320
16321         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
16322         allocator's designated type is a class-wide type, and compiling for
16323         Ada 2005, emit a run-time check that the accessibility level of the
16324         type given in the allocator's expression is not deeper than the level
16325         of the allocator's access type.
16326
16327         (Tagged_Membership): Modified to gives support to abstract interface
16328         types.
16329
16330         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
16331         Access_Level.
16332         (Descendant_Tag): New predefined function
16333         (Is_Descendant_At_Same_Level): New predefined function
16334         (Get_Access_Level): New private function
16335         (Set_Access_Level): New private procedure
16336         (IW_Membership): New function. Given the tag of an object and the tag
16337         associated with an interface, evaluate if the object implements the
16338         interface.
16339         (Register_Interface_Tag): New procedure used to initialize the table of
16340         interfaces used by the IW_Membership function.
16341         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
16342         of the dispatch table.
16343         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
16344         table of interfaces of the parent.
16345         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
16346         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
16347         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
16348         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
16349         Ada 2005 semantics for the new predefined function.
16350
16351         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
16352         call to Descendant_Tag rather than Internal_Tag.
16353         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
16354         the accessibility level of the attribute's Item parameter is not deeper
16355         than the level of the attribute's prefix type. Tag_Error is raised if
16356         the check fails. The check is only emitted for Ada_05.
16357         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
16358         requested stream attribute, use it.
16359         (Expand_N_Attribute_Reference): If the designated type is an interface
16360         then rewrite the referenced object as a conversion to force the
16361         displacement of the pointer to the secondary dispatch table.
16362         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
16363         is a dereference of an object with a constrained partial view.
16364
16365         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
16366         type is a class-wide type, emit a run-time check that the accessibility
16367         level of the returned object is not deeper than the level of the
16368         function's master (only when compiling for Ada 2005).
16369
16370         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
16371         Action_Nb_Arg): Add entries for new Get_Access_Level and
16372         Set_Access_Level routines in these tables.
16373         (Make_DT): Generate a call to set the accessibility level of the
16374         tagged type in its TSD.
16375         (Make_DT): Code cleanup. The functionality of generating all the
16376         secondary dispatch tables has been moved to freeze_record_type.
16377         (Make_Abstract_Interface_DT): Minor code cleanup.
16378         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
16379         this subprogram implements a new algorithm that provides the
16380         same functionality and it is more clear in case of primitives
16381         associated with abstract interfaces.
16382         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
16383         clean up, the functionality of this subprogram is now provided
16384         by Set_All_DT_Position.
16385         (Write_DT): New subprogram: a debugging procedure designed to be called
16386         within gdb to display the dispatch tables associated with a tagged
16387         type.
16388         (Collect_All_Interfaces): New subprogram that collects the whole list
16389         of interfaces that are directly or indirectly implemented by a tagged
16390         type.
16391         (Default_Prim_Op_Position): New subprogram that returns the fixed
16392         position in the dispatch table of the default primitive operations.
16393         (Expand_Interface_Actuals): New subprogram to generate code that
16394         displaces all the actuals corresponding to class-wide interfaces to
16395         reference the interface tag of the actual object.
16396         (Expand_Interface_Conversion): New subprogram. Reference the base of
16397         the object to give access to the interface tag associated with the
16398         secondary dispatch table.
16399         (Expand_Interface_Thunk): New subprogram that generates the code of the
16400         thunk. This is required for compatibility with the C+ ABI.
16401         (Make_Abstract_Interface_DT): New subprogram that generate the
16402         declarations for the secondary dispatch tables associated with an
16403         abstract interface.
16404         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
16405         attribute for each primitive operation covering interface subprograms
16406         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
16407         These subprograms were upgraded to give support to abstract interfaces
16408
16409         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
16410         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
16411         RE_Set_Access_Level.
16412         (RE_Unit_Table): Add entries for new Ada.Tags operations.
16413         Add support to call the followig new run-time subprograms:
16414         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
16415
16416         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
16417         match its full declaration when both have an access definition with
16418         statically matching designated subtypes.
16419         (Analyze_Component_Declaration): Delete commented out code that was
16420         incorrectly setting the scope of an anonymous access component's type.
16421         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
16422         an access discriminant when the containing type is nonlimited.
16423         (Make_Incomplete_Type_Declaration): Create an incomplete type
16424         declaration for a record type that includes self-referential access
16425         components.
16426         (Check_Anonymous_Access_Types): Before full analysis of a record type
16427         declaration, create anonymous access types for each self-referential
16428         access component.
16429         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
16430         an access component in this context is a Local_Anonymous_Access, for
16431         proper accessibility checks.
16432         (Access_Definition): Set properly the scope of the anonymous access type
16433         created for a stand-alone access object.
16434         (Find_Type_Of_Object): An object declaration may be given with an access
16435         definition.
16436         (Complete_Subprograms_Derivation): New subprogram used to complete
16437         type derivation of private tagged types implementing interfaces.
16438         In this case some interface primitives may have been overriden
16439         with the partial-view and, instead of re-calculating them, they
16440         are included in the list of primitive operations of the full-view.
16441         (Build_Derived_Record_Type): Modified to give support to private
16442         types implemening interfaces.
16443         (Access_Definition): Reject ALL on anonymous access types.
16444         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
16445         type derivation to occur at a deeper accessibility level than the
16446         parent type.
16447         For the case of derivation within a generic body however, disallow the
16448         derivation if the derived type has an ancestor that is a formal type
16449         declared in the formal part of an enclosing generic.
16450         (Analyze_Object_Declaration): For protected objects, remove the check
16451         that they cannot contain interrupt handlers if not declared at library
16452         level.
16453         (Add_Interface_Tag_Components): New subprogram to add the tag components
16454         corresponding to all the abstract interface types implemented by a
16455         record type or a derived record type.
16456         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
16457         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
16458         Process_Full_View, Record_Type_Declaration): Modified to give
16459         support to abstract interface types
16460         (Collect_Interfaces): New subprogram that collects the list of
16461         interfaces that are not already implemented by the ancestors
16462         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
16463         when partial view has no discriminants and full view has defaults.
16464         (Constrain_Access): Reject a constraint on a general access type
16465         if the discriminants of the designated type have defaults.
16466         (Access_Subprogram_Declaration): Associate the Itype node with the inner
16467         full-type declaration or subprogram spec. This is required to handle
16468         nested anonymous declarations.
16469         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
16470         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
16471         Process_Full_View, Record_Type_Declaration): Modified to give
16472         support to abstract interface types
16473         (Derive_Subprograms): Addition of a new formal to indicate if
16474         we are in the case of an abstact-interface derivation
16475         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
16476         to the specification because it is requied to analyze all the
16477         identifiers found in a list of interfaces
16478
16479         * debug.adb: Complete documentation of flag "-gnatdZ"
16480
16481         * exp_ch3.adb: Implement config version of persistent_bss pragma
16482         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
16483         testing for TSS presence to properly enforce visibility rules.
16484         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
16485         Make_Abstract_Interfaces_DT to generate the secondary tables
16486         associated with abstract interfaces.
16487         (Build_Init_Procedure): Modified to initialize all the tags
16488         corresponding.
16489         (Component_Needs_Simple_Initialization): Similar to other tags,
16490         interface tags do not need initialization.
16491         (Freeze_Record_Type): Modified to give support to abstract interface
16492         types.
16493         (Expand_N_Object_Declaration): Do not generate an initialization for
16494         a scalar temporary marked as internal.
16495
16496         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
16497         in-out parameter that is a component in an initialization procedure,
16498         whose constraint might depend on discriminants, and that may be
16499         misaligned because of packing or representation clauses.
16500         (Is_Legal_Copy): New predicate to determine whether a possibly
16501         misaligned in-out actual can actually be passed by copy/return. This
16502         is an error in case the type is by_reference, and a warning if this is
16503         the consequence of a DEC import pragma on the subprogram.
16504         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
16505         interface types
16506         (Expand_Inlined_Call): Mark temporary generated for the return value as
16507         internal, so that no useless scalar normalization is generated for it.
16508         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
16509         null procedure can always be inlined.
16510         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
16511         procedure, generate an explicit empty body for it.
16512
16513         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
16514         Given a type implementing an interface, returns the corresponding
16515         access_disp_table value.
16516         (Find_Interface_Tag): New subprogram. Given a type implementing an
16517         interface, returns the record component containing the tag of the
16518         interface.
16519         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
16520         previous ones that return the corresponding tag and access_disp_table
16521         entities.
16522         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
16523         is a predefined primitive operation.
16524         (Expand_Subtype_From_Expr): If the expression is a selected component
16525         within an initialization procedure, compute its actual subtype, because
16526         the component may depend on the discriminants of the enclosing record.
16527
16528         * i-cpp.ads, i-cpp.adb:
16529         This package has been left available for compatibility with previous
16530         versions of the frontend. As part of the new layout this is now a
16531         dummy package that uses declarations available at a-tags.ads
16532
16533         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
16534         "constant access" and "aliased [constant] access" when not compiling
16535         with -gnat05.
16536         Suppress Ada 2005 keyword warning if -gnatwY used
16537         (P_Identifier_Declarations): Add support for object declarations with
16538         access definitions.
16539         (Private_Extension_Declaration): Complete the documentation
16540         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
16541         attribute in case of private extension declaration
16542         (P_Type_Declaration): Mark as "abstract" the type declarations
16543         corresponding with protected, synchronized and task interfaces
16544         (P_Declarative_Items): "not" and "overriding" are overriding indicators
16545         for a subprogram or instance declaration.
16546
16547         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
16548         instantiation that is a dispatching operation has controlling access
16549         parameters that are null excluding.
16550         Save and restore Ada_Version_Explicit, for implementation of AI-362
16551         (Validate_Derived_Type_Instance): Add check for abstract interface
16552         types.
16553         (Analyze_Formal_Package): Establish Instantiation source for the copy of
16554         the generic that is created to represent the formal package.
16555         (Analyze_Package_Instantiation): Instantiate body immediately if the
16556         package is a predefined unit that contains inlined subprograms, and
16557         we are compiling for a Configurable_Run_Time.
16558         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
16559         If the program has a null default, generate an empty body for it.
16560
16561         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
16562         error message condition, null procedures are correctly detected now.
16563         (New_Overloaded_Entity): Bypass trivial overriding indicator check
16564         for subprograms in the context of protected types. Instead, the
16565         indicator is examined in Sem_Ch9 while analysing the subprogram
16566         declaration.
16567         (Check_Overriding_Indicator): Check consistency of overriding indicator
16568         on subprogram stubs as well.
16569         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
16570         the library level.
16571         (Analize_Subprogram_Specification): When analyzing a subprogram in which
16572         the type of the first formal is a concurrent type, replace this type
16573         by the corresponding record type.
16574         (Analyze_Subprogram_Body): Undo the previous work.
16575         (Analyze_Procedure_Call): If the call has the form Object.Op, the
16576         analysis of the prefix ends up analyzing the call itself, after which
16577         we are done.
16578         (Has_Interface_Formals): New subprogram subsidiary to analyze
16579         subprogram_specification that returns true if some non
16580         class-wide interface subprogram is found
16581         (New_Overloaded_Entity): Modified to give support to abstract
16582         interface types
16583         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
16584         access to subprograms must be recursive.
16585         (Is_Unchecked_Conversion): Improve the test that recognizes
16586         instantiations of Unchecked_Conversion, and allows them in bodies that
16587         are to be inlined by the front-end. When the body comes from an
16588         instantiation, a reference to Unchecked_Conversion will be an
16589         Expanded_Name, even though the body has not been analyzed yet.
16590         Replace Is_Overriding and Not_Overriding in subprogram_indication with
16591         Must_Override and Must_Not_Override, to better express intent of AI.
16592         (Analyze_Subprogram_Body): If an overriding indicator is given, check
16593         that it is consistent with the overrinding status of the subprogram
16594         at this point.
16595         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
16596         always inlined.
16597         If the subprogram is a null procedure, indicate that it does not need
16598         a completion.
16599
16600         * sem_disp.adb (Check_Controlling_Type): Give support to entities
16601         available through limited-with clauses.
16602         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
16603         allowed as the last primitive of a tagged type if it has no previous
16604         spec.
16605         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
16606         to give support to abstract interface types
16607
16608         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
16609         in the case where the target type is an anonymous access type of an
16610         object or component (that is, when Is_Local_Anonymous_Access is true).
16611         Prevent the special checks for conversions of access discriminants in
16612         the case where the discriminant belongs to a nonlimited type, since
16613         such discriminants have their accessibility level defined in the same
16614         way as a normal component of an anonymous access type.
16615         (Resolve_Allocator): When an allocator's designated type is a class-wide
16616         type, check that the accessibility level of type given in the
16617         allocator's expression or subtype indication is not statically deeper
16618         than the level of the allocator's access type.
16619         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
16620         name in a discriminant constraint of a record component.
16621         (Resolve_Explicit_Dereference): Do not check whether the type is
16622         incomplete when the dereference is a use of an access discriminant in
16623         an initialization procedure.
16624         (Resolve_Type_Conversion): Handle conversions to abstract interface
16625         types.
16626         (Valid_Tagged_Conversion): The conversion of a tagged type to an
16627         abstract interface type is always valid.
16628         (Valid_Conversion): Modified to give support to abstract interface types
16629         (Resolve_Actuals): Enable full error reporting on view conversions
16630         between unrelated by_reference array types.
16631         The rule for view conversions of arrays with aliased components is
16632         weakened in Ada 2005.
16633         Call to obsolescent subprogram is now considered to be a violation of
16634         pragma Restrictions (No_Obsolescent_Features).
16635         (Check_Direct_Boolean_Operator): If the boolean operation has been
16636         constant-folded, there is nothing to check.
16637         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
16638         check on possible violation of restriction No_Direct_Boolean_Operators
16639         until after expansion of operands, to prevent spurious errors when
16640         operation is constant-folded.
16641
16642         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
16643         Has_Compatible_Type): Modified to give support to abstract interface
16644         types.
16645         (Interface_Present_In_Ancestor): New function to theck if some ancestor
16646         of a given type implements a given interface
16647
16648         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
16649         prefix is a parameterless function that returns an access_to_procedure.
16650         (Transform_Object_Operation): Handle properly function calls of the
16651         form Obj.Op (X), which prior to analysis appear as indexed components.
16652         (Analyze_One_Call): Complete the error notification to help new Ada
16653         2005 users.
16654         (Analyze_Allocator): For an allocator without an initial value, where
16655         the designated type has a constrained partial view, a discriminant
16656         constraint is illegal.
16657
16658 2005-06-14  Robert Dewar  <dewar@adacore.com>
16659
16660         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
16661         do with treatment of Set_Col when positioned at end of line character.
16662
16663 2005-06-14  Robert Dewar  <dewar@adacore.com>
16664
16665         * atree.adb: (Elist*): Protect against uninitialized field
16666
16667 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16668
16669         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
16670         for an attribute reference that returns an access type.
16671         (Apply_Discriminant_Check): No need for check if (designated) type has
16672         constrained partial view.
16673
16674         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
16675         both bound checks, rather than a conjunction.
16676         (Insert_Valid_Check): If the expression is an actual that is an indexed
16677         component of a bit-packed array, force expansion of the packed element
16678         reference, because it is specifically inhibited elsewhere.
16679
16680 2005-06-14  Vincent Celier  <celier@adacore.com>
16681
16682         * clean.adb (Clean_Project): Correctly delete executable specified as
16683         absolute path names.
16684
16685         * make.adb (Gnatmake): Allow relative executable path names with
16686         directory information even when project files are used.
16687         (Change_To_Object_Directory): Fail gracefully when unable to change
16688         current working directory to object directory of a project.
16689         (Gnatmake): Remove exception handler that could no longer be exercized
16690         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
16691         may be deallocated by Normalize_Arguments.
16692         (Collect_Arguments): Eliminate empty arguments
16693
16694         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
16695         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
16696         (Check_Project): Return False when Project is No_Project. Return True
16697         when All_Projects is True.
16698         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
16699         All_Projects to True.
16700         Minor reformatting
16701
16702 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16703             Javier Miranda  <miranda@adacore.com>
16704             Thomas Quinot  <quinot@adacore.com>
16705             Robert Dewar  <dewar@adacore.com>
16706             Hristian Kirtchev  <kirtchev@adacore.com>
16707             Gary Dismukes  <dismukes@adacore.com>
16708
16709         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
16710         anonymous access types, to indicate that the accessibility level of
16711         the type is determined by that of the enclosing declaration.
16712         (Has_Persistent_BSS): New flag
16713         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
16714         of this attribute with functions.
16715         (Is_Primitive_Wrapper): Remove the barrier.
16716         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
16717         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
16718         New subprograms.
16719         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
16720         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
16721         New subprograms.
16722         (Is_Pure_Unit_Access_Type): New flag
16723         (Abstract_Interfaces): Complete the assertion to cover all usages.
16724         (Set_Is_Interface): Complete the assertion to cover all usages.
16725         (Is_Primitive_Wrapper): New attribute.
16726         (Is_Obsolescent): Now applies to all entities (though it is only set
16727         for subprograms currently)
16728         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
16729         which solves various problems concerning access subtypes.
16730         (Has_Persistent_BSS): New flag
16731         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
16732         Remove these subprograms because this attribute is currently
16733         not used.
16734         New entity flags:
16735         Has_Specified_Stream_Input (Flag190)
16736         Has_Specified_Stream_Output (Flag191)
16737         Has_Specified_Stream_Read (Flag192)
16738         Has_Specified_Stream_Write (Flag193)
16739         Present in all type and subtype entities. Set for a given view if the
16740         corresponding stream-oriented attribute has been defined by an
16741         attribute definition clause. When such a clause occurs, a TSS is set
16742         on the underlying full view; the flags are used to track visibility of
16743         the attribute definition clause for partial or incomplete views.
16744         (Is_Pure_Unit_Access_Type): New flag
16745         Clarify use of Is_Internal.
16746         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
16747         internally generated to wrap the invocation of tasks and protected
16748         types that implement interfaces.
16749         (Implementation_Base_Type): Documentation correction
16750         (Is_Obsolescent): Now applies to all entities (though it is only set
16751         for subprograms currently)
16752         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
16753         which solves various problems concerning access subtypes.
16754
16755         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
16756         for examined parameters. Identify unequal parameter list lengths as
16757         non-conformant parameters.
16758         (Overriding_Possible): Do not check for "All" qualifier in declaration
16759         of controlling access parameter, following prescription of AI-404.
16760         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
16761         that build the procedure body that wraps an entry invocation
16762         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
16763         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
16764         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
16765         give support to abstract interface types
16766
16767         * freeze.adb (Freeze_Entity): Issue error message if
16768         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
16769         type has no storage pool (Ada 2005) AI-366.
16770         Also modified to give support to abstract interface types
16771         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
16772         Inline_Always pragma.
16773
16774         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
16775         now begin an entry declaration.
16776         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
16777         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
16778         a subprogram declaration preceded by an overriding indicator.
16779         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
16780         declarations or subprogram declarations preceded by reserved words
16781         "not" or "overriding".
16782         (P_Entry_Declaration): Update comment. Parse and check overriding
16783         indicator, set semantic flags of entry declarations.
16784         (P_Task): New error message in case of private applied
16785         to a task type declaration.
16786         (P_Protected): New error message in case of private applied
16787         to a task type declaration.
16788
16789         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
16790         in which the full view of a type implementing an interface is a
16791         concurrent type.
16792         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
16793         Declare_Inherited_Private_Subprograms): If an explicit operation
16794         overrides an operation that is inherited in the private part, mark the
16795         explicit one as overriding, to enable overriding indicator checks.
16796         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
16797         full view to partial view, to simplify handling in back-end.
16798
16799         * sprint.adb: Print interface lists where needed: derived types,
16800         protected types, task types.
16801         output "is null" for null procedures. Part of implementation of
16802
16803         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
16804         relaxation of rules for access types in pure, shared passive partitions.
16805
16806         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
16807         first read discriminants into temporary objects, performing checks on
16808         the read values, then possibly performing discriminant checks on the
16809         actual (if it is constrained), and only finally reading the components
16810         into a constrained temporary object.
16811         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
16812         case of reading discriminants of a mutable record type to recognize
16813         the new form of the code generated by
16814         Build_Mutable_Record_Read_Procedure.
16815
16816         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
16817         of a simple call to Make_TSS_Name.
16818         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
16819         buffer, in order for Is_TSS to work correctly on local TSS names.
16820
16821         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
16822         Is_Local_Anonymous_Access to check legaliy of attributes in the
16823         context of  access components and stand-alone access objects.
16824         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
16825         treated as available for a limited private type if there is an
16826         attribute_definition_clause that applies to its full view, but not in
16827         other cases where the attribute is available for the full view
16828         (specifically, the sole fact that the full view is non-limited does not
16829         make the attribute available for the partial view).
16830         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
16831         non-overloaded intrinsic subprogram.
16832         (Check_Stream_Attribute): Reject an attribute reference for an
16833         unavailable stream attribute even if the prefix is not a limited type
16834         (case of a 'Input attribute reference for an abstract, non-classwide
16835         type)
16836         (Stream_Attribute_Available): New function to determine whether a stream
16837         attribute is available at a place.
16838         (Check_Attribute): Use Stream_Attribute_Available instead of just
16839         testing for TSS presence on the implementation base type.
16840         (Analyze_Attribute): Modified to give support to task interfaces.
16841         (Analyze_Access_Attribute): Add error check for use of an Access (or
16842         Unrestricted_Access) attribute with a subprogram marked as
16843         Inline_Always.
16844         (Analyze_Attribute, case Attribute_Address): Add error check for use of
16845         an Address attribute with a subprogram marked as Inline_Always.
16846         Update Eval_Attribute to handle new value of Width from AI-395
16847
16848         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
16849         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
16850         Factor common code across the stream-oriented attribute circcuits into
16851         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
16852         processing is functionally identical to the previous duplicated one,
16853         except that an expression that denotes an abstract subprogram will now
16854         be rejected, as mandated by AI-195 item 5.
16855
16856         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
16857         Is_Local_Anonymous_Access to apply accessibility checks to access
16858         components and stand-alone access objects.
16859         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
16860         elsewhere.
16861         (Is_Potentially_Persistent_Type): New function
16862         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
16863         a heap-object whose type has a constrained partial view, the object is
16864         unconstrained and the component may depend on a discriminant, making its
16865         renaming illegal.
16866
16867         * sinfo.ads, sinfo.adb
16868         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
16869         (Must_Override): Flag applicable to N_Entry_Declaration.
16870         Indicate that interface_list can appear in single task and single
16871         protected declarations.
16872         Replace Is_Overriding and Not_Overriding with Must_Override and
16873         Must_Not_Override, to better express intent of AI.
16874         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
16875         of an overriding indicator in a subprogram or instance.
16876         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
16877         Add the overriding indicator [[not] overriding] construct to the
16878         following grammar productions:
16879          ENTRY_DECLARATION
16880          GENERIC_INSTANTIATION
16881          SUBPROGRAM_SPECIFICATION
16882
16883         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
16884         can start with an overriding indicator.
16885
16886         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
16887         flags accordingly on subrogram specifications or instances.
16888
16889         * sem_ch8.adb:
16890         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
16891         overriding_indicator, if present, is consistent with status of spec.
16892         Improve error message for null-excluding checks on controlling access
16893         parameters.
16894         (Check_In_Previous_With_Clause): Protect the frontend against
16895         previously reported critical errors in the context clauses.
16896         Save and restore Ada_Version_Explicit, for implementation of AI-362
16897         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
16898         operation verify that controlling formals of the renamed entity that
16899         are access parameters are explicitly non-null.
16900         (Find_Expanded_Name): Improve error message when prefix is an illegal
16901         reference to a private child unit.
16902
16903         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
16904         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
16905         Rewrite to correspond to new wide character names in AI-395
16906
16907         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
16908         default procedures.
16909
16910 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16911             Robert Dewar  <dewar@adacore.com>
16912
16913         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
16914         code, not on the bodies of predefined operations, to cut down on
16915         spurious noise.
16916
16917 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16918
16919         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
16920         be expanded in place. The size computation does not require a
16921         subtraction, which would raise an exception on a compiler built with
16922         assertions when the upper bound is Integer'first.
16923         (Flatten): For an array of composite components, take into account the
16924         size of the components to determine whether it is safe to expand the
16925         array into a purely positional representation.
16926
16927 2005-06-14  Thomas Quinot  <quinot@adacore.com>
16928
16929         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
16930         denoting a formal parameter into account.
16931
16932 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
16933
16934         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
16935         the entry_call alternative of a conditional entry call, wrap the
16936         conditional entry call itself.
16937
16938 2005-06-14  Nicolas Setton  <setton@adacore.com>
16939             Ed Schonberg  <schonberg@adacore.com>
16940
16941         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
16942         the "simple_choice" member in a variant record, in accordance with the
16943         description in the package spec: the information output for a constant
16944         should be "S number", not "SS number".
16945         (Get_Encoded_Name): Return at once if not generating code. Avoids name
16946         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
16947
16948 2005-06-14  Thomas Quinot  <quinot@adacore.com>
16949
16950         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
16951         RACW without any primitives, do not generate the if statement for
16952         dispatching by name in the PolyORB/DSA case, as it would be malformed
16953         (it would have an Elsif_Parts list that is not No_List, but with a
16954         length of 0).
16955
16956 2005-06-14  Robert Dewar  <dewar@adacore.com>
16957
16958         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
16959
16960 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
16961
16962         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
16963         can determine whether pragma Suppress_Exception_Locations is in effect.
16964
16965         * utils2.c (build_call_raise): Do not pass the file name to the
16966         exception handler if pragma Suppress_Exception_Locations is in effect.
16967         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
16968
16969 2005-06-14  Emmanuel Briot  <briot@adacore.com>
16970
16971         * g-debpoo.adb (Deallocate, Dereference): Improve output.
16972
16973 2005-06-14  Nicolas Roche  <roche@adacore.com>
16974
16975         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
16976         to ""
16977         (Next_Level): Fix minor bug in handling of ../dir case
16978         (Read): Add dir separator to Directory name so that "" is understood as
16979          "/"
16980
16981 2005-06-14  Pascal Obry  <obry@adacore.com>
16982
16983         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
16984         releasing the items.
16985
16986 2005-06-14  Vincent Celier  <celier@adacore.com>
16987             Cyrille Comar  <comar@adacore.com>
16988
16989         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
16990         with output file descriptor and with output file name.
16991         (Dup, Dup2): Now global procedures as they are used by two subprograms
16992         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
16993
16994 2005-06-14  Thomas Quinot  <quinot@adacore.com>
16995
16996         PR ada/6717
16997         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
16998         broadcast address.
16999         (Create_Selector): Bind listening socket used to create the signalling
17000         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
17001         Set listen backlog to 1 to ensure that we detect socket theft by a
17002         failure of our own connect(2) call.
17003         (Check_Selector): Improve documentation of the selector mechanism.
17004         (Broadcast_Inet_Addr): New constant.
17005
17006 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
17007
17008         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
17009         type which turns out to be an incomplete and incorrect fix.
17010         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
17011         of the type is declared in a record (for determination of insertion
17012         type).
17013         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
17014         a private type and ensure that the primary entity is used for the type
17015         of the newly created function's V formal by taking the Etype of the
17016         view.
17017
17018 2005-06-14  Javier Miranda  <miranda@adacore.com>
17019             Jose Ruiz  <ruiz@adacore.com>
17020             Robert Dewar  <dewar@adacore.com>
17021             Ed Schonberg  <schonberg@adacore.com>
17022
17023         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
17024         that indicates if we are parsing a compilation unit found in a
17025         limited-with clause.
17026         It is use to avoid the circularity check.
17027
17028         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
17029         we are parsing a compilation unit found in a limited-with clause. This
17030         is use to avoid the circularity check.
17031
17032         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
17033         unit as a consequence of parsing a limited-with clause. This is used
17034         to avoid the circularity check.
17035
17036         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
17037         (Analyze_Context): Limited-with clauses are now allowed
17038         in more compilation units.
17039         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
17040         againts previously reported critical errors in context clauses
17041         (Install_Limited_Withed_Unit): Code cleanup plus static detection
17042         of two further errors: renamed subprograms and renamed packages
17043         are not allowed in limited with clauses.
17044         (Install_Siblings): Do not install private_with_clauses on the package
17045         declaration for a non-private child unit.
17046         (Re_Install_Parents): When a parent of the subunit is reinstalled,
17047         reset visibility of child units properly.
17048         (Install_Withed_Unit): When a child unit appears in a with_clause of its
17049         parent, it is immediately visible.
17050
17051 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17052             Emmanuel Briot  <briot@adacore.com>
17053
17054         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
17055         declared within an inlined body as referenced, to prevent spurious
17056         warnings.
17057         (Output_One_Ref): If an entity renames an array component, indicate in
17058         the ALI file that this aliases (renames) the array. Capture as well
17059         function renamings that rename predefined operations.
17060         Add information about generic parent for package and subprogram
17061         instances.
17062         (Get_Type_Reference): For a subtype that is the renaming of an actual in
17063         an instantiation, use the first_subtype to ensure that we don't generate
17064         cross-reference information for internal types.
17065         For objects and parameters of a generic private type, retain the '*'
17066         indicator to distinguish such an entity from its type.
17067
17068         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
17069         to store information about instantiated entities.
17070
17071         * ali.adb (Scan_ALI): Add support for parsing the reference to the
17072         generic parent
17073
17074         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
17075         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
17076         information.
17077
17078 2005-06-10  Doug Rupp  <rupp@adacore.com>
17079             Arnaud Charlet  <charlet@adacore.com>
17080             Olivier Hainque  <hainque@adacore.com>
17081             Jose Ruiz  <ruiz@adacore.com>
17082
17083         * Make-lang.in: Add initialize.o when needed.
17084         Remove obsolete references to RT_FLAGS.
17085         Add missing dependencies for sdefault.o
17086
17087         * initialize.c: New file.
17088
17089         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
17090         [VMS] cond_signal_table: Fix problem in declaration.
17091         [VMS] __gnat_error_handler: rewrite.
17092         Move all __gnat_initialize() routines to initialize.c
17093         Specialize the former "hpux" section to "hppa hpux", as this is what the
17094         section really is here for and we now have other hpux ports that need
17095         different contents.
17096         (__gnat_adjust_context_for_raise) i386-linux: First version of this
17097         function for this target. Adjust PC by one in the machine context. This
17098         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
17099         it is more reliable to do that in the signal handler itself.
17100         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
17101         flags, so that the handler is passed the context structure to adjust
17102         prior to the raise.
17103         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
17104         SA_SIGINFO sigaction should look like. Call
17105         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
17106         Machine_State_Operations stuff.
17107         Add conditional code so that the x86_64 is also supported.
17108
17109 2005-06-14  Pascal Obry  <obry@adacore.com>
17110
17111         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
17112         the library name.
17113
17114 2005-06-14  Robert Dewar  <dewar@adacore.com>
17115
17116         * opt.ads, opt.adb: New flags for persistent_bss mode
17117         Add Ada_Version_Explicit, for implementation of AI-362
17118         Add Assertions_Enabled_Config and associated handling
17119         Needed since setting can be changed with Assertion_Policy pragma
17120         Add new flag Warn_On_Ada_2005_Compatibility
17121
17122         * switch-c.adb: Recognize -gnatwy/Y
17123         Set Ada_Version_Explicit, for implementation of AI-362
17124         The -gnatg switch now includes -gnatyu
17125
17126         * usage.adb: Add -gnatwy/Y
17127         Remove wrong asterisk on -gnatwX line
17128         Add line for -gnatyu switch
17129
17130 2005-06-14  Vincent Celier  <celier@adacore.com>
17131
17132         * osint.adb (Add_Default_Search_Dirs): Put source and object
17133         directories of project files before directories coming from
17134         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
17135
17136 2005-06-14  Robert Dewar  <dewar@adacore.com>
17137
17138         PR ada/15613
17139         * par-ch2.adb (Scan_Pragma_Argument): New procedure
17140         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
17141
17142 2005-06-14  Vincent Celier  <celier@adacore.com>
17143
17144         * prep.adb (Preprocess): Ignore error when scanning the first token of
17145         a line.
17146
17147 2005-06-14  Vincent Celier  <celier@adacore.com>
17148
17149         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
17150         (Check_Stand_Alone_Library): If the specified reference symbol file does
17151         not exist, only issue a warning when the symbol policy is not
17152         Controlled. And, when symbol policy is Compliant, set the symbol
17153         policy to Autonomous.
17154
17155 2005-06-14  Vincent Celier  <celier@adacore.com>
17156
17157         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
17158         when the project file in a with clause is not the last one, that is the
17159         project file name is followed by a comma.
17160         * prj-pp.adb: (First_With_In_List): New Boolean global variable
17161         (Print): Issue list of project files separated by commas in with clauses
17162         according to the values returned by Is_Not_Last_In_List.
17163         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
17164         (Set_Is_Not_Last_In_List): New procedure
17165
17166 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
17167
17168         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
17169
17170 2005-06-14  Robert Dewar  <dewar@adacore.com>
17171
17172         * scng.adb: Add call to new Check_EOF routine
17173         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
17174         Add some comments regarding wide character handling
17175
17176         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
17177
17178         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
17179
17180         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
17181         characters are now considered graphic characters and hence yield false
17182         in this call.
17183
17184         * nmake.adt: Modify header so that xnmake does not generate output
17185         files with multiple blank lines.
17186
17187         * treeprs.adt: Remove a blank line so that output from xtreeprs does
17188         not have an extra blank line
17189
17190 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
17191
17192         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
17193         expression when the component type is an anonymous access type to
17194         ensure that appropriate accessibility checks are done.
17195
17196         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
17197         expression of an assignment when the target object is of an anonymous
17198         access type. This ensures that required accessibility checks are done.
17199         (One_Bound): Move the check for type Universal_Integer to
17200         Process_Bounds.
17201         (Process_Bounds): Check whether the type of the preanalyzed range is
17202         Universal_Integer, and in that case set Typ to Integer_Type prior
17203         to setting the type of the original range and the calls to One_Bound.
17204
17205 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17206
17207         * sem_case.adb (Expand_Others_Choice): Improve warning.
17208
17209 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17210
17211         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
17212         constraint of full view if present, when other type is discriminated.
17213         (Eval_Relational_Op): Recognize tests of pointer values against Null,
17214         when the pointer is known to be non-null, and emit appropriate warning.
17215
17216 2005-06-14  Robert Dewar  <dewar@adacore.com>
17217             Ed Schonberg  <schonberg@adacore.com>
17218
17219         PR ada/10671
17220         * sem_prag.adb: Implement pragma Persistent_BSS
17221         Remove obsolete pragma Persistent_Data, Persistent_Object
17222         Set Ada_Version_Explicit, for implementation of AI-362
17223         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
17224         Add processing for pragma Pure_05 and Preelaborate_05
17225         Add processing for Assertion_Policy pragma
17226         Add pragma identifiers for Assert
17227         (Analyze_Pragma, case Assert): Check number of arguments
17228         (Process_Inline): Additional guard against an illegal program, where the
17229         argument of the pragma is undefined, and warnings on redundant
17230         constructs are enabled.
17231         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
17232         Ada_05 to this pragma, specifying that the pragma is only active in
17233         Ada_05 mode.
17234         (Check_Arg_Order): New procedure
17235         Add appropriate calls to this procedure throughout
17236         Also throughout, check entity name before doing any other checks
17237
17238         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
17239         Remove obsolete pragma Persistent_Data, Persistent_Object
17240         Add entries for pragma Pure_05 and Preelaborate_05
17241         Add entries for Assertion_Policy pragma and associated names
17242         Add some names for pragma argument processing
17243
17244         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
17245
17246 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
17247
17248         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
17249         appears within a negation (either from source or as a rewriting of
17250         inequality) adjust text of warning accordingly.
17251
17252 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17253
17254         * s-strxdr.adb: Follow AI95-00132
17255
17256 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
17257
17258         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
17259
17260 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
17261             Jose Ruiz  <ruiz@adacore.com>
17262
17263         * s-tposen.adb, s-tpobop.adb
17264         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
17265         the exception id.
17266         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
17267         there is no violation of the Max_Entry_Queue_Length restriction (if it
17268         has been set); Program_Error is raised otherwise.
17269         (Requeue_Call): Before requeuing the task on the target entry queue we
17270         check that there is no violation of the Max_Entry_Queue_Length
17271         restriction (if it has been set); Program_Error is raised otherwise.
17272
17273 2005-06-14  Robert Dewar  <dewar@adacore.com>
17274
17275         * styleg.adb: Fix several remaining problems in -gnatyu switch
17276         Blank line count not reset at start
17277         Scanning outside source buffer in some cases
17278         Confusing message for blanks at end of file
17279         Non-empty blank lines not recognized
17280
17281         * nmake.adt: Modify header so that xnmake does not generate output
17282         files with multiple blank lines.
17283
17284         * treeprs.adt: Remove a blank line so that output from xtreeprs does
17285         not have an extra blank line
17286
17287 2005-06-14  Sergey Rybin  <rybin@adacore.com>
17288
17289         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
17290
17291 2005-06-14  Doug Rupp  <rupp@adacore.com>
17292             Vincent Celier  <celier@adacore.com>
17293
17294         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
17295         Update copyright.
17296
17297         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
17298         Remove "Library" command.
17299         Change keyword for style check -gnatyd from NOCRLF to
17300         DOS_LINE_ENDINGS.
17301         Remove useless second style check keyword NONE
17302         Remove help documentation for inexistent style check keyword
17303         RM_COLUMN_LAYOUT.
17304         Add help documentation for style check keywords DOS_LINE_ENDINGS,
17305         UNNECESSARY_BLANK_LINES and XTRA_PARENS
17306         Add UNNECESSARY_BLANK_LINES for -gnatyu
17307         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
17308
17309         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
17310
17311 2005-06-14  Vincent Celier  <celier@adacore.com>
17312
17313         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
17314         gprmake was invoked with -d.
17315         (Compile_Sources): If -d was used, output the "completed ..." message
17316         for each compilation.
17317         (Scan_Arg): Recognize new switch -d
17318         When -c and at least one main is specified, set
17319         Unique_Compile to True to guarantee that no other sources will be
17320         compiled.
17321
17322 2005-06-14  Matthew Heaney  <heaney@adacore.com>
17323
17324         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
17325         * a-swuwha.ads, a-swuwha.adb: New files
17326
17327         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
17328         * a-szuzha.ads, a-szuzha.adb: New files.
17329
17330         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
17331         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
17332         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
17333         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
17334         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
17335         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
17336         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
17337         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
17338         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
17339         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
17340         Ada 2005 RM.
17341
17342 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
17343             Olivier Hainque  <hainque@adacore.com>
17344             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17345             Pascal Obry  <obry@adacore.com>
17346
17347         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
17348
17349         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
17350         making a temporary around a procedure call because of non-addressable
17351         actual parameter.
17352         (process_freeze_entity): If entity is a private type, capture size
17353         information that may have been computed for the full view.
17354         (tree_transform, case N_Allocator): If have initializing expression,
17355         check type for Has_Constrained_Partial_View and pass that to
17356         build_allocator.
17357         (tree_transform, case N_Return_Statement): Pass extra arg to
17358         build_allocator.
17359
17360         * decl.c (annotate_value): Remove early return if -gnatR is not
17361         specified.
17362         (gnat_to_gnu_field): Don't make a packable type for a component clause
17363         if the position is byte aligned, the field is aliased, and the clause
17364         size isn't a multiple of the packable alignment. It serves no useful
17365         purpose packing-wise and would be rejected later on.
17366         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
17367
17368         PR ada/20515
17369         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
17370         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
17371         instead.
17372         (create_concat_name): Idem.
17373
17374 2005-06-10  Robert Dewar  <dewar@adacore.com>
17375             Eric Botcazou  <ebotcazou@adacore.com>
17376             Ben Brosgol  <brosgol@adacore.com>
17377             Cyrille Comar  <comar@adacore.com>
17378             Sergey Rybin  <rybin@adacore.com>
17379             Pascal Obry  <obry@adacore.com>
17380
17381         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
17382         Document second argument (Ada_05) of pragma Obsolescent
17383         Add note that call to subprogram marked with pragma Obsolescent
17384         is now considered to be a violation of program Restrictions
17385         (No_Obsolescent_Features).
17386         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
17387         that only machine-dependent attributes are supported.
17388
17389         * gnat_ugn.texi:
17390         Commented out menu lines and empty section for gnatclean examples
17391         Document -gnatwy/Y
17392         Fix some over long lines
17393         Clarify and enhance documentation of ADA_PROJECT_PATH.
17394         Rework section 2.11.2(3) about linking with a non-GNU compiler.
17395         Mention new switch -fcallgraph-info.
17396         Mention new switch -fstack-usage.
17397         For gnatpp, replace '-notab' with '-N' and add this option to Index
17398         Corrected VMS example.
17399         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
17400         Minor reformatting
17401         Add documentation for -gnatyu switch (unnecessary blank lines)
17402         Document new switch -U for GNAT PRETTY and GNAT METRIC
17403         Add note about Stdcall being handled as C convention on non Windows OS.
17404         Remove some junk typo in description of gnatbind -S switch
17405         Remove reference to Extensions_Allowed pragma
17406         Document the new order of the directories to be searched (source and
17407         object directories of project files before directories in ADA_*_PATH
17408         environment variables.
17409
17410         * g-trasym.ads: Document that IRIX is supported
17411
17412 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
17413
17414         * Makefile.in: Add initialize.o when needed.
17415         Adapt to new VMS package body Symbols and subunits
17416         No specialized version of a-sytaco is needed for VxWorks.
17417
17418         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
17419         * a-zchara.ads, a-widcha.ads: New files.
17420
17421         * system-hpux-ia64.ads: New file.
17422
17423         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
17424         is imported from the VxWorks kernel.
17425
17426 2005-06-14  Robert Dewar  <dewar@adacore.com>
17427
17428         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
17429         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
17430         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
17431         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
17432         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
17433         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
17434         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
17435         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
17436         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
17437         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
17438         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
17439         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
17440
17441 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17442
17443         * xeinfo.adb: Fix typo in comment
17444
17445 2005-06-14  Javier Miranda  <miranda@adacore.com>
17446
17447         * repinfo.ads: Fix typo in comment
17448
17449 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
17450
17451         * s-finimp.adb (Parent_Tag): Delete this imported function (function
17452         Parent_Tag is now in the visible part of Ada.Tags).
17453         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
17454         using imported function.
17455
17456 2005-06-14  Bernard Banner  <banner@adacore.com>
17457
17458         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
17459         also apply for handling support for VxSim 653.
17460
17461 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
17462
17463         * xsnames.adb: Add automatic generation of snames.h.
17464
17465 2005-06-14  Thomas Quinot  <quinot@adacore.com>
17466
17467         * gen-soccon.c: Add IP_MULTICAST_IF constant
17468         Minor reformatting and adjustments to prevent warnings.
17469
17470 2005-06-14  Pascal Obry  <obry@adacore.com>
17471
17472         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
17473
17474 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
17475
17476         * trans.c (gnat_gimplify_expr): Call
17477         recompute_tree_invarant_for_addr_expr when we change
17478         the operand of the ADDR_EXPR.
17479
17480 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17481
17482         * misc.c: Don't include errors.h.
17483
17484 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17485
17486         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
17487
17488 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
17489
17490         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
17491         comment typos.
17492         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
17493
17494 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
17495
17496         PR ada/20270
17497         * Makefile.in: Make TGT_LIB behave correctly.
17498
17499 2005-04-23  DJ Delorie  <dj@redhat.com>
17500
17501         * misc.c: Adjust warning() callers.
17502
17503 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
17504
17505         PR ada/18847
17506         * a-nudira.adb (Value): Check for valid string.
17507         * a-nuflra.adb (Value): Likewise.
17508
17509 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
17510
17511         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
17512
17513 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
17514
17515         * adaint.c, init.c, tracebak.c: Fix comment typos.
17516         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
17517
17518 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
17519             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17520
17521         * Makefile.in: Add make ifeq define for hppa linux tasking support.
17522         * system-hpux.ads: Define Signed_Zeros to be True.
17523         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
17524
17525 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
17526
17527         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
17528         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
17529         typos.
17530
17531 2005-03-30  Tom Tromey  <tromey@redhat.com>
17532
17533         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
17534
17535 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
17536
17537         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
17538
17539 2005-03-29  Robert Dewar  <dewar@adacore.com>
17540
17541         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
17542         fixed-point expression has value that is not a multiple of the Small
17543         value.
17544
17545         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
17546
17547         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
17548         nanoseconds.
17549
17550         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
17551
17552 2005-03-29  Vincent Celier  <celier@adacore.com>
17553
17554         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
17555         (Build_Dynamic_Library.Version_String): Return the empty string when
17556         Lib_Version is empty or when the symbol policy is not Autonomous.
17557
17558         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
17559         a symbol is not in the reference symbol file, increase the Major ID
17560         and set the Minor ID to 0.
17561         Use gsmatch=lequal instead of gsmatch=equal
17562
17563 2005-03-29  Doug Rupp  <rupp@adacore.com>
17564
17565         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
17566         name and translate.
17567
17568 2005-03-29  Javier Miranda  <miranda@adacore.com>
17569
17570         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
17571         (Inherit_DT): The first formal has been redefined as a Tag.
17572         This allows us the removal of the subprogram Get_TSD.
17573         (TSD): Replace the call to Get_TSD by the actual code.
17574
17575         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
17576         (Make_DT): Upgrade the call to Inherit_TSD according to the
17577         new interface: the first formal is now a Tag.
17578
17579         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
17580         redefined as a Tag.
17581         This change allows us to remove the subprogram Get_TSD.
17582         (CPP_Get_TSD): Subprogram removed.
17583         (TSD): Replace the call to CPP_Get_TSD by the actual code.
17584
17585         * rtsfind.ads: Remove support to call the run-time
17586         subprogram Get_TSD
17587
17588 2005-03-29  Robert Dewar  <dewar@adacore.com>
17589
17590         * errutil.adb, errout.adb:
17591         Minor comment updates on Line_Terminator references
17592
17593         * par-ch10.adb: Add ??? comment about line terminator
17594
17595         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
17596         (check dos line terminator).
17597         (Check_Line_Max_Length): New procedure, split off from the existing
17598         Check_Line_Terminator routine. Separating this out allows -gnatyf to
17599         be properly recognized.
17600
17601         * styleg.adb: Add ??? comment for line terminator reference
17602
17603         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
17604         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
17605
17606         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
17607         (check dos line terminator).
17608         (Check_Line_Max_Length): New procedure, split off from the existing
17609         Check_Line_Terminator routine. Separating this out allows -gnatyf to
17610         be properly recognized.
17611
17612         * stylesw.ads, stylesw.adb:
17613         Add handling for new -gnatyd switch (check dos line terminator)
17614
17615         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
17616         Recognize -gnatwb/-gnatwB switches
17617         Include Warn_On_Bad_Fixed_Value for -gnatg
17618
17619         * usage.adb:
17620         Add line for new -gnatyd switch (check dos line terminator)
17621
17622         * usage.adb: Add lines for -gnatwb/-gnatwB
17623
17624         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
17625
17626         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
17627
17628         * gnat_ugn.texi: Fix overlong lines
17629         Document new -gnatyd switch
17630         Document new -gnatwb/-gnatwB switches
17631
17632 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17633
17634         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
17635         order to retrieve the component list of the type, before examining
17636         individual components.
17637
17638         * sem_type.adb (Covers): Types are compatible if one is the base type
17639         of the other, even though their base types might differ when private
17640         views are involved.
17641
17642 2005-03-29  Thomas Quinot  <quinot@adacore.com>
17643
17644         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
17645         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
17646         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
17647         analyzed if expansion is disabled (which could otherwise cause spurious
17648         error messages if expansion has been disabled due to previous
17649         (unrelated) errors).
17650
17651         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
17652         is disabled, the entity denoted by the argument is the access type
17653         itself, not an underlying record type, so there is no need to go back
17654         to the Corresponding_Remote_Type.
17655
17656 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
17657             Robert Dewar  <dewar@adacore.com>
17658
17659         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
17660         expand a call to an instance of
17661         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
17662         Constructor actual of the instance. A class-wide membership
17663         check is also generated, to ensure that the tag passed to the instance
17664         denotes a type in the class.
17665         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
17666         of Name_Generic_Dispatching_Constructor.
17667
17668         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
17669         05 unit for AI-260-02).
17670
17671         * a-tgdico.ads: New file.
17672
17673         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
17674         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
17675
17676         * snames.ads, snames.adb (Preset_Names): Add entry for
17677         Generic_Dispatching_Constructor.
17678
17679         PR ada/20300
17680         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
17681         character type cases.
17682         (Analyze_Subprogram_Renaming): Add special handling for
17683         the case of renaming of stream attributes when the renaming denotes a
17684         generic formal subprogram association for an abstract formal subprogram.
17685         Check that the attribute is a primitive stream attribute (and not
17686         a class-wide stream attribute) and then rewrite the attribute name
17687         as the name of the appropriate compiler-generated stream primitive.
17688
17689 2005-03-29  Robert Dewar  <dewar@adacore.com>
17690
17691         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
17692         recursive calls.
17693         (Is_Possibly_Unaligned_Object): Correct typo that
17694         resulted in inaccurate result for unaligned scalars within records.
17695
17696 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17697
17698         * freeze.adb (Freeze_Record_Type): If the type of the component is an
17699         itype whose parent is controlled and not yet frozen, do not create a
17700         freeze node for the itype if expansion is disabled.
17701
17702 2005-03-29  Vincent Celier  <celier@adacore.com>
17703
17704         * make.adb (Gnatmake): Don't fail if the main project file is declared
17705         as having no Ada sources. Do not display message "no sources to
17706         compile" in quiet output.
17707
17708 2005-03-29  Doug Rupp  <rupp@adacore.com>
17709
17710         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
17711         extra tools.
17712
17713 2005-03-29  Robert Dewar  <dewar@adacore.com>
17714
17715         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
17716         child.
17717
17718 2005-03-29  Robert Dewar  <dewar@adacore.com>
17719
17720         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
17721         missing TYPE Improve the error message generated when compiling a
17722         limited interface in Ada83 or Ada95 mode.
17723
17724 2005-03-29  Robert Dewar  <dewar@adacore.com>
17725
17726         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
17727         rather than proceed ahead using a junk attribute name.
17728
17729 2005-03-29  Vincent Celier  <celier@adacore.com>
17730
17731         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
17732
17733         * prj-part.adb (Parse_Single_Project): Set the location of a project
17734         on its defining identifier, rather than on the reserved word "project".
17735
17736         * prj-proc.adb (Expression): Adapt to the fact that default of external
17737         references may be string expressions, not always literal strings.
17738         (Recursive_Process): Set Display_Name equal to Name
17739         when Location is No_Location, that is when there is no actual file.
17740         Get the Display_Name of the project from the source, when it is not a
17741         virtual project.
17742         (Process): Use the Display_Name in error messages
17743
17744         * prj-strt.adb (External_Reference): Allow default to be string
17745         expressions, not only literal strings.
17746
17747 2005-03-29  Vincent Celier  <celier@adacore.com>
17748
17749         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
17750         file and the reference symbol file to be the same file.
17751
17752 2005-03-29  Thomas Quinot  <quinot@adacore.com>
17753
17754         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
17755         forbid conversion of a local access-to-subprogram type to a remote one.
17756
17757         * sem_util.adb (Wrong_Type): For a record type that is the expanded
17758         equivalent type for a remote access-to-subprogram type, go back to the
17759         original RAS entity when displaying an error message, so the casing is
17760         the original source casing.
17761
17762 2005-03-29  Robert Dewar  <dewar@adacore.com>
17763
17764         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
17765         on param update.
17766
17767 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17768
17769         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
17770         subtype if code is being pre-analyzed, to prevent un-expanded
17771         references to protected formals, among others.
17772         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
17773         interpretation that can be a call, include the result of the call as a
17774         possible interpretation of the dereference.
17775
17776         * sem_ch5.adb (Process_Bounds): Determine type of range by
17777         pre-analyzing a copy of the original range, and then analyze the range
17778         with the expected type.
17779
17780         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
17781         with an overloaded prefix where not all interpretations yield an
17782         access to subprogram, do not rewrite node as a call.
17783         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
17784         the node as a call once the context identifies the interpretation of
17785         the prefix whose call yields the context type.
17786         (Valid_Conversion): For the case of a conversion between
17787         local access-to-subprogram types, check subtype conformance using
17788         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
17789         detailed error message.
17790
17791 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
17792
17793         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
17794         indicator, indicate that the formal can never be null.
17795         (Process_Formals): If a formal has a non_null indicator, insert the
17796         resulting subtype immediately before the enclosing subprogram decl,
17797         and not at the beginning of the corresponding declarative part, to
17798         prevent access before elaboration (Ada2005).
17799
17800 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17801
17802         PR ada/19956
17803         * utils.c (finish_record_type): Use variable_size when setting sizes.
17804
17805 2005-03-29  Robert Dewar  <dewar@adacore.com>
17806
17807         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
17808         guarantee Unix style line terminators for the output files, even when
17809         running on windows.
17810
17811 2005-03-29  Robert Dewar  <dewar@adacore.com>
17812
17813         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
17814         buffer if an exception is raised.
17815
17816 2005-03-29  Ed Falis  <falis@adacore.com>
17817
17818         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
17819         VxWorks 653 1.4
17820
17821 2005-03-29  Robert Dewar  <dewar@adacore.com>
17822
17823         * sem_util.ads: Minor reformatting
17824         * gnat_rm.texi: Minor editing.
17825
17826 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
17827
17828         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
17829         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
17830
17831 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
17832
17833         * adaint.c (__gnat_portable_spawn): Adjust cast.
17834
17835 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
17836
17837         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
17838
17839 2005-03-17  Pascal Obry  <obry@adacore.com>
17840
17841         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
17842         used.
17843
17844         * expect.c (__gnat_waitpid): Moved here from adaint.c.
17845         Reimplement under Win32 using Win32 API.
17846
17847         (__gnat_kill) [Win32]: Properly close the process handle before leaving
17848         this routine.
17849
17850 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
17851
17852         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
17853         (DECL_RENAMED_OBJECT): New accessor macro.
17854         (SET_DECL_RENAMED_OBJECT): New setter macro.
17855
17856         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
17857         object in all cases.  Attach the renamed object to the VAR_DECL.
17858         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
17859         field is not prescribed.
17860
17861         * misc.c (gnat_handle_option): Handle -gnatO separately.
17862         (gnat_print_decl) <VAR_DECL>: New case.
17863         Print the DECL_RENAMED_OBJECT node.
17864
17865         * lang.opt:  Declare separate -gnatO option.
17866
17867         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
17868         pointer, replace it with the renamed object.
17869         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
17870         pointer type if the source is not a fat pointer type whose underlying
17871         array has the same non-zero alias set as that of the destination array.
17872
17873 2005-03-17  Javier Miranda  <miranda@adacore.com>
17874
17875         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
17876         (Get_Inheritance_Depth): Removed.
17877         (Set_Inheritance_Depth): Removed.
17878
17879         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
17880         subprogram Get_Expanded_Name because it is not referenced by the
17881         frontend.
17882
17883         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
17884         (CPP_Get_Inheritance_Depth): Removed.
17885         (CPP_Set_Inheritance_Depth): Removed.
17886
17887         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
17888
17889 2005-03-17  Robert Dewar  <dewar@adacore.com>
17890
17891         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
17892         3, since we now expect GCC 3 to do all the work.
17893
17894 2005-03-17  Javier Miranda  <miranda@adacore.com>
17895
17896         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
17897         of one barrier to avoid wrong usage of this attribute.
17898
17899         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
17900         First_Private_Entity.
17901
17902         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
17903         the subprogram against wrong usage.
17904         Adapt the code to traverse the entities in the
17905         scope of a record_type because in addition to its usage regarding
17906         packages, this subprogram is also called by Expand_N_Freeze_Entity
17907         to install the visible declarations of the enclosing scope of a
17908         record_type_with_private to establish the proper visibility before
17909         freezing the entity and related subprograms.
17910
17911 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
17912
17913         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
17914         entry formals.
17915
17916 2005-03-17  Thomas Quinot  <quinot@adacore.com>
17917
17918         * exp_ch3.adb (Check_Attr): New subprogram.
17919         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
17920         into a new Check_Attr subprogram, in order to provide a more
17921         explanatory error message (including the name of the missing attribute).
17922         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
17923         subprogram determines whether a default implementation exists for a
17924         given stream attribute.
17925         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
17926         Determine whether to generate a default implementation for each stream
17927         attribute separately, as this depends on the specific attribute.
17928
17929         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
17930         limited extension where a stream attribute is missing for a limited
17931         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
17932         generate a bogus reference to the missing attribute to prevent
17933         cascaded errors. Instead, generate a null statement.
17934
17935         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
17936         available for a limited type if it has been specified for an ancestor
17937         of the type.
17938
17939 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
17940
17941         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
17942         entity is an operator.
17943
17944 2005-03-17  Thomas Quinot  <quinot@adacore.com>
17945
17946         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
17947         spec, to make this predicate available to other units.
17948
17949         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
17950         reimplementing it.
17951
17952         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
17953         when no distribution runtime library is available.
17954
17955         * sem_res.adb, sem_dist.adb: Disable expansion of remote
17956         access-to-subprogram types when no distribution runtime library is
17957         available.
17958         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
17959         predicate available to other units.
17960
17961         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
17962         spec, to make this predicate available to other units.
17963
17964 2005-03-17  Vincent Celier  <celier@adacore.com>
17965
17966         * make.adb (Insert_Project_Sources): Make sure the Q is always
17967         initialized.
17968
17969         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
17970         the default for the tree, not the global default naming.
17971
17972         * prj-proc.adb (Recursive_Process): No need to put the default naming
17973         in the project data, it's already there.
17974
17975 2005-03-17  Doug Rupp  <rupp@adacore.com>
17976
17977         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
17978
17979         * 5xcrtl.ads: Renamed to...
17980         * s-crtl-vms64.ads: ...this new file
17981
17982 2005-03-17  Robert Dewar  <dewar@adacore.com>
17983
17984         PR ada/19519
17985         * namet.adb (Copy_One_Character): Set proper wide character encoding
17986         for upper half character if we have upper half encoding.
17987
17988 2005-03-17  Robert Dewar  <dewar@adacore.com>
17989
17990         * par.adb (Par): Improved msg for attempt to recompile predefined unit
17991
17992 2005-03-17  Thomas Quinot  <quinot@adacore.com>
17993
17994         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
17995         tagged limited type, the TSS is a newly built renaming declaration:
17996         insert it using Set_TSS, not Copy_TSS.
17997
17998 2005-03-17  Javier Miranda  <miranda@adacore.com>
17999
18000         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
18001         Try_Object_Operation): Analyze the object that is accessible
18002         through the prefix of the subprogram call before we apply
18003         the transformation of the object-operation notation.
18004
18005 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
18006
18007         * s-taprob.adb (Initialize_Protection): Initialize the protected
18008         object's owner to Null_Task.
18009         (Lock): If pragma Detect_Blocking is in effect and the caller of this
18010         procedure is already the protected object's owner then Program_Error
18011         is raised. In addition the protected object's owner is updated.
18012         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
18013         of this procedure is already the protected object's owner then
18014         Program_Error is raised.
18015         In addition the protected object's owner is updated.
18016         (Unlock): Remove the ownership of the protected object.
18017
18018         * s-taprob.ads (Protection): Add the field Owner, used to store the
18019         protected object's owner.
18020         This component is needed for detecting one type of potentially blocking
18021         operations (external calls on a protected subprogram with the same
18022         target object as that of the protected action). Document the rest of
18023         the components.
18024
18025         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
18026         Initialize the protected object's owner to Null_Task.
18027         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
18028         caller of this procedure is already the protected object's owner then
18029         Program_Error is raised.
18030         Do not raise Program_Error when this procedure is called from a
18031         protected action.
18032         (Unlock_Entries): Remove the ownership of the protected object.
18033         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
18034         of this procedure is already the protected object's owner then
18035         Program_Error is raised.
18036         Do not raise Program_Error when this procedure is called from
18037         a protected action.
18038
18039         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
18040         used to store the protected object's owner.
18041
18042         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
18043         effect and this procedure (a potentially blocking operation) is called
18044         from whithin a protected action, Program_Error is raised.
18045         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
18046         and this procedure (a potentially blocking operation) is called from
18047         whithin a protected action, Program_Error is raised.
18048
18049 2005-03-17  Vincent Celier  <celier@adacore.com>
18050             Nicolas Setton  <setton@adacore.com>
18051
18052         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
18053         switch, not supported by the linker on Darwin. Add '_' before
18054         <library>init, as this character is added unconditionally by the
18055         compiler.
18056         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
18057         correct one ".dylib". This fixes detection of the archive files when
18058         building library projects.
18059
18060 2005-03-17  Vincent Celier  <celier@adacore.com>
18061
18062         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
18063         -gnat83, -gnat95 and -gnat05.
18064
18065 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
18066
18067         * gnat_ugn.texi: Document gnatmem restriction
18068
18069 2005-03-17  Thomas Quinot  <quinot@adacore.com>
18070
18071         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
18072         cleanup
18073
18074 2005-03-17  Robert Dewar  <dewar@adacore.com>
18075
18076         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
18077         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
18078         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
18079
18080         * casing.adb: Comment improvements
18081
18082 2005-03-17  Pascal Obry  <obry@adacore.com>
18083
18084         * g-expect.adb: Minor reformatting.
18085
18086 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
18087
18088         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
18089         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
18090         to dependencies.
18091
18092 2005-03-15  Vincent Celier  <celier@adacore.com>
18093
18094         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
18095         Add new parameter In_Tree to specify the project tree: needed
18096         by the project manager. Adapt to changes in project manager
18097         using new parameter In_Tree.
18098
18099 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
18100
18101         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
18102         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
18103         ada/bldtools to avoid make -jN failures.
18104
18105 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18106
18107         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
18108         to NULL_TREE on entry.
18109
18110 2005-03-15  Robert Dewar  <dewar@adacore.com>
18111
18112         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
18113         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
18114         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
18115         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
18116         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
18117         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
18118         system-interix.ads, system-solaris-sparc.ads,
18119         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
18120         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
18121         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
18122         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
18123         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
18124         Compiler_System_Version to be False.
18125
18126         * opt.ads: Add new flag Opt.Address_Is_Private
18127
18128         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
18129         Add new parameter Compiler_System_Version to avoid checking for
18130         completeness of parameters when compiler is compiling itself.
18131         Allows old versions of GNAT to be compiled with new compiler.
18132
18133 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18134
18135         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
18136         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
18137         calling thread.
18138         (Stack_Base_Available): New flag.
18139         (Get_Page_Size): New overloaded functions imported from C.
18140         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
18141         PROT_ON, PROT_OFF): New constants.
18142         (mprotect): New function imported from C.
18143         (pthread_teb_t): New record type.
18144
18145         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
18146         (Create_Task): Account for the Yellow Zone and the guard page.
18147
18148 2005-03-15  Vincent Celier  <celier@adacore.com>
18149
18150         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
18151         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
18152         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
18153         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
18154         Library_File_Name_For): Add new parameter In_Tree
18155         to specify the project tree: needed by the project manager.
18156         Adapt to changes in project manager using new parameter In_Tree.
18157         Remove local imports, use functions in System.CRTL.
18158
18159         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
18160         to use the project manager.
18161
18162         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
18163         In_Tree to designate the project tree. Adapt to changes in the project
18164         manager, using In_Tree.
18165
18166         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
18167         Copy_Interface_Sources): Add new parameter In_Tree to specify the
18168         project tree: needed by the project manager.
18169         (Build_Library): Check that Arg'Length >= 6 before checking if it
18170         contains "--RTS=...".
18171
18172         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
18173         Library_File_Name_For): Add new parameter In_Tree to specify the
18174         project tree: needed by the project manager.
18175
18176         * prj.ads, prj.adb: Major modifications to allow several project trees
18177         in memory at the same time.
18178         Change tables to dynamic tables and hash tables to dynamic hash
18179         tables. Move tables and hash tables from Prj.Com (in the visible part)
18180         and Prj.Env (in the private part). Move some constants from the visible
18181         part to the private part. Make other constants deferred.
18182         (Project_Empty): Make it a variable, not a function
18183         (Empty_Project): Add parameter Tree. Returns the data with the default
18184         naming data of the project tree Tree.
18185         (Initialize): After updating Std_Naming_Data, copy its value to the
18186         component Naming of Project Empty.
18187         (Register_Default_Naming_Scheme): Use and update the default naming
18188         component of the project tree, instead of the global variable
18189         Std_Naming_Data.
18190         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
18191         Tree is not defaulted, return the default naming data of the Tree.
18192         (Initial_Buffer_Size): Constant moved from private part
18193         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
18194         variables initialized in procedure Initialize.
18195         (Add_To_Buffer): Add two in out parameters to replace global variables
18196         Buffer and Buffer_Last.
18197         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
18198         functions.
18199         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
18200         hash tables.
18201         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
18202         for the project tree.
18203         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
18204         constant at the beginning of the package spec, so that they cane be used
18205         in subprograms before their full declarations.
18206         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
18207         (Empty_Project): Add parameter of type Project_Node_Ref
18208         (Private_Project_Tree_Data): Add component Default_Naming of type
18209         Naming_Data.
18210         (Buffer, Buffer_Last): remove global variables
18211         (Add_To_Buffer): Add two in out parameters to replace global variables
18212         Buffer and Buffer_Last.
18213         (Current_Packages_To_Check): Remove global variable
18214         (Empty_Name): Move to private part
18215         (No-Symbols): Make it a constant
18216         (Private_Project_Tree_Data): New type for the private part of the
18217         project tree data.
18218         (Project_Tree_Data): New type for the data of a project tree
18219         (Project_Tree_Ref): New type to designate a project tree
18220         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
18221         for the project tree.
18222
18223         * prj-attr.ads: Add with Table; needed, as package Prj no longer
18224         imports package Table.
18225
18226         * prj-com.adb: Remove empty, no longer needed body
18227
18228         * prj-com.ads: Move most of the content of this package to package Prj.
18229
18230         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
18231         designate the project node tree and Packages_To_Check to replace
18232         global variable Current_Packages_To_Check.
18233         Add new parameters In_Tree and Packages_To_Check to local subprograms,
18234         when needed. Adapt to changes in project manager with project node tree
18235         In_Tree.
18236
18237         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
18238         project tree to most subprograms. Move tables and hash tables to
18239         private part of package Prj.
18240         Adapt to changes in project manager using project tree In_Tree.
18241
18242         * prj-makr.adb (Tree): New constant to designate the project node tree
18243         Adapt to change in project manager using project node tree Tree
18244
18245         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
18246         display the Library_Src_Dir and the Library_Dir.
18247         Add new parameter In_Tree to designate the project node tree to most
18248         subprograms. Adapt to changes in the project manager, using project tree
18249         In_Tree.
18250         (Check_Naming_Scheme): Do not alter the casing on platforms where
18251         the casing of file names is not significant.
18252         (Check): Add new parameter In_Tree to designate the
18253
18254         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
18255         designate the project tree.
18256         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
18257
18258         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
18259         to replace those that were in the private part of package Prj.
18260         Add new parameter In__Tree to designate the project node tree to most
18261         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
18262         (Post_Parse_Context_Clause): When specifying the project node of a with
18263         clause, indicate that it is a limited with only if there is "limited"
18264         in the with clause, not necessarily when In_Limited is True.
18265         (Parse): Add new parameter In_Tree to designate the project node tree
18266
18267         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
18268         designate the project node tree. Adapt to change in Prj.Tree with
18269         project node tree In_Tree.
18270
18271         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
18272         tree In_Tree in the call to function Empty_Process to give its initial
18273         value to the project data Processed_Data.
18274         Add new parameters In_Tree to designate the project tree and
18275         From_Project_Node_Tree to designate the project node tree to several
18276         subprograms. Adapt to change in project manager with project tree
18277         In_Tree and project node tree From_Project_Node_Tree.
18278
18279         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
18280         to replace those that were in the private part of package Prj.
18281         Add new parameter In_Tree to designate the project node tree to most
18282         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
18283
18284         * prj-tree.ads, prj-tree.adb: Add new parameter of type
18285         Project_Node_Tree_Ref to most subprograms.
18286         Use this new parameter to store project nodes in the designated project
18287         node tree.
18288         (Project_Node_Tree_Ref): New type to designate a project node tree
18289         (Tree_Private_Part): Change table to dynamic table and hash tables to
18290         dynamic hash tables.
18291
18292         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
18293         the project tree to most subprograms. Adapt to changes in project
18294         manager using project tree In_Tree.
18295
18296         * makegpr.adb (Project_Tree): New constant needed to use project
18297         manager.
18298
18299 2005-03-15  Olivier Hainque  <hainque@adacore.com>
18300
18301         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
18302         for sigactions with SA_SIGINFO set. Call
18303         __gnat_adjust_context_for_raise before raising, to perform the
18304         potentially required adjustments to the machine context for the GCC
18305         unwinder.
18306
18307         * raise.h (__gnat_adjust_context_for_raise): New prototype.
18308
18309         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
18310         Adjust PC by one in the provided machine context.
18311         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
18312         so that the handler is passed the context structure to adjust prior to
18313         the raise.
18314         (__gnat_error_handler) HPUX: Adjust the signature to match what an
18315         SA_SIGINFO sigaction should look like. Call
18316         __gnat_adjust_context_for_raise before actually raising.
18317         (__gnat_adjust_context_for_raise): Default noop to help PC
18318         adjustments before raise from signal handlers.
18319         (__gnat_error_handler): Indirectly call a predicate function to
18320         determine if a condition should be resignaled or not.
18321         (__gnat_set_resignal_predicate): User interface to modify the predicate.
18322         (__gnat_default_resignal_p): Default GNAT predicate.
18323
18324 2005-03-15  Doug Rupp  <rupp@adacore.com>
18325
18326         * adaint.c: Prefix #include of VMS system header files with vms/
18327         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
18328         Do not define a dummy function "convert_addresses" under Darwin,
18329         not needed.
18330
18331         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
18332         with vms/
18333
18334 2005-03-15  Nicolas Setton  <setton@adacore.com>
18335
18336         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
18337         PPC/AIX.
18338
18339 2005-03-15  Robert Dewar  <dewar@adacore.com>
18340
18341         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
18342         AI-386.
18343
18344         * a-retide.ads: Minor comment changes
18345
18346 2005-03-15  Robert Dewar  <dewar@adacore.com>
18347
18348         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
18349         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
18350         Realloc_For_Chunk to private part of package.
18351         New subprograms for AI-301
18352
18353         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
18354         Get_Line procedure.
18355         Avoid unnecessary use of Get/Set_Wide_String
18356
18357 2005-03-15  Robert Dewar  <dewar@adacore.com>
18358
18359         PR ada/13470
18360         * a-stunau.ads, a-stunau.adb:
18361         Change interface to allow efficient (and correct) implementation
18362         The previous changes to allow extra space in unbounded strings had
18363         left this interface a bit broken.
18364
18365         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
18366
18367         * g-spipat.ads, g-spipat.adb: New interface for Get_String
18368         Minor reformatting (function specs)
18369
18370         * g-spitbo.adb: New interface for Get_String
18371
18372         * g-spitbo.ads: Minor reformatting
18373
18374         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
18375
18376         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
18377
18378 2005-03-15  Javier Miranda  <miranda@adacore.com>
18379             Robert Dewar  <dewar@adacore.com>
18380             Thomas Quinot  <quinot@adacore.com>
18381             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18382
18383         * atree.ads, atree.adb: Add support for Elist24 field
18384
18385         * atree.h: Fix wrong definition of Field27
18386         Add support for Elist16 field
18387         Add support for Elist24 field
18388
18389         * einfo.ads, einfo.adb (Abstract_Interfaces,
18390         Set_Abstract_Interfaces): New subprograms.
18391         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
18392         subprograms.
18393         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
18394         entities rather than a single node.
18395         (Is_Interface, Set_Is_Interface): New subprogram
18396         (First_Tag_Component): New syntesized attribute
18397         (Next_Tag_Component): New synthesized attribute
18398         (Write_Entity_Flags): Upgraded to write Is_Interface
18399         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
18400         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
18401         (Task_Body_Procedure): New subprogram to read this attribute.
18402         (Set_Task_Body_Procedure): New subprogram to set this attribute.
18403         (Has_Controlled_Component): Now applies to all entities.
18404         This is only a documentation change, since it always worked to apply
18405         this to other than composite types (yielding false), but now this is
18406         official.
18407         Update documentation on Must_Be_Byte_Aligned for new spec
18408
18409         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
18410         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
18411         uses of the Access_Disp_Table attribute to reference the first dispatch
18412         table associated with a tagged type. As
18413         part of the implementation of abstract interface types,
18414         Access_Disp_Table has been redefined to contain a list of dispatch
18415         tables (rather than a single dispatch table).
18416         Similarly, upgrade all the references to Tag_Component by the
18417         new attribute First_Tag_Component.
18418         (Find_Inherited_TSS): Moved to exp_tss.
18419         Clean up test in Expand_N_Object_Declaration for cases
18420         where we need to do a separate assignment of the initial value.
18421         (Expand_N_Object_Declaration): If the expression in the
18422         declaration of a tagged type is an aggregate, no need to generate an
18423         additional tag assignment.
18424         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
18425         is to be deleted.
18426         Bit packed array ops are only called if operands are known to be
18427         aligned.
18428         (Component_Equality): When returning an N_Raise_Program_Error statement,
18429         ensure that its Etype is set to Empty to avoid confusing GIGI (which
18430         expects that only expressions have a bona fide type).
18431         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
18432         determine the amount of data to be copied.
18433
18434         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
18435         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
18436             INTERFACE_TYPE_DEFINITION ::=
18437               [limited | task | protected | synchronized] interface
18438                 [AND interface_list]
18439
18440         * par-ch3.adb (P_Type_Declaration): Modified to give support to
18441         interfaces.
18442         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
18443         interfaces.
18444         (P_Interface_Type_Definition): New subprogram that parses the new
18445         syntax rule of Ada 2005 interfaces
18446         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
18447         messages by the correct RENAMES (quotes removed).
18448
18449         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
18450         attribute First_Tag_Component.
18451
18452         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
18453         (Interface_List, Set_Interface_List): New subprograms.
18454         (Interface_Present, Set_Interface_Present): New subprograms.
18455         (Limited_Present, Set_Limited_Present): Available also in derived
18456         type definition nodes.
18457         (Protected_Present, Set_Protected_Present): Available also in
18458         record type definition and
18459         derived type definition nodes.
18460         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
18461         (Task_Present, Set_Task_Present): New subprogram.
18462         (Task_Body_Procedure): Removed.
18463         (Set_Task_Body_Procedure): Removed.
18464         These subprogram have been removed because the attribute
18465         Task_Body_Procedure has been moved to the corresponding task type
18466         or task subtype entity to leave a field free to store the list
18467         of interfaces implemented by a task (for AI-345)
18468         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
18469         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
18470         expression flag Do_Range_Check
18471         (Exception_Junk): Change to Flag7 to accomodate above change
18472         (Box_Present, Default_Name, Specification, Set_Box_Present,
18473         Set_Default_Name, Set_Specification): Expand the expression
18474         "X in N_Formal_Subprogram_Declaration" into the corresponding
18475         two comparisons. Required to use the csinfo tool.
18476
18477         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
18478         "with string" given.
18479
18480         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
18481         expression given.
18482
18483         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
18484         in 2005 mode
18485
18486         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
18487         attribute Task_Body_Procedure rather than the old semantic field that
18488         was available in the task_type_declaration node.
18489
18490         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
18491         interface type definitions.
18492         (P_Formal_Derived_Type_Definition): Modified to handle the list of
18493         interfaces.
18494
18495         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
18496         task type declaration.
18497         (P_Protected): Modified to handle the list of interfaces in a
18498         protected type declaration.
18499
18500 2005-03-15  Doug Rupp  <rupp@adacore.com>
18501             Vincent Celier  <celier@adacore.com>
18502
18503         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
18504         (Gen_Output_File_C): Likewise.
18505         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
18506
18507 2005-03-15  Thomas Quinot  <quinot@adacore.com>
18508
18509         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
18510         is an N_Raise_Constraint_Error node, create a new copy of it without
18511         going through a call to Duplicate_Subexpr.
18512
18513 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18514             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18515             Nicolas Setton  <setton@adacore.com>
18516             Ed Schonberg  <schonberg@adacore.com>
18517
18518         PR ada/19900
18519         PR ada/19408
18520         PR ada/19140
18521         PR ada/20255
18522         * decl.c (gnat_to_gnu_field): Reject aliased components with a
18523         representation clause that prescribes a size not equal to the rounded
18524         size of their types.
18525         (gnat_to_gnu_entity, case E_Component): Always look at
18526         Original_Record_Component if Present and not the entity.
18527         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
18528         of tagged extension types by not making field for components that are
18529         inside the parent.
18530         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
18531         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
18532         expression to the type of the object when the object is constant.
18533         Reverse defer_debug_incomplete_list before traversing it, so that trees
18534         are processed in the order at which they were added to the list. This
18535         order is important when using the stabs debug format.
18536         If we are deferring the output of debug information, also defer this
18537         output for a function return type.
18538         When adding fields to a record, prevent emitting debug information
18539         for incomplete records, emit the information only when the record is
18540         complete.
18541         (components_to_record): New parameter defer_debug.
18542         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
18543         (gnat_to_gnu_field_decl): New function.
18544         (substitution_list, annotate_rep): Call it.
18545         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
18546         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
18547         No longer update discriminants to not be a COMPONENT_REF.
18548         (copy_alias_set): Strip padding from input type; also handle
18549         unconstrained arrays properly.
18550
18551         * gigi.h (write_record_type_debug_info): New function.
18552         Convert to use ANSI-style prototypes. Remove unused
18553         declarations for emit_stack_check, elab_all_gnat and
18554         set_second_error_entity.
18555         (gnat_to_gnu_field_decl): New decl.
18556
18557         * utils.c (write_record_type_debug_info): New function.
18558         (finish_record_type): Delegate generation of debug information to
18559         write_record_type_debug_info.
18560         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
18561         (update_pointer_to): Fix pasto.
18562         (convert) <UNION_TYPE>: Accept slight type variations when
18563         converting to an unchecked union type.
18564
18565         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
18566         replace the N_Freeze_Entity with a null statement.
18567
18568         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
18569         within a constrained subcomponent of an enclosing record, place the
18570         freeze nodes in the scope stack entry for the enclosing record.
18571         (Undelay_Type): New Subprogram.
18572         (Set_Small_Size): Pass T, the type to modify; all callers changed.
18573         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
18574         within records; allow them to have freeze nodes if their base types
18575         aren't frozen yet.
18576
18577         * exp_util.adb (Remove_Side_Effects): Properly test for
18578         Expansion_Delayed and handle case when it's inside an
18579         N_Qualified_Expression.
18580
18581         * sem_ch3.adb (Derived_Type_Declaration): New predicate
18582         Comes_From_Generic, to recognize accurately that the parent type in a
18583         derived type declaration can be traced back to a formal type, because
18584         it is one or is derived from one, or because its completion is derived
18585         from one.
18586         (Constrain_Component_Type): If component comes from source and has no
18587         explicit constraint, no need to constrain in in a subtype of the
18588         enclosing record.
18589         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
18590         Minor change to propagate Is_Ada_2005 flag
18591
18592         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
18593         Expansion_Delayed is False.
18594         (assoc_to_constructor): Ignore fields that have a
18595         Corresponding_Discriminant.
18596         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
18597         function returns "by target", dereference the target pointer using the
18598         type of the actual return value.
18599         <all>: Be prepared for a null gnu_result.
18600         (processed_inline_subprograms): Check flag_really_no_inline
18601         instead of flag_no_inline.
18602         (set_second_error_entity): Remove unused function.
18603         (gnat_to_gnu, case N_Selected_Component): Call
18604         gnat_to_gnu_field_decl.
18605         (assoc_to_constructor): Likewise.
18606
18607 2005-03-15  Robert Dewar  <dewar@adacore.com>
18608             Ed Schonberg  <schonberg@adacore.com>
18609             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18610
18611         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
18612         Must_Be_Byte_Aligned for cases where we do not need to use a
18613         System.Pack_nn unit.
18614
18615         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
18616         as procedures.
18617         Needed now that we do some processing for IN parameters as well. This
18618         may well fix some unrelated errors.
18619         (Expand_Call): Handle case of unaligned objects (in particular those
18620         that come from packed arrays).
18621         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
18622         renamed entity is an inherited operation, re-expand the call using the
18623         original operation, which is the one to call.
18624         Detect attempt to inline parameterless recursive subprogram.
18625         (Represented_As_Scalar): Fix to work properly with private types
18626         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
18627         accurate estimate. Yields True in far fewer cases than before,
18628         improving the quality of code that depends on this test.
18629
18630         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
18631         over both visible and private declarations to remove them from tree,
18632         and mark subprograms declared in package as eliminated, to prevent
18633         spurious use in subsequent compilation of generic units in the context.
18634
18635         * exp_util.ads: Minor cleanup in variable names
18636
18637         * sem_eval.ads, sem_eval.adb: Minor reformatting
18638         (Compile_Time_Known_Bounds): New function
18639
18640 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18641
18642         * exp_ch7.adb (Convert_View): Use base types of underlying types when
18643         determining whether an unchecked conversion is needed for the argument
18644         of an initialization call.
18645
18646 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18647
18648         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
18649         that appears in the instantiation rather than the internal subtype
18650         generated in the wrapper package, to avoid anomalies in gigi when the
18651         target is derived from a private type whose full view is an access type.
18652
18653 2005-03-15  Robert Dewar  <dewar@adacore.com>
18654
18655         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
18656         not needed.
18657         Add documentation to replace the use of this flag
18658         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
18659         the x86_64.
18660
18661 2005-03-15  Thomas Quinot  <quinot@adacore.com>
18662
18663         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
18664         here from exp_attr so it can be shared between exp_attr and exp_dist.
18665         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
18666         all TSS names, not a subset thereof, and the previous name introduced
18667         an unnecessarily confusion that a distinction might exist between
18668         "OK" TSS names and some "not OK" TSS names.
18669
18670 2005-03-15  Doug Rupp  <rupp@adacore.com>
18671
18672         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
18673         Command_Name.
18674
18675 2005-03-15  Pascal Obry  <obry@adacore.com>
18676             Eric Botcazou  <ebotcazou@adacore.com>
18677
18678         PR ada/20226
18679         PR ada/20344
18680         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
18681         when IN_RTS. This is to work around a bootstrap path problem.
18682
18683         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
18684         table and pass it to __gnat_install_SEH_handler().
18685         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
18686
18687         * lang.opt: Fix specification of -fRTS=.
18688
18689 2005-03-15  Doug Rupp  <rupp@adacore.com>
18690             Bernard Banner  <banner@adacore.com>
18691             Vincent Celier  <celier@adacore.com>
18692             Arnaud Charlet  <charlet@adacore.com>
18693
18694         PR ada/6852
18695         This change works fine when gnatlib is built from the gcc directory,
18696         but does not work when using the libada Makefile, since GCC_FOR_TARGET
18697         is not passed to ada/Makefile.in, so more work is needed by a
18698         Makefile/configure expert.
18699
18700         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
18701         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
18702         Setup gnatlink switch -M for x86_64 linux, as it is already setup
18703         for Linux x86.
18704         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
18705         Run ranlib on libgccprefix.a
18706         Define PREFIX_OBJS for Darwin, to build libgccprefix.
18707         (ADA_INCLUDE_SRCS): Split Ada packages.
18708
18709 2005-03-15  Robert Dewar  <dewar@adacore.com>
18710
18711         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
18712
18713         * impunit.adb: Add GNAT.UTF_32
18714
18715         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
18716
18717         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
18718         now uses GNAT.UTF_32).
18719
18720         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
18721         capabilities for categorizing characters using Unicode categories
18722
18723 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18724
18725         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
18726         instantiation that has been rewritten as a package body, retrieve spec
18727         to generate proper name for implicit_with_clause.
18728         (Install_Parents): Recognize a parent that is an instantiation but has
18729         been rewritten as a package declaration during analysis.
18730
18731 2005-03-15  Javier Miranda  <miranda@adacore.com>
18732             Ed Schonberg  <schonberg@adacore.com>
18733
18734         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
18735         parameter reported some error we immediately return. This improves the
18736         behaviour of the frontend in case of errors.
18737         (Install_Parent, Remove_Parent): Introduce new flag
18738         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
18739         ancestor of a generic child unit, when the child is being instantiated.
18740         (Inline_Instance_Body): If we are compiling the private
18741         part or the body of a child unit, restore the proper visibility of the
18742         parents after compiling the instance body.
18743
18744 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18745             Javier Miranda  <miranda@adacore.com>
18746
18747         PR ada/15608
18748         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
18749         of a private type, in which case it is underlying_type that denotes
18750         the proper task. Also modified to use the new entity attribute
18751         that is directly available in the task type and task subtype entities
18752         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
18753         arrays when other dimensions than the first are constrained by
18754         discriminants of an enclosing record.
18755         (Insert_Explicit_Dereference): If the prefix is an indexed component or
18756         a combination of indexed and selected components, find ultimate entity
18757         and generate the appropriate reference for it, to suppress spurious
18758         warnings.
18759         (Note_Possible_Modification): If an entity name has no entity, return.
18760         (Is_Variable): A function call never denotes a variable.
18761         (Requires_Transient_Scope): For record types, recurse only on
18762         components, not on internal subtypes that may have been generated for
18763         constrained components.
18764
18765 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18766
18767         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
18768         Eliminated as candidates for resolution. Both efficient, and avoids
18769         anomalies with operators declared in deleted code.
18770         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
18771         expansion is disabled (as when compiling a generic) to prevent spurious
18772         warnings on prefixes of selected components.
18773
18774 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18775
18776         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
18777         attached to a list before checking whether it appears in the private
18778         declarations of the current package.
18779         (Make_Inequality_Operator): Insert declaration in proper declarative
18780         list rather than just setting the Parent field, so that
18781         Is_Private_Declaration can handle it properly.
18782
18783 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
18784
18785         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
18786         a renaming a body, check that the renamed subprogram in not intrinsic.
18787         (Find_Direct_Name): If several use_visible entities hide
18788         each other, and the context is a predefined file compiled through
18789         rtsfind, keep only the entity that comes from a predefined file.
18790
18791 2005-03-15  Geert Bosch  <bosch@adacore.com>
18792
18793         * s-fatgen.adb (Valid): Extend special exceptions to account for long
18794         long float padding to also cover AMD64 and IA64.
18795
18796 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
18797
18798         * s-imgwch.adb: Add with and use of Interfaces.
18799         (Img_Wide_Character): Change type of Val to Unsigned_16.
18800         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
18801
18802 2005-03-15  Matthew Gingell  <gingell@adacore.com>
18803
18804         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
18805
18806 2005-03-15  Robert Dewar  <dewar@adacore.com>
18807
18808         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
18809
18810         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
18811
18812         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
18813
18814 2005-03-15  Robert Dewar  <dewar@adacore.com>
18815
18816         * s-bitops.adb, s-bitops.ads,
18817         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
18818         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
18819         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
18820         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
18821         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
18822         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
18823         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
18824         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
18825         reformatting.
18826
18827 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18828
18829         * utils2.c (build_binary_op): Fix typo.
18830
18831 2005-03-15  Doug Rupp  <rupp@adacore.com>
18832
18833         * s-crtl.ads (popen,pclose): New imports.
18834
18835 2005-03-15  Cyrille Comar  <comar@adacore.com>
18836
18837         * comperr.adb (Compiler_Abort): remove references to obsolete
18838         procedures in the bug boxes for various GNAT builds.
18839
18840 2005-03-15  Vincent Celier  <celier@adacore.com>
18841
18842         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
18843
18844 2005-03-15  Geert Bosch  <bosch@adacore.com>
18845             Arnaud Charlet  <charlet@adacore.com>
18846             Robert Dewar  <dewar@adacore.com>
18847             Cyrille Comar  <comar@adacore.com>
18848             Sergey Rybin  <rybin@adacore.com>
18849
18850         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
18851         too specific and long-winded to be appropriate for the GNAT User's
18852         Guide.
18853         Warn about use of GCC switches not documented in the GNAT User's Guide,
18854         as these may cause generated code to not conform to Ada semantics.
18855         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
18856         Add documentation for -gnat95 and -gnat05 switches
18857         Remove paragraph documenting obsolete way to refer to third party
18858         libraries.
18859         Add a few references to Ada_05 that were missing.
18860         Update documentation on -gnatZ/-gnatL.
18861         Document limitation when using -m64 under Solaris.
18862         Change the "Name Casing" subsection of the pretty-printer section
18863         according to the changes in the dictionary processing.
18864
18865         * gnat_rm.texi: Document the Ada_05 pragma.
18866         Section on record representation clauses describes the new more
18867         relaxed rules about placement of large packed bit array components.
18868         Add documentation of GNAT.UTF_32
18869
18870 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
18871
18872         * misc.c (gnat_post_options): Turn off structural
18873         aliasing for now.
18874
18875 2005-03-08  Laurent Guerby <laurent@guerby.net>
18876
18877         * system-linux-sparc.ads: Fix typo in previous commit.
18878
18879 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
18880             Laurent Guerby <laurent@guerby.net>
18881
18882         PR ada/20035
18883         * system-linux-sparc.ads: New.
18884         * Makefile.in: Add sparc linux entry.
18885
18886 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
18887
18888         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
18889         parameters as unused.
18890
18891 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
18892         Partial merge from libada-gnattools-branch:
18893
18894         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
18895         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
18896         into code in gnattools/Makefile.in.  Remove direct dependencies on
18897         stamp-tools by tools clauses.
18898         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
18899         * config-lang.in: Add gnattools to $lang_dirs.
18900
18901 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
18902
18903         PR ada/19942
18904         * utils.c (gnat_type_for_mode): Return null instead of ICE because
18905         we asked for an unknown mode.
18906
18907 2005-02-12  Richard Henderson  <rth@redhat.com>
18908
18909         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
18910         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
18911
18912 2005-02-10  Andreas Jaeger  <aj@suse.de>
18913
18914         * init.c (__gnat_initialize): Mark parameter as unused.
18915
18916 2005-02-09  Doug Rupp  <rupp@adacore.com>
18917
18918         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
18919         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
18920
18921 2005-02-09  Doug Rupp  <rupp@adacore.com>
18922
18923         * gnatchop.adb (dup, dup2),
18924         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
18925
18926         * gnatlbr.adb (mkdir),
18927         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
18928
18929         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
18930
18931 2005-02-09  Doug Rupp  <rupp@adacore.com>
18932
18933         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
18934
18935 2005-02-09  Robert Dewar  <dewar@adacore.com>
18936             Thomas Quinot  <quinot@adacore.com>
18937             Javier Miranda  <miranda@adacore.com>
18938             Pascal Obry  <obry@adacore.com>
18939             Ed Schonberg  <schonberg@adacore.com>
18940             Doug Rupp  <rupp@adacore.com>
18941             Gary Dismukes  <dismukes@adacore.com>
18942             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18943
18944         * g-zstspl.ads: New file.
18945
18946         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
18947
18948         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
18949         Ada 95 mode
18950         Add definition of Wide_Wide_Space for AI-285
18951
18952         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
18953         interface (to support Ada 95 and Ada 2005 units).
18954         Add Unbounded_IO files
18955         Add entries for Wide_Wide packages for AI-285
18956         Add list of containers packages to Ada 2005 unit list
18957
18958         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
18959         support new Unbounded_IO package cleanly.
18960
18961         * g-utf_32.ads, g-utf_32.adb: New files.
18962
18963         * Makefile.rtl: Add entry for g-utf_32
18964         Add new files for Unbounded_IO
18965         Adjust make file for new AI-285 wide wide packages
18966         Add AI-302 containers to the run time.
18967
18968         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
18969         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
18970         subprograms for AI-301.
18971
18972         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
18973
18974         * a-stunau.ads: Minor comment correction
18975
18976         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
18977         etc.
18978         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
18979         (Check_RPC): Update to match changes in expanded code.
18980         Clean up unused entity.
18981
18982         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
18983         was not taken into account.
18984         This includes proper initialization with Normalize_Scalars.
18985         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
18986         normalize scalars cases (particularly the latter) to do a better job
18987         of finding invalid representations.
18988
18989         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
18990
18991         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
18992         used
18993
18994         * exp_dist.adb: Add support for wide wide character type
18995         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
18996         private part, generate stub bodies at the end of the private part,
18997         not the visible part.
18998         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
18999         PolyORB support.
19000         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
19001         generic wrapper to execute final processing after completing the
19002         expansion of the RPC receiver for an RACW.
19003
19004         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
19005         packages and attributes.
19006         (Preset_Names): Addition of the new reserved words of Ada 2005,
19007         that is interface, overriding and synchronized.
19008         (Get_Pragma_Id): Give support to the use of the new reserved word
19009         "interface" as a pragma name.
19010         (Is_Pragma_Name): Give support to the use of the new reserved word
19011         "interface" as a pragma name.
19012         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
19013         attribute implementation.
19014
19015         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
19016         checks to entities that are output parameters of Asm operations.
19017         Handle the Stream_Size attribute.
19018         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
19019
19020         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
19021
19022         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
19023         for second parameter being 0.0.
19024         Add support for wide wide character type.
19025         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
19026
19027         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
19028         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
19029         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
19030         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
19031         for wide wide character cases.
19032
19033         * cstand.adb: Create entities for Wide_Wide_Character and
19034         Wide_Wide_String.
19035
19036         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
19037         accordance with AI-258.
19038         Add new declarations for 16/32 bit C character types (Part of AI285)
19039
19040         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
19041         (Obsolescent_Warning): New field
19042         (Rep_Clause): New local subprogram used to share code. Returns the rep
19043         clause for which the name is given in parameter.
19044         (Has_Stream_Size_Clause): New routine.
19045         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
19046         (Address_Clause): Implementation is now using Rep_Clause.
19047         (Alignment_Clause): Idem.
19048         (Size_Clause): Idem.
19049
19050         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
19051         entity in non-Ada 2005 mode and generate warning.
19052
19053         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
19054         (Prag): Code cleanup. Remove old gnat pragma "overriding"
19055
19056         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
19057         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
19058         on the named unit if the pragma is not in the current compilation unit,
19059         so that elaboration calls in the current unit can set up an elaboration
19060         dependency on the named unit, as needed.
19061         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
19062         subprogram as well as for subprograms declared within a package.
19063         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
19064         pragma overriding.
19065
19066         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
19067         to z) to avoid some instances of duplication for Wide_Wide packages.
19068
19069         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
19070         characters.
19071
19072         * scn.adb: Char_Literal_Value field is now a Uint
19073
19074         * scng.adb: Significant rewrite to handle new Ada 2005 features
19075         allowing wide and wide wide characters in program text, e.g. for
19076         identifiers, as described in AI-285.
19077         (Set_Reserved): New procedure, makes setting up keywords cleaner.
19078         (Initialize_Scanner): Register the new reserved words of Ada 2005.
19079         (Scan): Give support to the new reserved words.
19080
19081         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
19082         warning notifying that interface, overriding, and synchronized are
19083         new reserved words.
19084         (P_Pragma): Allow the use of the new reserved word "interface" as
19085         a pragma name.
19086
19087         * gnatls.adb, gnatbind.adb,
19088         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
19089         identifiers named "interface" to "SAL_Interface".
19090
19091         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
19092         (Structured Exception handling).
19093         (Gen_Main_C): Idem.
19094
19095         * bindgen.adb:
19096         (Gen_Main_Ada): Set the default exit code if specified.
19097         (Gen_Main_C): Likewise.
19098         Part of *DC20-006.
19099         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
19100         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
19101
19102         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
19103         new -Xnnn switch.
19104
19105         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
19106         has a collision with the new Ada 2005 "interface" reserved word.
19107
19108         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
19109         generate a warning notifying that interface, overriding, and
19110         synchronized are new reserved words.
19111
19112         * scans.ads (Token_Type): Addition of the tokens corresponding to the
19113         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
19114         and Tok_Synchronized.
19115
19116         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
19117         "dispatching" rather than "primitive" operations, since dispatching
19118         calls are now allowed to abstract formal subprograms (which are not
19119         primitive).
19120         Char_Literal_Value field is now a Uint
19121         (Resolve_Slice): If the prefix is an access to an unconstrained array,
19122         compute the actual subtype of the designated object to impose the proper
19123         index constraints.
19124         (Resolve_Selected_Component): Do not insert an access check if the
19125         prefix is an access type: such a node is expanded into an explicit
19126         dereference, on which the access check is performed anyway. Removes
19127         expensive duplicate checks.
19128         (Resolve_Call): Use new flag Is_Obsolescent and field
19129         Obsolescent_Warning so that pragma Obsolescent works on library
19130         subprograms.
19131         Add support for wide wide character type
19132         (Resolve_Allocator): Replace the error message on wrong null-exclusion
19133         value by a warning message.
19134         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
19135         as fixed-point, and one of the operands is non-static and universal, it
19136         can only be an illegal exponentiation operation, in which case there is
19137         no real value to retrieve.
19138
19139         * exp_strm.adb: Add support for wide wide character type
19140         (Build_Elementary_Input_Call): Compute the size of the stream element by
19141         querying the rep chain to find the Stream_Attribute attribute value.
19142         (Build_Elementary_Write_Call): Ditto.
19143
19144         * sem_aggr.adb: Char_Literal_Value field is now a Uint
19145         Add support for wide wide character type
19146         Replace the error messages on wrong null-exclusion value by warnings
19147         as described in Ada 2005.
19148         (Resolve_Extension_Aggregate): Document the fact that the error
19149         message on class-wide expressions in extensions aggregates.
19150
19151         * sem_case.adb: Add support for wide wide character type
19152
19153         * sem_ch13.adb: Add support for wide wide character type
19154         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
19155
19156         * sem_ch3.adb: Add support for wide wide character type
19157         (Process_Subtype): If constraint is illegal for the type, set Ekind of
19158         now-useless Itype, to prevent cascaded errors on a compiler built
19159         without -gnatp.
19160
19161         * sem_ch8.adb: Add with and use of Sem_Disp.
19162         (Analyze_Subprogram_Renaming): Replace unclean uses of
19163         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
19164         of Corresponding_Spec to Empty).
19165         (Attribute_Renaming): Replace use of Corresponding_Spec with
19166         Corresponding_ Formal_Spec and simplify condition.
19167         (Use_One_Package): Check that scope of homonym of identifier is defined,
19168         before checking whether it is a wrapper package.
19169         Add support for wide wide character type
19170
19171         * sem_eval.adb: Add support for wide wide character type.
19172         (Eval_Arithmetic_Op): Check for compile time known signed integer
19173         overflow in the non-static case.
19174         (Subtypes_Statically_Match): A formal scalar type and its base type do
19175         not statically match.
19176
19177         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
19178         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
19179         subtype).
19180         (Unit_Declaration_Node): Ditto.
19181         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
19182         has a packed array type, the prefix has been rewritten into a type
19183         conversion. Determine variable-ness from the converted expression.
19184         Handle wide wide character cases.
19185
19186         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
19187
19188         * stringt.ads, stringt.adb: Handle full UTF-32 range.
19189         Remove ["0A"] from comment, since it can look like a line terminator.
19190         Currently we don't permit this, but this is under discussion by the
19191         ARG, and it is easy enough to use a different example.
19192
19193         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
19194         handling UTF-32 encoding for wide wide character.
19195         Implement new brackets coding ["hhhhhhhh"]
19196         Add UTF-8 encodings for full UTF-32 range
19197
19198         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
19199
19200         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
19201         bit range Add full UTF-32 support.
19202         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
19203         notify that constraint error will be raised at run-time
19204         because a null value is assigned to a null-excluding object.
19205         Remove some obsolete declarations and make Char_Code
19206         unsigned.
19207
19208         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
19209         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
19210         Rcheck subprograms.
19211
19212         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
19213         wrong null-exclusion value by a warning message.
19214         (Enable_Range_Check): Do range check if the prefix is an
19215         explicit dereference whose designated object is an unconstrained array.
19216         Current algorithm for removing duplicate checks is over-eager in this
19217         case.
19218
19219         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
19220         null-exclusion value by a warning message
19221
19222         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
19223         completely. Add support for Uint2 field
19224
19225         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
19226         exp_prag.adb: Char_Literal_Value field is now a Uint.
19227
19228         * exp_util.adb (Insert_Actions): Replace
19229         N_Formal_Subprogram_Declaration by
19230         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
19231         Char_Literal_Value field is now a Uint.
19232
19233         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
19234         defined for subprogram renaming declarations. When set, the field
19235         indicates the defining entity of a corresponding formal subprogram
19236         when the renaming corresponds to a formal subprogram association in an
19237         instantiation.
19238         (Set_Corresponding_Formal_Spec): New procedure to return
19239         Corresponding_Formal_Spec field.
19240         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
19241         (which is now a subtype).
19242         Char_Literal_Value field is now a Uint
19243
19244         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
19245         pointer to the base of the dispatch table.
19246         Minor changes to comments.
19247         (Controlling_Type): New function for determining the tagged type
19248         associated with a tagged primitive subprogram.
19249         (Expand_Dispatching_Call): Add support for a controlling actual that is
19250         directly a value of type Ada.Tag rather than a tagged object.
19251
19252         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
19253         describing the new layout.
19254         (Dispatch_Table): The expander computes the actual array size, allocates
19255         the Dispatch_Table record accordingly, and generates code that displaces
19256         the base of the record after the Typeinfo_Ptr component. The access to
19257         these components is done by means of local functions.
19258         (Offset_To_Top): New function.
19259         (Typeinfo_Ptr): New function.
19260         (Get_TSD): Modified to access the new position of the TSD.
19261         (Set_TSD): Modified to save the TSD in its new position.
19262
19263         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
19264         case of formal abstract subprograms. Add check and message for -gnat05.
19265         Update comments.
19266
19267         * sem_ch12.adb: Add with and use for Sem_Disp.
19268         (Analyze_Associations): Minor change from "=" to "in" for use of
19269         N_Formal_Subtype_Declaration (which is now a subtype).
19270         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
19271         N_Formal_Subtype_Declaration (which is now a subtype).
19272         (Analyze_Formal_Subprogram): Add handling for
19273         N_Formal_Abstract_Subprogram, marking the formal as abstract and
19274         dispatching, setting the controlling status of the formal parameters
19275         and result, and issuing an error if there is no controlling type for
19276         the formal subprogram.
19277         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
19278         which is an unclean use of that field, we set the new field
19279         Corresponding_Formal_Spec to make the formal subprogram available to
19280         processing in Analyze_Subprogram_Declaration.
19281         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
19282         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
19283         Constrained, so that it is is does not statically match its anonymous
19284         base type.
19285
19286         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
19287         abstract formal subprograms in error check for functions returning
19288         abstract types. Set scope of new designator for
19289         a parameterless subprogram, so that it is available when checking the
19290         body for nested subprograms, before full analysis of said body.
19291         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
19292         subprogram only if inner one comes from source.
19293         (Analyze_Function_Call): If the call is given in object notation, the
19294         analysis of the name rewrites the node and analyzes it with the proper
19295         argument list. After analyzing the name, if the call has been rewritten
19296         and the result type is set, no further analysis is needed.
19297         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
19298         mark in function specification, in a context where the formals are
19299         visible and hide outer homographs.
19300
19301         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
19302         as the tagged type for the cases of abstract formal subprograms and
19303         renamings of those.  Clean up spec comments.
19304         (Check_Dispatching_Context): Add error message to indicate "abstract
19305         procedure", covering the case of a call to a formal abstract procedure
19306         that has statically tagged operands.
19307         (Check_Dispatching_Call): Check for the case of an actual given by
19308         a tag-indeterminate function call whose type is an ancestor of the
19309         containing call's associated tagged type. This situation can occur
19310         for inherited primitives with function defaults. In this case we
19311         use the tagged type's tag directly as the controlling argument for
19312         the calls.
19313         (Expand_Call): Name change on call to Expand_Dispatch_Call.
19314
19315         * sprint.adb (Sprint_Node_Actual): Split
19316         N_Formal_Subprogram_Declaration into two alternatives for the new
19317         cases N_Formal_Abstract_Subprogram_Declaration and
19318         N_Formal_Concrete_Subprogram_Declaration.
19319         Char_Literal_Value field is now a Uint.
19320
19321         * trans.c: Get rid of junk Uint2 reference.
19322         Char_Literal_Value field is now a Uint.
19323         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
19324         (gigi): Correct third arg to gimplify_body.
19325
19326         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
19327         (TYPE_LANG_FLAG_0): Check for record or union.
19328
19329         * treepr.adb: Char_Literal_Value field is now a Uint
19330
19331         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
19332         UI_From_CC.
19333
19334         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
19335         Add full UTF-32 support
19336         Char_Code is now 32 bits
19337
19338         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
19339         wide character UTF_32 line terminators.
19340         Initialize Main_Source_File to avoid error when no main
19341         source is loaded.
19342
19343         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
19344         (Main_Source_File) when no main source has been loaded, to avoid
19345         potential crash.
19346
19347 2005-02-09  Robert Dewar  <dewar@adacore.com>
19348
19349         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
19350         Fix name of Set routine
19351
19352         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
19353         fixed packages.
19354
19355         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
19356         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
19357         fixed packages
19358
19359         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
19360         forms of Get_Line subprograms for AI-301.
19361
19362         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
19363         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
19364         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
19365         a-stwima.ads: Minor reformatting.
19366
19367 2005-02-09  Doug Rupp  <rupp@adacore.com>
19368             Thomas Quinot  <quinot@adacore.com>
19369
19370         * adaint.c, adaint.h
19371         [VMS] (to_ptr32): New function.
19372         (MAYBE_TO_PTR32): New macro.
19373         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
19374         for pointer size.
19375         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
19376         [VMS] (#define fork()): Remove since unneccessary.
19377         (__gnat_set_close_on_exec): New routine to support
19378         GNAT.OS_Lib.Set_Close_On_Exec.
19379
19380         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
19381         the parent side as close-on-exec so that they are not inherited by the
19382         child.
19383
19384         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
19385         set or clear the FD_CLOEXEC flag on a file descriptor.
19386
19387 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
19388             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19389
19390         PR ada/19386
19391         * decl.c:
19392         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
19393         on the field if Pragma Component_Alignment (Storage_Unit).
19394         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
19395         side-effects as if it were a constant; also make SAVE_EXPR to protect
19396         side-effects.
19397         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
19398         UNION_TYPE.
19399         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
19400         (components_to_record): Test it.
19401         Fix improper usage of REFERENCE_CLASS_P.
19402
19403         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
19404         RECORD_TYPE.
19405
19406         * utils2.c: Minor reformatting.
19407
19408         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
19409         handle other cases like RECORD_TYPE.
19410
19411         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
19412
19413 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19414
19415         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
19416         component of an array of arrays in an assignment context, and the
19417         aggregate has component associations that require sliding on
19418         assignment, force reanalysis of the aggregate to generate a temporary
19419         before the assignment.
19420         (Must_Slide): Make global to the package, for use in Gen_Assign.
19421
19422 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19423
19424         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
19425         unchecked union with no inferable discriminants, return a
19426         Raise_Program_Error node, rather than inserting it at the point the
19427         type is frozen.
19428         (Expand_Record_Equality, Component_Equality): Handle properly the case
19429         where some subcomponent is an unchecked union whose generated equality
19430         code raises program error.
19431
19432 2005-02-09  Doug Rupp  <rupp@adacore.com>
19433
19434         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
19435         [VMS] (#define exit hack): Remove.
19436
19437 2005-02-09  Pascal Obry  <obry@adacore.com>
19438             Arnaud Charlet <charlet@adacore.com>
19439
19440         * init.c (__gnat_initialize): Add a new parameter eh which contains the
19441         address of the exception registration. The Win32 version of this
19442         routine calls __gnat_install_SEH_handler() to initialize the SEH
19443         (Structured Exception Handling) handler.
19444         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
19445         SEH (Structured Exception Handling) now.
19446         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
19447         (__gnat_initialize for ppc-vxworks): Adjust comments and the
19448         preprocessor condition protecting the call to the extra eh setup
19449         subprogram, which is only available for the ppc target.
19450         (__gnat_clear_exception_count): replaced reference to
19451         variable taskIdCurrent by call to taskIdSelf(), cleaner.
19452
19453         * seh_init.c: New file.
19454
19455         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
19456         (GNATBIND_OBJS): Idem.
19457
19458         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
19459         routine takes a new parameter (a pointer to the exception registration
19460         for the SEH (Structured Exception Handling) support.
19461
19462         * raise.h: (__gnat_install_SEH_handler): New prototype.
19463         Update copyright notice.
19464
19465         * s-tassta.adb (Task_Wrapper): Declare the exception registration
19466         record and initialize it by calling __gnat_install_SEH_handler.
19467
19468 2005-02-09  Vincent Celier  <celier@adacore.com>
19469
19470         * make.adb (Gnatmake): Do not fail when the main project has no object
19471         directory.
19472
19473 2005-02-09  Doug Rupp  <rupp@adacore.com>
19474
19475         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
19476         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
19477         [VMS]: Add translations for g-enblsp.adb.
19478
19479         * s-asthan-vms.adb: Removed.
19480         * s-asthan-vms-alpha.adb: Added.
19481
19482 2005-02-09  Pascal Obry  <obry@adacore.com>
19483
19484         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
19485         (LIBGNAT_OBJS): Add seh_init.o.
19486
19487 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19488
19489         PR ada/16592
19490         * Makefile.in: Link all gnat tools with -static-libgcc, since
19491         -shared-libgcc is now used by default on some systems (e.g. linux with
19492         recent binutils).
19493         Remove references to Makefile.prolog/generic, no longer used.
19494
19495 2005-02-09  Vincent Celier  <celier@adacore.com>
19496
19497         * prj-makr.adb (Process_Directory): Put file name in canonical case
19498         before matching against the patterns.
19499         If gnatname has been invoked as <prefix>-gnatname
19500         then invoke the compiler as <prefix>-gcc, not just "gcc".
19501
19502 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19503
19504         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
19505         with expansion disabled. The actual subtype is needed among other
19506         places when the selected component appears in the context of a loop
19507         bound, and denotes a packed array.
19508         (Operator_Check): Always use the first subtype in the
19509         error message, to avoid the appearance of internal base types.
19510         (Transform_Object_Operation): Copy each actual in full
19511         to the parameter associations of the constructed call, rather than
19512         using the shallow copy mechanism of New_Copy_List. This ensures that
19513         the chaining of named associations is done properly.
19514         (Complete_Object_Operation): Rewrite node, rather than
19515         replacing it, so that we can trace back to the original selected
19516         component.
19517
19518         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
19519         and calls that use object notation, if the called function is not
19520         declared  in a withed unit, place the elaboration constraint on the
19521         unit in the context that makes the function accessible.
19522         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
19523         imposes an elaboration constraint between two packages.
19524
19525 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
19526
19527         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
19528         views of a private type after handling its private dependents, to
19529         maintain proper stack discipline between entry and exit from the
19530         package.
19531
19532 2005-02-09  Cyrille Comar  <comar@adacore.com>
19533
19534         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
19535         Minor reformatting.
19536
19537 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19538
19539         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
19540         fields for foreign threads.
19541
19542 2005-02-09  Doug Rupp  <rupp@adacore.com>
19543
19544         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
19545         recursion warnings when compiled with -gnatdm.
19546
19547 2005-02-09  Robert Dewar  <dewar@adacore.com>
19548
19549         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
19550         Slight fix to documentation of -gnaty with no parameters
19551
19552         * xr_tabls.ads: Add ??? comment for missing overall comment
19553
19554         * xsinfo.adb: Make default file name be sinfo.h, since this is what
19555         we now use by default.
19556
19557         * xsnames.adb: Adjust end of file test to look for five space followed
19558         by '#' instead of six spaces. The format of xsnames.adb was modified
19559         in the last update.
19560
19561         * a-numeri.ads: Add reference to AI-388 for greek letter pi
19562         identifier.
19563
19564         * clean.adb: Minor reformatting.
19565
19566         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
19567         gnatname.adb: Minor reformatting
19568         Add 2005 to copyright output when utility is run
19569
19570         * csets.adb: Eliminate obsolete comment
19571
19572         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
19573         Update comments.
19574
19575         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
19576
19577 2005-02-09  Sergey Rybin  <rybin@adacore.com>
19578
19579         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
19580         the difference between compact and incompact layout and add the record
19581         representation clause to the example illustrating different layouts.
19582         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
19583         component clauses").
19584
19585 2005-02-09  Florian Villoing  <villoing@adacore.com>
19586
19587         * gnat_ugn.texi: Fix typos.
19588         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
19589         @file.
19590         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
19591         in the generated documentation.
19592
19593 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19594
19595         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
19596         longer supported.
19597         Update linker wrapper when linking with non GNU C++.
19598
19599 2005-02-09  Pascal Obry  <obry@adacore.com>
19600
19601         * gnat_ugn.texi:
19602         Document the procedure to debug the DllMain routine on Windows.
19603         Add note about -funwind-tables and mixed Ada and C/C++ programming in
19604         ZCX mode.
19605         Document new BIND qualifer /RETURN_CODES=VMS.
19606
19607 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
19608
19609         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
19610         Edited gnatmetric chapter
19611
19612 2005-02-09  Robert Dewar  <dewar@adacore.com>
19613
19614         * gnat_rm.texi:
19615         Changes to document new wide wide character support
19616         For AI-285
19617         Update documentation on Normalize_Scalars and Initialize_Scalars
19618
19619 2005-02-09  Pascal Obry  <obry@adacore.com>
19620
19621         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
19622
19623 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
19624
19625         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
19626         from the VxWorks kernel) that is needed for getting the active
19627         priority of the different tasks.
19628
19629         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
19630         Use a pragma Elaborate_Body in the spec file instead.
19631         Noticed by code reading.
19632
19633 2005-02-09  Thomas Quinot  <quinot@adacore.com>
19634
19635         * exp_util.ads: Minor correction in comment.
19636
19637 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19638
19639         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
19640         since this procedure is now too complex to be worth inlining.
19641
19642 2005-02-09  Richard Henderson  <rth@redhat.com>
19643
19644         * utils.c (gnat_define_builtin): Remove.
19645         (gnat_install_builtins): Use build_common_builtin_nodes.
19646
19647 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
19648
19649         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
19650         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
19651         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
19652         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
19653         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
19654         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
19655         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
19656         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
19657         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
19658         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
19659         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
19660         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
19661         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
19662         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
19663         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
19664         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
19665         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
19666         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
19667         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
19668         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
19669         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
19670         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
19671         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
19672         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
19673         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
19674         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
19675         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
19676         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
19677         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
19678         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
19679         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
19680         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
19681         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
19682         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
19683         library.
19684
19685 2005-01-27  Laurent GUERBY <laurent@guerby.net>
19686
19687         * Makefile.in: Fix a-intnam.ads from previous commit,
19688         add 2005 to copyright.
19689         * a-intman-rtems.ads: Renamed to...
19690         * a-intnam-rtems.ads:
19691
19692 2005-01-27  Laurent GUERBY <laurent@guerby.net>
19693
19694         * Makefile.in: Rename GNAT RTEMS specific files.
19695         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
19696         5rosinte.ads, 5rparame.adb: Replaced by files below.
19697         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
19698         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
19699
19700 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
19701             Laurent GUERBY <laurent@guerby.net>
19702
19703         PR ada/19488
19704         * 5rosinte.ads: Add No_Key constant.
19705         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
19706         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
19707
19708 2005-01-26  Laurent GUERBY <laurent@guerby.net>
19709
19710         PR ada/19414
19711         * i-cobol.adb (Valid_Numeric): Handle zero length case.
19712
19713 2005-01-20  Richard Henderson  <rth@redhat.com>
19714
19715         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
19716         a-intnam-linux.ads and system-linux-alpha.ads.
19717         * a-intnam-linux-alpha.ads: Remove file.
19718         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
19719         * system-linux-alpha.ads: New file.
19720
19721 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
19722
19723         PR ada/13470
19724         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
19725         set to the new string.
19726
19727 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
19728
19729         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
19730         to True.
19731
19732 2005-01-18  Richard Henderson  <rth@redhat.com>
19733
19734         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
19735         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
19736         for alpha-linux.
19737         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
19738
19739 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
19740
19741         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
19742         (GCC_ZCX_Support): Likewise.
19743
19744 2005-01-11  Bastian Blank  <waldi@debian.org>
19745
19746         * system-linux-s390.ads: Define Preallocated_Stacks.
19747         * system-linux-s390x.ads: Likewise.
19748
19749 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
19750
19751         * gnat_ugn.texi: Fix texi errors with null variables.
19752
19753 2005-01-03  Thomas Quinot  <quinot@adacore.com>
19754
19755         * gen-soccon.c: New utility program to generate g-soccon.ads
19756         automatically.
19757
19758         * socket.c, gsocket.h: Split inclusion of system header files into a
19759         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
19760
19761         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
19762         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
19763         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
19764         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
19765         should not be edited by hand anymore, but should be regenerated using
19766         gen-soccon.
19767
19768 2005-01-03  Robert Dewar  <dewar@adacore.com>
19769             Ed Schonberg  <schonberg@adacore.com>
19770             Vincent Celier  <celier@adacore.com>
19771
19772         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
19773         on/off, since this is an obsolescent feature, for which we now generate
19774         a warning.
19775
19776         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
19777         warning mode is set and obsolescent usage of this attribute occurs.
19778         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
19779         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
19780         predates, and partly motivates, the adoption of the AI.
19781         Implement new Ada 2005 attribute Mod
19782
19783         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
19784         attribute Mod.
19785
19786         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
19787
19788         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
19789         pragma restrictions.
19790         New entry for Ada 2005 attribute Mod.
19791
19792         * par-prag.adb:
19793         Add recognition of new pragma Restrictions No_Dependence
19794         Recognize restriction No_Obsolescent_Features at parse time
19795
19796         * bcheck.adb: Add circuitry for checking for consistency of
19797         No_Dependence restrictions.
19798
19799         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
19800         restrictions.
19801
19802         * restrict.ads, restrict.adb: Add subprograms to deal with
19803         No_Dependence restrictions.
19804
19805         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
19806         restrictions.
19807
19808         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
19809         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
19810
19811         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
19812         dummy parameter to scng instantiation.
19813         Needed for new restriction No_Obsolescent_Features
19814
19815         * scn.adb: (Obsolescent_Check): New procedure
19816         Needed for new restriction No_Obsolescent_Features
19817
19818         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
19819         specified by AI-285, needed for implementation of AI-388 (adding greek
19820         pi to Ada.Numerics).
19821         Add new generic formal to scng, needed for new restriction
19822         No_Obsolescent_Features.
19823
19824         * s-rident.ads: Add new restriction No_Obsolescent_Features.
19825
19826         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
19827         restrictions lines.
19828         (Scan_ALI): When finding an unexpected character on an R line, raise
19829         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
19830         Ignore_Errors is True, default restrictions are set and scanning of the
19831         ALI file continues with the next line. Also, when Bad_R_Line is raised
19832         and Ignore_Errors is True, skip to the end of le line.
19833
19834         * sem_ch10.adb: Check that explicit with's do not violate
19835         No_Dependence restrictions.
19836         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
19837         illegal context clauses containing child units of instance.
19838
19839         * sem_prag.adb: Processing and checking for new No_Dependence
19840         restrictions.
19841         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
19842         analyze and check the External argument.
19843
19844         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
19845
19846 2005-01-03  Robert Dewar  <dewar@adacore.com>
19847
19848         * atree.adb: Add a fifth component to entities
19849         This allows us to add 32 flags and four new fields
19850
19851         * atree.ads: Add a fifth component to entities
19852         This allows us to add 32 flags and four new fields
19853
19854         * einfo.ads, einfo.adb: Document new fields and new flags now available
19855         Add routines for printing new fields
19856
19857         * treepr.adb: Call routines to print out additional fields if present
19858
19859 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
19860
19861         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
19862         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
19863
19864         * Makefile.in: Add support to build shared Ada libraries on solaris x86
19865         Remove gpr2make, replaced by gprmake.
19866         Remove references to gnatmem and libaddr2line.
19867         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
19868         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
19869         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
19870         a-numaux-darwin.ads and a-numaux-darwin.adb
19871         Enable mlib-tgt-lynxos.adb on lynxos.
19872
19873         * Make-lang.in: Remove rules for gpr2make.
19874         When generating sdefault.adb, do not call Relocate_Path
19875         on S3 for function Target_Name, as it is not a path.
19876         Remove references to gnatmem and libaddr2line.
19877
19878         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
19879         files.
19880
19881 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
19882
19883         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
19884         address is incompatible with its base type alignment constraints when
19885         this can be decided statically.
19886
19887 2005-01-03  Olivier Hainque  <hainque@adacore.com>
19888
19889         * decl.c (compatible_signatures_p): New function. The intended purpose
19890         is to check if two function signatures for a call-site and a callee are
19891         compatible enough for the call to be valid. The underlying purpose is
19892         to check if a call to a mapped builtin is using the right interface.
19893         The current code actually does not check antyhing - this a placeholder
19894         for future refinements.
19895         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
19896         builtin calls for convention Intrinsic.
19897
19898         * gigi.h (builtin_decl_for): Declare (new function).
19899
19900         * utils.c (gnat_install_builtins): Install the target specific builtins.
19901         (builtin_decl_for): New function, provide a dummy body for now.
19902
19903 2005-01-03  Geert Bosch  <bosch@adacore.com>
19904
19905         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
19906         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
19907         (Pred): Implement in terms of Succ.
19908
19909         * trans.c (convert_with_check): Reimplement conversion of float to
19910         integer.
19911
19912 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
19913             Vincent Celier  <celier@adacore.com>
19914
19915         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
19916         bounds can be negative, and must be declared Int, not Nat.
19917
19918         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
19919         array is checked after using the index in the array.
19920
19921         * makegpr.adb (Add_Switches): Check if there is a package for the
19922         processor. If there is no package, do not look for switches.
19923
19924 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
19925
19926         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
19927         generation of predefined stream operations (specs and bodies) should
19928         proceed. Under various restrictions these subprograms must not be
19929         generated.
19930
19931 2005-01-03  Thomas Quinot  <quinot@adacore.com>
19932
19933         * exp_dist.adb:
19934         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
19935         amount of PCS-specific code in RACW stubs generation.
19936         (Copy_Specification): Set Etype on copied formal parameter entities, as
19937         this information is needed for PolyORB stubs generation.
19938         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
19939         variable Dynamic_Async.
19940         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
19941         (Build_RPC_Receiver_Specification): Make generic again, as recent
19942         changes have allowed RPC receivers to have the same profile for both
19943         variants of the PCS.
19944         Reorganise RPC receiver generation to reduce differences between the
19945         structure of GARLIC and PolyORB RPC receivers.
19946         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
19947         PCS-specific.
19948         Simplify elaboration code for RCI packages.
19949
19950         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
19951         generation to reduce differences between the structure of GARLIC and
19952         PolyORB RPC receivers.
19953
19954         * s-stratt.adb: Fix typo in comment.
19955
19956 2005-01-03  Thomas Quinot  <quinot@adacore.com>
19957
19958         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
19959         copied from Make_Init_Call).
19960
19961         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
19962         reads and assignments on a temporary variable declared with appropriate
19963         discriminants.
19964
19965 2005-01-03  Robert Dewar  <dewar@adacore.com>
19966
19967         * i-c.adb (To_C): Raise CE if string is null and Append_Null
19968
19969 2005-01-03  Robert Dewar  <dewar@adacore.com>
19970
19971         * i-cstrin.adb (Update): Do not append a null in form called with a
19972         String. This avoids unintended behavior.
19973
19974 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
19975
19976         PR ada/17527
19977         * init.c: Fix warnings on Free BSD section.
19978
19979 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
19980
19981         PR ada/16949
19982         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
19983         xsinfo.adb).
19984
19985 2005-01-03  Vincent Celier  <celier@adacore.com>
19986
19987         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
19988         libraries when Unique_Compile is True (-u switch).
19989         (Gnatmake): ditto.
19990
19991 2005-01-03  Robert Dewar  <dewar@adacore.com>
19992
19993         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
19994         upper case letter or underscore after W, as allowed by spec.
19995
19996 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
19997
19998         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
19999         darwin port by using proper type definitions from header files.
20000         Use SIGTERM instead of SIGABRT for SIGADAABORT.
20001
20002 2005-01-03  Robert Dewar  <dewar@adacore.com>
20003
20004         * par.adb: Enhance error message handling for configuration file
20005         pragmas.
20006
20007 2005-01-03  Robert Dewar  <dewar@adacore.com>
20008
20009         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
20010         removed during the previous update (test properly for case of dividing
20011         largest negative number by -1, which generates overflow).
20012
20013 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
20014             Sergey Rybin  <rybin@adacore.com>
20015
20016         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
20017         to use as the defining identifier for a formal package.
20018         (Remove_Parent): If the instance takes place within (an instance of)
20019         a sibling, preserve private declarations of common parent.
20020
20021 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
20022
20023         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
20024         to determine whether one of the operands is a fixed-point type for
20025         which a user-defined multiplication or division operation might be
20026         defined.
20027
20028         * sem_res.adb (Valid_Conversion): The legality rules for conversions
20029         of access types are symmetric in Ada 2005: either designated type can
20030         be unconstrained.
20031
20032 2005-01-03  Vincent Celier  <celier@adacore.com>
20033
20034         * s-fileio.adb (Temp_File_Record): Change length of string component
20035         Name from L_tmpnam + 1 to max_path_len + 1.
20036
20037 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
20038
20039         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
20040         Self_Id.Deferral_Level = 0.
20041         (Do_Pending_Action): Move this function to the spec.
20042
20043         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
20044         Do_Pending_Action explicitely when needed, in case we're using
20045         No_Abort restrictions.
20046
20047         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
20048         deferral level since it will not get changed by the generated code.
20049         Keeping a default value of 1 would prevent some operations (e.g.
20050         select or delay) to proceed successfully.
20051
20052 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
20053             Robert Dewar  <dewar@adacore.com>
20054             Cyrille Comar  <comar@adacore.com>
20055
20056         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
20057         porting guide chapter (vms version).
20058         Revised doc title (removed "for native platforms") and subtitle.
20059         Add discussion on warning flag for obsolescent features. First we
20060         note that it applies to obsolete GNAT features, which was previously
20061         omitted. Second we contrast the behavior with that of the new
20062         Ada 2005 AI-368 restriction No_Obsolescent_Features.
20063         Preliminary rewriting of GNAT & libraries chapter in order to take
20064         into account default project locations & new project manager
20065         capabilities.
20066
20067 2005-01-03  Robert Dewar  <dewar@adacore.com>
20068
20069         * cstand.adb (Create_Operators): Clean up format and documentation of
20070         unary and binary operator result tables. No change in code, just
20071         reformatting and addition of comments.
20072
20073         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
20074         sem_ch2.adb: Minor reformatting
20075
20076         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
20077         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
20078         comments for Tree_Read and Tree_Write.
20079
20080 2005-01-03  Pascal Obry  <obry@adacore.com>
20081
20082         * exp_attr.ads: Minor reformatting.
20083
20084 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
20085
20086         * comperr.adb (Compiler_Abort): Add specialized message for GAP
20087         versions.
20088
20089 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
20090
20091         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
20092         whether the ancestor type is private, as may be the case with nested
20093         instantiations.
20094
20095 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
20096
20097         PR ada/19128
20098         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
20099
20100 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
20101
20102         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
20103         * utils2.c (build_unary_op): Likewise.
20104
20105 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20106
20107         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
20108
20109 2004-12-19  Richard Henderson  <rth@redhat.com>
20110
20111         * trans.c (gigi): Update gimplify_body call.
20112
20113 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
20114
20115         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
20116
20117 2004-12-07  Ed Falis  <falis@adacore.com>
20118
20119         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
20120         current task being suspended.
20121
20122         * init.c (__gnat_clear_exception): added to reset VxWorks exception
20123         count.
20124         (__gnat_map_signal): removed test for current task being suspended.
20125
20126 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
20127
20128         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
20129         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
20130         targets (such as AAMP).
20131
20132 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20133
20134         * atree.adb (Visit_Itype): Create a new name for the generated itype,
20135         because the back-end may otherwise treat it as a redefinition of the
20136         old symbol.
20137
20138 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
20139
20140         * back_end.adb (Scan_Back_End_Switches): Accept --param.
20141
20142         * lang-specs.h: Accept --param.
20143
20144 2004-12-07  Vincent Celier  <celier@adacore.com>
20145
20146         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
20147         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
20148         Current_Body_Suffix => Ada_Body_Suffix).
20149         Take into account Externally_Built attribute.
20150
20151         * clean.adb (In_Extension_Chain): Always return False when one of the
20152         parameter is No_Project.
20153         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
20154         Ada_Language_Index).
20155         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
20156         Process_Languages for procedure Parse).
20157
20158         * gnatcmd.adb (Carg_Switches): New table.
20159         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
20160         Adapt to name changes in package Prj (Current_Spec_Suffix =>
20161         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
20162
20163         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
20164         Header_Num and function Hash are now declared in package Prj,
20165         not Prj.Com.
20166
20167         * prj.adb (Suffix_Of): New function.
20168         (Set (Suffix)): New procedure.
20169         (Hash): One function moved from Prj.Com
20170         (Is_Present, Language_Processing_Data_Of): New functions
20171         (Set): Two new procedures
20172         (Add_Language_Name, Display_Language_Name): New procedures
20173
20174         * prj.ads: (Suffix_Of): New function
20175         (Set (Suffix)): New procedure
20176         Add several types and tables for multi-language support.
20177         (Header_Num): Type moved from Prj.Com
20178         (Hash): Two functions moved from Prj.Com
20179         (Is_Present, Language_Processing_Data_Of): New functions
20180         (Set): Two new procedures
20181         (Add_Language_Name, Display_Language_Name): New procedures
20182         (Naming): Component name changes:
20183         Current_Spec_Suffix => Ada_Spec_Suffix,
20184         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
20185         Impl_Suffixes, Supp_Suffixes.
20186         (Project_Data): New components: Externally_Built, Supp_Languages,
20187         First_Language_Processing, Supp_Language_Processing, Default_Linker,
20188         Default_Linker_Path.
20189
20190         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
20191         new package Language_Processing with its attributes (Compiler_Driver,
20192         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
20193         Binder_Driver, Default_Linker).
20194
20195         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
20196         (Header_Num): Type moved to package Prj
20197
20198         * prj-env.adb: Adapt to name changes in package Prj
20199         (Current_Spec_Suffix => Ada_Spec_Suffix,
20200         Current_Body_Suffix => Ada_Body_Suffix).
20201
20202         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
20203         default to the project path, except the "-" is one of the directories
20204         in env var ADA_PROJECT_PATH.
20205         (Current_Project_Path): Global variable, replacing Project_Path
20206         that was in the body of Prj.Part.
20207         (Project_Path): New function
20208         (Set_Project_Path): New procedure
20209         Initialize Current_Project_Path during elaboration of the package
20210         Remove dependency on Prj.Com, no longer needed
20211
20212         * prj-ext.ads (Project_Path): New function
20213         (Set_Project_Path): New procedure
20214
20215         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
20216         suffix is defined for language <lang>.
20217         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
20218         accessing directly the components of Naming.
20219         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
20220         Reorganise of this package.
20221         Break procedure Check in several procedures.
20222
20223         * prj-nmsc.ads: Replace all procedures (Ada_Check,
20224         Other_Languages_Check and Language_Independent_Check) with a single
20225         procedure Check.
20226
20227         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
20228         Process_Languages, no longer needed.
20229
20230         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
20231         Current_Project_Path.
20232         Remove elaboration code, moved to the body of Prj.Ext
20233         Use new function Prj.Ext.Project_Path instead of old variable
20234         Project_Path.
20235         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
20236         When comparing with project paths on the stack, first put the resolved
20237         path in canonical case.
20238         (Parse_Single_Project): Set the path name of the project file in the
20239         tree to the normalized path.
20240
20241         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
20242         parameter Process_Languages, no longer needed.
20243         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
20244         Other_Languages_Check.
20245
20246         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
20247         to store the resolved canonical path of the project file.
20248         Remove dependency to Prj.Com, no longer needed
20249
20250         * prj-util.adb: Adapt to name changes in package Prj
20251         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
20252         Ada_Body_Suffix).
20253
20254         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
20255         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
20256         Externally_Built, Include_Option, Language_Processing.
20257
20258         * makegpr.adb: Numerous changes due to changes in packages
20259         Prj and Prj.Nmsc.
20260
20261         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
20262         default to the project path, except whe "-" is one of the directories
20263         in env var ADA_PROJECT_PATH.
20264         (Gnatls): In verbose mode, add the new section "Project Search Path:"
20265
20266 2004-12-07  Robert Dewar  <dewar@adacore.com>
20267
20268         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
20269
20270         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
20271         set -gnatR3m mode.
20272
20273         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
20274         flag. No longer needed now that we handle this in gnat1drv.adb.
20275
20276         * repinfo.ads: Minor reformatting
20277
20278 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20279             Olivier Hainque  <hainque@adacore.com>
20280             Eric Botcazou  <ebotcazou@adacore.com>
20281
20282         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
20283         TYPE_SIZE_UNIT of result type if SIZE is not specified.
20284         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
20285         of a bitfield, which we know is useless and causes trouble because of
20286         alignment implications.
20287
20288         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
20289         BSS sections.
20290         (process_attributes): Clear DECL_COMMON again when a section attribute
20291         is present.
20292         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
20293         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
20294         (create_field_decl): Special case ADDRESSABLE negative to mean
20295         "no bitfield creation", to be used by make_aligning_type. Don't
20296         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
20297         fields claimed addressable still have to be bitfields. Use
20298         value_factor_p instead of a raw binop construction to check for the
20299         position's alignment.
20300
20301 2004-12-07  Geert Bosch  <bosch@adacore.com>
20302
20303         * eval_fat.adb: Revert previous change.
20304
20305 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20306             Ed Schonberg  <schonberg@adacore.com>
20307
20308         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
20309         with an implicit dereference as its prefix, use
20310         Insert_Explicit_Dereference instead of merely rewriting the prefix into
20311         an explicit dereference. This ensures that a reference to the original
20312         prefix is generated, if appropriate.
20313
20314         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
20315         dereference is rewritten to an explicit one, generate a reference to
20316         the entity denoted by its prefix using the original prefix node, so
20317         the dereference can be properly recorded as a read of the denoted
20318         access value, if appropriate.
20319
20320         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
20321         emitting 'assigned but never read' warning on a variable on the basis
20322         that it has an access type.
20323         (Check_References): Emit unreferenced warning when the scope is a
20324         subprogram body.
20325
20326 2004-12-07  Robert Dewar  <dewar@adacore.com>
20327             Ed Schonberg  <schonberg@adacore.com>
20328
20329         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
20330         intrinsic
20331
20332         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
20333         leaving call unchanged.
20334         This deals with the case where the pragma Import specified
20335         an external name, to be handled by the back end.
20336
20337         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
20338         subprogram which is Imported with convention Intrinsic if an
20339         External_Name argument is specified.
20340         (Process_Import_Or_Interface): Properly diagnose link name argument.
20341         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
20342         with Sem_Ch6.Cannot_Inline.
20343         (Process_Inline): Provide separate warning for inapplicable inline
20344         pragma.
20345         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
20346         treatment is uniform on different targets.
20347
20348 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20349
20350         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
20351         construct is rewritten, preserve end label to permit source navigation.
20352
20353 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20354
20355         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
20356         Specific_Build_Stub_Target): New subprograms.
20357         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
20358         the PCS implementation used, using the above PCS-customized subprograms.
20359         Minor reformatting.
20360         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
20361         for generation of DSA code targeted to the PolyORB PCS.
20362         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
20363         implementation of the partition communication subsystem in ancillary
20364         subprograms.
20365         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
20366         PolyORB_Support.Build_Stub_Type): New subrograms containing the
20367         PCS-specific part of Add_Stub_Type.
20368         (Insert_Partition_Check): Use runtime library function to perform
20369         E.4(19) check.
20370
20371         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
20372         (RE_Same_Partition): New entity, from s-parint.
20373
20374         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
20375
20376 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
20377
20378         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
20379         Output the copyright message on a separate line from the version
20380         message.
20381
20382 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
20383
20384         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
20385         compile-time warning.
20386
20387 2004-12-07  Robert Dewar  <dewar@adacore.com>
20388
20389         * g-regpat.adb: (Match): Change a misuse of or to or else
20390
20391 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20392
20393         * lib-xref.adb:
20394         (Generate_Reference): Handle properly a reference to an entry formal,
20395          when an accept statement has a pragma Unreferenced for it.
20396
20397         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
20398         and the Has_Pragma_Unreferenced flag for each formal before analyzing
20399         the body, to ensure that warnings are properly emitted for each accept
20400         statement of a given task entry.
20401
20402 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
20403
20404         * Makefile.in: Add support for foreign threads on VMS.
20405
20406 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20407
20408         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
20409         Remove.
20410         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
20411
20412         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
20413
20414         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
20415         exception.
20416         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
20417
20418 2004-12-07  Robert Dewar  <dewar@adacore.com>
20419
20420         * nlists.adb (Prepend_Debug): Remove parameters and nest within
20421         Prepend.
20422         (Remove_Next_Debug): Same fix
20423
20424         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
20425         maintain back pointers now, though we did not used to, and comments
20426         were out of date).
20427         (Prepend): Remove pragma Inline.
20428         (Remove_Next): Same cleanup
20429
20430 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20431
20432         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
20433         used to record an implicit dereference as a read operation on its
20434         prefix when operating under -gnatc. Necessary to avoid spurious
20435         'variable assigned but never read' warnings in that mode.
20436         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
20437         is a non-overloaded implicit dereference, call the above subprogram to
20438         ensure proper recording of references.
20439
20440 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
20441
20442         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
20443         to be resolved later as part of Analyze_Iteration_Scheme's call to
20444         Make_Index.
20445
20446 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
20447
20448         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
20449         prefix is not a scalar type, place error message on prefix, not on
20450         type entity.
20451
20452 2004-12-07  Bernard Banner  <banner@adacore.com>
20453
20454         * vxaddr2line.adb: Add support for x86 vxworks
20455
20456 2004-12-07  Thomas Quinot  <quinot@adacore.com>
20457
20458         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
20459         documentation of the behaviour of these functions when passed an IP
20460         address that has no record in the system hosts database and no reverse
20461         record in the DNS.
20462
20463         * cstand.adb, a-tags.ads: Fix typos in comment.
20464
20465 2004-12-07  Robert Dewar  <dewar@adacore.com>
20466
20467         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
20468         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
20469         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
20470         s-poosiz.ads: Minor reformatting
20471
20472         * make.adb: Minor reformatting
20473         Add some ??? comments asking for more comments
20474
20475         * s-poosiz.adb: Minor reformatting
20476         Add comments on alignment requirement
20477
20478         * sinfo.ads: Remove obsolete comment and fix typo.
20479
20480 2004-12-07  Vincent Celier  <celier@adacore.com>
20481             Sergey Rybin  <rybin@adacore.com>
20482
20483         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
20484         Files" with the new tool and package names.
20485         Reformatting to suppress most of the warnings for line too long
20486         Document the new section "Project Search Path:" in the output of
20487         gnatls -v.
20488         Add gnatmetric section
20489
20490 2004-12-07  Vincent Celier  <celier@adacore.com>
20491
20492         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
20493         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
20494         and -eit to -ept. Added qualifier
20495         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
20496
20497 2004-11-27  Andreas Schwab  <schwab@suse.de>
20498
20499         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
20500
20501 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
20502
20503         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
20504         internal implementation unit GNAT.Sockets.Thin,
20505         as their usage for sockets is non-portable (using the read and write
20506         functions from the system runtime library is fine on UNIX but won't
20507         work under Windows).
20508
20509         * mingw32.h: Update copyright notice.
20510
20511 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
20512
20513         * ada-tree.h: Minor reformatting of previous change to avoid lines
20514         longer than 79 characters.
20515
20516 2004-11-25  Olivier Hainque  <hainque@adacore.com>
20517
20518         * tb-gcc.c: GCC infrastructure based implementation of
20519         __gnat_backtrace.
20520
20521 2004-11-24  Steven Bosscher  <stevenb@suse.de>
20522
20523         * misc.c (gnat_post_options): Don't clear
20524         flag_inline_functions.
20525
20526 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
20527
20528         PR ada/17986
20529         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
20530         tree.
20531
20532 2004-11-21  Andreas Jaeger  <aj@suse.de>
20533
20534         * stylesw.adb: Change Style_Check_Subprogram_Order to
20535         Style_Check_Order_Subprograms.
20536
20537 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
20538
20539         * adaint.h, adaint.c
20540         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
20541         to avoid warnings.
20542         Add also a cast to kill another warning.
20543         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
20544         parameter with the priority class of the parent process instead of
20545         always using the NORMAL_PRIORITY_CLASS.
20546         (__gnat_dup): New function.
20547         (__gnat_dup2): New function.
20548         (__gnat_is_symbolic_link): Enable the effective body of this
20549         function when __APPLE__ is defined.
20550
20551         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
20552         Update comments.
20553
20554 2004-11-18  Olivier Hainque  <hainque@adacore.com>
20555
20556         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
20557         address of which may be used to represent "others" and "all others"
20558         choices in exception tables, instead of the current harcoded
20559         (void *)0 and (void *)1.
20560         (Setup_Exception): Do nothing in the GNAT SJLJ case.
20561
20562         * gigi.h (others_decl, all_others_decl): New decls representing the
20563         new Others_Value and All_Others_Value objects.
20564         (struct attrib): Rename "arg" component as "args", since GCC expects a
20565         list of arguments in there.
20566
20567         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
20568         corresponding objects exported by a-exexpr, instead of hardcoded dummy
20569         addresses.
20570
20571         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
20572         others_decl and all_others_decl instead of hardcoded dummy addresses
20573         to represent "others" and "all others" choices, which is cleaner and
20574         more flexible with respect to the possible eh pointer encoding policies.
20575
20576         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
20577         (process_attributes): Account for the naming change of the "args"
20578         attribute list entry component.
20579
20580         * decl.c (build_attr_list): Rename into prepend_attributes to allow
20581         cumulating attributes for different entities into a single list.
20582         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
20583         attributes for the current entity and propagate first subtype
20584         attributes to other subtypes.
20585         <E_Procedure>: Attribute arguments are attr->args and not
20586         attr->arg any more.
20587         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
20588         argument provided, as this is what GCC expects. Use NULL_TREE instead
20589         of 0 for trees.
20590
20591 2004-11-18  Robert Dewar  <dewar@adacore.com>
20592
20593         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
20594         Minor reformatting througout (including new function specs)
20595         Add ??? comments asking for clarification.
20596
20597 2004-11-18  Thomas Quinot  <quinot@adacore.com>
20598
20599         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
20600         incomplete duplicate implementation of this subprogram from butil.
20601
20602 2004-11-18  Thomas Quinot  <quinot@adacore.com>
20603
20604         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
20605         procedures factors the common processing for building an RPC receiver
20606         for an RCI package or an RACW type.
20607         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
20608         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
20609         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
20610         in use.
20611         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
20612         Add_RACW_Features.
20613         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
20614         Add_RAST_Features.
20615         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
20616         distribution subprogram identifiers that are either subprogram numbers
20617         or strings.
20618         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
20619         string distribution identifiers assigned to a given subprogram.
20620         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
20621         (Add_RAS_Dereference_TSS): Add comments.
20622         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
20623         is not referenced yet because it will be used by the PolyORB DSA
20624         implementation.
20625         (Insert_Partition_Check): Remove fossile code.
20626         (First_RCI_Subprogram_Id): Document this constant.
20627         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
20628         RAS_Access TSS.
20629         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
20630         replaced with calls to Get_Library_Unit_Name_String. Previously there
20631         were several instances of the same code in different locations in the
20632         compiler; this checkin completes the replacement of all of these
20633         instances with calls to a common subprogram.
20634         Minor reformatting.
20635
20636         * sem_dist.adb: Remove comment noting that RPC receiver generation
20637         should be disabled for RACWs that implement RASs.
20638         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
20639
20640         * sem_util.ads, sem_util.adb (Has_Stream): New function
20641         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
20642         qualified name of a library unit into the name buffer.
20643         (Note_Possible_Modification): Generate a reference only
20644         if the context comes from source.
20645
20646         * snames.ads (PCS_Names): New subtype corresponding to names of
20647         supported implementations of the Partition Communication Subsystem
20648         (PCS) (i.e. the runtime library support modules for the distributed
20649         systems annex).
20650
20651 2004-11-18  Robert Dewar  <dewar@adacore.com>
20652             Ed Schonberg  <schonberg@adacore.com>
20653
20654         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
20655         (Has_Rep_Pragma): New function
20656         (Has_Attribute_Definition_Clause): New function
20657         (Record_Rep_Pragma): Moved here from sem_ch13.adb
20658         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
20659
20660         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
20661
20662         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
20663         (Expand_Pragma_Psect_Object): New procedure
20664         These procedures contain the revised and cleaned up processing for
20665         these two pragmas. This processing was formerly in Sem_Prag, but
20666         is more appropriately moved here. The cleanup involves making sure
20667         that the pragmas are properly attached to the tree, and that no
20668         nodes are improperly shared.
20669
20670         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
20671         pragmas to Exp_Prag, which is more appropriate.
20672         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
20673         check for duplicates Remove use of Is_Psected flag, no longer needed.
20674         Use new Make_String_Literal function with string.
20675
20676         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
20677         that are functions return universal values, that have to be converted
20678         to the context type.
20679         Use new Make_String_Literal function with string.
20680         (Get_Stream_Convert_Pragma): New function, replaces the use of
20681         Get_Rep_Pragma, which had to be kludged to work in this case.
20682
20683         * freeze.adb: Use new Has_Rep_Pragma function
20684
20685         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
20686         function with string.
20687         Use new Has_Rep_Pragma function.
20688
20689         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
20690         string argument.
20691
20692 2004-11-18  Robert Dewar  <dewar@adacore.com>
20693
20694         * errout.ads, errout.adb: (First_Sloc): New function
20695
20696         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
20697         check (-gnatyx) instead of being included as a redundant construct
20698         warning.
20699
20700         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
20701         Style_Check_Order_Subprograms.
20702
20703         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
20704         stylesw.adb: Add Style_Check_Xtra_Parens
20705
20706         * usage.adb: Add line for -gnatyx (check extra parens)
20707
20708         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
20709
20710 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
20711             Robert Dewar  <dewar@adacore.com>
20712
20713         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
20714         discriminant of a constrained subtype, analyze the copy of the
20715         corresponding constraint, because in some cases it may be only
20716         partially analyzed.
20717         Removes long-lived ??? comments.
20718
20719         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
20720         handled controlled or secondary-stack expressions within the
20721         iteration_scheme of a loop.
20722
20723         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
20724         bounds that may contain functions calls, to prevent memory leaks when
20725         the bound contains a call to a function that uses the secondary stack.
20726         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
20727         generate temporaries for loop bounds that might contain function calls
20728         that require secondary stack and/or finalization actions.
20729
20730         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
20731         selected component and the selector is overloadable (not just a
20732         function) treat as function call, Analyze_Call will disambiguate if
20733         necessary.
20734         (Analyze_Selected_Component): Do not generate an actual subtype for the
20735         selected component if expansion is disabled. The actual subtype is only
20736         needed for constraint checks.
20737         (Analyze_Allocator): If restriction No_Streams is set, then do
20738         not permit objects to be declared of a stream type, or of a
20739         composite type containing a stream.
20740
20741         * restrict.ads: Remove the a-stream entry from Unit_Array, since
20742         No_Streams no longer prohibits with'ing this package.
20743
20744         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
20745         discriminants, but the parent base has unknown discriminants, there is
20746         no discriminant constraint to inherit. Such a discrepancy can arise
20747         when the actual for a formal type with unknown discriminants is a
20748         similar private type whose full view has discriminants.
20749         (Analyze_Object_Declaration): If restriction No_Streams is set, then
20750         do not permit objects to be declared of a stream type, or of a
20751         composite type containing a stream.
20752
20753 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
20754
20755         * exp_dbug.ads: Update documentation to reflect simpler encoding for
20756         protected operations.
20757
20758         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
20759         generated name, it complicates decoding in gdb and hinders debugging
20760         of protected operations.
20761         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
20762         flag for the protected entry barrier function.
20763         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
20764         flag for the protected entry function.
20765
20766 2004-11-18  Nicolas Setton  <setton@adacore.com>
20767
20768         * expect.c: Define __unix__ when __APPLE__ is defined.
20769
20770         * Makefile.in: Inform the value of the variable GMEM_LIB in the
20771         Darwin-specific section.
20772
20773         * lang-specs.h: Change the placement of the %1 marker.
20774         Works around the fact that gcc adds -fPIC by default under Darwin.
20775
20776 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
20777
20778         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
20779         type of the object with the packed array type, set the Analyzed flag
20780         on the object if it is an entity or simple indexed component, to avoid
20781         spurious type errors.
20782
20783 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
20784
20785         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
20786         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
20787         separate line from the version message.
20788
20789 2004-11-18  Ed Falis  <falis@adacore.com>
20790
20791         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
20792         vthreads.
20793         (init_float): Eliminate initialization of floating point status for
20794         AE653. The instructions have no effect for vThreads.
20795
20796 2004-11-18  Vincent Celier  <celier@adacore.com>
20797
20798         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
20799         gnatbind is invoked with -shared.
20800
20801 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
20802
20803         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
20804         for Detect_Blocking which is redundant with the check done within the
20805         procedure Protected_Single_Entry_Call.
20806         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
20807         Detect_Blocking which is redundant with the check done within the
20808         procedure Protected_Single_Entry_Call.
20809
20810 2004-11-18  Vincent Celier  <celier@adacore.com>
20811
20812         * makegpr.adb (Compile): Put the compiling switches (in package
20813         Compiler and on the command line) immediately after "-c", instead of
20814         at the end of the command line invocation of the compiler, when
20815         compiling a non-Ada file.
20816         (Build_Global_Archive): When there is no need to rebuild the archive,
20817         set Global_Archive_Exists, so that the archive is passed to the linker
20818         if one is needed.
20819
20820 2004-11-18  Robert Dewar  <dewar@adacore.com>
20821             Sergey Rybin  <rybin@adacore.com>
20822
20823         * gnat_ugn.texi:
20824         Remove extra paren check from list of checks for redundant constructs
20825         Add documentation of new -gnatyx style check (check extra parens)
20826         Remove paragraph about gnatelim debug options.
20827
20828         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
20829         objects rather than forbidding dependencies on the package Ada.Streams.
20830
20831         * sinfo.ads: Add ??? note that we should document pragmas passed to
20832         back end.
20833
20834         * g-expect.ads: Fix a few typos in the comments.
20835
20836 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
20837
20838         * misc.c (gnat_handle_option): Use %< and %> for quoting in
20839         warning message.
20840
20841 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20842
20843         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
20844
20845 2004-11-07  Andreas Schwab  <schwab@suse.de>
20846
20847         * Makefile.in (install-gnatlib): Remove spurious hyphen.
20848
20849 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
20850
20851         PR ada/18228
20852         * Makefile.in (darwin): Set soext to .dylib.
20853
20854 2004-10-26  Vincent Celier  <celier@gnat.com>
20855             Thomas Quinot   <quinot@act-europe.fr>
20856
20857         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
20858         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
20859         there is no use of GNAT.Sockets.Constants.
20860         Remove remaining pragma Import for C_Write
20861         Remove C_Read and C_Write from internal implementation unit
20862         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
20863         the read and write functions from the system runtime library is fine
20864         on UNIX but won't work under Windows).
20865
20866         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
20867         (Check_Selector): Use C_Recv instead of C_Read.
20868         Selectors are the GNAT.Sockets abstraction to perform a select()
20869         call on a set of descriptors. To allow abortion of an ongoing
20870         select operation, some data is written to a dedicated socket that
20871         is always monitored.
20872         Under Windows, the write and read library functions cannot operate
20873         on sockets, so we need to use send and recv instead, which is portable
20874         across all supported platforms.
20875
20876         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
20877         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
20878         (using the read and write functions from the system runtime library is
20879         fine on UNIX but won't work under Windows).
20880
20881 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
20882
20883         * mlib-tgt-darwin.adb: New file.
20884
20885         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
20886         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
20887         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
20888         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
20889         subprogram body.
20890
20891         * Makefile.in: Add support for building shared libraries under Darwin.
20892         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
20893         the low level EH init subprogram to be called from __gnat_initialize.
20894
20895         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
20896         indicates which options to pass to the archive indexer.
20897
20898         * mlib-utl.adb: Add support for calling ranlib with additional
20899         options. This is needed for instance under Mac OS X.
20900         (Ranlib_Options): New global variable, used to store the potential
20901         options to pass to ranlib.
20902         (Ar): Use Ranlib_Options when spawning ranlib.
20903         (Initialize): Set the value of ranlib option.
20904
20905 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
20906
20907         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
20908         instead of 8K, to reflect the real potential needs for stack-checking
20909         in the ZCX case.
20910
20911 2004-10-26  Pascal Obry  <obry@gnat.com>
20912
20913         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
20914
20915         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
20916         Windows only the initial thread stack size can be set so it is good to
20917         start we a low stack size.
20918         The OS will adjust the size as needed.
20919
20920 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
20921             Nicolas Setton  <setton@act-europe.fr>
20922
20923         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
20924         "__unix__" instead of "unix".
20925         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
20926         sections were just mistakenly ignored. The former is
20927         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
20928         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
20929         of hpux. This prevents an unwanted definition of the symbol
20930         convert_addresses in adaint.o.
20931
20932 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
20933
20934         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
20935         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
20936
20937 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
20938
20939         * a-filico.ads, a-filico.adb: fix incorrect header.
20940
20941 2004-10-26  Javier Miranda  <miranda@gnat.com>
20942
20943         * a-ststio.ads: Fix typo in identifier
20944
20945 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
20946
20947         * sem_ch4.adb: Minor reformatting.
20948
20949 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
20950
20951         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
20952         enabled, check the result of unary and binary operations when the
20953         expression is the right-hand side of an assignment.
20954
20955 2004-10-26  Vincent Celier  <celier@gnat.com>
20956
20957         * clean.adb (Delete): Do not output warnings when in quiet output and
20958         not in verbose mode.
20959         (Force_Deletions): New Boolean flag, defaulted to False
20960         (Delete): Only delete a file if it is writable, and when
20961         Force_Deletions is True.
20962         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
20963         (Usage): Line for new switch -f
20964         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
20965         own.
20966
20967 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
20968
20969         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
20970         JM type only if its size matches that of the wrapper.  When a size is
20971         prescribed and the field is not aliased, remove the wrapper of a JM
20972         type only if the size is not greater than that of the packed array.
20973         (gnat_to_gnu_entity): Change the extension of packed array wrappers
20974         from LJM to JM.
20975
20976 2004-10-26  Geert Bosch  <bosch@gnat.com>
20977
20978         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
20979         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
20980         (Pred): Implement in terms of Succ.
20981
20982 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
20983
20984         * exp_aggr.adb (Safe_Component): An aggregate component that is an
20985         unchecked conversion is safe for in-place use if the expression of the
20986         conversion is safe.
20987         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
20988         be expandable in place even if the aggregate does not come from source.
20989         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
20990         designated object of an allocator in place, rather than building it
20991         first on the stack. The previous scheme forces a full copy of the array,
20992         and may be altogether unsusable if the size of the array is too large
20993         for stack allocation.
20994
20995 2004-10-26  Robert Dewar  <dewar@gnat.com>
20996
20997         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
20998         compares if the component is atomic.
20999
21000         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
21001         array assignment if the component type is atomic.
21002
21003 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21004             Eric Botcazou  <ebotcazou@act-europe.fr>
21005
21006         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
21007         is aliased and is a by_reference type, do not pass by copy.
21008         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
21009         detect whether the call is in the right side of an assignment or
21010         the expression of an object declaration.  Recurse on component
21011         association within aggregates.
21012         Call it in the condition that determines whether the temporary is
21013         necessary for correct stack-checking.
21014
21015 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
21016
21017         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
21018         RACW_Type, used in the PolyORB version.
21019         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
21020         version and the GARLIC version.
21021
21022         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
21023         Rename RCI_Info to RCI_Locator for better consistency between the
21024         GARLIC and PolyORB versions of the distributed systems annex.
21025         (DSA_Implementation_Name): This enumeration lists the possible
21026         implementations of the Partition Communication Subsystem for the
21027         Distributed Systems Annex (DSA). The three available implementations
21028         are the dummy stub implementation (No_DSA), and two versions based on
21029         two different distribution runtime libraries: GARLIC and PolyORB. Both
21030         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
21031         technology.
21032         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
21033         that organization.
21034
21035         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
21036         between the GARLIC and PolyORB versions of the distributed systems
21037         annex.
21038         Remove RE_Unbounded_Reclaim_Pool since it is unused.
21039
21040 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
21041
21042         * gnat1drv.adb: Suppress calling the back end when
21043         Frontend_Layout_On_Target is true.
21044
21045 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
21046
21047         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
21048         Set_Read_Only): New subprograms.
21049         These new routines allow the user to set or unset the Owner execute
21050         and Owner write permission flags on a file.
21051
21052         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
21053         GNAT.OS_Lib.Set_Executable instead of rolling our own.
21054
21055 2004-10-26  Matthew Gingell  <gingell@gnat.com>
21056
21057         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
21058
21059 2004-10-26  Pascal Obry  <obry@gnat.com>
21060
21061         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
21062         memory before the faulting page we properly test the process read
21063         access for this address using appropriate Win32 routine.
21064         (HPUX sections): guard with "__hpux__" instead of "hpux".
21065
21066 2004-10-26  Robert Dewar  <dewar@gnat.com>
21067
21068         * lib-xref.adb (Generate_Reference): Don't complain about reference to
21069         entry parameter if pragma Unreferenced set, since we do not properly
21070         handle the case of multiple parameters.
21071
21072 2004-10-26  Vincent Celier  <celier@gnat.com>
21073
21074         * prj-env.adb: (Contains_ALI_Files): New Boolean function
21075         (Ada_Objects_Path.Add): For a library project, add to the object path
21076         the library directory only if there is no object directory or if the
21077         library directory contains ALI files.
21078         (Set_Ada_Paths.Add.Recursive_Add): Ditto
21079
21080 2004-10-26  Vincent Celier  <celier@gnat.com>
21081
21082         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
21083         extension of library projects.
21084
21085         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
21086         path defaults to ".:<prefix>/lib/gnat".
21087         (Parse): For an extending all project, allow direct import of a project
21088         that is virtually extended.
21089
21090         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
21091         the specified name is directly imported, return its ID. Otherwise, if
21092         an extension of this project is imported, return the ID of the
21093         extension.
21094
21095 2004-10-26  Robert Dewar  <dewar@gnat.com>
21096
21097         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
21098         (Sub3): New procedure, used by Scaled_Divide
21099         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
21100         correct more than one instance of failure to propagate carries
21101         correctly.
21102         (Double_Divide): Handle overflow case of largest negative number
21103         divided by minus one.
21104
21105         * s-arit64.ads (Double_Divide): Document that overflow can occur in
21106         the case of a quotient value out of range.
21107         Fix comments.
21108
21109 2004-10-26  Robert Dewar  <dewar@gnat.com>
21110
21111         * s-bitops.adb (Bit_Eq): Remove redundant check.
21112
21113         * s-bitops.ads: Minor comment updates
21114         Change some occurrences of Address to System.Address
21115
21116         * s-carsi8.ads: Fix minor cut-and-paste error in comments
21117
21118 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21119
21120         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
21121         accessibility check to prefix that is a protected operation.
21122
21123 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21124
21125         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
21126         empty, post message on stub.
21127
21128 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21129             Javier Miranda  <miranda@gnat.com>
21130
21131         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
21132         current instance appears within a unit that is directly in the context
21133         of the main unit.
21134         Used to determine whether the body of the instance should be analyzed
21135         immediately after its spec, to make its subprogram bodies available
21136         for front-end inlining.
21137         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
21138         constraint is not allowed on the component type (AARM 12.5.3(3))
21139
21140 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
21141
21142         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
21143         'Storage_Pool): enhance, document & limit detection of non-sharable
21144         internal pools.
21145
21146         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
21147
21148         * s-pooglo.ads: Add more documentation now that this pool is properly
21149         documented.
21150
21151 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21152
21153         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
21154         or protected type with discriminants, do not constrain the
21155         corresponding record type if the subtype declaration has no
21156         discriminant constraints. This can be the case in source code, or in
21157         the subtype declaration created to rename an actual type within an
21158         instantiation.
21159
21160 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21161
21162         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
21163         different kind of stub (possibly wrong name for file), do not check
21164         for conformance.
21165         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
21166         includes call to some function that returns an unconstrained type, do
21167         not inline.
21168
21169 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
21170
21171         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
21172         appear in the code for the main unit. Dependencies among units in the
21173         context of the main unit are established when those other units are
21174         compiled. Otherwise spurious elaboration constraints can generate
21175         incorrect elaboration circularities.
21176
21177 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
21178             Ed Schonberg   <schonberg@gnat.com>
21179
21180         * sem_util.adb (Is_Aliased_View): Defend against the case where this
21181         subprogram is called with a parameter that is not an object name. This
21182         situation arises for some cases of illegal code, which is diagnosed
21183         later, and in this case it is wrong to call Is_Aliased, as that might
21184         cause a compiler crash.
21185         (Explain_Limited_Type): Refine previous fix to include
21186         inherited components of derived types, to provide complete information.
21187
21188         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
21189         is the prival for a protected object.
21190         It is necessary to mark this entity as a variable, in addition to
21191         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
21192         modified to avoid checking the Aliased flag on entities that are not
21193         objects. (Checking that flag for non-objects is erroneous and could
21194         lead to a compiler crash).
21195
21196 2004-10-26  Robert Dewar  <dewar@gnat.com>
21197
21198         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
21199         X_Frac = 0.5, then we know that the number X must be positive.
21200         (Succ): Remove the same redundant test, and also fix the primary test
21201         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
21202         Minor reformatting
21203         (Decompose): Add fuller comments to spec
21204
21205 2004-10-26  Pascal Obry  <obry@gnat.com>
21206
21207         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
21208         validity (process must have read access). Set to 0 in all other cases.
21209         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
21210         violation on Win32.
21211         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
21212         segmentation violation.
21213
21214 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
21215
21216         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
21217         whose type is a constructed subtype of an aliased object with an
21218         unconstrained nominal subtype, convert the actual to the constructed
21219         subtype before taking its address.
21220
21221 2004-10-26  Vincent Celier  <celier@gnat.com>
21222
21223         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
21224         (Is_Path_Name_Case_Sensitive): New function
21225
21226         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
21227         (Base_Name, Simple_Name, Current_Directory, Compose,
21228         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
21229         the result.
21230
21231 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
21232             Vasiliy Fofanov  <fofanov@act-europe.fr>
21233             Vincent Celier   <celier@gnat.com>
21234
21235         * gnat_ugn.texi: Generalize "finding memory problems" section into a
21236         "memory management issues" section and document some of the useful
21237         memory pools provided as part of the GNAT library.
21238         Remove "virtual" from declaration of A::method2 in
21239         the simple example of Ada/C++ mixed system.
21240         Library Projects may be virtually extended: their virtual extensions
21241         are not Library Projects.
21242         Added section on extending project hierarchies.
21243
21244 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
21245
21246         * adaint.c (__gnat_get_libraries_from_registry): Cast value
21247         to LPBYTE.
21248         (__gnat_portable_spawn): Remove const.
21249
21250         * mingw32.h (MAXPATHLEN): Check for previous definition.
21251
21252 2004-10-17  Matthias Klose  <doko@debian.org>
21253
21254         * gnatvsn.ads: Set gnat library version to 4.0.
21255
21256 2004-10-05  Vincent Celier  <celier@gnat.com>
21257
21258         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
21259
21260 2004-10-04  Laurent GUERBY <laurent@guerby.net>
21261
21262         PR ada/15156
21263         * Makefile.in: Define and use RANLIB_FLAGS.
21264
21265 2004-10-04  Pascal Obry  <obry@gnat.com>
21266
21267         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
21268         other x86 platforms).
21269
21270 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
21271
21272         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
21273         in general and triggers stack alignment adjustment for thread entry
21274         points on targets where this is necessary.
21275
21276 2004-10-04  Bernard Banner  <banner@gnat.com>
21277
21278         PR ada/13897
21279         * Makefile.in: Add section for powerpc linux
21280         Add variant i-vxwork-x86.ads
21281
21282         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
21283
21284 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
21285
21286         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
21287         table registration calls when need be. Ensures no reference to the crt
21288         ctors symbol are issued in the SJLJ case, which avoids possible
21289         undefined symbol errors in the case of modules to be statically linked
21290         with the kernel.
21291
21292 2004-10-04  Javier Miranda  <miranda@gnat.com>
21293
21294         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
21295         in-line the code corresponding to subprogram Analyze_Actuals. In
21296         addition, analyze the actuals only in case of subprogram call.
21297
21298 2004-10-04  Ed Falis  <falis@gnat.com>
21299
21300         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
21301
21302 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
21303
21304         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
21305         in the documentation.
21306
21307 2004-10-04  Robert Dewar  <dewar@gnat.com>
21308
21309         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
21310         IF and CASE.
21311         (Analyze_Block_Statement): Add circuitry to detect following dead code
21312         (Check_Unreachable_Code): Handle case of block exit
21313
21314 2004-10-04  Robert Dewar  <dewar@gnat.com>
21315
21316         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
21317         (XMatchD): Avoid warning for Logic_Error call
21318
21319 2004-10-04  Robert Dewar  <dewar@gnat.com>
21320
21321         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
21322         consider expressions buried within a procedure actual to be an actual.
21323         This caused some blowups with uses of packed slices within a procedure
21324         actual.
21325
21326 2004-10-04  Robert Dewar  <dewar@gnat.com>
21327
21328         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
21329         longer need to be initialized to zero.
21330         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
21331         initialized to zero.
21332
21333         * checks.adb (Expr_Known_Valid): Packed arrays are now always
21334         considered valid, even if the representation is modular. That's correct
21335         now that we no longer initialize packed modular arrays to zero.
21336
21337         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
21338         suffixes. These are now documented as the only cases in which the
21339         debugger ignores outer records.
21340         Previously, the spec allowed arbitrary suffixes for this purpose.
21341         Change name of LJM to JM for packed array pad records
21342         Create separate section on packed array handling, and add a whole new
21343         set of comments to this section describing the situation with packed
21344         modular types and justification requirements depending on endianness.
21345
21346 2004-10-04  Robert Dewar  <dewar@gnat.com>
21347
21348         * a-except.adb: Add a comment for last change
21349
21350         * einfo.ads: Minor spelling correction in comment
21351
21352         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
21353
21354         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
21355         messages.
21356
21357         * sem_util.ads: Minor comment update
21358
21359 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21360
21361         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
21362         Inline_Always when in Configurable_Run_Time mode.
21363
21364         * sem_prag.adb (Process_Convention): If entity is an inherited
21365         subprogram, apply convention to parent subprogram if in same scope.
21366         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
21367         when in Configurable_Run_Time mode.
21368
21369 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21370
21371         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
21372         class_wide type after component list has been inherited.
21373
21374 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21375
21376         * sem_ch12.adb (Check_Generic_Actuals): New predicate
21377         Denotes_Previous_Actual, to handle properly the case of a private
21378         actual that is also the component type of a subsequent array actual.
21379         The visibility status of the first actual is not affected when the
21380         second is installed.
21381         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
21382         make fully recursive the treatment of formals of packages declared
21383         with a box.
21384         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
21385         the above on exit from an instantiation.
21386         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
21387         current instantiation which is now complete.
21388         (Analyze_Package_Instantiation): No instantiated body is needed if the
21389         main unit is generic. Efficient, and avoid anomalies when a instance
21390         appears in a package accessed through rtsfind.
21391
21392 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21393
21394         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
21395         do not generate a declaration for a temporary if the call is part of a
21396         library-level instantiation.
21397
21398 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
21399
21400         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
21401         searching for a limited component to flag.
21402
21403         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
21404         expansion of Input, to account for the fact that the implicit call
21405         generated by the attribute reference must freeze the user-defined
21406         stream subprogram. This is only relevant to 'Input, because it can
21407         appear in an object declaration, prior to the body of the subprogram.
21408
21409         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
21410         expansion can proceed and further errors uncovered.
21411         (Minor clean up): Fix cases of using | instead of \ for continuation
21412         messages.
21413
21414 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21415
21416         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
21417
21418         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
21419         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
21420         Use gcc_assert and gcc_unreachable.
21421
21422         * decl.c (gnat_to_gnu_entity, case object): Check and process a
21423         specified alignment before validating size.
21424         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
21425         stripped-down declaration for the type of the inner field when making
21426         a JM type.
21427
21428         * utils.c (finish_record_type): Do not compute the size in units
21429         incrementally. Instead compute it once for the rep clause case.
21430         Use gcc_assert and gcc_unreachable.
21431
21432 2004-10-04  Vincent Celier  <celier@gnat.com>
21433
21434         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
21435         in file name.
21436         (Is_Valid_Path_Name): Take '/' as a directory separator.
21437
21438 2004-10-04  Vincent Celier  <celier@gnat.com>
21439
21440         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
21441         (Extended_Project) only if Extended_Project is defined, to avoid
21442         assertion error.
21443         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
21444         resolved path.
21445         (Parse_Single_Project): Ditto.
21446
21447         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
21448         Add_To_Project_Path for virtual projects.
21449
21450 2004-10-04  Vincent Celier  <celier@gnat.com>
21451
21452         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
21453         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
21454         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
21455         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
21456         parameter Options_2.
21457
21458         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
21459         Build_Dynamic_Library with an empty Options_2.
21460
21461         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
21462         default anymore.
21463
21464         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
21465         directory separator, if any.
21466         (Gprmake): Do not allow mains on the command line for library projects.
21467         Do not attempt to link when the project is a library project.
21468         (Library_Opts): New table to store Library_Options.
21469         (Build_Library): If Library_Options is specified, pass these options
21470         when building a shared library.
21471
21472 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
21473
21474         * s-tposen.adb (Service_Entry): The object must be always unlocked at
21475         the end of this procedure now that the unlock operation was inserted
21476         by the expander.
21477
21478 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
21479
21480         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
21481         corresponding to the Preallocated_Stacks flags in System.
21482         (Get_Target_Parameters): Including the processing for
21483         Preallocated_Stacks.
21484
21485         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
21486         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
21487         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
21488         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
21489         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
21490         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
21491         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
21492         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
21493         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
21494         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
21495         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
21496         used to signal whether the compiler creates the required stacks and
21497         descriptors for the different tasks (when True) or it is done by the
21498         underlying operating system at run time (when False).
21499         It is initially set to False in all targets.
21500
21501         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
21502         if it is supported by the target.
21503         (Make_Task_Create_Call): Pass the stack address if it has been
21504         previously created. Otherwise pass a Null_Address.
21505
21506         * snames.adb: Add _stack.
21507
21508         * snames.ads: Add Name_uStack. Required to allow the expander to
21509         statically allocated task stacks.
21510
21511         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
21512         Stack_Address argument.
21513         Check that its value is equal to Null_Address because this target does
21514         not support the static stack allocation.
21515
21516 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
21517
21518         * usage.adb: Change "pragma inline" to "pragma Inline" in information
21519         and error messages
21520
21521 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
21522
21523         * exp_dist.adb: Split declaration of asynchronous flag out of
21524         Add_RACW_Read_Attribute.
21525         Minor reformatting for better alignment with PolyORB version.
21526         Store the entity for the asynchronous flag of an RACW, rather than the
21527         expression, in the asynchronous flags table. This will allow this flag
21528         to be used in other subprograms beside Add_RACW_Read_Attribute.
21529
21530 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
21531
21532         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
21533         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
21534         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
21535         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
21536         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
21537         sockets constant MSG_NOSIGNAL (Linux-specific).
21538         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
21539         all Send operations.
21540         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
21541         from trigerring SIGPIPE.
21542         Rename components to avoid clash with Ada 2005 possible reserved
21543         word 'interface'.
21544         (Check_Selector): When the select system call returns with an error
21545         condition, propagate Socket_Error to the caller.
21546
21547 2004-10-01  Jan Hubicka  <jh@suse.cz>
21548
21549         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
21550
21551 2004-09-23  Robert Dewar  <dewar@gnat.com>
21552
21553         PR ada/17540
21554         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
21555         instead do this at freeze time (we won't do it if there is an address
21556         clause).
21557         Change "pragma inline" to "pragma Inline" in information and error
21558         messages.
21559         Minor reformatting.
21560
21561         * freeze.adb (Check_Address_Clause): Remove previous change, not the
21562         right way of doing things after all.
21563         (Freeze_Entity): For object, set Is_Public for imported entities
21564         unless there is an address clause present.
21565
21566 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
21567
21568         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
21569         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
21570         ensures proper handling of types with rep clauses, which might have
21571         their TYPE_SIZE set already.
21572
21573 2004-09-21  Robert Dewar  <dewar@gnat.com>
21574
21575         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
21576         packed array types in both little- and big-endian cases. This change
21577         ensures that we no longer count on the unused bits being initialized
21578         for such types (and in particular ensures that equality testing will
21579         only read the relevant bits).
21580         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
21581         These changes mean that we no longer need to initialize small packed
21582         arrays.
21583         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
21584         optimization to an LJM field as to its parent field.
21585
21586         * ada-tree.h, trans.c, utils.c, utils2.c:
21587         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
21588
21589 2004-09-20  Jan Hubicka  <jh@suse.cz>
21590
21591         * utils.c (gnat_finalize): Remove.
21592         (end_subprog_body): Directly call cgraph_finalize_function;
21593         do not lower the nested functions.
21594
21595 2004-09-20  Robert Dewar  <dewar@gnat.com>
21596
21597         PR ada/17540
21598         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
21599         if an address clause is present, since that means that the Import
21600         should be ignored.
21601
21602 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
21603
21604         * 5tsystem.ads: Removed, no longer used.
21605
21606 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
21607             Zack Weinberg  <zack@codesourcery.com>
21608
21609         * ada-tree.def: Use tree_code_class enumeration constants
21610         instead of code letters.
21611         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
21612         Update for new tree-class enumeration constants.
21613
21614 2004-09-17  Vincent Celier  <celier@gnat.com>
21615
21616         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
21617         capabilities of the general project manager.
21618
21619 2004-09-09  Vincent Celier  <celier@gnat.com>
21620
21621         * a-direct.ads: Add pragma Ada_05
21622         (Directory_Entry_Type): Give default value to component Kind to avoid
21623         not initialized warnings.
21624
21625         * a-direct.adb (Current_Directory): Remove directory separator at the
21626         end.
21627         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
21628         an existing directory.
21629         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
21630         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
21631         Convert the result to File_Size.
21632
21633         * prj.ads: (Project_Error): New exception
21634
21635         * prj-attr.adb: Except in procedure Initialize, Fail comes from
21636         Prj.Com, not from Osint.
21637         (Attrs, Package_Attributes): Tables moved to private part of spec
21638         (Add_Attribute, Add_Unknown_Package): Moved to new child package
21639         Prj.Attr.PM.
21640         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
21641         Prj.Project_Error after call to Fail.
21642         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
21643         Fail. Check that package name is not already in use.
21644
21645         * prj-attr.ads: Comment updates to indicate that all subprograms may be
21646         used by tools, not only by the project manager, and to indicate that
21647         exception Prj.Prj_Error may be raised in case of problem.
21648         (Add_Unknown_Package, Add_Attribute): Moved to new child package
21649         Prj.Attr.PM.
21650         (Attrs, Package_Attributes): Table instantiations moved from the body to
21651         the private part to be accessible from Prj.Attr.PM body.
21652
21653         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
21654         from new package Prj.Attr.PM.
21655         (Parse_Attribute_Declaration): Call Add_Attribute from new package
21656         Prj.Attr.PM.
21657
21658         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
21659
21660         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
21661         instead of Elaboration_Checks).
21662
21663         * a-calend.adb: Minor reformatting
21664
21665 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21666
21667         * gigi.h (maybe_pad_type): New declaration.
21668         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
21669
21670         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
21671
21672         * cuintp.c: Convert to use buildN.
21673
21674         * decl.c (maybe_pad_type): No longer static.
21675         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
21676         target pointer.
21677         Convert to use buildN.
21678
21679         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
21680         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
21681         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
21682         RHS.
21683         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
21684         (gnat_gimplify_expr, case ADDR_EXPR): New case.
21685         Convert to use buildN.
21686
21687         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
21688         TREE_READONLY for const.
21689         Convert to use buildN.
21690
21691         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
21692         (create_var_decl): Refine when TREE_STATIC is set.
21693         Convert to use buildN.
21694
21695 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
21696
21697         * gnat_ugn.texi: Delete text relating to checking of ali and object
21698         consistency.
21699
21700         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
21701         routines.
21702
21703 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
21704
21705         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
21706         pragmas recognized by GNAT.
21707
21708         * gnat_rm.texi: Document pragma Detect_Blocking.
21709
21710         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
21711         raise Program_Error if called from a protected operation.
21712
21713         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
21714         the protected action nesting level.
21715         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
21716         protected action nesting level.
21717         (Unlock): When pragma Detect_Blocking is active decrease the protected
21718         action nesting level.
21719
21720         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
21721         Protected_Action_Nesting.
21722
21723         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
21724         Common_ATCB record. It contains the dynamic level of protected action
21725         nesting for each task. It is needed for checking whether potentially
21726         blocking operations are called from protected operations.
21727         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
21728         Detect_Blocking is active or not in the partition.
21729
21730         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
21731         raise Program_Error if called from a protected operation.
21732         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
21733         Program_Error if called from a protected operation.
21734         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
21735         Program_Error if called from a protected operation.
21736
21737         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
21738         raise Program_Error if called from a protected operation.
21739
21740         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
21741         raise Program_Error if called from a protected operation, and increase
21742         the protected action nesting level.
21743         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
21744         Program_Error if called from a protected operation, and increase the
21745         protected action nesting level.
21746         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
21747         protected action nesting level.
21748
21749         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
21750         raise Program_Error if called from a protected operation, and increase
21751         the protected action nesting level.
21752         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
21753         Program_Error if called from a protected operation, and increase the
21754         protected action nesting level.
21755         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
21756         raise Program_Error if called from a protected operation.
21757         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
21758         active, raise Program_Error if called from a protected operation.
21759         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
21760         protected action nesting level.
21761
21762         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
21763         insertion of the statement raising Program_Error. The run time
21764         contains the required machinery for handling that.
21765
21766         * sem_util.ads: Change comment associated to procedure
21767         Check_Potentially_Blocking_Operation.
21768         This procedure does not insert a call for raising the exception because
21769         that is currently done by the run time.
21770
21771         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
21772
21773         * init.c: Add the global variable __gl_detect_blocking that indicates
21774         whether pragma Detect_Blocking is active (1) or not (0). Needed for
21775         making the pragma available at run time.
21776         (__gnat_set_globals): Pass and update the detect_blocking parameter.
21777
21778         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
21779         pragma Detect_Blocking is active.
21780
21781         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
21782
21783         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
21784         DB is found in the ali file. Any unit compiled with pragma
21785         Detect_Blocking active forces its effect in the whole partition.
21786
21787         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
21788         Detect_Blocking is active and delay is called from a protected
21789         operation.
21790
21791         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
21792         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
21793         Detect_Blocking is active (0 otherwise).
21794         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
21795         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
21796         otherwise).
21797
21798 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
21799
21800         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
21801         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
21802         package.
21803
21804         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
21805         (Register_Receiving_Stub): Add Subp_Info formal parameter.
21806         Update API in placeholder implemetation of s-parint to reflect changes
21807         in distribution runtime library.
21808
21809         * sem_ch3.adb (Expand_Derived_Record): Rename to
21810         Expand_Record_Extension.
21811
21812         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
21813         primitive operations of potentially distributed object types that have
21814         non-controlling anonymous access formals.
21815
21816         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
21817         subprogram.
21818         New implementation of expansion for remote access-to-subprogram types,
21819         based on the RACW infrastructure.
21820         This version of sem_dist is compatible with PolyORB/DSA as well as
21821         GLADE.
21822
21823         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
21824         Asynchrronous that applies to a remote access-to-subprogram type, mark
21825         the underlying RACW type as asynchronous.
21826
21827         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
21828          __gnat_using_gnu_linker to 1.
21829
21830         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
21831         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
21832         GNAT.Perfect_Hash_Generators, and remove the empty
21833         GNAT.Perfect_Hash package.
21834
21835         * atree.adb: Minor reformatting
21836
21837         * exp_ch3.adb (Expand_Derived_Record): Rename to
21838         Expand_Record_Extension.
21839         (Build_Record_Init_Proc.Build_Assignment): The default expression in
21840         a component declaration must remain attached at that point in the
21841         tree so New_Copy_Tree copies it if the enclosing record type is derived.
21842         It is therefore necessary to take a copy of the expression when building
21843         the corresponding assignment statement in the init proc.
21844         As a side effect, in the case of a derived record type, we now see the
21845         original expression, without any rewriting that could have occurred
21846         during expansion of the ancestor type's init proc, and we do not need
21847         to go back to Original_Node.
21848
21849         * exp_ch3.ads (Expand_Derived_Record): Rename to
21850         Expand_Record_Extension.
21851
21852         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
21853         Returns the RACW type used to implement a remote access-to-subprogram
21854         type.
21855         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
21856         New subprograms. Used to create a proxy tagged object for a remote
21857         subprogram. The proxy object is used as the designated object
21858         for RAS values on the same partition (unless All_Calls_Remote applies).
21859         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
21860         System.Partition_Interface.Get_Unique_Remote_Pointer.
21861         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
21862         Renamed from Add_RAS_*_Attribute.
21863         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
21864         subprograms.
21865         New implementation of expansion for remote access-to-subprogram types,
21866         based on the RACW infrastructure.
21867
21868         * exp_dist.ads (Copy_Specification): Update comment to note that this
21869         function can copy the specification from either a subprogram
21870         specification or an access-to-subprogram type definition.
21871
21872 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
21873
21874         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
21875         in an instance, between an explicit subprogram an one inherited from a
21876         type derived from an actual.
21877
21878         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
21879         add a polling call if the subprogram is to be inlined by the back-end,
21880         to avoid repeated calls with multiple inlinings.
21881
21882         * checks.adb (Apply_Alignment_Check): If the expression in the address
21883         clause is a call whose name is not a static entity (e.g. a dispatching
21884         call), treat as dynamic.
21885
21886 2004-09-09  Robert Dewar  <dewar@gnat.com>
21887
21888         * g-trasym.ads: Minor reformatting
21889
21890         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
21891         packed arrays, since unused bits are expected to be zero for a
21892         comparison.
21893
21894 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
21895
21896         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
21897         comment.
21898
21899 2004-09-09  Pascal Obry  <obry@gnat.com>
21900
21901         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
21902         enable map file generation. Add the right option to generate the map
21903         file if Map_File is set to True.
21904
21905         * gnatdll.adb (Gen_Map_File): New variable.
21906         (Syntax): Add info about new -m (Map_File) option.
21907         (Parse_Command_Line): Add support for -m option.
21908         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
21909         Minor reformatting.
21910
21911 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
21912
21913         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
21914         new gnatdist implementation.
21915         Define a subpackage isolating the output routines specific to this
21916         verbose mode.
21917
21918 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
21919
21920         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
21921
21922         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
21923
21924 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
21925
21926         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
21927         internal unit.
21928
21929         * opt.ads: Add Ada_Version_Runtime constant used to decide which
21930         version of the language is used to compile the run time.
21931
21932 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
21933
21934         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
21935         of variable length temporaries for function return now that the
21936         back-end and gigi support it.
21937
21938 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21939
21940         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
21941
21942         * trans.c (struct stmt_group): Delete field GLOBAL.
21943         (gnat_init_stmt_group): Do not initialize it.
21944         (call_to_gnu): Use save_expr, not protect_multiple_eval.
21945         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
21946         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
21947         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
21948         (start_stmt_group): Likewise.
21949         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
21950
21951         * utils2.c (ggc.h): Include.
21952         (build_call_raise): Call build_int_cst, not build_int_2.
21953
21954         * utils.c (gnat_init_decl_processing): Fix arg to
21955         build_common_tree_nodes.
21956         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
21957         (gnat_define_builtin): Set built_in_decls.
21958         (init_gigi_decls): Call build_int_cst, not build_int_2.
21959
21960         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
21961         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
21962         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
21963         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
21964         SET_TYPE_MODULE): Use them.
21965         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
21966         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
21967         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
21968         SET_TYPE_ADA_SIZE): Likewise.
21969         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
21970         (DECL_CONST_CORRESPONDING_VAR,
21971         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
21972         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
21973         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
21974         (TYPE_RM_SIZE_NUM): New macro.
21975         (TYPE_RM_SIZE): Modified to use above.
21976
21977         * cuintp.c: (build_cst_from_int): New function.
21978         (UI_To_gnu): Use it.
21979
21980         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
21981         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
21982         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
21983         MIN_EXPR for the size, copy it into new.
21984
21985 2004-09-01  Robert Dewar  <dewar@gnat.com>
21986
21987         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
21988         packed indexed component where array is an IN OUT formal. This
21989         generated garbage code previously.
21990
21991         * gnat_ugn.texi: Document -fverbose-asm
21992
21993         * gnat-style.texi: Minor updates (note that boolean constants and
21994         variables are joined with AND/OR rather than short circuit forms).
21995
21996 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
21997
21998         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
21999         it is an upward conversion of an untagged type with no representation
22000         change.
22001
22002 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
22003
22004         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
22005         System.Partition_Interface.
22006
22007         * checks.adb (Apply_Access_Checks): Do not generate checks when
22008         expander is not active (but check for unset reference to prefix of
22009         dereference).
22010
22011         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
22012         pragma Debug as an if statement with a constant condition, for
22013         consistent treatment of entity references contained within the
22014         enclosed procedure call.
22015
22016 2004-09-01  Vincent Celier  <celier@gnat.com>
22017
22018         * bindgen.adb: (Set_EA_Last): New procedure
22019         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
22020         Set_EA_Last.
22021         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
22022         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
22023         linked without errors.
22024         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
22025         ST and EA.
22026         (Gen_Exception_Table_C): Correct same bugs
22027
22028         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
22029
22030         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
22031         on Windows, make sure that the drive letter is in upper case.
22032
22033         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
22034         Windows, when the drive letter is added and Case_Sensitive is True, the
22035         drive letter is forced to upper case.
22036
22037         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
22038         to Options_2 for the call to MLib.Utl.Gcc.
22039
22040         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
22041         directory separator when defining BASE_DIR.
22042
22043 2004-09-01  Pascal Obry  <obry@gnat.com>
22044
22045         * gprcmd.adb (Extend): Do not output trailing directory separator. This
22046         is not needed and it confuses Windows GNU/make which does not report
22047         directory terminated by a slash as a directory.
22048         (gprcmd): Idem for "pwd" internal command.
22049
22050         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
22051         target names rewrite to fix regressions with recent version of
22052         GNU/make. Starting with GNU/make 3.80 the pipe character was not
22053         handled properly anymore.
22054
22055 2004-09-01  Andreas Schwab  <schwab@suse.de>
22056
22057         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
22058         * raise.c [!IN_RTS]: Undef abort.
22059
22060 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
22061
22062         * utils2.c (build_allocator): Use ssize_int.
22063
22064         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
22065
22066 2004-08-27  Andreas Schwab  <schwab@suse.de>
22067
22068         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
22069
22070 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
22071             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22072
22073         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
22074
22075 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
22076
22077         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
22078         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
22079         * utils.c (init_gigi_decls): Likewise.
22080         * utils2.c (build_call_raise, build_allocator): Likewise.
22081
22082 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
22083
22084         * utils.c (gnat_init_decl_processing): Adjust
22085         build_common_tree_nodes call.
22086
22087 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
22088
22089         * utils2.c (build_allocator): Use build_int_cst for negative
22090         size types.
22091
22092 2004-08-18  Richard Henderson  <rth@redhat.com>
22093
22094         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
22095
22096 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
22097
22098         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
22099         call.s
22100         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
22101         (gnat_to_gnu): Likewise.
22102
22103 2004-08-16  Pascal Obry  <obry@gnat.com>
22104
22105         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
22106         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
22107         option and not mdll anymore. Update comment.
22108
22109 2004-08-16  Pascal Obry  <obry@gnat.com>
22110
22111         * bld.adb (Put_Include_Project): Properly handle directory separators
22112         on Windows.
22113
22114 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
22115
22116         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
22117         decreasing the number of allocated junk nodes while searching for the
22118         appropriate subprogram.
22119
22120 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
22121
22122         * cuintp.c (UI_To_gnu): Use build_int_cst..
22123         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
22124         * utils.c (init_gigi_decls): Likewise.
22125         * utils2.c (build_call_raise): Likewise.
22126
22127 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
22128
22129         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
22130         for a global aliased object with a variable size and an unconstrained
22131         nominal subtype, pretend there is no initializer if the one we have is
22132         incomplete, and avoid referencing an inexistant component in there. The
22133         part we have will be rebuilt anyway and the reference may confuse
22134         further operations.
22135
22136 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
22137
22138         * einfo.ads: Minor reformatting
22139
22140         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
22141         restrictions in the ALI if we only want to warn about violations.
22142
22143 2004-08-13  Vincent Celier  <celier@gnat.com>
22144
22145         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
22146         when creating a new Unit_Record in table Units.
22147
22148         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
22149         that are violated, if any.
22150
22151         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
22152         add directory separator if path already ends with a directory separator.
22153
22154 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
22155
22156         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
22157         unit, this is an attempt to inline a construct that is not available in
22158         the current restricted mode, so abort rather than trying to continue.
22159
22160         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
22161         discriminants that rename those of the parent, recover names of
22162         original discriminants for the constraint on the full view of the
22163         parent.
22164         (Complete_Private_Subtype): Do not create a subtype declaration if the
22165         subtype is an itype.
22166
22167         * gnat_rm.texi: Added section on implementation of discriminated
22168         records with default values for discriminants.
22169
22170 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
22171
22172         PR ada/15601
22173         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
22174         the second operand is overloaded.
22175
22176 2004-08-10  Richard Henderson  <rth@redhat.com>
22177
22178         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
22179         add __builtin_alloca.
22180
22181 2004-08-10  Richard Henderson  <rth@redhat.com>
22182
22183         * config-lang.in (boot_language): Yes.
22184
22185 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
22186
22187         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
22188         from complaining on potential uninitialized reference.
22189         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
22190         new specification and test explicitly for non-zero return value.
22191
22192         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
22193         returning C.int, to avoid using a derived boolean type.
22194
22195         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
22196         Duplicate_Subexpr_No_Checks in preference to direct use of
22197         Remove_Side_Effects and New_Copy_Tree.
22198         Clear Comes_From_Source on prefix of 'Size attribute reference.
22199
22200         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
22201         g-socthi-vxworks.adb: Change calls to
22202         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
22203         and test explicitly for non-zero return value.
22204
22205         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
22206         (Is_Socket_In_Set): Declare imported function as returning C.int, to
22207         avoid using a derived boolean type.
22208
22209 2004-08-09  Albert Lee  <lee@gnat.com>
22210
22211         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
22212
22213 2004-08-09  Pascal Obry  <obry@gnat.com>
22214
22215         * gnat_ugn.texi: Document new way to build DLLs on Windows using
22216         GCC's -shared option.
22217
22218         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
22219         Options_2 parameter (options put after object files).
22220
22221 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
22222
22223         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
22224         ignore overflows on low and high bounds of an index to also account for
22225         differences in signedness between sizetype and gnu_index_subtype.
22226         These are as legitimate as the ones caused by a lower TYPE_PRECISION
22227         on sizetype.
22228
22229 2004-08-09  Robert Dewar  <dewar@gnat.com>
22230
22231         * s-solita.ads, s-solita.adb: Minor reformatting
22232
22233         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
22234         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
22235         obsolescent section
22236         Add note that No_Implicit_Conditionals does not suppress
22237         run time constraint checks.
22238
22239         * vms_conv.ads: Minor reformatting
22240
22241         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
22242         and necessary for following change).
22243         (Mark): Return new format Mark_Id containing sec stack address
22244         (Release): Use sec stack address from Mark_Id avoiding Self call
22245
22246         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
22247         pointer (cleanup and necessary for following change).
22248         Define Mark_Id as record containing address of secondary stack, that way
22249         Release does not need to find the stack again, decreasing the number of
22250         calls to Self and improving efficiency.
22251
22252         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
22253
22254         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
22255         case variable into the individual case branches when possible.
22256
22257         * sem_ch11.adb: Minor reformatting
22258
22259         * prj.ads: Correct spelling of suffixs
22260
22261         * prj-nmsc.adb: Minor reformatting
22262         Correct spelling suffixs throughout (also in identifiers)
22263
22264         * freeze.adb: Minor spelling correction
22265
22266         * exp_ch2.adb: Cleanups to handling of Current_Value
22267         (no functional effect).
22268
22269         * bld.adb: Correct spelling of suffixs
22270
22271         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
22272
22273 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
22274
22275         PR ada/15408
22276         * sem_ch7.adb (Install_Private_Declarations): In the body of the
22277         package or of a child, private entities are both immediately_visible
22278         and not hidden.
22279
22280 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
22281
22282         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
22283         there are no range checks on the value of the literal.
22284
22285         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
22286         wrapped is the triggering alternative of an asynchronous select, action
22287         statements mustbe inserted before the select itself.
22288
22289         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
22290         case where the prefix is a protected function call.
22291         (Resolve_Attribute, case 'Access): The attribute reference on a
22292         subprogram is legal in a generic body if the subprogram is declared
22293         elsewhere.
22294
22295 2004-08-09  Vincent Celier  <celier@gnat.com>
22296
22297         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
22298         languages, otherwise building the library may fail with unresolved
22299         symbols.
22300         (Compile_Sources): Do not build libraries if -c switch is used
22301
22302         * gnatlink.adb (Process_Args): New switches -M and -Mmap
22303         (Write_Usage): If map file creation is supported, output new switches
22304         -M and -Mmap.
22305         (Gnatlink): When -M is specified, add the necessary switch(es) to the
22306         gcc call, when supported.
22307
22308         * Makefile.in: Added indepsw.o to the object list for gnatlink
22309         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
22310
22311         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
22312         indepsw.adb, indepsw.ads: New files.
22313
22314 2004-08-09  Bernard Banner  <banner@gnat.com>
22315
22316         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
22317
22318         * Makefile.in: add section for vxworks x86
22319
22320 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
22321
22322         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
22323         per-object constrained components where the discriminant is of an
22324         Access type.
22325         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
22326         the parent initialization procedure for derived Unchecked_Unions.
22327         Instead, derived Unchecked_Unions build their own initialization
22328         procedure.
22329         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
22330         Check the body of the subprogram for details.
22331         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
22332         functions for derived Unchecked_Union types by introducing a condition.
22333         Allow the creation of TSS equality functions for Unchecked_Unions.
22334         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
22335         Add formal parameter Discr to function signature. Discr is used to
22336         control the generated case statement for Unchecked_Union types.
22337         (Make_Eq_If): Rename formal parameter Node to E in function signature.
22338
22339         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
22340         Unchecked_Unions.
22341         Check the body of the subprogram for details.
22342         (Expand_Composite_Equality): Augment composite type equality to include
22343         correct handling of Unchecked_Union components.
22344         (Expand_N_In): Add condition to detect illegal membership tests when the
22345         subtype mark is a constrained Unchecked_Union and the expression lacks
22346         inferable discriminants, and build a Raise_Program_Error node.
22347         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
22348         to detect types that contain components of unconstrained Unchecked_Union
22349         subtype. Add condition to detect equality between types that have an
22350         unconstrained Unchecked_Union component, and build a Raise_Program_Error
22351         node. Add condition to detect equality between Unchecked_Union types
22352         that lack inferable discriminants, and build a Raise_Program_Error node.
22353         Otherwise build a TSS equality function call.
22354         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
22355         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
22356         with the operand lacking inferable discriminants, and build a Raise_
22357         Program_Error node.
22358         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
22359         composite equality.
22360         (Has_Inferable_Discriminants): Implement new predicate for objects and
22361         expressions of Unchecked_Union type. Check the body of subprogram for
22362         details.
22363         (Has_Unconstrained_UU_Components): Add function
22364         Component_Is_Unconstrained_UU. It is used to detect whether a single
22365         component is of an unconstrained Unchecked_Union subtype. Add function
22366         Variant_Is_Unconstrained_UU. It is used to detect whether a single
22367         component inside a variant is of an unconstrained Unchecked_Union type.
22368
22369         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
22370         inferred discriminant values. Add condition to generate a case
22371         statement with an inferred discriminant as the switch.
22372         (Make_Component_List_Assign): Introduce a Boolean flag that determines
22373         the behaviour of the subprogram in the presence of an Unchecked_Union.
22374         Add condition to trigger the usage of the inferred discriminant value
22375         as the generated case statement switch.
22376         (Make_Field_Assign): Introduce a Boolean flag that determines the
22377         behaviour of the subprogram in the presence of an Unchecked_Union. Add
22378         condition to trigger the usage of the inferred discriminant value as
22379         the right-hand side of the generated assignment.
22380
22381         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
22382         parameter generation when dealing with Unchecked_Unions.
22383
22384         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
22385         checks for Unchecked_Unions.
22386
22387         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
22388
22389         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
22390         Raise_Program_Error nodes for the execution of Read and Write
22391         attributes of Unchecked_Union types and the execution of Input and
22392         Output attributes of Unchecked_Union types that lack default
22393         discriminant values.
22394
22395         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
22396         Unchecked_Union. Add procedure Check_Component. It is used to inspect
22397         per-object constrained components of Unchecked_Unions for being
22398         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
22399         check individual components withing a variant.
22400
22401         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
22402         comparison of Unchecked_Unions.
22403         (Resolve_Equality_OP): Remove guard that prevents equality between
22404         Unchecked_Unions.
22405
22406         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
22407         of component subtypes for Unchecked_Union components.
22408         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
22409         since it is the actual subtype.
22410
22411         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
22412         pass of Unchecked_Union subtypes as generic actuals to formal types
22413         that lack known_discriminant_parts or that are derived Unchecked_Union
22414         types, and do nothing. In any other case, produce an error message.
22415
22416         * sem_ch3.adb (Analyze_Component_Declaration): Add function
22417         Contains_POC. It determines whether a constraint uses the discriminant
22418         of an enclosing record type.
22419         Add condition to detect per-object constrained component and set the
22420         appropriate flag.
22421         (Derived_Type_Declaration): Remove guard that prevents derivation from
22422         Unchecked_Union types.
22423         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
22424         Union subtypes.
22425
22426         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
22427         references to Unchecked_Union discriminants.
22428
22429         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
22430         formal generation when dealing with Unchecked_Unions.
22431         (Set_Actual_Subtypes): Add condition to prevent generation of actual
22432         subtypes for Unchecked_Unions.
22433
22434         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
22435         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
22436         completions of discriminated partial views by Unchecked_Unions and
22437         produce an error message.
22438
22439 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22440
22441         * trans.c (struct stmt_group): New field, GLOBAL.
22442         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
22443         (struct elab_info): New struct.
22444         (elab_info_list, gnu_elab_proc_stack): New variables.
22445         (Compilation_Unit_to_gnu): New procedure.
22446         (gigi): Call it and also handle elaboration procs we've saved.
22447         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
22448         global field from parent.
22449         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
22450         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
22451         (start_stmt_group): Initialize global field from parent.
22452         (add_decl_expr): Set to global for current statement group.
22453         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
22454         post.
22455
22456         * utils.c (global_bindings_p): True when no current_function_decl; no
22457         longer check current_binding_level.
22458
22459 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
22460
22461         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
22462         choice.
22463
22464         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
22465
22466 2004-08-06  Andreas Schwab  <schwab@suse.de>
22467
22468         * utils.c (gnat_define_builtin): Remove second parameter of
22469         make_decl_rtl.
22470         (begin_subprog_body): Likewise.
22471
22472 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
22473
22474         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
22475         optimization, not supported by the tree-ssa back-end.
22476
22477 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
22478
22479         * s-mastop-irix.adb: Update comments.
22480
22481         * a-except.adb (Exception_Information): Raise Constraint_Error if
22482         exception Id is Null_Id.
22483         This is required behavior, which is more reliably and clearly checked
22484         at the top level interface level.
22485
22486 2004-07-26  Javier Miranda  <miranda@gnat.com>
22487
22488         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
22489         call if a component has no default_expression and the box is used.
22490
22491         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
22492         default_expression and you use box, it behaves as if you had declared a
22493         stand-alone object.
22494         (Resolve_Record_Aggregate): If a component has no default_expression and
22495         you use box, it behaves as if you had declared a stand-alone object.
22496
22497         * sem_ch10.adb (Install_Siblings): Do not make visible the private
22498         entities of private-with siblings.
22499
22500 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
22501
22502         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
22503         for a component of an itype, set the parent pointer for analysis,
22504         there is no list in which to insert it.
22505
22506         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
22507         bona-fide renamings, not for inherited operations.
22508
22509         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
22510         actual for a formal that is an access parameter, create local
22511         finalization list even if the expression is not an aggregate.
22512
22513 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
22514
22515         PR ada/16213
22516         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
22517         Diagnose properly illegal subprogram renamings that are library units.
22518
22519 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
22520
22521         PR ada/15588
22522         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
22523         conversion rewritten as an unchecked conversion, check that original
22524         expression is a variable.
22525
22526         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
22527         unchecked_conversion, create new node rather than rewriting in place,
22528         to preserve original construct.
22529
22530 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22531
22532         * gigi.h (gnat_expand_body): Deleted.
22533
22534         * Make-lang.in: (trans.o): Depends on function.h.
22535
22536         * misc.c: (gnat_expand_body): Moved to here.
22537
22538         * trans.c (gnat_expand_body_1): Deleted.
22539         (gnat_expand_body): Moved from here.
22540         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
22541         (add_stmt): Check for marked visited with global_bindings_p.
22542         (gnat_gimplify_expr, case COMPONENT_REF): New case.
22543         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
22544
22545         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
22546         VIEW_CONVERT_EXPR if not operation type.
22547
22548         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
22549         fat pointer.
22550
22551         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
22552         changes: reformatting of negation operators, removing unneeded
22553         inequality comparison with zero, converting equality comparisons with
22554         zero to negations, changing int/0/1 to bool/false/true, replace calls
22555         to gigi_abort with abort, and various other similar changes.
22556
22557 2004-07-26  Vincent Celier  <celier@gnat.com>
22558
22559         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
22560         "setup".
22561
22562         * make.adb (Gnatmake): Fail when a library is not present and there is
22563         no object directory.
22564
22565         * mlib-prj.adb (Check_Library): No need to check if the library needs
22566         to be rebuilt if there is no object directory, hence no object files
22567         to build the library.
22568
22569         * opt.ads (Setup_Projects): New Boolean flag.
22570
22571         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
22572         Location.
22573         Create directory when Kind /= "" and in "gnat setup". Report error if
22574         directory cannot be created.
22575         (Ada_Check): Create library interface copy dir if it does not exist
22576         and we are in "gnat setup".
22577         (Find_Sources): No error if in "gnat setup" and no Ada sources were
22578         found.
22579         (Language_Independent_Check): Create object directory, exec directory
22580         and/or library directory if they do not exist and we are in
22581         "gnat setup".
22582
22583         * vms_conv.ads: (Command_Type): New command Setup.
22584
22585         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
22586
22587         * vms_data.ads: Add qualifiers/switches for new built-in command
22588         "setup".
22589
22590 2004-07-25  Richard Henderson  <rth@redhat.com>
22591
22592         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
22593         DECL_IGNORED_P on RESULT_DECL.
22594
22595 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
22596
22597         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
22598         allocation and potentially overflowing update with
22599         Tailored_Exception_Information. Use the sec-stack free procedural
22600         interface to output Exception_Information instead.
22601
22602         * a-except.adb (To_Stderr): New subprogram for character, and string
22603         version moved from a-exextr to be visible from other separate units.
22604         (Tailored_Exception_Information): Remove the procedural version,
22605         previously used by the default Last_Chance_Handler and not any more.
22606         Adjust various comments.
22607
22608         * a-exexda.adb: Generalize the exception information procedural
22609         interface, to minimize the use of secondary stack and the need for
22610         local buffers when the info is to be output to stderr:
22611         (Address_Image): Removed.
22612         (Append_Info_Character): New subprogram, checking for overflows and
22613         outputing to stderr if buffer to fill is of length 0.
22614         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
22615         (Append_Info_Address, Append_Info_Exception_Name,
22616         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
22617         Append_Info_Basic_Exception_Traceback,
22618         Append_Info_Exception_Information): New subprograms.
22619         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
22620         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
22621         Exception_Info_Maxlength, Exception_Name_Length,
22622         Exception_Message_Length): New subprograms.
22623         (Exception_Information): Use Append_Info_Exception_Information.
22624         (Tailored_Exception_Information): Use
22625         Append_Info_Basic_Exception_Information.
22626         Export services for the default Last_Chance_Handler.
22627
22628         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
22629         other separate units.
22630
22631 2004-07-20  Vincent Celier  <celier@gnat.com>
22632
22633         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
22634
22635 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
22636
22637         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
22638         emit itype references for the designated types of component types that
22639         are declared outside of the full record declaration, and that may
22640         denote a partial view of that record type.
22641
22642 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
22643
22644         PR ada/15607
22645         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
22646         which is the designated type in an access component declaration, to the
22647         list of incomplete dependents of the parent type, to avoid elaboration
22648         issues with out-of-scope subtypes.
22649         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
22650         full view of the parent.
22651
22652 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
22653
22654         PR ada/15610
22655         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
22656         entities that are hidden, such as references to generic actuals
22657         outside an instance.
22658
22659 2004-07-20  Javier Miranda  <miranda@gnat.com>
22660
22661         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
22662         support to the new notation.
22663         (Analyze_Selected_Component): Add call to Try_Object_Operation.
22664
22665 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
22666
22667         * s-taprob.adb: Adding the elaboration code required for initializing
22668         the tasking soft links that are common to the full and the restricted
22669         run times.
22670
22671         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
22672         restricted run time has been moved to the package
22673         System.Soft_Links.Tasking.
22674
22675         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
22676         restricted run time has been moved to the package
22677         System.Soft_Links.Tasking.
22678
22679         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
22680
22681         * s-solita.ads, s-solita.adb: New files.
22682
22683 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22684
22685         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
22686         Case_Statement_to_gnu): Split off from gnat_to_gnu.
22687         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
22688         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
22689         Exception_Handler_to_gnu_zcx): Likewise.
22690
22691 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
22692
22693         * gigi.h (builtin_function): Declare.
22694
22695 2004-07-15  Robert Dewar  <dewar@gnat.com>
22696
22697         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
22698         reformatting
22699
22700         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
22701         access values as an example of a warning.
22702
22703         * gnat_rm.texi: Document new attribute Has_Access_Values
22704
22705         * gnat-style.texi: Document that box comments belong on nested
22706         subprograms
22707
22708         * sem_util.ads (Has_Access_Values): Improved documentation
22709
22710         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
22711
22712         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
22713         (Process_Interface_Name): Call to this new procedure
22714         (Set_Extended_Import_Export_External_Name): Call to this new procedure
22715
22716         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
22717
22718         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
22719
22720         * einfo.ads: Minor comment typo fixed
22721
22722 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
22723
22724         * snames.adb: Add _atcb.
22725
22726         * snames.ads: Add Name_uATCB.
22727
22728         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
22729         (in the expanded code) when using the restricted run time.
22730
22731         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
22732         a in parameter in order to allow ATCBs to be preallocated (in the
22733         expanded code).
22734
22735         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
22736         order to allow ATCBs to be preallocated. In case of error, the ATCB is
22737         deallocated in System.Tasking.Stages.
22738
22739         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
22740         order to allow ATCBs to be preallocated.
22741
22742         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
22743         here. It was previously done in Initialize_ATCB.
22744
22745         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
22746
22747         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
22748         Restricted run time.
22749
22750         * exp_ch3.adb: When using the Restricted run time, pass the
22751         preallocated Ada_Task_Control_Block when creating a task.
22752
22753 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
22754
22755         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
22756         function call that is itself an actual in an enclosing call, diagnose
22757         problem here rather than assuming that resolution will catch it.
22758
22759         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
22760         the local copy of a generic unit for a formal package, and the generic
22761         is a child unit, install private part of ancestors before compiling
22762         private part of spec.
22763
22764         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
22765         use scope entities rather than tree structures, to handle properly
22766         parent units that are instances rewritten as bodies for inlining
22767         purposes.
22768
22769         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
22770         Remove_Parents): Handle properly a parent unit that is an
22771         instantiation, when the unit has been rewritten as a body for inlining
22772         purposes.
22773
22774         * par.adb (Goto_List): Global variable to collect goto statements in a
22775         given unit, for use in detecting natural loops.
22776
22777         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
22778         use in detecting natural loops.
22779
22780         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
22781         backwards goto's, and rewrite as a infinite loop, to improve locality
22782         of temporaries.
22783
22784         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
22785         subcomponent that includes an indexed reference, to prevent the
22786         generation of copies that would miscompile the desired assignment
22787         statement.
22788         (Build_Task_Image_Decls): Add a numeric suffix to
22789         generated name for string variable, to avoid spurious conflicts with
22790         the name of the type of a single protected object.
22791
22792         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
22793         loop with an explicit exit statement, to avoid generating an
22794         out-of-range value with 'Succ leading to spurious constraint_errors
22795         when compiling with -gnatVo.
22796
22797 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
22798
22799         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
22800         might not be analyzed yet, even if its Etype is already set (case of an
22801         unchecked conversion built using Unchecked_Convert_To, for example).
22802         If the prefix has already been analyzed, this will be a nop anyway.
22803
22804         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
22805         controller type, or an assignment of a record type with controlled
22806         components, copy only user data, and leave the finalization chain
22807         pointers untouched.
22808
22809 2004-07-15  Vincent Celier  <celier@gnat.com>
22810
22811         * make.adb (Collect_Arguments): Improve error message when attempting
22812         to compile a source not part of any project, when -x is not used.
22813
22814         * prj.ads: (Defined_Variable_Kind): New subtype
22815
22816         * prj-attr.adb (Register_New_Package): Two new procedures to register
22817         a package with or without its attributes.
22818         (Register_New_Attribute): Mew procedure to register a new attribute in a
22819         package.
22820         New attribute oriented subprograms: Attribute_Node_Id_Of,
22821         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
22822         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
22823         Next_Attribute.
22824         New package oriented subprograms: Package_Node_Id_Of,
22825         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
22826
22827         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
22828         type.
22829         (Package_Node_Id): Now a private, self initialized type
22830         (Register_New_Package): New procedure to register a package with its
22831         attributes.
22832         New attribute oriented subprograms: Attribute_Node_Id_Of,
22833         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
22834         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
22835         Next_Attribute.
22836         New package oriented subprograms: Package_Node_Id_Of,
22837         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
22838
22839         * prj-dect.adb (Parse_Attribute_Declaration,
22840         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
22841
22842         * prj-makr.adb (Make): Parse existing project file before creating
22843         other files. Fail if there was an error during parsing.
22844
22845         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
22846         new spec of Prj.Attr.
22847
22848         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
22849         to new spec of Prj.Attr.
22850
22851 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22852
22853         * utils2.c: Fix typo in comment.
22854
22855 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22856
22857         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
22858         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
22859
22860 2004-07-14  Andreas Schwab  <schwab@suse.de>
22861
22862         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
22863
22864 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22865
22866         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
22867         object type.
22868         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
22869         TYPE_STUB_DECL.
22870
22871         * misc.c (gnat_types_compatible_p): New function.
22872         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
22873         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
22874
22875         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
22876         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
22877         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
22878         (mark_visited): Don't mark dummy type.
22879         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
22880         parameter, we must remove any LJM building from GNU_NAME.
22881         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
22882         (pos_to_constructor): Use int_const_binop.
22883         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
22884         PARM_DECL.
22885
22886         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
22887         (gnat_pushlevel): Set TREE_USE on BLOCK node.
22888         (gnat_install_builtins): Add __builtin_memset.
22889
22890 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
22891
22892         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
22893         for a renaming, stabilize the initialization expression if we are at a
22894         local level.  At the local level, uses of the renaming may be performed
22895         by a direct dereference of the initializing expression, and we don't
22896         want possible variables there to be evaluated for every use.
22897
22898         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
22899         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
22900         them on the way.  Account for the fact that we may introduce side
22901         effects in the process.
22902
22903 2004-07-13  Richard Henderson  <rth@redhat.com>
22904
22905         * misc.c (default_pass_by_ref): Use pass_by_reference.
22906
22907 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
22908
22909         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
22910         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
22911
22912 2004-07-08  Richard Henderson  <rth@redhat.com>
22913
22914         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
22915         commentary.
22916
22917 2004-07-06  Vincent Celier  <celier@gnat.com>
22918
22919         * vms_conv.ads: Minor reformatting.
22920         Alphabetical order for enumerated values of type Command_Type, to have
22921         the command in alphabetical order for the usage.
22922
22923         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
22924         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
22925
22926         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
22927
22928         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
22929         (Add_Archive_Path): Only add the global archive if there is one.
22930         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
22931         or not any object file to put in the global archive, and don't build
22932         a global archive if there is none.
22933         (X_Switches): New table
22934         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
22935         in the X_Switches table, if any.
22936         (Initialize): Make sure the X_Switches table is empty
22937         (Scan_Arg): Record -X switches in table X_Switches
22938
22939         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
22940
22941         * make.adb: Minor comment fix
22942
22943         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
22944         invoked with directory information, add the directory in front of the
22945         path.
22946
22947         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
22948         invoked with directory information, add the directory in front of the
22949         path.
22950
22951         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
22952         when Keep_Temporary_Files is False.
22953         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
22954         directory information, add the directory in front of the path.
22955         When not on VMS, handle new switch -dn before the command to set
22956         Keep_Temporary_Files to True.
22957         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
22958         everywhere.
22959
22960         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
22961         invoked with directory information, add the directory in front of the
22962         path.
22963
22964 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
22965
22966         * snames.ads, snames.adb (Name_Stub): New name for the distributed
22967         systems annex.
22968
22969         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
22970         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
22971
22972         * g-socket.adb (To_Timeval): Fix incorrect conversion of
22973         Selector_Duration to Timeval for the case of 0.0.
22974
22975         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
22976         documentation from Evolve_And_Then.
22977
22978 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
22979
22980         * s-taprop-tru64.adb, s-taprop-os2.adb,
22981         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
22982
22983 2004-07-06  Robert Dewar  <dewar@gnat.com>
22984
22985         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
22986         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
22987         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
22988         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
22989         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
22990         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
22991         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
22992         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
22993         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
22994         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
22995         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
22996         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
22997         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
22998         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
22999         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
23000         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
23001         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
23002         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
23003         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
23004         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
23005         vms_data.ads: Minor reformatting,
23006         Fix bad box comment format.
23007
23008         * gnat_rm.texi: Fix minor grammatical error
23009
23010         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
23011
23012         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
23013         more cases of discriminated records to be recognized as not needing a
23014         secondary stack.
23015         (Has_Access_Values): New function.
23016
23017         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
23018
23019         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
23020         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
23021         with LRM terminology).
23022         Change terminology in comments primitive type => elementary type.
23023
23024 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
23025
23026         PR ada/15602
23027         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
23028         parameters do not impose any requirements on the presence of a body.
23029
23030 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
23031
23032         PR ada/15593
23033         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
23034         compilation unit and is in an open scope at the point of instantiation,
23035         assume that a body may be present later.
23036
23037 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
23038
23039         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
23040         Improve error message when specified size is not supported.
23041
23042         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
23043         is never a primitive operation.
23044
23045 2004-07-05  Andreas Schwab  <schwab@suse.de>
23046
23047         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
23048         RECORD_OR_UNION_CHECK.
23049         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
23050
23051 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
23052
23053         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
23054         dependency on xgnatugn, instead build it via a submake.
23055         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
23056
23057 2004-07-04  Richard Henderson  <rth@redhat.com>
23058
23059         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
23060
23061 2004-07-01  Richard Henderson  <rth@redhat.com>
23062
23063         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
23064         * utils.c (max_size): Likewise.
23065
23066 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23067
23068         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
23069         and rest_of_type_compilation; add arg to create_*_decl.
23070         (annotate_decl_with_node): Deleted.
23071         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
23072         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
23073         (get_current_block_context, gnat_pushdecl): New declarations.
23074         (gnat_init_stmt_group): Likewise.
23075         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
23076         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
23077         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
23078         (gnat_init): Call gnat_init_stmt_group.
23079         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
23080         (gnu_pending_elaboration_list): Deleted.
23081         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
23082         (gigi): Rearrange initialization calls and move some to last above.
23083         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
23084         Delete calls to add_decl_expr; add arg to create_*_decl.
23085         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
23086         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
23087         begin_subprog_body and call it.
23088         Don't push and pop ggc context.
23089         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
23090         (add_stmt): Remove handling of DECL_EXPR from here.
23091         If not in function, mark visited.
23092         (add_decl_expr): Put global at top level.
23093         Check for cases of DECL_INITIAL we have to handle here.
23094         (process_type): Add extra arg to create_type_decl.
23095         (build_unit_elab): Rework to just gimplify.
23096         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
23097         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
23098         (get_pending_elaborations, pending_elaborations_p): Likewise.
23099         (push_pending_elaborations, pop_pending_elaborations): Likewise.
23100         (get_elaboration_location, insert_elaboration_list): Likewise.
23101         (gnat_binding_level): Renamed from ada_binding_level.
23102         (init_gnat_to_gnu): Don't clear pending_elaborations.
23103         (global_bindings_p): Treat as global if no current_binding_level.
23104         (set_current_block_context): New function.
23105         (gnat_pushdecl): Renamed from pushdecl; major rework.
23106         All callers changed.
23107         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
23108         (finish_record_type): Call call pushdecl for stub decl.
23109         (function_nesting_depth): Deleted.
23110         (begin_subprog_body): Delete obsolete code.
23111         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
23112
23113 2004-06-28  Robert Dewar  <dewar@gnat.com>
23114
23115         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23116         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
23117         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
23118         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
23119         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
23120
23121         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
23122         deal with problem of inefficient slices on machines with strict
23123         alignment, when the slice is a component of a composite.
23124
23125         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
23126         machines, we need the check there as well.
23127
23128 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
23129
23130         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
23131         determine safe copying direction for overlapping slice assignments
23132         when component is controlled.
23133
23134         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
23135         formal derived type in the actual for a formal package are visible in
23136         the enclosing instance.
23137
23138 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
23139
23140         PR ada/15600
23141         * sem_util.adb (Trace_Components): Diagnose properly an illegal
23142         circularity involving a private type whose completion includes a
23143         self-referential component.
23144         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
23145         renaming or an instantiation from an implicit derived operation.
23146
23147 2004-06-28  Pascal Obry  <obry@gnat.com>
23148
23149         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
23150         DLL.
23151         (Library_File_Name_For): Idem.
23152
23153 2004-06-28  Matthew Gingell  <gingell@gnat.com>
23154
23155         * g-traceb.ads: Add explanatory note on the format of addresses
23156         expected by addr2line.
23157
23158 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
23159
23160         * Makefile.in: Force debugging information on s-tasdeb.adb,
23161         a-except.adb and s-assert.adb needed by the debugger.
23162
23163 2004-06-28  Vincent Celier  <celier@gnat.com>
23164
23165         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
23166         Need_To_Build_Lib.
23167         (Gnatmake): Ditto.
23168
23169         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
23170
23171         * prj.adb: Minor reformatting
23172         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
23173
23174         * prj.ads: Comment updates
23175         Minor reformatting
23176         (Project_Data): Change Flag1 to Need_To_Build_Lib.
23177         Remove Flag2: not used.
23178
23179         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
23180         declaration.
23181
23182         * gnat_ugn.texi: Put a "null;" declaration in one project file example
23183
23184         * gnat_rm.texi: Document Empty declarations "null;".
23185
23186         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
23187         front of the linker options.
23188         (Link_Foreign): Put the global archives and the libraries in front of
23189         the linker options.
23190
23191 2004-06-28  Javier Miranda  <miranda@gnat.com>
23192
23193         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
23194         (RTU_Loaded): Code cleanup
23195         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
23196         withed predefined units.
23197
23198         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
23199         explicitly withed predefined units.
23200         Fix typo in comment
23201
23202         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
23203         explicitly withed predefined units.
23204
23205 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23206
23207         * ada-tree.def (DECL_STMT): Deleted.
23208         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
23209         (DECL_STMT_VAR): Deleted.
23210         * decl.c: add_decl_stmt now add_decl_expr.
23211         * gigi.h: Likewise.
23212         * trans.c: Likewise.
23213         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
23214         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
23215         (add_stmt): Only handle padded type here.
23216         (add_stmt_with_node): Allow gnat_node to not be present.
23217         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
23218         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
23219         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
23220         make a SAVE_EXPR for the entire fat pointer.
23221         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
23222         (create_index_type): Make a DECL_EXPR.
23223         (end_subprog_body): Don't call allocate_struct_function here but
23224         do clear cfun.
23225
23226 2004-06-25  Pascal Obry  <obry@gnat.com>
23227
23228         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
23229         Relocatable from Build_Dynamic_Library call.
23230
23231         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
23232         Relocatable are now synonym.
23233
23234         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
23235
23236         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
23237         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
23238         call.
23239
23240         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
23241         Lib_Address and Relocatable.
23242         (Default_DLL_Address): Removed.
23243
23244         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23245         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23246         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
23247         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
23248         (Default_DLL_Address): Removed.
23249
23250         * mlib-tgt-mingw.adb: Ditto.
23251         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
23252
23253         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
23254         the initial thread stack size.
23255
23256         * a-strmap.ads: Move package L to private part as it is not used in
23257         the spec. Found while reading code.
23258
23259 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
23260
23261         * tracebak.c: Introduce support for a GCC infrastructure based
23262         implementation of __gnat_backtrace.
23263
23264         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
23265         any more. Use accessors instead. This eases maintenance and relaxes
23266         some alignment constraints.
23267         (_GNAT_Exception structure): Remove the Ada specific fields
23268         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
23269         a-exexpr.adb.
23270         (is_handled_by, __gnat_eh_personality): Replace component references to
23271         exception structure by use of the new accessors.
23272
23273         * init.c (__gnat_initialize): Adjust comments to match the just
23274         reverted meaning of the -static link-time option.
23275
23276         * adaint.c (convert_addresses): Arrange not to define a stub for
23277         mips-irix any more, as we now want to rely on a real version from a
23278         recent libaddr2line.
23279
23280         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
23281         the personality routine can use them and not have to rely on a C
23282         counterpart of the record anymore. This simplifies maintenance and
23283         relaxes the constraint of having Standard'Maximum_Alignment match
23284         BIGGEST_ALIGNMENT.
23285         Update comments, and add a section on the common header alignment issue.
23286
23287 2004-06-25  Geert Bosch  <bosch@gnat.com>
23288
23289         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
23290         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
23291
23292 2004-06-25  Robert Dewar  <dewar@gnat.com>
23293
23294         * gnat_rm.texi: Fix section on component clauses to indicate that the
23295         restriction on byte boundary placement still applies for bit packed
23296         arrays.
23297         Add comment on stack usage from Initialize_Scalars
23298
23299         * gnat_ugn.texi: Add documentation for -gnatyLnnn
23300
23301         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
23302         limiting nesting level.
23303
23304         * usage.adb: Add line for -gnatyLnnn switch
23305
23306         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
23307         sem_ch13.adb, exp_aggr.adb: Minor reformatting
23308
23309         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
23310         type as well as on the subtype. This corrects a problem in freeze in
23311         setting alignments of atomic types.
23312
23313         * sem_eval.ads: Minor comment typo fixed
23314
23315         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
23316         level.  Minor reformatting.
23317
23318         * fname.adb (Is_Predefined_File_Name): Require a letter after the
23319         minus sign. This means that file names like a--b.adb will not be
23320         considered predefined.
23321
23322         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
23323         record Test new flag and give diagnostic for bad component clause.
23324         (Freeze_Entity): Set alignment of array from component alignment in
23325         cases where this is safe to do.
23326
23327         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
23328         arrays.
23329
23330         * cstand.adb: (Create_Standard): Set alignment of String to 1
23331
23332         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
23333
23334         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
23335         code in the common constrained array cases.
23336
23337         * a-storio.adb: Change implementation to avoid possible alignment
23338         problems on machines requiring strict alignment (data should be moved
23339         as type Buffer, not type Elmt).
23340
23341         * checks.adb (Apply_Array_Size_Check): Improve these checks by
23342         killing the overflow checks which we really do not need (64-bits is
23343         enough).
23344
23345 2004-06-25  Vincent Celier  <celier@gnat.com>
23346
23347         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
23348         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
23349         inconditionally for the main project.
23350         (Recursive_Add_Archives.Add_Archive_Path): New procedure
23351         (Link_Executables.Check_Time_Stamps): New procedure
23352         (Link_Executables.Link_Foreign): New procedure
23353         Changes made to reduce nesting level of this package
23354         (Check): New procedure
23355         (Add_Switches): When not in quiet output, check that a switch is not
23356         the concatenation of several valid switches. If it is, issue a warning.
23357         (Build_Global_Archive): If the global archive is rebuilt, linking need
23358         to be done.
23359         (Compile_Sources): Rebuilding a library archive does not imply
23360         rebuilding the global archive.
23361         (Build_Global_Archive): New procedure
23362         (Build_Library): New name for Build_Archive, now only for library
23363         project
23364         (Check_Archive_Builder): New procedure
23365         (Create_Global_Archive_Dependency_File): New procedure
23366         (Gprmake): Call Build_Global_Archive before linking
23367         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
23368         throughout.
23369         (Scan_Arg): Display the Copyright notice when -v is used
23370
23371         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
23372         for gnatls.
23373
23374         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
23375         COMPILE.
23376         Add new GNAT LIST qualifier /FILES=
23377         Added qualifier /DIRECTORY= to GNAT METRIC
23378         Added qualifier /FILES= to GNAT METRIC
23379         Added qualifier /FILES to GNAT PRETTY
23380
23381         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
23382         to take into account both versions of the switch.
23383
23384         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
23385         always be the last switch to the gcc driver. Disable switch storing so
23386         that switches automatically added by the gcc driver are not put in the
23387         ALI file.
23388
23389         * prj.adb (Project_Empty): Take into account changes in components of
23390         Project_Data.
23391
23392         * prj.ads (Languages_Processed): New enumaration value All_Languages.
23393
23394         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
23395         used. Split Boolean component Ada_Sources_Present in two Boolean
23396         components Ada_Sources_Present and Other_Sources_Present.
23397         Minor reformatting
23398
23399         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
23400         instead of Sources_Present.
23401         (Set_Ada_Paths.Add.Recursive_Add): Ditto
23402
23403         * prj-nmsc.adb: Minor reformatting
23404         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
23405         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
23406         Check_Ada_Naming_Scheme.
23407         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
23408         throughout.
23409
23410         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
23411         In_Limited.
23412         Make sure that all cycles where there is at least one "limited with"
23413         are detected.
23414         (Parse_Single_Project): New Boolean parameter In_Limited
23415
23416         * prj-proc.adb (Recursive_Check): When Process_Languages is
23417         All_Languages, call first Prj.Nmsc.Ada_Check, then
23418         Prj.Nmsc.Other_Languages_Check.
23419
23420         * prj-proc.adb (Process): Use Ada_Sources_Present or
23421         Other_Sources_Present (instead of Sources_Present) depending on
23422         Process_Languages.
23423
23424         * lang-specs.h: Keep -g and -m switches in the same order, and as the
23425         last switches.
23426
23427         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
23428         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
23429         False.
23430         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
23431         False.
23432
23433         * lib.ads (Disable_Switch_Storing): New procedure.
23434
23435         * make.adb: Modifications to reduce nesting level of this package.
23436         (Check_Standard_Library): New procedure
23437         (Gnatmake.Check_Mains): New procedure
23438         (Gnatmake.Create_Binder_Mapping_File): New procedure
23439         (Compile_Sources.Compile): Add switch -gnatez as the last option
23440         (Display): Never display -gnatez
23441
23442         * Makefile.generic:
23443         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
23444
23445         * gnatcmd.adb (Check_Project): New function
23446         (Process_Link): New procedure to reduce nesting depth
23447         (Check_Files): New procedure to reduce the nesting depth.
23448         For GNAT METRIC, include the inherited sources in extending projects.
23449         (GNATCmd): When GNAT LS is invoked with a project file and no files,
23450         add the list of files from the sources of the project file. If this list
23451         is too long, put it in a temp text files and use switch -files=
23452         (Delete_Temp_Config_Files): Delete the temp text file that contains
23453         a list of source for gnatpp or gnatmetric, if one has been created.
23454         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
23455         in the project file is too large, create a temporary text file that
23456         list them and pass it to the tool with "-files=<temp text file>".
23457         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
23458
23459         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
23460         generated file is in not in Ada.
23461
23462         * gnatls.adb: Remove all parameters And_Save that are no longer used.
23463         (Scan_Ls_Arg): Add processing for -files=
23464         (Usage): Add line for -files=
23465
23466         * g-os_lib.adb (On_Windows): New global constant Boolean flag
23467         (Normalize_Pathname): When on Windows and the path starts with a
23468         directory separator, make sure that the resulting path will start with
23469         a drive letter.
23470
23471         * clean.adb (Clean_Archive): New procedure
23472         (Clean_Project): When there is non-Ada code, delete the global archive,
23473         the archive dependency files, the object files and their dependency
23474         files, if they exist.
23475         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
23476
23477 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
23478
23479         * sinfo.ads: Fix typo in comment.
23480
23481         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
23482         the TSS for remote access-to-subprogram types, since these TSS are
23483         always present once the type has been analyzed.
23484         (RAS_E_Dereference): Same.
23485
23486         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
23487         reference raises Bad_Attribute, mark the reference as analyzed so the
23488         node (and any children resulting from rewrites that could have occurred
23489         during the analysis that ultimately failed) is not analyzed again.
23490
23491         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
23492
23493         * exp_dist.adb: Minor comment fix.
23494
23495         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
23496         type is an anonymous access type, no unchecked deallocation of the
23497         allocated object can occur. If the object is controlled, attach it with
23498         a count of 1. This allows attachment to the Global_Final_List, if
23499         no other relevant list is available.
23500         (Get_Allocator_Final_List): For an anonymous access type that is
23501         the type of a discriminant or record component, the corresponding
23502         finalisation list is the one of the scope of the type.
23503
23504 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
23505
23506         * sem_ch3.adb (Replace_Type): When computing the signature of an
23507         inherited subprogram, use the first subtype if the derived type
23508         declaration has no constraint.
23509
23510         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
23511         before applying previous optimization. Minor code cleanup.
23512
23513         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
23514         placed at the beginning of an unpacked record without explicit
23515         alignment, a slice of it will be aligned and does not need a copy when
23516         used as an actual.
23517
23518 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
23519
23520         PR ada/15591
23521         PR ada/15592
23522         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
23523         reference is written with expressions mimicking parameters.
23524
23525 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
23526
23527         PR ada/15589
23528         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
23529         STEP 2a. The constraints of a full type declaration of a derived record
23530         type are checked for conformance with those declared in the
23531         corresponding private extension declaration. The message
23532         "not conformant with previous declaration" is emitted if an error is
23533         detected.
23534
23535 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
23536
23537         * g-traceb.ads: Document the need for -E binder switch in the spec.
23538
23539         * g-trasym.ads: Document the need for -E binder switch in the spec.
23540
23541 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
23542
23543         * sem_prag.adb: Add handling of pragma Detect_Blocking.
23544
23545         * snames.h, snames.ads, snames.adb: Add entry for pragma
23546         Detect_Blocking.
23547
23548         * s-rident.ads: Change reference to pragma Detect_Blocking.
23549
23550         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
23551         system.ads.
23552
23553         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
23554         to indicate whether pragma Detect_Blocking is active.
23555
23556         * par-prag.adb: Add entry for pragma Detect_Blocking.
23557
23558         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
23559         of not handling WITH.
23560         Note that this replaces the previous update which was incorrect.
23561
23562 2004-06-25  Javier Miranda  <miranda@gnat.com>
23563
23564         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
23565         use-clauses to have a clean environment.
23566
23567         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
23568         the installation of the use-clauses to stablish a clean environment in
23569         case of compilation of a separate unit; otherwise the call to
23570         use_one_package is protected by the barrier Applicable_Use.
23571
23572         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
23573         the installation of the use-clauses to stablish a clean environment in
23574         case of compilation of a separate unit.
23575         (End_Use_Clauses): Minor comment cleanup.
23576
23577 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
23578
23579         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
23580
23581 2004-06-23  Richard Henderson  <rth@redhat.com>
23582
23583         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
23584
23585 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23586
23587         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
23588         now bool instead of int.
23589         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
23590         * trans.c (gnu_switch_label_stack): New function.
23591         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
23592         elaboration of renamed entity returns.
23593         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
23594         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
23595         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
23596         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
23597         DECL_SIZE_UNIT and simplify variable-sized case.
23598         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
23599         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
23600         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
23601         (build_unit_elab): Disable for now.
23602         * utils.c (mark_visited): New function.
23603         (pushdecl): Walk tree to call it for global decl.
23604         (update_pointer_to): Update all variants of pointer and ref types.
23605         Add arg to COMPONENT_REF.
23606         (convert): Likewise.
23607         Move check for converting between variants lower down.
23608         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
23609         (build_allocator): Don't force type of MODIFY_EXPR.
23610         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
23611         put_var_into_stack.
23612
23613 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23614
23615         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
23616         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
23617         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
23618         subprograms.
23619         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
23620         all callers changed.
23621         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
23622         the way that EXIT_STMT finds the loop label.
23623         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
23624         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
23625         (add_stmt): Use annotate_with_locus insted of setting directly.
23626         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
23627         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
23628         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
23629         (build_vms_descriptor): Add extra args to ARRAY_REF.
23630         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
23631         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
23632         New cases.
23633         (build_binary_op): Don't make explicit CONVERT_EXPR.
23634         Add extra rgs to ARRAY_REF.
23635
23636 2004-06-14  Pascal Obry  <obry@gnat.com>
23637
23638         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
23639         Windows.  Fix minor typo.
23640
23641         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
23642         which is now supported on Windows. With this implementation using the
23643         Library Project feature is no different on Windows than on UNIX.
23644
23645 2004-06-14  Vincent Celier  <celier@gnat.com>
23646
23647         * makegpr.adb (Compile_Sources): Nothing to do when there are no
23648         non-Ada sources.
23649
23650         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
23651
23652         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
23653         found, show the project name and the path of the previously parsed
23654         project file.
23655
23656 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
23657
23658         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
23659         array, avoid copying the actual before the call.
23660
23661 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
23662
23663         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
23664         Instead, allocate memory on worst-case alignment assumptions, and then
23665         return an aligned address within the allocated zone.
23666
23667 2004-06-14  Robert Dewar  <dewar@gnat.com>
23668
23669         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
23670         elab entities in predefined units in No_Run_Time_Mode.
23671         (Gen_Adainit_C): Same fix
23672         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
23673         units in No_Run_Time_Mode
23674         (Gen_Elab_Calls_C): Same fix
23675
23676         * symbols-vms-alpha.adb: Minor reformatting
23677
23678         * g-debpoo.ads: Minor reformatting
23679
23680         * lib.adb (In_Same_Extended_Unit): Version working on node id's
23681
23682         * lib.ads (In_Same_Extended_Unit): Version working on node id's
23683
23684         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
23685         working on nodes.
23686
23687         * make.adb: Minor reformatting
23688
23689         * par-ch12.adb: Minor reformatting
23690
23691         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
23692
23693         * prj-strt.adb: Minor reformatting
23694
23695         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
23696         be more general.
23697
23698         * sem_attr.adb: Minor reformatting
23699
23700         * sem_ch7.adb: Minor reformatting
23701
23702         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
23703         for type in the same unit as the object declaration.
23704
23705         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
23706         static string expressions and not just string literals.
23707         Minor reformatting
23708         (Set_Warning): Reset restriction warning flag for restriction pragma
23709         Implement pragma Profile_Warnings
23710         Implement pragma Profile (Restricted)
23711         Give obolescent messages for old restrictions and pragmas
23712
23713         * snames.h, snames.ads, snames.adb: Add new entry for pragma
23714         Profile_Warnings.
23715
23716         * s-rident.ads: Add declarations for restrictions required by profile
23717         Restricted and profile Ravenscar.
23718
23719         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
23720
23721         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
23722         configuration pragmas.
23723
23724 2004-06-11  Vincent Celier  <celier@gnat.com>
23725
23726         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
23727         gnatsym, when symbol policy is Restricted.
23728
23729         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
23730         gnatsym, when symbol policy is Restricted.
23731
23732         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
23733         read the symbol file.
23734         (Finalize): Fail in symbol policy Restricted if a symbol in the original
23735         symbol file is not in the object files. Do not create a new symbol file
23736         when symbol policy is Restricted.
23737
23738         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
23739         in Scng.
23740
23741         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
23742         Restricted.
23743         (Usage): Line for new switch -R
23744
23745         * make.adb (Initialize): When the platform is not VMS, add the
23746         directory where gnatmake is invoked in the front of the path, if
23747         gnatmake is invoked with directory information.  Change the Scan_Args
23748         while loop to a for loop.
23749         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
23750         if Depth is equal or greater than the proposed depth, there is nothing
23751         to do.
23752         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
23753         instead of 0.
23754
23755         * prj.ads: Add new symbol policy Restricted.
23756
23757         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
23758         with the new parameters Check_All_Labels and Case_Location.
23759
23760         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
23761         (Library_Symbol_File needs to be defined).
23762
23763         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
23764         and Case_Location If Check_All_Labels is True, check that all values of
23765         the string type are used, and output warning(s) if they are not.
23766
23767         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
23768         and Case_Location.
23769
23770         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
23771
23772         * gnat_ugn.texi: Update documentation about the library directory in
23773         Library Projects.
23774
23775         * makegpr.adb (Display_Command): In verbose mode, also display the
23776         value of the CPATH env var, when the compiler is gcc.
23777         (Initialize): Change the Scan_Args while loop to a for loop
23778         (Compile_Individual_Sources): Change directory to object directory
23779         before compilations.
23780
23781         * symbols.ads: New symbol policy Restricted.
23782
23783 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
23784
23785         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
23786         is now taken care of internally in the Exception_Propagation package
23787         and does not require clients assistance any more.
23788
23789         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
23790         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
23791         functions. Helpers to maintain a predicate required in the handling of
23792         occurrence transfer between tasks.
23793         This is now handled internally and does not require clients assistance
23794         for the setup/propagate separation anymore.
23795         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
23796         allocation strategy, handle the Setup_And_Not_Propagated predicate and
23797         document.
23798
23799         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
23800         raise_after_setup, now that everything is handled internally within the
23801         setup/propagation engine.
23802
23803 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
23804
23805         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
23806         Add additional conditions for the case of an actual being a simple
23807         name or literal. Improve inlining by preventing the generation
23808         of temporaries with a short lifetime (one use).
23809
23810 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
23811
23812         PR ada/15587
23813         * einfo.ads: Minor comment updates for Has_Completion and
23814         E_Constant list of flags.
23815
23816         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
23817         and constant redeclarations now set the Has_Completion flag of their
23818         defining identifiers.
23819
23820         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
23821         Inspect_Deferred_Constant_Completion.
23822         Used to detect private deferred constants that have not been completed
23823         either by a constant redeclaration or pragma Import. Emits error message
23824         "constant declaration requires initialization expression".
23825
23826         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
23827         completes a deferred constant.
23828
23829 2004-06-11  Geert Bosch  <bosch@gnat.com>
23830
23831         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
23832
23833         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
23834         calculating exponent for scaling denormal numbers.
23835         (Leading_Part): Properly raise Constraint_Error for zero or negative
23836         Adjustment.
23837         (Remainder): Properly raise Constraint_Error for zero divisor.
23838
23839 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
23840
23841         * sem_util.adb: Minor reformatting.
23842
23843         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
23844         dereference when accessing the entry parameter record.
23845         (Check_Array_Type): Always check for possible implicit dereference.
23846         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
23847         Abort if a pointer is still present (denoting that an implicit
23848         dereference was left in the tree by the front-end).
23849
23850         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
23851         dereference when accessing the entry parameter record.
23852         (Check_Array_Type): Always check for possible implicit dereference.
23853         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
23854         Abort if a pointer is still present (denoting that an implicit
23855         dereference was left in the tree by the front-end).
23856
23857 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
23858
23859         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
23860         message, like the compiler itself does. Easier to parse the output.
23861
23862         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
23863
23864         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
23865         be base names, and not includes directories.
23866
23867 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
23868
23869         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
23870         so that dependencies are properly taken into account by make.
23871
23872 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
23873
23874         PR ada/15622
23875         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
23876         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
23877
23878 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
23879
23880         * Makefile.in (install-gnatlib): install target-specific run-time files.
23881
23882         * Make-lang.in: Remove obsolete targets.
23883
23884 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
23885
23886         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
23887         specification, to catch misuses of program unit names.
23888
23889         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
23890         superfluous conversions in an instance.
23891
23892 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
23893
23894         PR ada/15403
23895         * sem_ch12.adb (Save_References): If operator node has been folded to
23896         enumeration literal, associated_node must be discarded.
23897
23898 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
23899
23900         * s-stchop-vxworks.adb: Add required pragma Convention to
23901         Task_Descriptor because it is updated by a C function.
23902
23903 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
23904
23905         PR ada/15568
23906         * Makefile.in: Remove target specific SO_OPT on IRIX
23907
23908 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
23909
23910         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
23911         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
23912         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
23913         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
23914         (STMT_STMT, USE_STMT): New statement codes.
23915         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
23916         * ada-tree.h: Reflect above changes.
23917         (struct tree_loop_id): Deleted.
23918         (union lang_tree_node, struct lang_decl, struct lang_type):
23919         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
23920         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
23921         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
23922         (IS_ADA_STMT): New macro.
23923         * decl.c (annotate_decl_with_node): New function.
23924         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
23925         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
23926         Call add_stmt_with_node to do needed assignments.
23927         Add call to update setjmp buffer directly, not via EXPR_STMT.
23928         (maybe_variable): Argment GNAT_NODE deleted.
23929         * gigi.h (maybe_variable): Likewise.
23930         (make_transform, add_stmt_with_node, set_block_for_group): New.
23931         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
23932         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
23933         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
23934         (set_lineno, set_lineno_from_sloc): Likewise.
23935         (record_code_position, insert_code_for): Likewise.
23936         (gnat_poplevel): Now returns void.
23937         (end_subprog_body): Now takes argument.
23938         * misc.c (cgraph.h, tree-inline.h): New includes.
23939         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
23940         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
23941         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
23942         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
23943         (gnat_parse_file): Don't set immediate_size_expand.
23944         Call cgraph functions.
23945         (gnat_expand_expr): Remove most cases.
23946         (record_code_position, insert_code_for): Remove from here.
23947         * trans.c (toplev.h, tree-gimple.h): Now included.
23948         (discard_file_names): Deleted.
23949         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
23950         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
23951         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
23952         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
23953         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
23954         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
23955         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
23956         (set_block_for_group, add_stmt_list): Likewise.
23957         (start_stmt_group): Renamed from start_block_stmt.
23958         (end_stmt_group): Likewise, from end_block_stmt.
23959         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
23960         (gigi): Don't set discard_file_names or call set_lineno.
23961         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
23962         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
23963         Numerous changes throughout to reflect new names and complete
23964         function-at-a-time implementation.
23965         (gnat_expand_stmt): Delete or comment out all cases.
23966         (process_inlined_subprograms): Use add_stmt.
23967         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
23968         call set_lineno; also remove unneeded block handling.
23969         (process_type): Remove unneeded block handling.
23970         (build_unit_elab): Remove calls to deleted functions.
23971         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
23972         (tree-dump.h): Likewise.
23973         (struct ada_binding_level): Add field jmpbuf_decl.
23974         (gnat_define_builtin, gnat_install_builtins): New.
23975         (gnat_gimplify_function, gnat_finalize): Likewise.
23976         (gnat_poplevel): No longer return BLOCK, set it instead.
23977         Remove code dealing with nested functions.
23978         (gnat_init_decl_processing): Also set size_type_node.
23979         Call gnat_install_builtins.
23980         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
23981         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
23982         Remove special-case for "main".
23983         (end_subprog_body): Add arg and rework for tree-ssa.
23984         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
23985         Add case for BOOLEAN_TYPE.
23986         * utils2.c (rtl.h): Now include.
23987         (build_call_raise): Test Debug_Flag_NN directly.
23988         (build_call_alloc_dealloc): Don't use local stack allocation for now.
23989         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
23990         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
23991
23992 2004-06-07  Robert Dewar  <dewar@gnat.com>
23993
23994         * a-direct.ads, einfo.ads: Minor comment updates
23995
23996         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
23997         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
23998         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
23999         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
24000         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
24001
24002         * s-interr-sigaction.adb: Remove unreferenced variable
24003         (Attached_Interrupts).  Minor reformatting.
24004         Avoid use of variable I (replace by J).
24005
24006         * par-ch10.adb: Fix text of one error message
24007
24008         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
24009         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
24010         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
24011         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
24012         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
24013         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
24014         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
24015         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
24016         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
24017         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
24018         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
24019         2005 support.
24020
24021 2004-06-07  Doug Rupp  <rupp@gnat.com>
24022
24023         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
24024
24025         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
24026
24027         * mlib-tgt-vms-ia64.adb: New file.
24028
24029         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
24030         Add mlib-tgt-vms-ia64.adb
24031         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
24032         Move to alpha specific ifeq section.
24033         Add VMS specific versions of symbols.adb
24034         Renaming of 5q vms files.
24035
24036         * 5qsystem.ads renamed to system-vms_64.ads.
24037
24038 2004-06-07  Vincent Celier  <celier@gnat.com>
24039
24040         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
24041         explain that when a time of day corresponding to the non existing hour
24042         on the day switching to DST is specified, Split may return a different
24043         value for Seconds.
24044
24045         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
24046         to GNAT PRETTY.
24047
24048         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
24049         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
24050
24051         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
24052         to False.
24053         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
24054         the linking options.
24055         (Build_Library.Check_Libs): On VMS, if there is a dependency on
24056         g-trasym.ads, set Gtrasymobj_Needed to True.
24057
24058         * prj-attr.adb: Add new package Metrics for gnatmetric
24059
24060         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
24061         canonical case to take into account files with upper case characters on
24062         Windows.
24063         (Ada_Check): Load the reference symbol file name in the name buffer to
24064         check it, not the symbol file name.
24065
24066         * snames.ads, snames.adb: Add standard name Metrics (name of project
24067         file package for gnatmetric).
24068
24069         * vms_conv.ads: Add Metric to Comment_Type
24070
24071         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
24072
24073         * vms_data.ads: Add qualifiers for GNAT METRIC
24074
24075         * makegpr.adb (Link_Executables): Take into account the switches
24076         specified in package Linker of the main project.
24077
24078 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
24079
24080         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
24081         the index of the last element is Units.Last, not Units.Table'Last
24082         (which is usually not a valid index within the actually allocated
24083         storage for the table).
24084
24085         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
24086         determines whether to generate a call to a checked storage pool
24087         Dereference action.
24088         Generate such a call only for a dereference that either comes from
24089         source, or is the result of rewriting a dereference that comes from
24090         source.
24091
24092 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
24093
24094         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
24095
24096 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
24097
24098         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
24099         file level, elaborate the stride for inner dimensions in alignment
24100         units, not bytes.
24101
24102         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
24103         in a comment.
24104
24105 2004-06-07  Javier Miranda  <miranda@gnat.com>
24106
24107         * exp_ch6.adb: Correct wrong modification in previous patch
24108
24109 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
24110
24111         * g-trasym.ads: Corrected comment to properly reflect level of support
24112         on VMS.
24113
24114 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
24115
24116         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
24117         includes case of a variable referenced on the left hand side of an
24118         assignment, therefore remove redundant code. Variables and prefixes of
24119         indexed or selected components are now marked as referenced on left
24120         hand side. Warnings are now properly emitted when variables or prefixes
24121         are assigned but not read.
24122
24123         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
24124         left hand side referenced variables. Private access types do not
24125         produce the warning "variable ... is assigned but never read".
24126         Add also additional checks to left hand side referenced variables.
24127         Aliased, renamed objects and access types do not produce the warning
24128         "variable ... is assigned but never read" since other entities may read
24129         the memory location.
24130
24131 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
24132
24133         * Makefile.in: In the powerpc/vxworks-specific section, restore
24134         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
24135         by mistake).
24136
24137 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
24138
24139         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
24140         predefined operators.
24141         Removes spurious type errors from g-trasym-vms.adb.
24142
24143         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
24144         distinct from the operator appearing in the source, call appropriate
24145         routine to insert conversions when needed, and complete resolution of
24146         node.
24147         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
24148         interpretations for rewritten right operand.
24149         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
24150         the other operand is overloaded and the context is a type conversion.
24151
24152 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24153
24154         * ada-tree.def (BLOCK_STMT): Now has two operands.
24155         (BREAK_STMT): New.
24156
24157         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
24158
24159         * gigi.h: (gnat_poplevel): Now returns a tree.
24160
24161         * trans.c (end_block_stmt): Add arg; all callers changed.
24162         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
24163         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
24164         (add_stmt): Set TREE_TYPE.
24165         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
24166         (gnat_expand_stmt, case BREAK_STMT): New case.
24167
24168         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
24169
24170 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
24171
24172         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
24173         procedure Set_Stack_Size that is not needed.
24174
24175 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
24176
24177         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
24178         used for gnatpp input file and for the files upon which it depends
24179
24180 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
24181
24182         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
24183
24184 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
24185
24186         * gnatvsn.ads: Bump version numbers appropriately.
24187         Add new build type.
24188
24189 2004-06-07  Pascal Obry  <obry@gnat.com>
24190
24191         * gnat_ugn.texi: Improve comments about imported names and link names
24192         on Windows. Add a note about the requirement to use -k gnatdll's option
24193         when working with a DLL which has stripped stdcall symbols (no @nn
24194         suffix).
24195
24196 2004-05-27  Vincent Celier  <celier@gnat.com>
24197
24198         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
24199         COMMENTS_LAYOUT=UNTOUCHED
24200
24201         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
24202         symbols-vms-alpha.adb
24203
24204 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
24205
24206         * sem.ads: Clarify documentation on checks suppression.
24207
24208         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
24209
24210 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
24211
24212         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
24213         the case of multiple derivations.
24214         (Is_Object_Reference): For a selected component, verify that the prefix
24215         is itself an object and not a value.
24216
24217         * sem_ch12.adb (Same_Instantiated_Constant): New name for
24218         Same_Instantiated_Entity.
24219         (Same_Instantiated_Variable): Subsidiary to
24220         Check_Formal_Package_Instance, to recognize actuals for in-out generic
24221         formals that are obtained from a previous formal package.
24222         (Instantiate_Subprogram_Body): Emit proper error when
24223         generating code and the proper body of a stub is missing.
24224
24225         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
24226         has a universal interpretation, do the disambiguation here.
24227
24228         * exp_ch4.adb (Expand_N_Type_Conversion,
24229         Expand_N_Unchecked_Type_Conversion): Special handling when target type
24230         is Address, to avoid typing anomalies when Address is a visible integer
24231         type.
24232
24233         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
24234         to determine whether a subprogram should not be marked Pure, even when
24235         declared in a pure package.
24236
24237 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
24238
24239         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
24240
24241         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
24242         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
24243         Update the documentation about the Ravenscar profile, following the
24244         definition found in AI-249.
24245
24246         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
24247         setting the Profile (Ravenscar). This must be done in addition to
24248         setting the required restrictions.
24249
24250         * rtsfind.ads: Add the set of operations defined in package
24251         Ada.Interrupts.
24252
24253         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
24254         restriction.
24255
24256 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
24257
24258         lang-specs.h: Always require -c or -S and always redirect to /dev/null
24259         if -gnatc or -gnats is passed.
24260
24261 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
24262
24263         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
24264         a significant reference. Warnings are now properly emitted when a
24265         discriminated type is not referenced.
24266
24267         * lib-xref.adb (Generate_Reference): A deferred constant completion,
24268         record representation clause or record type discriminant does not
24269         produce a reference to its corresponding entity. Warnings are now
24270         properly emitted when deferred constants and record types are not
24271         referenced.
24272
24273 2004-05-27  Geert Bosch  <bosch@gnat.com>
24274
24275         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
24276         Fixes ACATS Annex G tests.
24277
24278 2004-05-27  Robert Dewar  <dewar@gnat.com>
24279
24280         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
24281         handling WITH
24282
24283 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
24284
24285         * s-interr.adb (Server_Task): Take into account case of early return
24286         from sigwait under e.g. linux.
24287
24288 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
24289
24290         * gnat_ugn.texi: Add description for the new gnatpp options:
24291          -rnb - replace the original source without creating its backup copy
24292          -c0 - do not format comments
24293
24294 2004-05-24  Geert Bosch  <bosch@gnat.com>
24295
24296         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
24297         with 192 bits of precision, sufficient to reduce a double-extended
24298         arguments X with a maximum relative error of T'Machine_Epsilon, for X
24299         in -2.0**32 .. 2.0**32.
24300         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
24301         reduction by the processor, which only uses a 68-bit approximation of
24302         Pi.
24303         (Tan): Always reduce arguments and compute function either using
24304         the processor's fptan instruction, or by dividing sin and cos as needed.
24305
24306 2004-05-24  Doug Rupp  <rupp@gnat.com>
24307
24308         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
24309         gcc error on 32/64 bit VMS.
24310
24311 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
24312
24313         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
24314         since this is what we get for stack overflows although not documented
24315         as such.
24316         Document the issues which may require adjustments to our signal
24317         handlers.
24318
24319 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
24320
24321         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
24322         enclosing dynamic scope if the instantiation is within a generic unit.
24323
24324 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
24325
24326         * exp_dbug.ads: Fix typo.
24327
24328         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
24329         Rename it to its proper name: system-linux-ia64.ads
24330         (stamp-gnatlib1): Remove extra target specific run time files when
24331         setting up the rts directory.
24332
24333 2004-05-24  Javier Miranda  <miranda@gnat.com>
24334
24335         * einfo.ads, einfo.adb (Limited_Views): Removed.
24336         (Limited_View): New attribute that replaces the previous one. It is
24337         now a bona fide package with the limited-view list through the
24338         first_entity and first_private attributes.
24339
24340         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
24341         limited-private-with clause.
24342         (Install_Limited_Withed_Unit): Install the private declarations of a
24343         limited-private-withed package. Update the installation of the shadow
24344         entities according to the new structure (see Build_Limited_Views)
24345         (Build_Limited_Views): Replace the previous implementation of the
24346         limited view by a package entity that references the first shadow
24347         entity plus the first shadow private entity (required for limited-
24348         private-with clause)
24349         (New_Internal_Shadow_Entity): Code cleanup.
24350         (Remove_Limited_With_Clause): Update the implementation to undo the
24351         new work carried out by Build_Limited_Views.
24352         (Build_Chain): Complete documentation.
24353         Replace Ada0Y by Ada 0Y in comments
24354         Minor reformating
24355
24356         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
24357         types the level of accessibility depends on the enclosing type
24358         declaration.
24359
24360         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
24361         entities. Complete documentation of previous change.
24362
24363 2004-05-24  Robert Dewar  <dewar@gnat.com>
24364
24365         * namet.adb: Minor reformatting
24366         Avoid use of name I (replace by J)
24367         Minor code restructuring
24368
24369         * sem_ch6.adb: Minor reformatting
24370
24371         * lib-writ.adb: Do not set restriction as active if this is a
24372         Restriction_Warning case.
24373
24374         * sem_prag.adb: Reset restriction warning flag if real pragma
24375         restriction encountered.
24376
24377         * s-htable.adb: Minor reformatting
24378         Change rotate count to 3 in Hash (improves hash for small strings)
24379
24380         * 5qsystem.ads: Add comments for type Address (no literals allowed).
24381
24382         * gnat_ugn.texi: Add new section of documentation "Code Generation
24383         Control", which describes the use of -m switches.
24384
24385 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
24386
24387         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
24388         through the DECL_INITIAL for renamed variables.
24389
24390 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
24391
24392         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
24393
24394 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
24395
24396         * exp_dbug.ads: Correct comments concerning handling of overloading,
24397         since we no longer use $ anymore.
24398
24399 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
24400
24401         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
24402         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
24403         with illegal subunits.
24404
24405 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
24406
24407         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
24408         body with front-end inlining enabled, check whether an inline pragma
24409         appears immediately after the body and applies to it.
24410
24411         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
24412         enabled and the pragma appears after the body of the subprogram.
24413
24414 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24415
24416         Part of function-at-a-time conversion
24417
24418         * misc.c (adjust_decl_rtl): Deleted.
24419         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
24420         Define.
24421
24422         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
24423         (add_decl_stmt, add_stmt, block_has_vars): New functions.
24424         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
24425
24426         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
24427         when making a decl.
24428         (gnat_to_gnu_entity): Likewise.
24429         Use add_stmt to update setjmp buffer.
24430         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
24431         flush_addressof.
24432         No longer call adjust_decl_rtl.
24433         (DECL_INIT_BY_ASSIGN_P): New macro.
24434         (DECL_STMT_VAR): Likewise.
24435
24436         * trans.c (gigi): Call start_block_stmt to make the outermost
24437         BLOCK_STMT.
24438         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
24439         Call start_block_stmt and end_block_stmt temporarily.
24440         Use gnat_expand_stmt instead of expand_expr_stmt.
24441         (add_decl_stmt): New function.
24442         (tree_transform): Call it.
24443         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
24444         (end_block_stmt): Set type and NULL_STMT.
24445         (gnat_expand_stmt): Make recursize call instead of calling
24446         expand_expr_stmt.
24447         (gnat_expand_stmt, case DECL_STMT): New case.
24448         (set_lineno_from_sloc): Do nothing if global.
24449         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
24450         (start_block_stmt, add_stmt, end_block_stmt): New functions.
24451         (build_block_stmt): Call them.
24452         (gnat_to_code): Don't expand NULL_STMT.
24453         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
24454         args.
24455         (tree_transform): Likewise.
24456         (tree_transform, case N_Null_Statement): Return NULL_STMT.
24457         (gnat_expand_stmt, case NULL_STMT): New case.
24458         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
24459         IF_STMT_TRUE.
24460
24461         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
24462         TREE_ADDRESSABLE.
24463
24464         * utils.c (create_var_decl): Do not call expand_decl or
24465         expand_decl_init.
24466         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
24467         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
24468         here.
24469         (struct e_stack): Add chain_next to GTY.
24470         (struct binding_level): Deleted.
24471         (struct ada_binding_level): New struct.
24472         (free_block_chain): New.
24473         (global_binding_level, clear_binding_level): Deleted.
24474         (global_bindings_p): Rework to see if no chain.
24475         (kept_level_p, set_block): Deleted.
24476         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
24477         new data structure and work directly on BLOCK node.
24478         (gnat_poplevel): Similarly.
24479         (get_decls): Look at BLOCK_VARS.
24480         (insert_block): Work directly on BLOCK node.
24481         (block_has_var): New function.
24482         (pushdecl): Rework for new binding structures.
24483         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
24484         poplevel.
24485         (build_subprog_body): Likewise.
24486         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
24487
24488         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
24489
24490         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
24491         (DECL_STMT_VAR): Likewise.
24492
24493 2004-05-17  Robert Dewar  <dewar@gnat.com>
24494
24495         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
24496         procedure
24497
24498         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
24499         of restriction synonyums by using
24500         Restrict.Process_Restriction_Synonyms.
24501
24502         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
24503
24504         * s-restri.ads (Tasking_Allowed): Correct missing comment
24505
24506         * s-rident.ads: Add entries for restriction synonyms
24507
24508         * ali.adb: Fix some problems with badly formatted ALI files that can
24509         result in infinite loops.
24510
24511         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
24512         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
24513         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
24514         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
24515         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
24516         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
24517         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
24518         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
24519         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
24520         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
24521         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
24522         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
24523         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
24524         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
24525         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
24526         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
24527         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
24528         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
24529         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
24530         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
24531         to Task_Id (minor cleanup).
24532
24533 2004-05-17  Vincent Celier  <celier@gnat.com>
24534
24535         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
24536         directory separator.
24537
24538         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
24539         project being extended, if Languages is not declared in extending
24540         project.
24541
24542 2004-05-17  Javier Miranda  <miranda@gnat.com>
24543
24544         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
24545         limited view of a visible sibling.
24546
24547 2004-05-14  Robert Dewar  <dewar@gnat.com>
24548
24549         * gnat_ugn.texi: Minor change to -gnatS documentation
24550
24551         * sprint.adb: Remove some instances of Assert (False) and for this
24552         purpose replace them by output of a ??? string.
24553
24554         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
24555         Assert (False).
24556
24557         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
24558         flag processing. This was suppressing required dependencies in
24559         No_Run_Time mode and is not needed since the binder does not generate
24560         references for things in libgnat anyway.
24561
24562         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
24563         warning.
24564
24565 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
24566
24567         * gnat_ugn.texi: Document AIX-specific issue with initialization of
24568         resolver library.
24569
24570         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
24571         action for the case of an actual parameter in an init proc call.
24572
24573 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
24574
24575         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
24576         subtype, check visible entities in base type.
24577
24578         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
24579         actions if the object is a renaming.
24580
24581         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
24582         Check_Formal_Package_Instance, to determine more precisely when the
24583         formal and the actual denote the same entity.
24584
24585 2004-05-14  Javier Miranda  <miranda@gnat.com>
24586
24587         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
24588
24589         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
24590         corresponding to a private_with must be removed from visibility; it
24591         will be made visible later, just before we analyze the private part of
24592         the package.
24593         (Check_Private_Child_Unit): Allow private_with clauses in public
24594         siblings.
24595         (Install_Siblings): Make visible the private entities of private-withed
24596         siblings.
24597         (Install_Withed_Unit): Do not install the private withed unit if we
24598         are compiling a package declaration and the Private_With_OK flag was
24599         not set by the caller. These declarations will be installed later,
24600         just before we analyze the private part of the package.
24601
24602         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
24603         during the evaluation of the expression that initializes the object,
24604         decorate it with the expected type to avoid cascade errors.
24605         Code cleanup.
24606
24607         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
24608         subprogram we have to install the private_with clauses after its
24609         specification has been analyzed (as documented in AI-262.TXT).
24610
24611         * sem_ch8.adb (Has_Private_With): New function. Determines if the
24612         current compilation unit has a private with on a given entity.
24613         (Find_Direct_Name): Detect the Beaujolais problem described in
24614         AI-262.TXT
24615
24616         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
24617         provides the functionality of the function Is_Ancestor that was
24618         previously available in sem_ch10. It has been renamed to avoid
24619         overloading.
24620
24621         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
24622
24623 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
24624
24625         * utils.c (build_vms_descriptor): Use SImode pointers.
24626
24627 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
24628
24629         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
24630
24631 2004-05-14  GNAT Script  <nobody@gnat.com>
24632
24633         * Make-lang.in: Makefile automatically updated
24634
24635 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
24636
24637         Renaming of target specific files for clarity
24638
24639         * Makefile.in: Rename GNAT target specific files.
24640
24641         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
24642         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
24643         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
24644         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
24645         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
24646         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
24647         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
24648         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
24649         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
24650         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
24651         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
24652         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
24653         51osinte.adb, 51osinte.ads, 51system.ads,
24654         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
24655         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
24656         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
24657         56tpopsp.adb, 57system.ads, 58system.ads,
24658         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
24659         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
24660         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
24661         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
24662         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
24663         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
24664         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
24665         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
24666         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
24667         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
24668         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
24669         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
24670         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
24671         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
24672         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
24673         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
24674         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
24675         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
24676         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
24677         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
24678         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
24679         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
24680         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
24681         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
24682         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
24683         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
24684         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
24685         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
24686         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
24687         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
24688         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
24689         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
24690         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
24691         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
24692         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
24693         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
24694         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
24695         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
24696         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
24697         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
24698
24699         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
24700         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
24701         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
24702         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
24703         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
24704         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
24705         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
24706         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
24707         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
24708         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
24709         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
24710         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
24711         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
24712         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
24713         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
24714         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
24715         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
24716         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
24717         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
24718         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
24719         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
24720         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
24721         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
24722         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
24723         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
24724         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
24725         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
24726         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
24727         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
24728         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
24729         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
24730         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
24731         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
24732         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
24733         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
24734         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
24735         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
24736         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
24737         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
24738         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
24739         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
24740         s-osinte-vms.ads, s-osinte-vxworks.adb,
24741         s-osinte-vxworks.ads, s-osprim-mingw.adb,
24742         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
24743         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
24744         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
24745         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
24746         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
24747         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
24748         s-stchop-vxworks.adb, s-taprop-dummy.adb,
24749         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
24750         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
24751         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
24752         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
24753         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
24754         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
24755         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
24756         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
24757         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
24758         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
24759         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
24760         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
24761         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
24762         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
24763         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
24764         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
24765         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
24766         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
24767         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
24768         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
24769         system-irix-o32.ads, system-linux-x86_64.ads,
24770         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
24771         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
24772         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
24773         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
24774         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
24775         system-vxworks-mips.ads, system-vxworks-ppc.ads,
24776         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
24777         above.
24778
24779 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
24780
24781         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
24782
24783 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
24784
24785         Merge from tree-ssa-20020619-branch.
24786
24787         * config-lang.in (boot_language, build_by_default): Set
24788         to no.
24789         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
24790         (max_size): Add static chain op for call_expr.
24791
24792 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
24793
24794         PR target/15331
24795         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
24796
24797 2004-05-11  Roger Sayle  <roger@eyesopen.com>
24798
24799         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
24800         COND_EXPR.
24801
24802 2004-05-10  Doug Rupp  <rupp@gnat.com>
24803
24804         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
24805         system.aux_dec.
24806
24807         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
24808
24809         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
24810
24811         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
24812         Fixes undefined symbols in IA64 gnatlib.
24813
24814         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
24815
24816         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
24817         Short_Address). This will be moved to system.auxdec.
24818
24819 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
24820
24821         * sem_util.adb: Replace test for presence of a node that is always
24822         present with a call to Discard_Node.
24823
24824         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
24825         Analyze on the library unit node after generation of distribution stub
24826         constructs.  The call was a no-op because Unit_Node has already been
24827         Analyzed, and the tree fragments for the distribution stubs are
24828         analyzed as they are inserted in Exp_Dist.
24829         Update comment regarding to distribution stubs to reflect that we
24830         do not generate stub in separate files anymore.
24831
24832         * einfo.ads: Clarify the fact that a tagged private type has the
24833         E_Record_Type_With_Private Ekind.
24834
24835         * erroutc.adb: Minor reformatting
24836
24837         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
24838         values if line length is increased using -gnatyM (noticed during code
24839         reading).
24840
24841         * eval_fat.adb: Minor reformatting
24842         Put spaces around exponentiation operator
24843
24844 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
24845
24846         PR ada/15005
24847         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
24848         has been rewritten as an explicit dereference, retrieve type of
24849         original node to check for possibly unconstrained record type.
24850
24851 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
24852
24853         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
24854         overriding, use the operation of the parent unconditionally.
24855
24856         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
24857         operation when either operand is a literal, to avoid further
24858         ambiguities.
24859
24860         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
24861         overridden by a previous explicit declaration, mark the previous entity
24862         as overriding.
24863
24864         * sem_disp.adb (Check_Dispatching_Operation): New predicate
24865         Is_Visibly_Controlled, to determine whether a declaration of a
24866         primitive control operation for a derived type overrides an inherited
24867         one. Add warning if the explicit declaration does not override.
24868
24869 2004-05-10  Vincent Celier  <celier@gnat.com>
24870
24871         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
24872         some cases when the sources are no longer present.
24873
24874         * make.adb (Collect_Arguments): Fail if an external source, not part
24875         of any project need to be compiled, when switch -x has not been
24876         specified.
24877
24878         * makeusg.adb: Document new switch -x
24879
24880         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
24881         defaulted to False.
24882
24883         * switch-m.adb (Scan_Make_Switches): New switch -x
24884
24885         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
24886         gnatmake switch -x.
24887
24888         * gnat_ugn.texi: Document new gnatmake switch -x
24889
24890 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
24891
24892         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
24893
24894         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
24895         (process_attributes): Likewise.
24896
24897 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
24898
24899         * s-inmaop.ads: Fix spelling mistake in one of the comments.
24900
24901 2004-05-10  Robert Dewar  <dewar@gnat.com>
24902
24903         * gnat_ugn.texi: Document that for config pragma files, the maximum
24904         line length is always 32767.
24905
24906         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
24907         literals is now allowed.
24908
24909         * gnat-style.texi: Remove statement about splitting long lines before
24910         an operator rather than after, since we do not follow this rule at all.
24911         Clarify rule (really lack of rule) for spaces around exponentiation
24912
24913         * sem_elim.adb: Allow concatenation of string literals as well as a
24914         single string literal for pragma arguments.
24915
24916         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
24917
24918         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
24919         written for append case.
24920
24921         * frontend.adb: Changes to avoid checking max line length in config
24922         pragma files.
24923
24924         * g-os_lib.ads: Minor reformatting
24925
24926         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
24927         wrong in any case. Instead use standard value. Noticed during code
24928         reading.
24929
24930         * opt.ads (Max_Line_Length): New field, used to implement removal of
24931         limitation on length of lines when scanning config pragma files.
24932
24933         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
24934         makeutl.ads, makeutl.adb: Minor reformatting
24935
24936         * scn.adb: Do not check line length while scanning config pragma files
24937         Do not check line length while scanning out license information
24938
24939         * scng.adb: Changes to avoid line length checks while parsing config
24940         pragma files.
24941
24942 2004-05-10  GNAT Script  <nobody@gnat.com>
24943
24944         * Make-lang.in: Makefile automatically updated
24945
24946 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
24947
24948         * osint.adb (Find_Program_Name): Fix handling of VMS version
24949         number.
24950
24951 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
24952
24953         * g-os_lib.ads (Invalid_Time): New constant
24954
24955         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
24956         return OS_Time instead of time_t to match what is imported by Ada.
24957         Now return -1 if the file doesn't exist, instead of a random value
24958
24959 2004-05-05  Robert Dewar  <dewar@gnat.com>
24960
24961         * usage.adb: Add line for -gnatR?s switch
24962
24963         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
24964
24965         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
24966         and for Match (Data_First, Data_last)
24967
24968         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
24969         written when we are dealing with multi-unit files.
24970
24971 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
24972
24973         * Makefile.in: Remove unused targets and variables.
24974
24975 2004-05-05  Vincent Celier  <celier@gnat.com>
24976
24977         * switch-m.adb: New gnatmake switch -eI
24978
24979         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
24980         of new gnatmake switch -eInnn.
24981
24982         * makegpr.adb: Take into account new parameters Index and Src_Index in
24983         Prj.Util.
24984
24985         * clean.adb: Implement support for multi-unit sources, including new
24986         switch -i.
24987
24988         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
24989         Src_Index.
24990
24991         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
24992         (Extract_From_Q): New out parameter Index
24993         (Mark, Is_Marked): Subprograms moved to Makeutl
24994         (Switches_Of): New parameter Source_Index
24995         (Add_Switch): New parameter Index
24996         (Check): New parameter Source_Index
24997         (Collect_Arguments): New parameter Source_Index
24998         (Collect_Arguments_And_Compile): New parameter Source_Index
24999         (Compile): New parameter Source_Index
25000         Put subprograms in alphabetical order
25001         Add support for multi-source sources, including in project files.
25002
25003         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
25004         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
25005         Make.
25006
25007         * makeusg.adb: New gnatmake switch -eInnn
25008
25009         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
25010         Prj.Util.Value_Of.
25011
25012         * opt.ads (Main_Index): New variable, defaulted to 0.
25013
25014         * osint.ads, osinte.adb (Add_File): New parameter Index
25015         (Current_Source_Index): New function
25016
25017         * prj.adb: Take into account new components Index and Src_Index
25018
25019         * prj.ads (String_Element): New component Index
25020         (Variable_Value): New component Index
25021         (Array_Element): New component Src_Index
25022
25023         * prj-attr.adb: Indicate that optional index may be specified for
25024         attributes Main, Executable, Spec, Body and some of Switches.
25025
25026         * prj-attr.ads (Attribute_Kind): New values for optional indexes
25027         (Attribute_Record): New component Optional_Index
25028
25029         * prj-com.ads (File_Name_Data): New component Index
25030
25031         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
25032
25033         * prj-env.adb (Put): Output optional index
25034
25035         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
25036         attributes Spec and Body.
25037
25038         * prj-nmsc.adb: Process optional indexes
25039
25040         * prj-pp.adb: Ouput "at" for optional indexes
25041
25042         * prj-proc.adb: Take into account optional indexes
25043
25044         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
25045         Optional_Index. For string literal,
25046         process optional index when Optional_Index is True.
25047         (Parse_Expresion): New Boolean parameter Optional_Index
25048
25049         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
25050         (Set_Source_Index_Of): New procedure
25051
25052         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
25053         index.
25054
25055         * prj-util.ads (Executable_Of): New parameter Index
25056         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
25057         New parameter Src_Index, defaulted to 0.
25058
25059 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
25060
25061         PR ada/15257
25062         * sem_ch3.adb (Access_Definition): If this is an access parameter
25063         whose designated type is imported through a limited_with clause, do
25064         not add the enclosing subprogram to the list of private dependents of
25065         the type.
25066
25067 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
25068
25069         PR ada/15258
25070         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
25071         a limited_with clause, and the other is its non-limited view.
25072
25073 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
25074
25075         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
25076
25077         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
25078         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
25079         Stand.Boolean_Literals to produce references to entities
25080         Standard_False and Standard_True from compile-time computed boolean
25081         values.
25082
25083         * stand.ads (Boolean_Literals): New variable, provides the entity
25084         values for False and True, for use by the expander.
25085
25086 2004-05-05  Doug Rupp  <rupp@gnat.com>
25087
25088         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
25089         5vinmaop.adb: Unchecked convert Short_Address vice Address
25090
25091         * adaint.c, raise.c: Caste CRTL function return value
25092         to avoid gcc error on 32/64 bit IVMS.
25093
25094         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
25095         target = IA64/VMS.
25096
25097         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
25098
25099         * 5qsystem.ads (Address): Declare as Long_Integer
25100         (Short_Address): Declare as 32 bit subtype of Address
25101         Declare  abstract address operations to avoid gratuitous ambiguities.
25102
25103 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
25104
25105         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
25106         instead of the old Boolean_Entry_Barriers.
25107         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
25108
25109 2004-05-05  GNAT Script  <nobody@gnat.com>
25110
25111         * Make-lang.in: Makefile automatically updated
25112
25113 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
25114
25115         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
25116
25117 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
25118
25119         PR ada/15152
25120         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
25121         alone. Replacing object references by literals is inappropriate in a
25122         so low level context.
25123
25124 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
25125
25126         * a-exexpr.adb: Add comments
25127
25128 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
25129
25130         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
25131         declare the Ancestor_Tags array in Type_Specific_Data with a small size
25132         without risking a bounds check error when accessing one of its
25133         components.
25134         (Type_Specific_Data): Define Ancestor_Tags as a small array.
25135         This prevents us from hitting a limitation during the debug info
25136         generation when using stabs.
25137
25138         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
25139         small array.
25140         This prevents us from hitting a limitation during the debug info
25141         generation when using stabs.
25142
25143 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
25144
25145         lang-specs.h: Remove -gnatz* from specs.
25146
25147 2004-05-03  Vincent Celier  <celier@gnat.com>
25148
25149         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
25150
25151         * Make-lang.in, Makefile.in: Add gprmake
25152
25153 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
25154
25155         * sem_aggr.adb: Fix typo in comment.
25156
25157 2004-05-03  Robert Dewar  <dewar@gnat.com>
25158
25159         * make.adb: Minor reformatting
25160
25161         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
25162
25163         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
25164         so that it works when address is not a private type.
25165
25166         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
25167         properly with rewritten unchecked conversions. This prevents
25168         order-of-elaboration issues that can otherwise arise.
25169         (Minimum_Size): Don't check size of access types under VMS
25170
25171         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
25172         interpretations of integer literals as type System.Address.
25173
25174         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
25175         (Is_Descendent_Of): New function
25176
25177 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
25178
25179         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
25180         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
25181         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
25182
25183         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
25184         of the old Max_Entry_Queue_Depth.
25185
25186         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
25187         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
25188         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
25189
25190         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
25191         New entry for proper handling of Max_Entry_Queue_Depth.
25192         New entry for proper handling of No_Dynamic_Interrupts.
25193
25194         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
25195         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
25196         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
25197         the GNAT specific restriction Max_Entry_Queue_Depth.
25198         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
25199         the GNAT specific restriction No_Dynamic_Interrupts.
25200
25201         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
25202         instead of the old Boolean_Entry_Barriers.
25203         Use the new restriction No_Dynamic_Attachment instead of the old
25204         No_Dynamic_Interrupts.
25205
25206         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
25207         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
25208
25209         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
25210         of the old Max_Entry_Queue_Depth.
25211
25212 2004-05-03  GNAT Script  <nobody@gnat.com>
25213
25214         * Make-lang.in: Makefile automatically updated
25215
25216 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
25217
25218         * checks.adb (Enable_Range_Check): If the prefix of an index component
25219         is an access to an unconstrained array, perform check unconditionally.
25220
25221 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25222
25223         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
25224         Component_Clause.
25225
25226 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
25227
25228         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
25229         alternate stack setting. There was no support for the tasking cases
25230         and the changes eventually caused a number of side-effect failures in
25231         the non-tasking case too.
25232
25233 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
25234
25235         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
25236         -gnats is passed.
25237
25238 2004-04-29  Vincent Celier  <celier@gnat.com>
25239
25240         * make.adb (Gnatmake): Increase max size of argument array for
25241         gnatbind for the potential addition of -F.
25242         If there are Stand-Alone Library projects, invoke gnatbind with -F to
25243         be sure that elaboration flags will be checked.
25244
25245         * switch-c.adb: Correct call to Scan_Pos for -gnateI
25246
25247 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
25248
25249         * sem_warn.adb (Check_References): Move '<access-variable> may be
25250         null' warning out of under Warn_On_No_Value_Assigned.
25251
25252 2004-04-29  Ed Falis  <falis@gnat.com>
25253
25254         * gnat_ugn.texi: Fixed texi error
25255
25256 2004-04-29  Robert Dewar  <dewar@gnat.com>
25257
25258         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
25259         abstract operations if they come from predefined files.
25260
25261         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
25262         Dynamic, not RM).
25263
25264         * s-addope.adb: Correct obvious error in mod function
25265
25266 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
25267
25268         * Makefile.in: Add target pairs for powerpc darwin*
25269         tasking support.
25270
25271         * a-intnam-darwin.ads, s-osinte-darwin.adb,
25272         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
25273
25274 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
25275
25276         * Makefile.in: Add target macro definitions for s390*-linux*.
25277         * system-linux-s390.ads: New file.
25278         * system-linux-s390x.ads: New file.
25279
25280 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
25281
25282         * gnat_ugn.texi: Correct argument to @setfilename.
25283
25284 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
25285
25286         * a-exexpr.adb (Unwind_Word): New data type.
25287         (Unwind_Exception): Use it as type of Private1 and Private2.
25288
25289         * raise.c (db_action_for): Fix debug printf.
25290
25291 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
25292
25293         * a-wtmoio.ads: Formal type must be a modular type, not a signed
25294         integer type.
25295
25296 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25297
25298         * decl.c (gnat_to_gnu_entity, case object): Call
25299         __builtin_update_setjmp_buf.
25300
25301         * gigi.h (update_setjmp_buf): Deleted.
25302         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
25303
25304         * misc.c: (update_setjmp_buf): Deleted.
25305
25306         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
25307         around block of RTL.
25308
25309         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
25310
25311 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
25312
25313         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
25314         subprogram for which no pragma All_Calls_Remote applies, store the
25315         address of the real subprogram in the underlying record type, so local
25316         dereferences do not go through the PCS.
25317
25318 2004-04-26  Robert Dewar  <dewar@gnat.com>
25319
25320         * i-c.ads: Add some type qualifications to avoid ambiguities when
25321         compiling with s-auxdec.ads and a non-private address type.
25322
25323 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
25324
25325         * Makefile.rtl: Fix error in previous check-in:
25326         Add s-addope.o to non tasking object list (rather than tasking object
25327         list).
25328
25329 2004-04-26  Javier Miranda  <miranda@gnat.com>
25330
25331         * sem_aggr.adb: Fix typo in comments
25332         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
25333         Required to check the null-exclusion attribute.
25334
25335         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
25336         case of anonymous access types in record and array components. For a
25337         component definition the level is the same of the enclosing composite
25338         type.
25339
25340         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
25341         that are anonymous access types the level of accessibility depends on
25342         the enclosing type declaration. In order to have this information, set
25343         the scope of the anonymous access type to the enclosing record type
25344         declaration.
25345         (Array_Type_Declaration): In case of components that are anonymous
25346         access types the level of accessibility depends on the enclosing type
25347         declaration. In order to have this information, set the scope of the
25348         anonymous access type to the enclosing array type declaration.
25349
25350         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
25351         access type.
25352
25353         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
25354         renaming of anonymous access-to-constant types allowed if and only if
25355         the renamed object is access-to-constant.
25356
25357         * sem_util.adb (Type_Access_Level): In case of anonymous access types
25358         that are component_definition or discriminants of a nonlimited type,
25359         the level is the same as that of the enclosing component type.
25360
25361 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
25362
25363         * sem_elim.adb: Some minor code reorganization from code reading. Fix
25364         misprint in the function name (File_Name_Match).
25365
25366 2004-04-23  Laurent GUERBY <laurent@guerby.net>
25367
25368         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
25369         install.
25370
25371 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
25372
25373         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
25374
25375 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
25376
25377         * adaint.c (__gnat_try_lock): No longer requires that the parent
25378         directory be writable, the directory itself is enough.
25379         (gnat_is_absolute_path): Change profile, so that the call from
25380         GNAT.OS_Lib can be made more efficient.
25381
25382         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
25383         from GNAT.OS_Lib can be made more efficient.
25384
25385         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
25386         one copy of the file name. Found by code reading.
25387
25388 2004-04-23  Vincent Celier  <celier@gnat.com>
25389
25390         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
25391         Correct documentation on gnatmake switches transmitted to the compiler
25392
25393         * ali.ads: Minor comment fix
25394
25395 2004-04-23  Javier Miranda  <miranda@gnat.com>
25396
25397         * sem_ch6.adb: (Confirming Types): Code cleanup
25398
25399         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
25400         subprogram types: E_Anonymous_Access_Subprogram_Type and
25401         E_Anonymous_Access_Protected_Subprogram_Type.
25402
25403 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
25404
25405         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
25406         whether a pragma All_Calls_Remote applies to the subprogram on which
25407         'Access is taken.
25408         No functional change is introduced by this revision; the new parameter
25409         will be used to allow calls to local RCI subprograms to be optimized
25410         to not use the PCS in the case where no pragma All_Calls_Remote applies,
25411         as is already done in the PolyORB implementation of the DSA.
25412
25413         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
25414         whether a pragma All_Calls_Remote applies to the subprogram on which
25415         'Access is taken.
25416         No functional change is introduced by this revision; the new parameter
25417         will be used to allow calls to local RCI subprograms to be optimized
25418         to not use the PCS in the case where no pragma All_Calls_Remote applies,
25419         as is already done in the PolyORB implementation of the DSA.
25420
25421 2004-04-23  Robert Dewar  <dewar@gnat.com>
25422
25423         * Makefile.rtl: Add entry for s-addope.o in run time library list
25424         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
25425         * s-addope.ads, s-addope.adb: New files.
25426
25427         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
25428         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
25429         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
25430         System.Address to be non-private and signed.
25431
25432         * sem_elim.adb: Minor reformatting (fairly extensive)
25433         Some minor code reorganization from code reading
25434         Add a couple of ??? comments
25435
25436 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25437
25438         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
25439         (tree_transform, case N_If_Statement): Remove non-determinism.
25440
25441         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
25442
25443 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
25444
25445         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
25446         Eliminate' section.
25447
25448         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
25449         no longer used as a parameter name for Eliminate pragma).
25450
25451 2004-04-22  Laurent GUERBY <laurent@guerby.net>
25452
25453         PR optimization/14984
25454         PR optimization/14985
25455         * trans.c (gigi): Fix non determinism leading to bootstrap
25456         comparison failures.
25457
25458 2004-04-21  Pascal Obry  <obry@gnat.com>
25459
25460         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
25461         passed to spawnvp() to properly handle program pathname with spaces on
25462         Win32.
25463
25464 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
25465
25466         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
25467         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
25468         unlocked in case of exceptions.
25469
25470 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
25471
25472         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
25473         This function does not exist anymore.
25474
25475 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
25476
25477         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
25478
25479         * link.c: Move variables to the __gnat name space.
25480
25481         * Makefile.in: list link.o explicitly when needed.
25482
25483         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
25484
25485 2004-04-21  Javier Miranda  <miranda@gnat.com>
25486
25487         * einfo.adb (Original_Access_Type): New subprogram
25488         (Set_Original_Access_Type): New subprogram
25489         (Write_Field21_Name): Write the name of the new field
25490
25491         * einfo.ads (Original_Access_Type): New field present in access to
25492         subprogram types.
25493         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
25494         E_Anonymous_Access_Protected_Subprogram_Type.
25495
25496         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
25497         subprogram types.
25498
25499         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
25500         to anonymous access to subprogram types.
25501
25502         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
25503         to subprogram types.
25504
25505         * sem_ch3.adb (Access_Definition): Complete decoration of entities
25506         corresponding to anonymous access to subprogram types.
25507         (Analyze_Component_Declaration): Add new actual to the call to
25508         subprogram replace_anonymous_access_to_protected_subprogram.
25509         (Array_Type_Declaration): Add new actual to the call to subprogram
25510         replace_anonymous_access_to_protected_subprogram.
25511         (Process_Discriminants): Add new actual to the call to subprogram
25512         replace_anonymous_access_to_protected_subprogram.
25513         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
25514
25515         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
25516         formal.
25517
25518         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
25519         access to subprogram types.
25520
25521         * sem_util.adb (Has_Declarations): Addition of package_specification
25522         nodes.
25523
25524 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
25525
25526         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
25527         inlined flags to renamed entity only if in current unit.
25528
25529 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
25530
25531         * s-parint.ads: Add DSA implementation marker.
25532
25533         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
25534         value of System.Partition_Interface.DSA_Implementation to determine
25535         what version of the distributed systems annex is available (no
25536         implementation, GLADE, or PolyORB).
25537
25538 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
25539
25540         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
25541
25542 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25543
25544         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
25545         with new type if alias sets differ.
25546         Fixes ACATS c41103b.
25547
25548 2004-04-21  Vincent Celier  <celier@gnat.com>
25549
25550         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
25551         Add array Lang_Args for the language specific compiling argument
25552         switches.
25553
25554         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
25555
25556 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
25557
25558         * gnat_rm.texi: Update the descripton of the Eliminate pragma
25559         according to the recent changes in the format of the parameters of the
25560         pragma (replacing Homonym_Number with Source_Location).
25561
25562 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
25563
25564         * 5isystem.ads: Removed, unused.
25565
25566         * gnat_rm.texi: Redo 1.13 change.
25567
25568 2004-04-19  Robert Dewar  <dewar@gnat.com>
25569
25570         * s-stoele.ads: Clean up definition of Storage_Offset (the new
25571         definition is cleaner, avoids the kludge of explicit Standard operator
25572         references, and also is consistent with a visible System.Address with
25573         no visible operations.
25574
25575         * s-geveop.adb: Add declarations to avoid assumption of visible
25576         operations on type System.Address (since these might not be available
25577         if Address is a non-private type for which the operations
25578         are made abstract).
25579
25580         * sem_eval.adb: Minor reformatting
25581
25582         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
25583         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
25584         reformatting (new function spec format).
25585
25586         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
25587         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
25588         s-caun64.adb: Add declarations to avoid assumption of visible
25589         operations on type System.Address (since these might not be available
25590         if Address is a non-private type for which the operations are made
25591         abstract).
25592
25593         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
25594
25595         * exp_intr.adb: Minor comment update
25596
25597         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
25598
25599         * 5omastop.adb: Add declarations to avoid assumption of visible
25600         operations on type System.Address (since these might not be available
25601         if Address is a non-private type for which the operations
25602         are made abstract).
25603
25604 2004-04-19  Vincent Celier  <celier@gnat.com>
25605
25606         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
25607
25608         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
25609         defaulted to Ada.
25610
25611         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
25612         defaulted to Ada.
25613         Call Check with Process_Languages.
25614         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
25615         with Process_Languages.
25616         (Recursive_Check): New Boolean parameter Process_Languages. Call
25617         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
25618         Process_Languages.
25619
25620         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
25621
25622         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
25623         parameter Ada_Main, defaulted to True.
25624         Check for Ada specific characteristics only when Ada_Main is True.
25625
25626         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
25627
25628         * prj.adb: (Project_Empty): Add new Project_Data components.
25629
25630         * prj.ads: New types and tables for non Ada languages.
25631         (Project_Data): New components Languages, Impl_Suffixes,
25632         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
25633         Include_Path, Include_Data_Set.
25634
25635         * prj-env.ads, prj-env.adb: Minor reformatting
25636
25637         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
25638         Put subprograms in alphabetical order
25639
25640         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
25641         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
25642         Opt.Follow_Links.
25643
25644         * mlib-prj.adb: Back out modification in last version, as they are
25645         incorrect.
25646         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
25647
25648         * make.adb: (Mains): Moved to package Makeutl
25649         (Linker_Opts): Moved to package Makeutl
25650         (Is_External_Assignment): Moved to package Makeutl
25651         (Test_If_Relative_Path): Moved to package Makeutl
25652         (Gnatmake): Move sorting of linker options to function
25653         Makeutl.Linker_Options_Switches.
25654
25655         * makeutl.ads, makeutl.adb: New files.
25656
25657         * Makefile.in: Add makeutl.o to the object files for gnatmake
25658
25659         * makeusg.adb: Add line for new switch -eL.
25660
25661         * gnatls.adb (Image): New function.
25662         (Output_Unit): If in verbose mode, output the list of restrictions
25663         specified by pragmas Restrictions.
25664
25665         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
25666         Text_IO.
25667
25668         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
25669         needed, to put it in the range 1970 (included) - 2026 (excluded).
25670         (Time_Of): Do not shift Unix_Min_Year (1970).
25671         Shift the date by multiple of 56 years, if needed, to put it in the
25672         range 1970 (included) - 2026 (excluded).
25673
25674         * adaint.h, adaint.c (__gnat_set_executable): New function.
25675
25676 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25677
25678         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
25679         and pop GC context.
25680         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
25681         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
25682         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
25683         (tree_transform, case N_Code_Statement): Likewise.
25684         (gnat_expand_stmt, case LABEL_STMT): Don't look at
25685         LABEL_STMT_FIRST_IN_EH.
25686         (gnat_expand_stmt, case ASM_STMT): New case.
25687
25688         * utils2.c (build_unary_op): Properly set TREE_READONLY of
25689         UNCONSTRAINED_ARRAY_REF.
25690
25691         * utils.c (poplevel): Temporarily push/pop GC context around inline
25692         function expansion.
25693
25694         * decl.c (maybe_variable): Properly set TREE_READONLY of
25695         UNCONSTRAINED_ARRAY_REF.
25696         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
25697
25698         * ada-tree.def: (ASM_STMT): New.
25699
25700         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
25701         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
25702         ASM_STMT_INPUT): New.
25703         (ASM_STMT_CLOBBER): Likewise.
25704
25705 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
25706
25707         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
25708         general rcheck mechanism to raise Program_Error for E.4(18), instead
25709         of a custom raiser in System.Partition_Interface.
25710         Part of general cleanup work before PolyORB integration.
25711
25712         * snames.ads, snames.adb: Add new runtime library entities and names
25713         for PolyORB DSA.
25714
25715         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
25716         exp_dist.
25717         (Build_Subprogram_Id): New subprogram provided by exp_dist
25718         Code reorganisation in preparation for PolyORB integration.
25719
25720         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
25721         exp_dist.
25722         (Build_Subprogram_Id): New subprogram provided by exp_dist
25723
25724         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
25725         actual parameter types for call to dereference of an
25726         access-to-subprogram type.
25727
25728         * rtsfind.ads: Add new runtime library entities and names for PolyORB
25729         DSA.
25730
25731         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
25732         instead, which has the same behaviour here since we never pass it a
25733         NULL pointer.
25734
25735         * link.c (run_path_option, Solaris case): Use -Wl, as for other
25736         platforms.
25737
25738         * Makefile.in: adjust object file lists for gnatlink and gnatmake
25739         to account for new dependency upon Interfaces.C.Strings + link.o
25740         For x86 FreeBSD, use 86numaux.
25741
25742         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
25743         from Mlib.Tgt to Mlib.
25744
25745         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
25746         target-independent.
25747
25748         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
25749         target-specific versions of this subprogram, now implemented as a
25750         target-independent function in Mlib.
25751
25752         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
25753         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
25754         (Linker_Library_Path_Option): Remove target-specific versions of this
25755         subprogram, now implemented as a target-independent function in Mlib.
25756
25757         * atree.adb: (Allocate_Initialize_Node): New subprogram.
25758         Factors out node table slots allocation.
25759         (Fix_Parents): New subprogram.
25760         Encapsulate the pattern of fixing up parent pointers for syntactic
25761         children of a rewritten node.
25762         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
25763         (Rewrite): Use New_Copy when creating saved copy of original node.
25764         (Replace): Use Copy_Node to copy nodes.
25765
25766 2004-04-19  Javier Miranda  <miranda@gnat.com>
25767
25768         * sprint.adb (Sprint_Node_Actual): Give support to the new
25769         Access_To_Subprogram node available in Access_Definition nodes. In
25770         addition, give support to the AI-231 node fields: null-exclusion,
25771         all-present, constant-present.
25772
25773         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
25774
25775         * sinfo.ads, sinfo.adb:
25776         New field Access_To_Subprogram_Definition in Access_Definition nodes
25777
25778         * sem_ch6.adb (Process_Formals): Move here the code that creates and
25779         decorates internal subtype declaration corresponding to the
25780         null-excluding formal. This code was previously in Set_Actual_Subtypes.
25781         In addition, carry out some code cleanup on this code. In case of
25782         access to protected subprogram call
25783         Replace_Anonymous_Access_To_Protected_Subprogram.
25784         (Set_Actual_Subtypes): Code cleanup.
25785
25786         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
25787         Find_Type in case of anonymous access renamings. Add warning in case of
25788         null-excluding attribute used in anonymous access renaming.
25789
25790         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
25791         subprogram
25792
25793         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
25794         subprogram.
25795         (Access_Definition): In case of anonymous access to subprograms call
25796         the corresponding semantic routine to decorate the node.
25797         (Access_Subprogram_Declaration): Addition of some comments indicating
25798         some code that probably should be added here. Detected by comparison
25799         with the access_definition subprogram.
25800         (Analyze_Component_Declaration): In case of access to protected
25801         subprogram call Replace_Anonymous_Access_To_Protected.
25802         (Array_Type_Declaration): In case of access to protected subprogram call
25803         Replace_Anonymous_Access_To_Protected_Subprogram.
25804         (Process_Discriminants): In case of access to protected subprogram call
25805         Replace_Anonymous_Access_To_Protected_Subprogram.
25806
25807         * par.adb (P_Access_Definition): New formal that indicates if the
25808         null-exclusion part was present.
25809         (P_Access_Type_Definition): New formal that indicates if the caller has
25810         already parsed the null-excluding part.
25811
25812         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
25813         (P_Identifier_Declarations): Code cleanup and give support to renamings
25814         of anonymous access to subprogram types.
25815         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
25816         (P_Array_Type_Definition): Give support to AI-254.
25817         (P_Component_Items): Give support to AI-254.
25818         (P_Access_Definition): New formal that indicates if the header was
25819         already parsed by the caller.
25820         (P_Access_Type_Definition): New formal that indicates if the caller has
25821         already parsed the null-excluding part.
25822
25823         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
25824         call to P_Access_Definition.
25825
25826 2004-04-19  Geert Bosch  <bosch@gnat.com>
25827
25828         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
25829         the delicate semantics of floating-point to integer conversion.
25830         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
25831
25832         * eval_fat.adb (Machine_Mantissa): Moved to spec.
25833         (Machine_Radix): New function.
25834
25835         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
25836         conversion checks.
25837         (Machine_Radix): New function also for use in conversion checks.
25838
25839 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
25840
25841         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
25842
25843         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
25844         to decorate the access-to-protected subprogram and the equivalent type.
25845
25846         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
25847         to anonymous access to subprogram types.
25848
25849         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
25850         constant-folding, for legality checks in contexts that require an RM
25851         static expression.
25852
25853         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
25854         temporary but stack checking is not enabled, increment serial number
25855         to so that symbol generation is consistent with and without stack
25856         checking.
25857
25858         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
25859         independent on whether stack checking is enabled, caller must check
25860         the corresponding flag.
25861
25862         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
25863         range checks.
25864         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
25865         parent if it has discriminants.
25866         (Build_Derived_Private_Type): Constructed full view does
25867         not come from source.
25868         (Process_Discriminants): Default discriminants on a tagged type are
25869         legal if this is the internal completion of a private untagged
25870         derivation.
25871
25872         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
25873         no constraint checks, because it corresponds to an existing object.
25874
25875         * sem_prag.adb (Process_Convention): Pragma applies
25876         only to subprograms in the same declarative part, i.e. the same unit,
25877         not the same scope.
25878
25879         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
25880         ignore type mismatch on a numeric conversion if expression comes from
25881         expansion.
25882
25883 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
25884
25885         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
25886         Homonym_Number parameter, add processing for Source_Location parameter
25887         corresponding.
25888         (Check_Eliminated): Remove the check for homonym numbers, add the check
25889         for source location traces.
25890
25891         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
25892         with Arg_Source_Location corresponding to the changes in the format of
25893         the pragma.
25894
25895         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
25896         Eliminate pragma corresponding to the changes in the format of the
25897         pragma: Homonym_Number is replaced with Source_Location, two ways of
25898         distinguishing homonyms are mutially-exclusive.
25899
25900 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
25901
25902         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
25903
25904         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
25905         No_Dollar_In_Label, no longer necessary, as it is always True.
25906         (Strip_Suffixes): Likewise.
25907
25908 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
25909
25910         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
25911         modulus for compatibility with size clause on targets with 16-bit
25912         Integer.
25913
25914         * layout.adb (Discrimify): In the case of private types, set Vtyp to
25915         full type to fix type mismatches on calls to size functions for
25916         discriminant-dependent array components.
25917
25918 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
25919
25920         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
25921         lib.
25922
25923 2004-04-19  Pascal Obry  <obry@gnat.com>
25924
25925         * mdll-utl.adb (Locate): New version is idempotent.
25926
25927 2004-04-17  Laurent Guerby <laurent@guerby.net>
25928
25929         PR ada/14988 (partial)
25930         * impunit.adb: Fix typo.
25931
25932 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
25933
25934         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
25935         and install-rts-cert targets.  Remove all gnatlib and gnattools
25936         targets and all other rts-* targets (moved to libada).  Remove (now)
25937         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
25938         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
25939
25940 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
25941
25942         * trans.c (tree_transform): Shortcut returning error_mark_node for
25943         statements in annotate_only_mode.
25944         (tree_transform, case N_Label, case N_Return_Statement,
25945         N_Goto_Statement): Make statement tree instead of generating code.
25946         (tree_transform, case N_Assignment_Statement): No longer check
25947         type_annotate_only.
25948         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
25949         RETURN_STMT): New.
25950         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
25951         New fcns.
25952         (gnat_to_gnu): Collect any RTL generated and deal with it.
25953         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
25954         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
25955         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
25956
25957         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
25958
25959         * ada-tree.def (EXPR_STMT): Fix typo in name.
25960         (BLOCK_STMT, IF_STMT): New nodes.
25961
25962         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
25963         LABEL_STMT_FIRST_IN_EH): New macros.
25964         (RETURN_STMT_EXPR): Likewise.
25965
25966         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
25967         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
25968
25969 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
25970
25971         * atree.ads: Correct documentation on extended nodes.
25972
25973         * link.c: Set run_path_option for FreeBSD.
25974
25975 2004-04-08  Vincent Celier  <celier@gnat.com>
25976
25977         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
25978         one of the ALI file, do not link with DEC lib.
25979
25980         * par.adb Remove the last two characters ("%s" or "%b") when checking
25981         if a language defined unit may be recompiled.
25982
25983 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
25984
25985         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
25986         removal of abstract operation leaves no possible interpretation for
25987         expression.
25988
25989         * sem_eval.adb (Eval_Qualified_Expression): Use
25990         Set_Raises_Constraint_Error on node when needed, so that it does not
25991         get optimized away by subsequent optimizations.
25992
25993         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
25994         operands even when they are not wrapped in a type conversion.
25995
25996 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
25997
25998         * sem_prag.adb (Set_Exported): Warn about making static as result of
25999         export only when the export is coming from source. This may be not
26000         be true e.g. on VMS where we expand export pragmas for exception codes
26001         together with imported or exported exceptions, and we don't want the
26002         user to be warned about something he didn't write.
26003
26004 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
26005
26006         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
26007         duplication between normal entities and those declared as renamings.
26008         No functional change.
26009
26010         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
26011         inline functions returning an unconstrained result.
26012
26013 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
26014
26015         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
26016         conform to what other front-ends do.
26017
26018 2004-04-08  Doug Rupp  <rupp@gnat.com>
26019
26020         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
26021         libraries.
26022
26023 2004-04-06  Pascal Obry  <obry@gnat.com>
26024
26025         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
26026
26027         * osint.adb (Program_Name): Do not look past a directory separator.
26028
26029 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
26030
26031         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
26032
26033         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
26034         requirement for preserving a copy of the original assignment node.
26035
26036         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
26037
26038 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
26039
26040         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
26041         when supported.
26042
26043 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
26044
26045         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
26046         operator calls in functional notation, and apply
26047         Universal_Interpretation to operands, not to their type.
26048
26049 2004-04-06  Robert Dewar  <dewar@gnat.com>
26050
26051         * 5wdirval.adb: Minor reformatting
26052
26053 2004-04-06  Ed Falis  <falis@gnat.com>
26054
26055         * gnat_rm.texi: Improve a reference to the GCC manual
26056
26057 2004-04-05  Vincent Celier  <celier@gnat.com>
26058
26059         * adaint.h, adaint.c: Add function __gnat_named_file_length
26060
26061         * impunit.adb: Add Ada.Directories to the list
26062
26063         * Makefile.in: Add VMS and Windows versions of
26064         Ada.Directories.Validity package body.
26065
26066         * Makefile.rtl: Add a-direct and a-dirval
26067
26068         * mlib-tgt.ads: Minor comment update.
26069
26070         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
26071         a-direct.ads, a-direct.adb: New files.
26072
26073 2004-04-05  Vincent Celier  <celier@gnat.com>
26074
26075         PR ada/13620
26076         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
26077         just to the compiler.
26078
26079 2004-04-05  Robert Dewar  <dewar@gnat.com>
26080
26081         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
26082         returned string is 1.
26083
26084         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
26085
26086         * eval_fat.ads: Minor reformatting
26087
26088         * g-curexc.ads: Document that lower bound of returned string values
26089         is always one.
26090
26091         * gnatlink.adb: Add ??? comment for previous change
26092         (need to document why this is VMS specific)
26093
26094         * s-stoele.ads: Minor reformatting
26095
26096         * tbuild.ads: Minor reformatting throughout (new function specs)
26097
26098         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
26099         after WITH.
26100
26101         * scng.adb: Minor reformatting
26102
26103 2004-04-05  Geert Bosch  <bosch@gnat.com>
26104
26105         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
26106         (Leading_Part): Still perform truncation to machine number if the
26107         specified radix_digits is greater or equal to machine_mantissa.
26108
26109 2004-04-05  Javier Miranda  <miranda@gnat.com>
26110
26111         * par-ch3.adb: Complete documentation of previous change
26112         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
26113         (aliased must appear before constant).
26114
26115         * par-ch4.adb: Complete documentation of previous change.
26116
26117         * par-ch6.adb: Complete documentation of previous change.
26118
26119         * sinfo.ads: Fix typo in commment.
26120
26121 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
26122
26123         * sem_ch3.adb (Inherit_Components): If derived type is private and has
26124         stored discriminants, use its discriminants to constrain parent type,
26125         as is done for non-private derived record types.
26126
26127         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
26128         Ada 2005 AI-310: an abstract non-dispatching operation is not a
26129         candidate interpretation in an overloaded call.
26130
26131         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
26132         expression is Null and target type is not an access type (e.g. a
26133         non-private address type).
26134
26135 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
26136
26137         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
26138         statement whose right-hand side is an inlined call, save a copy of the
26139         original assignment subtree to preserve enough consistency for
26140         Analyze_Assignment to proceed.
26141
26142         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
26143         complete assignment subtree which is now unnecessary, as the expansion
26144         of inlined call has been improved to preserve a consistent assignment
26145         tree.  Note_Possible_Modification must be called only
26146         after checks have been applied, or else unnecessary checks will
26147         be generated.
26148
26149         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
26150         of explicit dereferences that do not Come_From_Source:
26151          - be selective on cases where we must go back to the dereferenced
26152            pointer (an assignment to an implicit dereference must not be
26153            recorded as modifying the pointer);
26154          - do not rely on Original_Node being present (Analyze_Assignment
26155            calls Note_Possible_Modification on a copied tree).
26156
26157         * sem_warn.adb (Check_References): When an unset reference to a pointer
26158         that is never assigned is encountered, prefer '<pointer> may be null'
26159         warning over '<pointer> is never assigned a value'.
26160
26161 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
26162
26163         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
26164         the ABI.
26165
26166 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
26167
26168         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
26169         libexc. We currently don't reference anything in this library and
26170         linking it in triggers linker warnings we don't want to see.
26171
26172         * init.c: Update comments.
26173
26174 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26175
26176         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
26177         * utils.c (create_field_decl): Likewise.
26178         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
26179
26180 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
26181
26182         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
26183         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
26184         Add info directory entry and category.
26185
26186 2004-04-02  Jan Hubicka  <jh@suse.cz>
26187
26188         * utils.c: Include function.h
26189         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
26190
26191 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
26192
26193         PR ada/14150
26194         * Make-lang.in: Clean up generation of documentation
26195
26196         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
26197
26198         * xgnatug.adb: Removed, replaced by xgnatugn.adb
26199
26200         * xgnatugn.adb: Replaces xgnatug.adb
26201
26202         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
26203
26204         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
26205
26206         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
26207         gnat_ug_wnt.texi: Removed.
26208
26209 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
26210
26211         * utils2.c: Update copyright notice.
26212
26213 2004-04-01  Robert Dewar  <dewar@gnat.com>
26214
26215         * checks.adb: Minor reformatting throughout
26216         Note that prev checkin added RM reference to alignment warning
26217
26218 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
26219
26220         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
26221         non-static when building aggregate for bit-packed array.
26222
26223         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
26224         function call that is itself the actual in a procedure call, build
26225         temporary for it.
26226
26227         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
26228         a string literal, create a temporary for it, constant folding only
26229         handles scalars here.
26230
26231 2004-04-01  Vincent Celier  <celier@gnat.com>
26232
26233         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
26234         Error_Msg_SP): New empty procedures to instantiate the Scanner.
26235         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
26236         tokens.
26237         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
26238         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
26239         and get the checksum.
26240
26241         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
26242         already in the Q.
26243         Increase the Marking_Label at the end of the Multiple_Main_Loop,
26244         instead of at the beginning.
26245
26246         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
26247         directly.
26248         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
26249         on VMS.
26250
26251         * osint.ads (Multi_Unit_Index_Character): New Character global variable
26252
26253         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
26254         not '~' directly.
26255
26256         * par.adb: Remove test on file name to detect language defined units.
26257         Add test on unit name, after parsing, to detect language defined units
26258         that are not compiled with -gnatg (except System.RPC and its children)
26259
26260         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
26261         following units without style checking.
26262
26263         * switch-c.adb: Change -gnatC to -gnateI
26264
26265         * usage.adb: Document new switch -gnateInnn
26266
26267         * scng.adb (Accumulate_Token_Checksum): New procedure
26268         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
26269         word or literal number.
26270         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
26271         numbers.
26272
26273 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
26274
26275         * a-tasatt.adb,
26276         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
26277         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
26278         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
26279         5vtpopde.adb: Add missing 'constant' keywords.
26280
26281 2004-04-01  Javier Miranda  <miranda@gnat.com>
26282
26283         * par-ch4.adb: (P_Allocator): Code cleanup
26284
26285         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
26286         attribute.
26287
26288         * sinfo.ads: Complete documentation of previous change
26289
26290 2004-04-01  Pascal Obry  <obry@gnat.com>
26291
26292         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
26293         only on VMS.  This special handling was done because an old GNU/ld bug
26294         on Windows which has been fixed.
26295
26296 2004-04-01  GNAT Script  <nobody@gnat.com>
26297
26298         * Make-lang.in: Makefile automatically updated
26299
26300 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26301
26302         * decl.c (gnat_to_gnu_entity, make_type_from_size):
26303         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
26304         * trans.c (tree_transform, convert_with_check): Likewise.
26305         * utils.c (gnat_signed_or_unsigned_type): Likewise.
26306         (build_vms_descriptor, unchecked_convert): Likewise.
26307         * utils2.c (nonbinary_modular_operation): Likewise.
26308
26309 2004-03-29  Javier Miranda  <miranda@gnat.com>
26310
26311         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
26312         (Install_Null_Excluding_Check): Local subprogram that determines whether
26313         an access node requires a runtime access check and if so inserts the
26314         appropriate run-time check.
26315         (Apply_Access_Check): Call Install_Null_Excluding check if required
26316         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
26317
26318         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
26319
26320         * einfo.ads: Fix typo in comment
26321
26322         * exp_ch3.adb (Build_Assignment): Generate conversion to the
26323         null-excluding type to force the corresponding run-time check.
26324         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
26325         type to force the corresponding run-time check.
26326
26327         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
26328         the null-excluding type to force the corresponding run-time check.
26329
26330         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
26331         case of access types unless they have the null-excluding attribute.
26332
26333         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
26334         part.
26335
26336         * exp_util.ads: Fix typo in comment
26337
26338         * par.adb (P_Null_Exclusion): New subprogram
26339         (P_Subtype_Indication): New formal that indicates if the null-excluding
26340         part has been scanned-out and it was present
26341
26342         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
26343
26344         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
26345         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
26346         type to force the corresponding run-time check
26347         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
26348         components
26349         (Resolve_Array_Aggregate): Carry out some static checks
26350         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
26351
26352         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
26353         attribute must be set only if specified by means of the null-excluding
26354         part. In addition, we must also propagate the access-constant attribute
26355         if present.
26356         (Access_Subprogram_Declaration, Access_Type_Declaration,
26357         Analyze_Component_Declaration, Analyze_Object_Declaration,
26358         Array_Type_Declaration, Process_Discriminants,
26359         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
26360         and carry out some static checks.
26361         (Build_Derived_Access_Type): Set the null-excluding attribute
26362         (Derived_Type_Declaration, Process_Subtype): Carry out some static
26363         checks.
26364
26365         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
26366
26367         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
26368
26369         * sem_ch6.adb (Process_Formals): Carry out some static checks.
26370         (Set_Actual_Subtypes): Generate null-excluding subtype if the
26371         null-excluding part was present; it is not required to be done here in
26372         case of anonymous access types.
26373         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
26374         value.
26375
26376         * sem_res.adb (Resolve_Actuals): Carry out some static check
26377         (Resolve_Null): Allow null in anonymous access
26378
26379         * sinfo.adb: New subprogram Null_Exclusion_Present
26380         All_Present and Constant_Present available on access_definition nodes
26381
26382         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
26383         object_declaration, derived_type_definition, component_definition,
26384         discriminant_specification, access_to_object_definition,
26385         access_function_definition, allocator, access_procedure_definition,
26386         access_definition, parameter_specification, All_Present and
26387         Constant_Present flags available on access_definition nodes.
26388
26389 2004-03-29  Robert Dewar  <dewar@gnat.com>
26390
26391         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
26392         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
26393         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
26394         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
26395         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
26396         sem_prag.adb: Updates to handle multiple units/file
26397
26398         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
26399
26400         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
26401         sem_util.adb: Minor reformatting
26402
26403         * sem_ch12.adb: Add comment for previous change
26404
26405 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
26406
26407         * osint.adb (Executable_Prefix): Set Exec_Name to the current
26408         executable name when not initialized. Otherwise, use its current value.
26409
26410         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
26411         initialize it to another executable name than the current one. This
26412         allows to configure paths for an executable name (gnatmake) different
26413         from the current one (gnatdist).
26414
26415 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
26416
26417         * exp_ch6.adb (Expand_Call): A call to a function declared in the
26418         current unit cannot be inlined if it appears in the body of a withed
26419         unit, to avoid order of elaboration problems in gigi.
26420
26421         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
26422         information for protected (wrapper) operation as well, to simplify gdb
26423         use.
26424
26425         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
26426         protected body, indicate that the entity for the generated spec comes
26427         from source, to ensure that references are properly generated for it.
26428         (Build_Body_To_Inline): Do not inline a function that returns a
26429         controlled type.
26430
26431         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
26432         apply convention to homonyms that are declared explicitly.
26433
26434         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
26435         that renames an equality operator and the operands are overloaded,
26436         resolve them with the declared formal types, before rewriting as an
26437         operator.
26438
26439 2004-03-29  GNAT Script  <nobody@gnat.com>
26440
26441         * Make-lang.in: Makefile automatically updated
26442
26443 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
26444
26445         * memtrack.adb: Log realloc calls, which are treated as free followed
26446         by alloc.
26447
26448 2004-03-25  Vincent Celier  <celier@gnat.com>
26449
26450         * prj-makr.adb (Process_Directories): Detect when a file contains
26451         several units. Do not include such files in the config pragmas or
26452         in the naming scheme.
26453
26454         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
26455         Resolve links only when not in Trusted_Mode.
26456         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
26457         Do not resolve links for the display names.
26458
26459         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
26460         resolve links when computing the display names.
26461
26462 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
26463
26464         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
26465         attribute reference does not denote a subtype, it can be any
26466         expression that has a classwide type, potentially after an implicit
26467         dereference.  In particular, the prefix can be a view conversion for
26468         a classwide type (for which Is_Object_Reference holds), but it can
26469         also be a value conversion for an access-to-classwide type. In the
26470         latter case, there is an implicit dereference, and the original node
26471         for the prefix does not verify Is_Object_Reference.
26472
26473         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
26474         conversion of a discriminant-dependent component of a mutable object
26475         is one itself.
26476
26477 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
26478
26479         * freeze.adb (Freeze_Entity): When an inherited subprogram is
26480         inherited, has convention C, and has unconstrained array parameters,
26481         place the corresponding warning on the derived type declaration rather
26482         than the original subprogram.
26483
26484         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
26485         indication on renaming declaration, if formal has a box and actual
26486         is absent.
26487
26488         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
26489         determine whether to generate an implicit or explicit reference to
26490         the renamed entity.
26491
26492         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
26493         subprogram renaming comes from a defaulted formal subprogram in an
26494         instance.
26495
26496 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
26497
26498         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
26499         value expressions to ensure that calls within a component definition
26500         will be checked (since those are evaluated during the record type's
26501         elaboration).
26502
26503 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
26504
26505         * s-tpobop.adb: Code clean up:
26506         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
26507         code.
26508         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
26509
26510 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
26511
26512         * Makefile.in: Clean up in the ravenscar run time.
26513
26514 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26515
26516         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
26517         of No_Strict_Aliasing to build_pointer_type_for_mode.
26518         * utils.c (update_pointer_to): Walk pointer and ref chains.
26519
26520 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
26521
26522         * ali.ads: Fix Comment about Dynamic_Elab.
26523
26524         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
26525         Has_RACW, Is_Generic, etc.)
26526         (Output_Object, Gnatls): Take into account ALI files not attached to
26527         an object.
26528
26529 2004-03-22  Vincent Celier  <celier@gnat.com>
26530
26531         * gprep.adb: Change all String_Access to Name_Id
26532         (Is_ASCII_Letter): new function
26533         (Double_File_Name_Buffer): New procedure
26534         (Preprocess_Infile_Name): New procedure
26535         (Process_Files): New procedure
26536         (Gnatprep): Check if output and input are existing directories.
26537         Call Process_Files to do the real job.
26538
26539 2004-03-22  Robert Dewar  <dewar@gnat.com>
26540
26541         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
26542         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
26543
26544 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
26545
26546         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
26547         case when the source contains only comments.
26548
26549 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
26550
26551         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
26552         declaration for a child subprogram body that acts as a spec, indicate
26553         that the entity in the declaration needs debugging information.
26554
26555         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
26556         full view if the subtype is created for a constrained record component;
26557         gigi has enough information to construct the record, and there is no
26558         place in the tree for the declaration.
26559
26560         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
26561         serial number for the dummy body that is built for analysis, to avoid
26562         inconsistencies in the generation of internal names when compiling
26563         with -gnatN.
26564
26565 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
26566
26567         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
26568         object.
26569
26570 2004-03-22  GNAT Script  <nobody@gnat.com>
26571
26572         * Make-lang.in: Makefile automatically updated
26573
26574 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26575
26576         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
26577         * trans.c (tree_transform, emit_index_check): Likewise.
26578         * utils.c (build_template): Likewise.
26579         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
26580         (maybe_unconstrained_array, unchecked_convert): Likewise.
26581         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
26582         (build_unary_op): Likewise.
26583         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
26584         (fill_vms_descriptor): Likewise.
26585         (build_call_alloc_dealloc): Likewise.
26586         ALIGN is unsigned.
26587         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
26588
26589 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
26590
26591         PR other/14630
26592         * gnat_ug.texi: Add info directory category and entry.
26593         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
26594         gnat_ug_wnt.texi: Regenerate.
26595
26596 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
26597
26598         * ada-tree.h: Update copyright notice.
26599         Minor reformatting.
26600
26601 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
26602
26603         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
26604         as regular exception objects and not as mere integers representing the
26605         condition code.  The latter approach required some dynamics to mask off
26606         severity bits, which did not fit well into the GCC table based model.
26607         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
26608         exception data objects. We don't it and it would conflict with the other
26609         external symbol we have to generate for such exceptions.
26610
26611         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
26612         the special code for VMS exceptions, since these are now represented
26613         as regular exceptions objects.
26614
26615 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26616
26617         * decl.c (debug_no_type_hash): Remove.
26618         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
26619         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
26620
26621 2004-03-19  Laurent Guerby <laurent@guerby.net>
26622
26623         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
26624         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
26625
26626 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26627
26628         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
26629         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
26630         (TYPE_RM_SIZE_INT): Directly use type.values.
26631         (TREE_LOOP_ID): Clean up check.
26632         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
26633         TYPE_VALUES, not TYPE_FIELDS.
26634         * trans.c (convert_with_check): Delay access of bounds of basetype
26635         until sure is numeric.
26636
26637 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
26638
26639         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
26640
26641         Code clean up:
26642         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
26643         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
26644         Specific.Set instead of direct call to e.g pthread_setspecific.
26645
26646 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
26647
26648         * adaint.c: Update comments.
26649
26650         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
26651         GNATLIB_SHARED for FreeBSD.
26652
26653 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
26654
26655         * init.c [VxWorks]: Do not fix the stack size for the environment task.
26656         When needed (stack checking) the stack size is retrieved
26657         from the VxWorks kernel.
26658
26659         * Makefile.in: Flag -nostdinc is required when building the run time
26660         for avoiding looking for files in the base compiler.
26661         Add the VxWorks specific version of the package body for
26662         System.Stack_checking.Operations (5zstchop.adb).
26663
26664         * Make-lang.in: Add the object file for
26665         System.Stack_Checking.Operations.
26666
26667         * Makefile.rtl: Add object file for the package
26668         System.Stack_Checking.Operations.
26669
26670         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
26671
26672         * s-stache.ads, s-stache.adb: Move the operations related to stack
26673         checking from this package to package System.Stack_Checking.Operations.
26674         This way, stack checking operations are only linked in the final
26675         executable when using the -fstack-check flag.
26676
26677 2004-03-18  Doug Rupp  <rupp@gnat.com>
26678
26679         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
26680         Reorganize ifeq's.
26681
26682         * 5qsystem.ads, 5xcrtl.ads: New files.
26683
26684 2004-03-18  Vincent Celier  <celier@gnat.com>
26685
26686         * prj.adb (Reset): Reset hash table Files_Htable
26687
26688         * prj-env.adb (Source_Paths, Object_Paths): New tables.
26689         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
26690         the procedures Add_To_Path_File.
26691         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
26692         making sure that each directory is present only once and, for object
26693         dirs, when a directory already present is added, the duplicate is
26694         removed and the directory is always put as the last in the table.
26695         Write the path files at the end of these accumulations.
26696
26697         * prj-nmsc.adb (Record_Source): Add source file name in hash table
26698         Files_Htable for all sources.
26699
26700         * prj-proc.adb (Process): Remove restrictions between not directly
26701         related extending projects.
26702
26703 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
26704
26705         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
26706         (Find_Sources): Minor speed optimization.
26707
26708         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
26709         parameter Trusted_Mode.
26710
26711 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
26712
26713         * scn.adb (Determine_License): Take into account a degenerated case
26714         when the source contains only comments.
26715
26716 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
26717
26718         * sem_warn.adb (Check_References): For a warning on a selected
26719         component that does not come from source, locate an uninitialized
26720         component of the record type to produce a more precise error message.
26721
26722 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
26723
26724         * 3zsoccon.ads: Fix multicast options.
26725
26726         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
26727         in the spec.
26728
26729 2004-03-15  Robert Dewar  <dewar@gnat.com>
26730
26731         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
26732         pragma used for a private type.
26733
26734         * lib-xref.adb (Generate_Reference): Do not generate warning if
26735         reference is in a different unit from the pragma Unreferenced.
26736
26737         * 5vtpopde.adb: Minor reformatting
26738         Fix casing of To_Task_ID
26739
26740         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
26741         flag if we have an unchecked conversion to an access type in the same
26742         unit.
26743
26744 2004-03-15  Geert Bosch  <bosch@gnat.com>
26745
26746         * a-ngcoty.adb (Modulus): In alternate formula for large real or
26747         imaginary parts, use Double precision throughout.
26748
26749         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
26750         we want to be able to compile run-time with -gnata for testing, but
26751         this may also be instantiated in user code that is compiled with -gnata.
26752
26753 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
26754
26755         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
26756         codes. Having a separate type for this is useful to enforce consistency
26757         throughout the various run-time units.
26758         (Exception_Data): Use Exception_Code for Import_Code.
26759
26760         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
26761         Natural and Integer in various places.
26762         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
26763         with the severity bits masked off.
26764         (Register_VMS_Exception): Handle the additional exception data pointer
26765         argument.
26766
26767         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
26768         component, now reflected by an exported accessor.
26769         (is_handled_by): New routine to compute whether the propagated
26770         occurrence matches some handler choice specification. Extracted out of
26771         get_action_description_for, and expanded to take care of the VMS
26772         specifities.
26773         (get_action_description_for): Use is_handled_by instead of an explicit
26774         complex condition to decide if the current choice at hand catches the
26775         propagated occurrence.
26776
26777         * raise.h (Exception_Code): New type for C.
26778
26779         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
26780         System.Standard_Library.Exception_Code, to allow references from the
26781         pragma import/export expander.
26782
26783         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
26784         New accessors to allow easy access to GNAT exception data
26785         characteristics.
26786         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
26787         redundant Handled_By_Others component, helper for the personality
26788         routine which will now be able to call the appropriate exception data
26789         accessor instead.
26790
26791         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
26792         component of Standard_Exception_Type to be the closest possible to
26793         Exception_Code in System.Standard_Library, that we cannot get at this
26794         point. Expand a ??? comment to notify that this type node should
26795         probably be rewritten later on.
26796
26797         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
26798         registration call to include a pointer to the exception object in the
26799         arguments.
26800
26801         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
26802         instead of int and explicit bitmasks.
26803
26804 2004-03-15  Vincent Celier  <celier@gnat.com>
26805
26806         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
26807         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
26808
26809         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
26810         longer needed now that it is in the spec of
26811         System.Tasking.Task_Attributes.
26812
26813         * adaint.h, adaint.c: (__gnat_create_output_file): New function
26814
26815         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
26816
26817         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
26818
26819         * make.adb (Gnatmake): Do not check the executable suffix; it is being
26820         taken care of in Scan_Make_Arg.
26821         (Scan_Make_Arg): Add the executable suffix only if the argument
26822         following -o, in canonical case, does not end with the executable
26823         suffix.  When in verbose mode and executable file name does not end
26824         with executable suffix, output the executable name, in canonical case.
26825
26826         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
26827         to avoid warnings when instantiating Ada.Task_Attributes.
26828         Minor reformating.
26829
26830         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
26831         in the correct order.
26832
26833         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
26834         redirect standard output and error to a file for the invocation of the
26835         compiler, then read the file.
26836
26837         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
26838         directory, instead of the Value.
26839         (Find_Source_Dirs): Remove useless code & comments.
26840
26841 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
26842
26843         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
26844         tagged type is inherited, and the parent operation is not frozen yet,
26845         force generation of a freeze node for the inherited operation, so the
26846         corresponding dispatch entry is properly initialized.
26847         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
26848         when looking for user-defined equality operation.
26849
26850         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
26851         boolean when locating primitive equality of tagged component.
26852
26853         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
26854         bit-aligned field and the right-hand side a string literal, introduce
26855         a temporary before expanding assignment into a loop.
26856
26857         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
26858         priority in full, to ensure that any expanded subepxressions of it are
26859         elaborated in the scope of the init_proc.
26860
26861         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
26862         after object declaration, skipping over code that may have been
26863         generated for validity checks.
26864
26865         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
26866         discriminants, ignore the known discriminants of its full view, if
26867         any, to check legality.
26868
26869         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
26870         component if type has unknown discriminants.
26871         (Analyze_Private_Extension_Declaration): Discriminant constraint is
26872         null if type has unknown discriminants.
26873
26874         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
26875         for end label when present.
26876
26877         * s-fileio.adb (Open): When called with a C_Stream, use given name for
26878         temporary file, rather than an empty string.
26879
26880 2004-03-15  Ed Falis  <falis@gnat.com>
26881
26882         * s-thread.adb: Removed, no longer used.
26883
26884 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26885
26886         * decl.c (target.h): Now include.
26887         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
26888         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
26889         (validate_size): For POINTER_TYPE, get smallest size permitted on
26890         machine.
26891
26892         * fe.h: Sort Einfo decls and add Set_Mechanism.
26893
26894         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
26895         (ada/decl.o): Depends on target.h.
26896
26897         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
26898         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
26899
26900 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
26901
26902         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
26903
26904         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
26905         Insert_Dereference_Action when rewriting an implicit dereference into
26906         an explicit one, this will be taken care of during expansion of the
26907         explicit dereference.
26908         (Expand_N_Slice): Same. Always do the rewriting, even for the case
26909         of non-packed slices, since the dereference action generated by
26910         expansion of the explicit dereference is needed in any case.
26911         (Expand_N_Selected_Component): When rewriting an implicit dereference,
26912         analyze and resolve the rewritten explicit dereference so it is seen
26913         by the expander.
26914         (Insert_Dereference_Action): This procedure is now called only for the
26915         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
26916         dereferences that do not come from source (including explicit
26917         dereferences resulting from rewriting implicit ones), but do not
26918         recursively insert a check for the dereference nodes contained within
26919         the check.
26920         (Insert_Dereference_Action): Clarify and correct comment.
26921
26922 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
26923
26924         PR ada/14131
26925         Move language detection to the top level.
26926         * config-lang.in: Build by default.
26927
26928 2004-03-05  Robert Dewar  <dewar@gnat.com>
26929
26930         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
26931
26932         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
26933         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
26934         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
26935         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
26936         unchecked conversion to spec to avoid warnings.
26937
26938         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
26939         to Task_ID
26940
26941         * 7stpopsp.adb: Correct casing in To_Task_ID call
26942
26943         * a-strsea.ads, a-strsea.adb: Minor reformatting
26944
26945         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
26946
26947         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
26948         Adjust Max_Msg_Length to be clearly large enough.
26949
26950         * fe.h: Define In_Same_Source_Unit
26951
26952         * osint.adb: Add pragma Warnings Off to suppress warnings
26953         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
26954         aliasing warnings.
26955
26956         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
26957
26958         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
26959
26960         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
26961
26962         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
26963
26964         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
26965
26966         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
26967         node. We now do generate them for gcc back end.
26968
26969         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
26970         warning.
26971
26972         * sinput-c.adb: Fix bad name in header.
26973         Add pragma Warnings Off to suppress aliasing warning.
26974
26975         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
26976
26977         * snames.h, snames.ads, snames.adb: Add entry for pragma
26978         No_Strict_Aliasing.
26979
26980 2004-03-05  Vincent Celier  <celier@gnat.com>
26981
26982         * prj-com.ads: Add hash table Files_Htable to check when a file name
26983         is already a source of another project.
26984
26985         * prj-nmsc.adb (Record_Source): Before recording a new source, check
26986         if its file name is not already a source of another project. Report an
26987         error if it is.
26988
26989         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
26990         source file name, call gnatpp with all the sources of the main project.
26991
26992         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
26993         of file names.
26994
26995         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
26996         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
26997         /RUNTIME_SYSTEM=, converted to --RTS=
26998         /NOTABS, converted to -notabs
26999
27000 2004-03-05  Pascal Obry  <obry@gnat.com>
27001
27002         * make.adb: Minor reformatting.
27003
27004 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
27005
27006         Part of implemention of AI-262.
27007         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
27008
27009         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
27010         procedure.
27011
27012         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
27013         when component type is a partially constrained class-wide subtype.
27014         (Constrain_Discriminated_Type): If parent type has unknown
27015         discriminants, a constraint is illegal, even if full view has
27016         discriminants.
27017         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
27018         with unknown discriminants whose full view is a discriminated record.
27019
27020         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
27021         flag, to handle properly derivations of tagged types with unknown
27022         discriminants.
27023         (Analyze_Package_Spec, Analyze_Package_Body): Install
27024         Private_With_Clauses before analyzing private part or body.
27025
27026         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
27027         Has_Discriminants can be true for a given type (documentation).
27028
27029 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
27030
27031         * s-restri.ads: Fix license (GPL->GMGPL).
27032
27033         * s-tassta.adb: Minor reformatting.
27034
27035         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
27036         by calls to Exit_One_ATC_Level, since additional clean up is performed
27037         by this function.
27038
27039         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
27040         by calls to Exit_One_ATC_Level, since additional clean up is performed
27041         by this function.
27042
27043 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27044
27045         * trans.c: Reflect GCC changes to fix bootstrap problem.
27046         Add warning for suspicious aliasing unchecked conversion.
27047
27048 2004-03-05  GNAT Script  <nobody@gnat.com>
27049
27050         * Make-lang.in: Makefile automatically updated
27051
27052 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
27053
27054         * ali.adb (Read_Instantiation_Instance): Do not modify the
27055         current_file_num when reading information about instantiations, since
27056         this corrupts files in later references.
27057
27058 2004-03-02  Vincent Celier  <celier@gnat.com>
27059
27060         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
27061         before checking if it is read-only.
27062
27063         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
27064         of SRC_DIRS and eliminate duplicates.
27065
27066         * gprcmd.adb: Replace command "path" with command "path_sep" to return
27067         the path separator.
27068         (Usage): Document path_sep
27069
27070         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
27071         C++ compiler. No need for a script.
27072         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
27073         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
27074         subst.
27075
27076         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
27077         where there are Ada sources.
27078         (Set_Ada_Paths): Only add to the include path the source dirs of project
27079         with Ada sources.
27080         (Add_To_Path): Add the Display_Values of the directories, not their
27081         Values.
27082
27083         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
27084         data.
27085
27086         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
27087         is not No_Name.
27088         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
27089         Value is canonicalized.
27090         (Language_Independent_Check): Do not copy Value to Display_Value when
27091         canonicalizing Value.
27092
27093         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
27094         path to find limited with cycles.
27095         (Parse_Single_Project): Use canonical cased path to find the end of a
27096         with cycle.
27097
27098 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
27099
27100         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
27101         and not a child unit.
27102
27103         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
27104         appear in a with_clause.
27105
27106         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
27107         only happen in type_annotate mode, do not try to elaborate it.
27108
27109         * exp_util.adb (Force_Evaluation): If expression is a selected
27110         component on the left of an assignment, use a renaming rather than a
27111         temporary to remove side effects.
27112
27113         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
27114         inlined instance body, which is analyzed before the end of the
27115         enclosing scope.
27116
27117 2004-03-02  Robert Dewar  <dewar@gnat.com>
27118
27119         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
27120         sem_ch4.adb: Use new feature for substitution of keywords in VMS
27121
27122         * errout.ads, errout.adb: Implement new circuit for substitution of
27123         keywords in VMS.
27124
27125         * sem_case.adb (Analyze_Choices): Place message properly when case is
27126         a subtype reference rather than an explicit range.
27127
27128         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
27129
27130 2004-03-02  Doug Rupp  <rupp@gnat.com>
27131
27132         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
27133
27134 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
27135
27136         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
27137
27138 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27139
27140         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
27141         BLKmode bitfield.
27142
27143 2004-02-25  Robert Dewar  <dewar@gnat.com>
27144
27145         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
27146         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
27147         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
27148         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
27149         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
27150         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
27151         the defining instance of the type to avoid aliasing problems.
27152         Fix copyright header.  Fix bad comments in package header.
27153
27154         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
27155
27156 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
27157
27158         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
27159         rewritten as references when aliased through an address clause.
27160
27161         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
27162         whether call can be interpreted as an indirect call to the result of a
27163         parameterless function call returning an access subprogram.
27164
27165 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
27166
27167         Code clean up:
27168         * exp_ch7.adb (Make_Clean): Remove generation of calls to
27169         Unlock[_Entries], since this is now done by Service_Entries directly.
27170
27171         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
27172
27173         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
27174         Requeue_Call for better code readability. Change spec and update calls:
27175         PO_Service_Entries now unlock the PO on exit.
27176         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
27177         PO_Service_Entries.
27178
27179         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
27180
27181         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
27182
27183 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
27184
27185         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
27186         protected subprogram call and analyzing the result of such expanding
27187         in case when the called protected subprogram is eliminated.
27188
27189         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
27190         names.
27191
27192 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
27193
27194         * Makefile.in: Clean ups.
27195
27196 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
27197
27198         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
27199         protected operations if original subprogram is flagged as eliminated.
27200         (Expand_N_Subprogram_Body): For a protected operation, create
27201         discriminals for next operation before checking whether the operation
27202         is eliminated.
27203
27204         * exp_ch9.adb (Expand_N_Protected_Body,
27205         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
27206         for internal protected operations if the original subprogram is
27207         eliminated.
27208
27209         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
27210         declared in a single protected object.
27211
27212 2004-02-23  Vincent Celier  <celier@gnat.com>
27213
27214         * prj-attr.adb: Make attribute Builder'Executable an associative array,
27215         case insensitive if file names are case insensitive, instead of a
27216         standard associative array.
27217
27218         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
27219         them as case insensitive on platforms where the file names are case
27220         sensitive.
27221
27222         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
27223         project file has already been parsed that canonical path are compared.
27224
27225 2004-02-23  Robert Dewar  <dewar@gnat.com>
27226
27227         * sinput-c.ads: Correct bad unit title in header
27228
27229         * freeze.adb: Minor reformatting
27230
27231 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27232
27233         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
27234         nonaddressable COMPONENT_REF that is removing padding that we are
27235         taking the address of, take the address of the padded record instead
27236         if item is variable size.
27237
27238 2004-02-20  Robert Dewar  <dewar@gnat.com>
27239
27240         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
27241
27242 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
27243
27244         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
27245         itype references for the constrained designated type of a component
27246         whose base type is already frozen.
27247
27248 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
27249
27250         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
27251         avoid GCC warnings.
27252
27253 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
27254
27255         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
27256         identifier for a phantom package that rewrites the formal package
27257         declaration with a box. The Add semantic decorations for the defining
27258         identifier from the original node (that represents the formal package).
27259
27260 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
27261
27262         * Make-lang.in (ada/stamp-sdefault): Use the top level
27263         move-if-change.
27264
27265 2004-02-19  Richard Henderson  <rth@redhat.com>
27266
27267         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
27268
27269 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
27270
27271         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
27272         Scan_ALI can be used for multiple ALI files without reinitializing
27273         between calls.
27274
27275 2004-02-18  Robert Dewar  <dewar@gnat.com>
27276
27277         * debug.adb: Minor reformatting.
27278
27279 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27280
27281         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
27282         to zero if there is an address clause.
27283
27284 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
27285
27286         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
27287
27288 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
27289
27290         * layout.adb (Layout_Component_List): Revise generation of call to
27291         discriminant-checking function to pass selections of all of the type's
27292         discriminants rather than just the variant-controlling discriminant.
27293
27294 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
27295
27296         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
27297         fail in the current setup and triggers spurious system error messages.
27298         Pretend it occurred and failed instead.
27299
27300 2004-02-18  Vincent Celier  <celier@gnat.com>
27301
27302         * bld.adb: Mark FLDFLAGS as saved
27303         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
27304         it is not the root project.  Put each directory to be
27305         extended between double quotes to prevent it to be expanded on Windows.
27306         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
27307         the project file. Set them back to their initial values if they have not
27308         been set in the project file.
27309
27310         * gprcmd.adb: (Gprdebug, Debug): New global variables
27311         (Display_Command): New procedure
27312         (Usage): Document new command "linkopts"
27313         Call Display_Command when env var GPRDEBUG has the value "TRUE"
27314         Implement new command "linkopts"
27315         Remove quotes that may be around arguments for "extend"
27316         Always call Normalize_Pathname with arguments formatted for the platform
27317
27318         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
27319         Change @echo to @$(display) in target clean to be able to clean silently
27320
27321         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
27322
27323         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
27324         canonical case.
27325
27326         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
27327         = Extending_All when current project is an extending all project.
27328
27329         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
27330         set to True only for LINK command, after Unix switch -o.
27331         (Process_Arguments): Set Output_File_Expected to True for LINK command
27332         after Unix switch -o. When Output_File_Expected is True, never add an
27333         extension to a file name.
27334
27335         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
27336         option file name, only to the --for-linker= switch.
27337         (Option_File_Name): If option file name do not end with ".opt", append
27338         "/OPTIONS".
27339
27340 2004-02-18  GNAT Script  <nobody@gnat.com>
27341
27342         * Make-lang.in: Makefile automatically updated
27343
27344 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
27345
27346         * Make-lang.in (stamp-sdefault): Do not depend on
27347         move-if-change.
27348
27349 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
27350
27351         * config-lang.in: Disable Ada by default until probe logic for
27352         a bootstrap Ada compiler can be moved to the top level configure
27353         script.
27354
27355 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
27356
27357         * decl.c (components_to_record): Don't claim that the internal fields
27358         we make to hold the variant parts are semantically addressable, because
27359         they are not.
27360
27361         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
27362         adjust the comment describing the modular type form when we can use it.
27363         (Install_PAT): Account for the Esiz renaming.
27364
27365         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
27366         sc_onstack context indication before raising the exception to which
27367         the signal is mapped. Allows better handling of later signals possibly
27368         triggered by the resumed user code if the exception is handled.
27369
27370 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
27371
27372         * 5zinit.adb: Removed, no longer used.
27373
27374 2004-02-12  Robert Dewar  <dewar@gnat.com>
27375
27376         * ali.adb: Remove separating space between parameters on R line. Makes
27377         format consistent with format used by the binder for Set_Globals call.
27378
27379         * atree.ads, atree.adb: Minor reformatting (new function header format)
27380
27381         * bindgen.adb: Add Run-Time Globals documentation section containing
27382         detailed documentation of the globals passed from the binder file to
27383         the run time.
27384
27385         * gnatls.adb: Minor reformatting
27386
27387         * init.c (__gnat_set_globals): Add note pointing to documentation in
27388         bindgen.
27389
27390         * lib-writ.ads, lib-writ.adb: Remove separating space between
27391         parameters on R line.
27392         Makes format consistent with format used by the binder for Set_Globals
27393         call.
27394
27395         * osint.ads: Add 2004 to copyright notice
27396         Minor reformatting
27397
27398         * snames.ads: Correct capitalization of FIFO_Within_Priorities
27399         Noticed during code reading, documentation issue only
27400
27401         * usage.adb: Remove junk line for obsolete C switch
27402         Noticed during code reading
27403
27404 2004-02-12  Vincent Celier  <celier@gnat.com>
27405
27406         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
27407         extend for each directory, so that multiple /** directories are
27408         extended individually.
27409         (Recursive_Process): Set the default for LANGUAGES to ada
27410
27411         * gprcmd.adb: Define new command "ignore", to do nothing.
27412         Implement new comment "path".
27413
27414         * Makefile.generic: Suppress output when SILENT is set
27415         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
27416         used, so that the correct compiler is invoked.
27417         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
27418         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
27419
27420 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
27421
27422         * Makefile.in: Clean ups and remove obsolete targets.
27423
27424 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
27425
27426         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
27427         predicate declared in exp_util.
27428
27429         * exp_util.adb: Add comments.
27430
27431         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
27432         visibility before compiling context of the subunit.
27433
27434         * sem_res.adb (Check_Parameterless_Call): If the context expects a
27435         value but the name is a procedure, do not attempt to analyze as a call,
27436         in order to obtain more telling diagnostics.
27437
27438         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
27439         'Access on parameterless function calls.
27440         (Normalize_Actuals): For a parameterless function call with missing
27441         actuals, defer diagnostic until resolution of enclosing call.
27442
27443         * sem_util.adb (Wrong_Type): If the context type is an access to
27444         subprogram and the expression is a procedure name, suggest a missing
27445         'attribute.
27446
27447 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
27448             Nathanael Nerode  <neroden@gcc.gnu.org>
27449
27450         PR ada/6637
27451         PR ada/5911
27452         Merge with libada-branch:
27453         * config-lang.in: Build libada only when ada is built.
27454
27455 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
27456
27457         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
27458         for a tagged type, verify that both formals have the same type.
27459
27460         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
27461         temporary when the formal is an in-parameter and the actual a possibly
27462         unaligned slice.
27463
27464         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
27465         when expansion is disabled, to ensure proper name capture with
27466         overloaded literals.  Condition can be of any boolean type, resolve
27467         accordingly.
27468
27469         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
27470         renaming is for a formal subprogram with a default operator name, and
27471         there is a usable operator that is visible at the point of
27472         instantiation.
27473
27474 2004-02-09  Robert Dewar  <dewar@gnat.com>
27475
27476         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
27477         rewrite to ignore errors in ali files, intended to allow tools downward
27478         compatibility with new versions of ali files.
27479
27480         * ali.ads: Add new parameter Ignore_Errors
27481
27482         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
27483         duplicating the error message giving the file with restrictions.
27484
27485         * debug.adb: Add debug flag I for gnatbind
27486
27487         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
27488         operators for the case where the operator is a defining operator.
27489
27490         * exp_ch3.adb: Minor reformatting (new function spec format).
27491
27492         * exp_ch4.adb: Add comment for previous change, and make minor
27493         adjustment to loop to always check for improper loop termination.
27494         Minor reformatting throughout (new function spec format).
27495
27496         * gnatbind.adb: Implement -di debug flag for gnatbind
27497
27498         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
27499
27500         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
27501
27502         * lib-load.adb: Fix bad assertion.
27503         Found by testing and code reading.
27504         Minor reformatting.
27505
27506         * lib-load.ads: Minor reformatting.
27507
27508         * lib-writ.adb: There is only one R line now.
27509
27510         * lib-writ.ads: Add documentation on making downward compatible changes
27511         to ali files so old tools work with new ali files.
27512         There is only one R line now.
27513         Add documentation on format incompatibilities (with special GPS note)
27514
27515         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
27516
27517         * par-load.adb: Minor reformatting
27518
27519         * sem_ch8.adb: Fix to error message from last update
27520         Minor reformatting and restructuring of code from last update
27521
27522         * par-prag.adb, snames.adb, snames.ads, snames.h,
27523         sem_prag.adb: Implement pragma Profile.
27524
27525         * stylesw.adb: Implement -gnatyN switch to turn off all style check
27526         options.
27527
27528         * usage.adb: Add line for -gnatyN switch
27529
27530         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
27531
27532 2004-02-09  Albert Lee  <lee@gnat.com>
27533
27534         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
27535
27536 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
27537
27538         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
27539         slices.
27540
27541         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
27542         is nested in an instance that is not frozen yet, to avoid
27543         order-of-elaboration problems in gigi.
27544
27545         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
27546         body the attribute is legal.
27547
27548 2004-02-09  Robert Dewar  <dewar@gnat.com>
27549
27550         * s-rident.ads: Minor comment correction
27551
27552         * targparm.adb: Remove dependence on uintp completely. There was
27553         always a bug in Make in that it called Targparm before initializing
27554         the Uint package. The old code appeared to get away with this, but
27555         the new code did not! This caused an assertion error in gnatmake.
27556
27557         * targparm.ads: Fix bad comment, restriction pragmas with parameters
27558         are indeed fully supported.
27559
27560 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
27561
27562         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
27563
27564 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
27565
27566         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
27567         with targetm.calls.promote_prototypes.
27568
27569 2004-02-04  Robert Dewar  <dewar@gnat.com>
27570
27571         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
27572         ali.ads, gprcmd.adb: Minor reformatting
27573
27574         * bindgen.adb: Output restrictions string for new style restrictions
27575         handling
27576
27577         * impunit.adb: Add s-rident.ads (System.Rident) and
27578         s-restri (System.Restrictions)
27579
27580         * lib-writ.adb: Fix bug in writing restrictions string (last few
27581         entries wrong)
27582
27583         * s-restri.ads, s-restri.adb: Change name Restrictions to
27584         Run_Time_Restrictions to avoid conflict with package name.
27585         Add circuit to read and acquire run time restrictions.
27586
27587 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
27588
27589         * restrict.ads, restrict.adb: Use the new restriction
27590         No_Task_Attributes_Package instead of the old No_Task_Attributes.
27591
27592         * sem_prag.adb: No_Task_Attributes is a synonym of
27593         No_Task_Attributes_Package.
27594
27595         * snames.ads, snames.adb: New entry for proper handling of
27596         No_Task_Attributes.
27597
27598         * s-rident.ads: Adding restriction No_Task_Attributes_Package
27599         (AI-00249) that supersedes the GNAT specific restriction
27600         No_Task_Attributes.
27601
27602 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
27603
27604         * sem_prag.adb:
27605         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
27606          body, an identifier may be wrapped in an unchecked conversion.
27607
27608 2004-02-04  Vincent Celier  <celier@gnat.com>
27609
27610         * lib-writ.ads: Comment update for the W lines
27611
27612         * bld.adb: (Expression): An empty string list is static
27613
27614         * fname-uf.adb: Minor comment update
27615
27616         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
27617
27618         * gnatbind.adb: Initialize Cumulative_Restrictions with the
27619         restrictions on the target.
27620
27621 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
27622
27623         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
27624         gen_rtx.
27625
27626 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
27627
27628         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
27629
27630 2004-02-02  Vincent Celier  <celier@gnat.com>
27631
27632         * gprcmd.adb (Check_Args): If condition is false, print the invoked
27633         comment before the usage.
27634         Gprcmd: Fail when command is not recognized.
27635         (Usage): Document command "prefix"
27636
27637         * g-md5.adb (Digest): Process last block.
27638         (Update): Do not process last block. Store remaining characters and
27639         length in Context.
27640
27641         * g-md5.ads (Update): Document that several call to update are
27642         equivalent to one call with the concatenated string.
27643         (Context): Add fields to allow new Update behaviour.
27644
27645         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
27646         defaulted to False.
27647         When May_Fail is True and no existing file can be found, return No_File.
27648
27649         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
27650         functions.
27651
27652         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
27653         spec file name instead on the W line.
27654
27655 2004-02-02  Robert Dewar  <dewar@gnat.com>
27656
27657         * ali.adb: Read and acquire info from new format restrictions lines
27658
27659         * bcheck.adb: Add circuits for checking restrictions with parameters
27660
27661         * bindgen.adb: Output dummy restrictions data
27662         To be changed later
27663
27664         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
27665         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
27666         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
27667         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
27668         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
27669
27670         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
27671         the warning message on access to possibly uninitialized variable S)
27672         Minor changes for new restrictions handling.
27673
27674         * gnatbind.adb: Minor reformatting
27675         Minor changes for new restrictions handling
27676         Move circuit for -r processing here from bcheck (cleaner)
27677
27678         * gnatcmd.adb, gnatlink.adb: Minor reformatting
27679
27680         * lib-writ.adb: Output new format restrictions lines
27681
27682         * lib-writ.ads: Document new R format lines for new restrictions
27683         handling.
27684
27685         * s-restri.ads/adb: New files
27686
27687         * Makefile.rtl: Add entry for s-restri.ads/adb
27688
27689         * par-ch3.adb: Fix bad error messages starting with upper case letter
27690         Minor reformatting
27691
27692         * restrict.adb: Major rewrite throughout for new restrictions handling
27693         Major point is to handle restrictions with parameters
27694
27695         * restrict.ads: Major changes in interface to handle restrictions with
27696         parameters. Also generally simplifies setting of restrictions.
27697
27698         * snames.ads/adb: New entry for proper handling of No_Requeue
27699
27700         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
27701         restriction counting.
27702         Other minor changes for new restrictions handling
27703
27704         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
27705         Restriction_Warnings now allows full parameter notation
27706         Major rewrite of Restrictions for new restrictions handling
27707
27708 2004-02-02  Javier Miranda  <miranda@gnat.com>
27709
27710         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
27711         syntax rule for object renaming declarations.
27712         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
27713         component definitions.
27714
27715         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
27716         components.
27717         (Array_Type_Declaration): Give support to access components. In addition
27718         it was also modified to reflect the name of the object in anonymous
27719         array types. The old code did not take into account that it is possible
27720         to have an unconstrained anonymous array with an initial value.
27721         (Check_Or_Process_Discriminants): Allow access discriminant in
27722         non-limited types.
27723         (Process_Discriminants): Allow access discriminant in non-limited types
27724         Initialize the new Access_Definition field in N_Object_Renaming_Decl
27725         node.  Change Ada0Y to Ada 0Y in comments
27726
27727         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
27728         equality operators.
27729         Change Ada0Y to Ada 0Y in comments
27730
27731         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
27732         renamings Change Ada0Y to Ada 0Y in comments
27733
27734         * sem_type.adb (Find_Unique_Type): Give support to the equality
27735         operators for universal access types
27736         Change Ada0Y to Ada 0Y in comments
27737
27738         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
27739
27740         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
27741         field.
27742         (N_Object_Renaming_Declaration): Addition of Access_Definition field
27743         Change Ada0Y to Ada 0Y in comments
27744
27745         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
27746         component definition and object renaming nodes
27747         Change Ada0Y to Ada 0Y in comments
27748
27749 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
27750
27751         * restrict.adb: Use the new restriction identifier
27752         No_Requeue_Statements instead of the old No_Requeue for defining the
27753         restricted profile.
27754
27755         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
27756         No_Requeue_Statements.
27757
27758         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
27759         that supersedes the GNAT specific restriction No_Requeue. The later is
27760         kept for backward compatibility.
27761
27762 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
27763
27764         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
27765         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
27766         pragma and fix incorrect ones.
27767
27768         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
27769         warning if the pragma is redundant.
27770
27771 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
27772
27773         * 5staprop.adb: Add missing 'constant' keywords.
27774
27775         * Makefile.in: use consistent value for SYMLIB on
27776         platforms where libaddr2line is supported.
27777
27778 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27779
27780         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
27781         annotating types.
27782
27783 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
27784
27785         * init.c (__gnat_install_handler): Setup an alternate stack for signal
27786         handlers in the environment thread. This allows proper propagation of
27787         an exception on stack overflows in this thread even when the builtin
27788         ABI stack-checking scheme is used without support for a stack reserve
27789         region.
27790
27791         * utils.c (create_field_decl): Augment the head comment about bitfield
27792         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
27793         here, because the former is not accurate enough at this point.
27794         Let finish_record_type decide instead.
27795         Don't make a bitfield if the field is to be addressable.
27796         Always set a size for the field if the record is packed, to ensure the
27797         checks for bitfield creation are triggered.
27798         (finish_record_type): During last pass over the fields, clear
27799         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
27800         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
27801         from DECL_BIT_FIELD.
27802
27803 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
27804
27805         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
27806         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
27807         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
27808
27809 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
27810
27811         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
27812
27813         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
27814         (ZCX_By_Default): Likewise.
27815         (Front_End_ZCX_Support): Likewise.
27816
27817         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
27818         (Initialize_Lock): Mark Level unreferenced.
27819         (Sleep): Mark Reason unreferenced.
27820         (Timed_Sleep): Likewise.
27821         (Wakeup): Likewise.
27822         (Exit_Task): Use Result.
27823         (Check_No_Locks): Mark Self_ID unreferenced.
27824
27825         * 5gtasinf.adb (New_Sproc): Make Attr constant.
27826         (Bound_Thread_Attributes): Make Sproc constant.
27827         (New_Bound_Thread_Attributes): Likewise.
27828
27829 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
27830
27831         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
27832         one-dimensional array an slice assignments, when component type is
27833         controlled.
27834
27835         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
27836         component type is controlled, and control_actions are in effect, use
27837         TSS procedure rather than generating inline code.
27838
27839         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
27840         arrays with controlled components.
27841
27842 2004-01-26  Vincent Celier  <celier@gnat.com>
27843
27844         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
27845         command line for the non VMS case.
27846
27847         * gnatlink.adb (Process_Binder_File): When building object file, if
27848         GNU linker is used, put all object paths between quotes, to prevent ld
27849         error when there are unusual characters (such as '!') in the paths.
27850
27851         * Makefile.generic: When there are sources in Ada and the main is in
27852         C/C++, invoke gnatmake with -B, instead of -z.
27853
27854         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
27855         from VMS_Conversion.
27856         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
27857         specification of argument file on the command line.
27858
27859 2004-01-26  Bernard Banner  <banner@gnat.com>
27860
27861         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
27862
27863 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
27864
27865         * snames.adb: Update copyright notice.
27866         Add info on slice assignment for controlled arrays.
27867
27868 2004-01-23  Robert Dewar  <dewar@gnat.com>
27869
27870         * exp_aggr.adb: Minor reformatting
27871
27872         * exp_ch9.adb: Minor code clean up
27873         Minor reformatting
27874         Fix bad character in comment
27875
27876         PR ada/13471
27877         * targparm.adb (Get_Target_Parameters): Give clean abort error on
27878         unexpected end of file, along with more detailed message.
27879
27880 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
27881
27882         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
27883         PAT.
27884
27885         * decl.c (copy_alias_set): New function.
27886         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
27887
27888 2004-01-23  Doug Rupp  <rupp@gnat.com>
27889
27890         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
27891         lib$${file} in case subsequent character is not a separator.
27892
27893 2004-01-23  Vincent Celier  <celier@gnat.com>
27894
27895         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
27896         when the GCC version is at least 3.
27897
27898         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
27899         Remove all "Opt.", to prepare for opt split
27900
27901         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
27902         Extends_All. Set to True when the project parsed is an extending all
27903         project. Fails for importing an extending all project only when the
27904         imported project is an extending all project.
27905         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
27906         depending on the value of Extends_All returned.
27907
27908         * prj-proc.adb (Process): Check that no project shares its object
27909         directory with a project that extends it, directly or indirectly,
27910         including a virtual project.
27911         Check that no project extended by another project shares its object
27912         directory with another also extended project.
27913
27914         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
27915         Kind = N_With_Clause
27916
27917         * prj-tree.ads: Minor reformatting
27918         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
27919
27920 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
27921
27922         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
27923         applies to a type with an incomplete view, use full view in Name of
27924         clause, for consistency with uses of Get_Attribute_Definition_Clause.
27925
27926 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
27927
27928         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
27929         SCHED_RR, since other values are not supported by this policy.
27930         (Initialize): Move initialization of mutex attribute to package
27931         elaboration, to prevent early access to this variable.
27932
27933         * Makefile.in: Remove mention of Makefile.adalib, unused.
27934
27935         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
27936         1ssecsta.ads: Removed, unused.
27937
27938 2004-01-21  Javier Miranda  <miranda@gnat.com>
27939
27940         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
27941         entity if already built in the current scope.
27942
27943         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
27944         reminder in internal scopes. Required for nested limited aggregates.
27945
27946 2004-01-21  Doug Rupp  <rupp@gnat.com>
27947
27948         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
27949         VMS. Replace all occurences of libgnat- and libgnarl- with
27950         libgnat$(hyphen) and libgnarl$(hyphen).
27951         Fixed shared library build problem on VMS.
27952
27953 2004-01-21  Robert Dewar  <dewar@gnat.com>
27954
27955         * mlib-prj.adb: Minor reformatting
27956
27957 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
27958
27959         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
27960         'constant' keywords for declaration of pointers that are not modified.
27961
27962         * exp_pakd.adb: Fix English in comment.
27963
27964 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
27965
27966         PR ada/10889
27967         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
27968         copy all attributes of the parent, including the foreign language
27969         convention.
27970
27971 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
27972
27973         PR ada/10565
27974         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
27975         for 'delay until' statement.
27976
27977 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
27978
27979         * Make-lang.in: Replace $(docdir) with doc.
27980         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
27981         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
27982         to use consistent MAKEINFO rule.
27983         (ada.man, ada.srcman): Dummy entry.
27984         (ADA_INFOFILES): Define.
27985         (ada.info, ada.srcinfo): New rules.
27986
27987 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
27988
27989         * utils.c: Update copyright notice, missed in previous change.
27990
27991 2004-01-19  Vincent Celier  <celier@gnat.com>
27992
27993         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
27994         args if Bind is True. Set First_ALI, if not already done.
27995         (Build_Library): For Stand Alone Libraries, extract from one ALI file
27996         an eventual --RTS switch, for gnatbind, and all backend switches +
27997         --RTS, for linking.
27998
27999 2004-01-19  Robert Dewar  <dewar@gnat.com>
28000
28001         * sem_attr.adb, memtrack.adb: Minor reformatting
28002
28003 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
28004
28005         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
28006         that rename enumeration literals. This is properly done in sem_eval.
28007
28008         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
28009         to functions that rename enumeration literals.
28010
28011         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
28012         functions that rename enumeration literals.
28013
28014 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
28015
28016         * Make-lang.in (utils.o): Depend on target.h.
28017         * utils.c: Include target.h.
28018         (process_attributes): Use targetm.have_named_sections instead
28019         of ASM_OUTPUT_SECTION_NAME.
28020
28021 2004-01-16  Andreas Jaeger  <aj@suse.de>
28022
28023         * Makefile.in: Add $(DESTDIR).
28024
28025 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
28026
28027         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
28028         also when not defining if a Size clause applies. That information is
28029         not to be ignored.
28030
28031 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
28032
28033         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
28034         symbolic links for the shared gnat run time when needed.
28035
28036 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
28037
28038         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
28039         for writing, and terminate with an error message if not.
28040
28041 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
28042
28043         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
28044         warning on an access to subprogram in an instance, when the target
28045         type is declared in the same generic unit.
28046         (Eval_Attribute): If 'access is known to fail accessibility check,
28047         rewrite as a raise statement.
28048
28049 2004-01-15  GNAT Script  <nobody@gnat.com>
28050
28051         * Make-lang.in: Makefile automatically updated
28052
28053 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
28054
28055         * Make-lang.in (ada.srcextra): Dummy entry.
28056
28057 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
28058
28059         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
28060
28061 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
28062
28063         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
28064         components that are initialized with aggregates.
28065
28066 2004-01-13  Vincent Celier  <celier@gnat.com>
28067
28068         * gnatlink.adb (Process_Binder_File): To find directory of shared
28069         libgcc, if "gcc-lib" is not a subdirectory, look for the last
28070         subdirectory "lib" in the path of the shared libgnat or libgnarl.
28071
28072         * make.adb (Gnatmake): If GCC version is at least 3, link with
28073         -shared-libgcc, when there is at least one shared library project.
28074
28075         * opt.ads (GCC_Version): New integer constant.
28076
28077         * adaint.c (get_gcc_version): New function.
28078
28079 2004-01-13  Robert Dewar  <dewar@gnat.com>
28080
28081         * sem_dist.adb, sem_res.adb, sem_util.adb,
28082         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
28083         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
28084
28085 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
28086
28087         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
28088         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
28089         declarations.
28090
28091 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
28092
28093         * misc.c: Remove trailing spaces.
28094         Update copyright notice missed in previous change.
28095
28096         PR ada/13572
28097         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
28098         prefix/share/make
28099
28100         * Makefile.generic: Update copyright.
28101         Add license notice.
28102
28103         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
28104         of prefix/share/make.
28105
28106         * Makefile.prolog: Update copyright.
28107         Add license notice.
28108
28109 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
28110
28111         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
28112         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
28113         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
28114         instead of String.
28115
28116         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
28117         signature.
28118
28119 2004-01-12  Javier Miranda  <miranda@gnat.com>
28120
28121         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
28122         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
28123         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
28124         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
28125         Component_Definition node.
28126
28127 2004-01-12  Ed Falis  <falis@gnat.com>
28128
28129         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
28130
28131 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
28132
28133         * link.c: Change default libgnat kind to STATIC for FreeBSD.
28134
28135 2004-01-12  Bernard Banner  <banner@gnat.com>
28136
28137         * Makefile.in: map 86numaux to a-numaux for x86_64
28138
28139 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
28140
28141         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
28142         generated to rename a generic actual, go to the actual itself, the
28143         subtype is not a user-visible entity.
28144
28145         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
28146         part is a private subtype, reset the visibility of its full view, if
28147         any, to be consistent.
28148
28149         PR ada/13417
28150         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
28151         to use a generic package G as a formal package for another generic
28152         declared within G.
28153
28154 2004-01-12  Robert Dewar  <dewar@gnat.com>
28155
28156         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
28157
28158         * usage.adb: Remove mention of obsolete -gnatwb switch
28159         Noticed during code reading
28160
28161 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
28162
28163         * 1ssecsta.adb: Minor changes for -gnatwa warnings
28164
28165 2004-01-12  GNAT Script  <nobody@gnat.com>
28166
28167         * Make-lang.in: Makefile automatically updated
28168
28169 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
28170
28171         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
28172
28173 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
28174
28175         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
28176
28177 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
28178
28179         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
28180         Update comment and copyright date.
28181         * stamp-xgnatug: Delete.
28182
28183 2004-01-05  Robert Dewar  <dewar@gnat.com>
28184
28185         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
28186         be modified by the binder generated main program if the -D switch is
28187         used.
28188
28189         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
28190         imported functions (since now we expect this to be done for imported
28191         functions)
28192
28193         * 5vtaprop.adb: Add several ??? for sections requiring more comments
28194         Minor reformatting throughout
28195
28196         * 5zinit.adb: Minor reformatting
28197         Add 2004 to copyright date
28198         Minor changes to avoid -gnatwa warnings
28199         Correct some instances of using OR instead of OR ELSE (noted while
28200         doing reformatting)
28201
28202         * sprint.adb: Minor updates to avoid -gnatwa warnings
28203
28204         * s-secsta.ads, s-secsta.adb:
28205         (SS_Get_Max): New function to obtain high water mark for ss stack
28206         Default_Secondary_Stack is not a constant since it may be modified by
28207         the binder generated main program if the -D switch is used.
28208
28209         * switch-b.adb: New -Dnnn switch for binder
28210
28211         * switch-c.adb:
28212         Make -gnatg imply all warnings currently in -gnatwa
28213
28214         * vms_conv.adb: Minor reformatting
28215         Add 2004 to copyright notice
28216         Add 2004 to printed copyright notice
28217
28218         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
28219         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
28220         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
28221         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
28222         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
28223         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
28224         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
28225         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
28226         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
28227         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
28228         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
28229         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
28230         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
28231         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
28232         checks.adb, clean.adb, cstand.adb, einfo.ads,
28233         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
28234         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
28235         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
28236         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
28237         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
28238         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
28239         Minor reformatting and code clean ups.
28240         Minor changes to prevent -gnatwa warnings
28241
28242         * ali.adb: Minor reformatting and cleanup of code
28243         Acquire new SS indication of secondary stack use from ali files
28244
28245         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
28246         (since now we expect this to be done for imported functions)
28247
28248         * bindgen.adb: Generate call to modify default secondary stack size if
28249         -Dnnn switch given
28250
28251         * bindusg.adb: Add line for new -D switch
28252
28253         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
28254         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
28255         Add circuitry for both records and arrays to avoid gigi
28256         processing if the type involved has non-bit-aligned components
28257
28258         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
28259         N_String_Literal node always references an E_String_Literal_Subtype
28260         entity. This may not be true in the future.
28261         (Possible_Bit_Aligned_Component): Move processing of
28262         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
28263
28264         * exp_ch6.adb (Expand_Thread_Body): Pick up
28265         Default_Secondary_Stack_Size as variable so that we get value modified
28266         by possible -Dnnn binder parameter.
28267
28268         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
28269         (Type_May_Have_Bit_Aligned_Components): New function.
28270
28271         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
28272         (Type_May_Have_Bit_Aligned_Components): New function.
28273
28274         * fe.h: (Set_Identifier_Casing): Fix prototype.
28275         Add declaration for Sem_Elim.Eliminate_Error_Msg.
28276         Minor reformatting.
28277
28278         * freeze.adb (Freeze_Entity): Add RM reference to error message about
28279         importing constant atomic/volatile objects.
28280         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
28281         unless explicit Pure_Function pragma given, to avoid insidious bug of
28282         call to non-pure imported function getting eliminated.
28283
28284         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
28285         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
28286         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
28287         Add 2004 to printed copyright notice
28288
28289         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
28290         stack used.
28291
28292         * Makefile.rtl: Add entry for g-sestin.o
28293         g-sestin.ads: New file.
28294
28295         * mdll.adb: Minor changes to avoid -gnatwa warnings
28296
28297         * mlib-tgt.adb: Minor reformatting
28298
28299         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
28300         New switch Sec_Stack_Used (GNAT, GNATBIND)
28301         Make Default_Secondary_Stack_Size a variable instead of a constant,
28302         so that it can be modified by the new -Dnnn bind switch.
28303
28304         * rtsfind.adb (Load_Fail): Give full error message in configurable
28305         run-time mode if all_errors mode is set. This was not done in the case
28306         of a file not found, which was an oversight.
28307         Note if secondary stack unit is used by compiler.
28308
28309         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
28310         ineffective elaborate all pragmas on non-visible packages (this
28311         happened when a renamed subprogram was called). Now the elaborate all
28312         always goes on the package containing the renaming rather than the one
28313         containing the renamed subprogram.
28314
28315         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
28316         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
28317
28318         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
28319         has an Etype that references an E_String_Literal.
28320         (Eval_String_Literal): Avoid assumption that N_String_Literal node
28321         always references an E_String_Literal_Subtype entity. This may not
28322         be true in the future.
28323
28324         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
28325         pragma location.
28326
28327         * sem_res.adb (Resolve): Specialize msg for function name used in proc
28328         call.
28329
28330 2004-01-05  Ed Falis  <falis@gnat.com>
28331
28332         * g-debuti.adb: Replaced direct boolean operator with short-circuit
28333         form.
28334
28335 2004-01-05  Vincent Celier  <celier@gnat.com>
28336
28337         * bld.adb: Minor comment updates
28338         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
28339         of Item_Name).
28340
28341         * make.adb (Gnatmake): Special process for files to compile/check when
28342         -B is specified. Fail when there are only foreign mains in attribute
28343         Main of the project file and -B is not specified. Do not skip bind/link
28344         steps when -B is specified.
28345
28346         * makeusg.adb: Document new switch -B
28347
28348         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
28349
28350         * switch-m.adb: (Scan_Make_Switches): Process -B switch
28351
28352         * vms_data.ads: Add new GNAT PRETTY qualifier
28353         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
28354
28355 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
28356
28357         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
28358         case.
28359
28360         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
28361         Set_Identifier_Casing.
28362
28363         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
28364         has size that overflows.
28365
28366 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
28367
28368         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
28369         -gnatwa warning on static condition.
28370
28371 2004-01-05  Doug Rupp  <rupp@gnat.com>
28372
28373         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
28374
28375 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
28376
28377         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
28378         all attributes, including read-only attribute.
28379
28380 2004-01-05  Pascal Obry  <obry@gnat.com>
28381
28382         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
28383         library naming scheme.
28384
28385         * mlib-prj.adb (Build_Library): Generate different names for the static
28386         or dynamic version of the GNAT runtime. This is needed to support the
28387         new shared library naming scheme.
28388         (Process_Binder_File): Add detection of shared library in binder file
28389         based on the new naming scheme.
28390
28391         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
28392         scheme for the shared runtime libraries.
28393
28394         * Makefile.in:
28395         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
28396         scheme.
28397         (install-gnatlib): Do not create symlinks for shared libraries.
28398         (gnatlib-shared-default): Idem.
28399         (gnatlib-shared-dual-win32): New target. Not used for now as the
28400         auto-import feature does not support arrays/records.
28401         (gnatlib-shared-win32): Do not create copy for the shared libraries.
28402         (gnatlib-shared-vms): Fix shared runtime libraries names.
28403
28404         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
28405         dependent runtime shared library name.
28406
28407 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
28408
28409         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
28410         than the object.
28411
28412 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
28413
28414         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
28415         protected objects when allocator has a subtype indication, not a
28416         qualified expression. Note that qualified expressions may have to be
28417         checked when limited aggregates are implemented.
28418
28419         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
28420         pure, emit warning.
28421         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
28422         subprogram is imported, remove warning.
28423
28424 2004-01-05  Geert Bosch  <bosch@gnat.com>
28425
28426         * s-poosiz.adb: Update copyright notice.
28427         (Allocate): Use Task_Lock to protect against concurrent access.
28428         (Deallocate): Likewise.
28429
28430 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
28431
28432         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
28433         comment.
28434
28435 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
28436
28437         * gnat_ug.texi: Force a CVS commit by updating copyright.
28438         * gnat_ug_vxw.texi: Regenerate.
28439         * gnat_ug_wnt.texi: Regenerate.
28440         * gnat_ug_vms.texi: Regenerate.
28441         * gnat_ug_unx.texi: Regenerate.
28442
28443 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
28444
28445         * trans.c: Remove uses of "register" specifier in
28446         declarations of local variables.
28447
28448 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
28449
28450         * stamp-xgnatug: New stamp file.
28451         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
28452         (ada/doctools/xgnatug): Add $(build_exeext).
28453         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
28454         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
28455
28456 2003-12-17  Ed Falis  <falis@gnat.com>
28457
28458         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
28459         eliminate warning.
28460
28461         * a-exextr.adb: Add context clause for
28462         Ada.Exceptions.Last_Chance_Handler.
28463
28464 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
28465
28466         * cstand.adb (Create_Standard): Change the way how the declaration of
28467         the Duration type is created (making it the same way as it is for all
28468         the other standard types).
28469
28470 2003-12-17  Robert Dewar  <dewar@gnat.com>
28471
28472         * s-crtl.ads: Fix header format
28473         Change Pure to Preelaborate
28474
28475 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
28476
28477         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
28478         the expression type only if it is declared in the current unit.
28479
28480         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
28481         are universal and already analyzed, as can occur in constrained
28482         subcomponents that depend on discriminants, when one constraint is a
28483         subtype mark.
28484
28485         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
28486         type Any_Fixed is legal as the argument of a conversion, if only one
28487         fixed-point type is in context.
28488
28489 2003-12-17  GNAT Script  <nobody@gnat.com>
28490
28491         * Make-lang.in: Makefile automatically updated
28492
28493 2003-12-15  Robert Dewar  <dewar@gnat.com>
28494
28495         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
28496         sec stack size.
28497
28498 2003-12-15  Vincent Celier  <celier@gnat.com>
28499
28500         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
28501         (Gnatchop): Do not set failure status when reporting the number of
28502         warnings.
28503
28504 2003-12-15  Doug Rupp  <rupp@gnat.com>
28505
28506         * s-ctrl.ads: New file.
28507
28508         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
28509
28510         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
28511         (GNATBIND_OBJS): Add ada/s-crtl.o.
28512
28513         * Makefile.in [VMS]: Clean up ifeq rules.
28514
28515         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
28516         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
28517         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
28518         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
28519         s-tasdeb.adb: Update copyright.
28520         Import System.CRTL.
28521         Make minor modifications to use System.CRTL declared functions instead
28522         of importing locally.
28523
28524 2003-12-15  GNAT Script  <nobody@gnat.com>
28525
28526         * Make-lang.in: Makefile automatically updated
28527
28528 2003-12-11  Ed Falis  <falis@gnat.com>
28529
28530         * 5zinit.adb: Clean up.
28531
28532         * 5zintman.adb (Notify_Exception): replaced case statement with a call
28533         to __gnat_map_signal, imported from init.c to support
28534         signal -> exception mappings that depend on the vxWorks version.
28535
28536         * init.c:
28537         Created and exported __gnat_map_signal to support signal -> exception
28538         mapping that is dependent on the VxWorks version.
28539         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
28540
28541 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
28542
28543         * 5wosinte.ads: Link with -mthreads switch.
28544
28545 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
28546
28547         * init.c (__gnat_install_handler [NetBSD]): Set
28548         __gnat_handler_installed, as done on all other platforms.
28549         Remove duplicated code.
28550
28551 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
28552
28553         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
28554
28555 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
28556
28557         * sinfo.ads: Fix inconsistent example code in comment.
28558
28559 2003-12-11  Robert Dewar  <dewar@gnat.com>
28560
28561         * a-tiinau.adb: Add a couple of comments
28562
28563         * sem_ch3.adb: Minor reformatting
28564
28565         * sem_prag.adb:
28566         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
28567         Minor reformatting throughout
28568
28569 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
28570
28571         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
28572         bounds of a loop, create a separate block in order to generate proper
28573         cleanup actions to prevent memory leaks.
28574
28575         * sem_res.adb (Resolve_Call): After a call to
28576         Establish_Transient_Scope, the call may be rewritten and relocated, in
28577         which case no further processing is needed.
28578
28579         * sem_util.adb: (Wrong_Type): Refine previous fix.
28580          Fixes ACATS regressions.
28581
28582         PR ada/13353
28583         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
28584         be inlined.
28585
28586 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
28587
28588         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
28589         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
28590         obsolete files.
28591
28592         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
28593         (rts-zfp): Ditto.
28594
28595 2003-12-08  Robert Dewar  <dewar@gnat.com>
28596
28597         * 7sintman.adb: Minor reformatting
28598
28599         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
28600         standard linker options to get standard libraries linked. We now plan
28601         to provide dummy versions of these libraries to match the appropriate
28602         configurable run-time (e.g. if a library is not needed at all, provide
28603         a dummy empty library).
28604
28605         * targparm.ads: Configurable_Run_Time mode no longer affects linker
28606         options (-L parameters and standard libraries). What we plan to do is
28607         to provide dummy libraries where the libraries are not required.
28608
28609         * gnatbind.adb: Minor comment improvement
28610
28611 2003-12-08  Javier Miranda  <miranda@gnat.com>
28612
28613         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
28614         aggregate in the parent. Otherwise constants with limited aggregates
28615         are not supported. Add new formal to pass the component type (Ctype).
28616         It is required to call the corresponding IP subprogram in case of
28617         default initialized components.
28618         (Gen_Assign): In case of default-initialized component, generate a
28619         call to the IP subprogram associated with the component.
28620         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
28621         of aggregate with default initialized components.
28622         (Has_Default_Init_Comps): Improve implementation to recursively check
28623         all the present expressions.
28624
28625         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
28626         to indicate that the initialization call corresponds to a
28627         default-initialized component of an aggregate.
28628         In case of default initialized aggregate with tasks this parameter is
28629         used to generate a null string (this is just a workaround that must be
28630         improved later). In case of discriminants, this parameter is used to
28631         generate a selected component node that gives access to the discriminant
28632         value.
28633
28634         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
28635         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
28636         allocated aggregates with default-initialized components.
28637
28638         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
28639         the box notation is used in positional aggregates.
28640
28641 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
28642
28643         * lib.ads: Fix typo in comment
28644
28645 2003-12-08  Vincent Celier  <celier@gnat.com>
28646
28647         * prj.adb (Project_Empty): New component Unkept_Comments
28648         (Scan): Remove procedure; moved to Prj.Err.
28649
28650         * prj.ads (Project_Data): New Boolean component Unkept_Comments
28651         (Scan): Remove procedure; moved to Prj.Err.
28652
28653         * prj-dect.adb: Manage comments for the different declarations.
28654
28655         * prj-part.adb (With_Record): New component Node
28656         (Parse): New Boolean parameter Store_Comments, defaulted to False.
28657         Set the scanner to return ends of line and comments as tokens, if
28658         Store_Comments is True.
28659         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
28660         comments are associated with these nodes. Store the node IDs in the
28661         With_Records.
28662         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
28663         With_Records.
28664         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
28665         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
28666         current project. Call Tree.Restore afterwards. Set the various nodes
28667         for comment storage (Next_End, End_Of_Line, Previous_Line,
28668         Previous_End).
28669
28670         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
28671         defaulted to False.
28672
28673         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
28674         to False. When Truncated is True, truncate the string, never go to the
28675         next line.
28676         (Write_End_Of_Line_Comment): New procedure
28677         (Print): Process comments for nodes N_With_Clause,
28678         N_Package_Declaration, N_String_Type_Declaration,
28679         N_Attribute_Declaration, N_Typed_Variable_Declaration,
28680         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
28681         Process nodes N_Comment.
28682
28683         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
28684         without comments and there are some comments, set the flag
28685         Unkept_Comments to True.
28686         (Scan): If there are comments, set the flag Unkept_Comments to True and
28687         clear the comments.
28688         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
28689         (Next_End_Nodes: New table
28690         (Comment_Zones_Of): New function
28691         (Scan): New procedure; moved from Prj. Accumulate comments in the
28692         Comments table and set end of line comments, comments after, after end
28693         and before end.
28694         (Add_Comments): New procedure
28695         (Save, Restore, Seset_State): New procedures
28696         (There_Are_Unkept_Comments): New function
28697         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
28698         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
28699         procedures.
28700         (First_Comment_After, First_Comment_After_End): New functions
28701         (First_Comment_Before, First_Comment_Before_End): New functions
28702         (Next_Comment): New function
28703         (End_Of_Line_Comment, Follows_Empty_Line,
28704         Is_Followed_By_Empty_Line): New functions
28705         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
28706         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
28707         (Set_Next_Comment): New procedure
28708         (Default_Project_Node): Associate comment before if the node can store
28709         comments.
28710
28711         * scans.ads (Token_Type): New enumeration value Tok_Comment
28712         (Comment_Id): New global variable
28713
28714         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
28715         defaulted to False.
28716         (Scan): Store position of start of comment. If comments are tokens, set
28717         Comment_Id and set Token to Tok_Comment when scanning a comment.
28718         (Set_Comment_As_Token): New procedure
28719
28720         * sinput-p.adb: Update Copyright notice
28721         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
28722         that no longer exists.
28723
28724 2003-12-08  Javier Miranda  <miranda@gnat.com>
28725
28726         * sem_aggr.adb: Add dependence on Exp_Tss package
28727         Correct typo in comment
28728         (Resolve_Aggregate): In case of array aggregates set the estimated
28729         type of the aggregate before calling resolve. This is needed to know
28730         the name of the corresponding IP in case of limited array aggregates.
28731         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
28732         in case of default initialized array components.
28733
28734         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
28735         types. Required to give support to limited aggregates in generic
28736         formals.
28737
28738 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
28739
28740         * sem_ch3.adb (Check_Initialization): For legality purposes, an
28741         inlined body functions like an instantiation.
28742         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
28743         until bounds are analyzed, to diagnose premature use of type.
28744
28745         * sem_util.adb (Wrong_Type): Improve error message when the type of
28746         the expression is used prematurely.
28747
28748 2003-12-08  GNAT Script  <nobody@gnat.com>
28749
28750         * Make-lang.in: Makefile automatically updated
28751
28752 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
28753
28754         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
28755         they are automatically generated by Make-lang.in and cause nothing but
28756         maintenance troubles.
28757
28758 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
28759
28760         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
28761         version of this unit).
28762
28763 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
28764
28765         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
28766         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
28767         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
28768         the body of System.Interrupt_Management common to several targets.
28769         Update copyright notice when appropriate.
28770
28771         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
28772         constant.
28773
28774         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
28775         to ensure that the kernel fills in the interrupted context structure
28776         before calling a signal handler, which is necessary to be able to
28777         unwind past it. Update the copyright notice.
28778
28779 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
28780
28781         * a-elchha.ads: New file.
28782
28783         * a-elchha.adb: New default last chance handler. Contents taken from
28784         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
28785
28786         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
28787         is moved to a-elchha.adb to provide a target-independent default last
28788         chance handler.
28789
28790         * Makefile.rtl: Add a-elchha.o
28791
28792         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
28793
28794 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
28795
28796         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
28797         declared in an instance, do not inline the call if the instance is not
28798         frozen yet, to prevent order of elaboration problems.
28799
28800         * sem_prag.adb: Add comments for previous fix.
28801
28802 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
28803
28804         * g-table.adb: Use the right variable in Set_Item.
28805         Update copyright notice.
28806
28807 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
28808
28809         * Makefile.in: Remove unused rules.
28810
28811 2003-12-05  Vincent Celier  <celier@gnat.com>
28812
28813         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
28814         -nostdlib. Not needed here after all.
28815
28816 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
28817
28818         PR ada/11724
28819         * adaint.h, adaint.c, g-os_lib.ads:
28820         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
28821         on some platforms (including FreeBSD), it is a 64 bit value.
28822         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
28823
28824 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
28825
28826         * gnatvsn.ads (Library_Version): Now contain only the relevant
28827         version info.
28828         (Verbose_Library_Version): New constant.
28829
28830         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
28831         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
28832         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
28833
28834         * gnatlbr.adb: Clean up: replace Library_Version by
28835         Verbose_Library_Version.
28836
28837         * make.adb, lib-writ.adb, exp_attr.adb:
28838         Clean up: replace Library_Version by Verbose_Library_Version.
28839
28840         * 5lintman.adb: Removed.
28841
28842         * Makefile.in:
28843         Update and simplify computation of LIBRARY_VERSION.
28844         Fix computation of GSMATCH_VERSION.
28845         5lintman.adb is no longer used: replaced by 7sintman.adb.
28846
28847 2003-12-03  Robert Dewar  <dewar@gnat.com>
28848
28849         * exp_ch5.adb:
28850         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
28851         name. Modified to consider small non-bit-packed arrays as troublesome
28852         and in need of component-by-component assigment expansion.
28853
28854 2003-12-03  Vincent Celier  <celier@gnat.com>
28855
28856         * lang-specs.h: Process nostdlib as nostdinc
28857
28858         * back_end.adb: Update Copyright notice
28859         (Scan_Compiler_Arguments): Process -nostdlib directly.
28860
28861 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
28862
28863         * Makefile.in:
28864         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
28865         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
28866         included in HIE_NONE_TARGET_PAIRS.
28867
28868 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
28869
28870         * sem_attr.adb:
28871         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
28872         is legal in an instance, because legality is cheched in the template.
28873
28874         * sem_prag.adb:
28875         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
28876         appplied to an unchecked conversion of a formal parameter.
28877
28878         * sem_warn.adb:
28879         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
28880         variables.
28881
28882 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
28883
28884         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
28885         routines. The second one is new functionality to deal with backtracing
28886         through signal handlers.
28887         (unwind): Split into the two separate subroutines above.
28888         Update the documentation, and deal properly with sizeof (REG) different
28889         from sizeof (void*).
28890
28891 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
28892
28893         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
28894         so that the debugger can reliably access the value of the parameter,
28895         and therefore is able to display the exception name when an exception
28896         breakpoint is reached.
28897
28898 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
28899
28900         * fmap.adb: Fix typo in warning message.
28901
28902         * g-socket.ads, g-socket.adb: Make Free a visible instance of
28903         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
28904
28905 2003-12-01  Vincent Celier  <celier@gnat.com>
28906
28907         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
28908         ther is no Afile.
28909         (Build_Library): Get the switches only if Default_Switches is declared
28910         in package Binder.
28911
28912 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
28913
28914         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
28915         actuals that are indexed components, reanalyze actual to ensure that
28916         packed array references are properly expanded.
28917
28918         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
28919         attempted assignment to a discriminant.
28920
28921 2003-12-01  Robert Dewar  <dewar@gnat.com>
28922
28923         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
28924         reformatting.
28925
28926         * switch-c.adb: Minor reformatting of comments
28927
28928 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
28929
28930         * Makefile.in: Clean ups.
28931
28932 2003-12-01  GNAT Script  <nobody@gnat.com>
28933
28934         * Make-lang.in: Makefile automatically updated
28935
28936 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
28937
28938         * 5wsystem.ads: Disable zero cost exception, not ready yet.
28939
28940 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
28941
28942         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
28943         to force serialization.
28944
28945 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
28946
28947         * g-socket.ads, g-socket.adb:
28948         Clarify documentation of function Stream. Introduce a Free procedure
28949         to release the returned Stream once it becomes unused.
28950
28951         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
28952
28953 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
28954
28955         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
28956         since NT 4 cannot handle timeout values that are too large,
28957         e.g. DWORD'Last - 1.
28958
28959 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
28960
28961         * exp_ch4.adb:
28962         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
28963         in procedure calls and whose expansion must be deferred.
28964
28965         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
28966         is in exp_ch4.
28967
28968         * sem_ch3.adb:
28969         (Build_Derived_Array_Type): Create operator for unconstrained type
28970         if ancestor is unconstrained.
28971
28972 2003-11-26  Vincent Celier  <celier@gnat.com>
28973
28974         * make.adb (Project_Object_Directory): New global variable
28975         (Change_To_Object_Directory): New procedure
28976         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
28977         of Change_Dir directly. Do not change working directory to object
28978         directory of main project after each compilation.
28979         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
28980         directly.
28981         Change to object directory of main project before binding step.
28982         (Initialize): Initialize Project_Object_Directory to No_Project
28983
28984         * mlib-prj.adb:
28985         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
28986         binding a Stand-Alone Library.
28987
28988         * output.adb: Update Copyright notice
28989         (Write_Char): Output buffer when full
28990
28991 2003-11-26  Robert Dewar  <dewar@gnat.com>
28992
28993         * sem_ch13.adb: (Check_Size): Reset size if size is too small
28994
28995         * sem_ch13.ads:
28996         (Check_Size): Fix documentation to include bit-packed array case
28997
28998         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
28999
29000         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
29001
29002         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
29003
29004 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
29005
29006         PR ada/13142
29007         * utils.c (init_gigi_decls): Change name of built-in setjmp to
29008         __builtin_setjmp, since this is apparently needed by recent
29009         non Ada changes.
29010
29011 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29012
29013         * adadecode.c: Only include ctype.h if not IN_GCC.
29014         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
29015
29016 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
29017
29018         * Makefile.in:
29019         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
29020         signals and interrupts.
29021
29022         * 5zintman.ads: New File.
29023
29024         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
29025         add exception signals to the set of unmasked signals.
29026
29027         * 5ztaprop.adb:
29028         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
29029         between signals and interrupts.
29030         Add to Unblocked_Signal_Mask the set of signals that are in
29031         Keep_Unmasked.
29032
29033         * 7sinmaop.adb:
29034         Adding a check to see whether the Interrupt_ID we want to unmask is in
29035         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
29036         reason is that the index type of the Keep_Unmasked array is not always
29037         Interrupt_ID; it may be a subtype of Interrupt_ID.
29038
29039 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
29040
29041         * exp_util.adb:
29042         (Remove_Side_Effects): Condition constantness of object created for a
29043          an unchecked type conversion on the constantness of the expression
29044          to ensure the correct value for 'Constrained when passing components
29045          of view-converted class-wide objects.
29046
29047 2003-11-24  Robert Dewar  <dewar@gnat.com>
29048
29049         * par-load.adb (Load): Improve handling of misspelled and missing units
29050         Removes several cases of compilation abandoned messages
29051
29052         * lib.adb: (Remove_Unit): New procedure
29053
29054         * lib.ads: (Remove_Unit): New procedure
29055
29056         * lib-load.adb: Minor reformatting
29057
29058 2003-11-24  Vincent Celier  <celier@gnat.com>
29059
29060         * make.adb:
29061         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
29062         (Marking_Label): Label to mark processed source files. Incremented for
29063         each executable.
29064         (Gnatmake): Increase Marking_Labet for each executable
29065         (Is_Marked): Compare against marking label
29066         (Mark): Mark with marking label
29067
29068 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
29069
29070         * s-thread.ads:
29071         Move the declaration of the TSD for System.Threads to System.Soft_Links.
29072         Add some comments.
29073
29074         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
29075         (rts-cert): build a single relocatable object for the run-time lib.
29076         Fix perms.
29077
29078 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
29079
29080         * Make-lang.in:
29081         Use gnatls rather than gcc to obtain the location of GNAT RTL for
29082         crosstools build.
29083
29084 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
29085
29086         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
29087         can not use it as before (that is, as a variable) when dumping it into
29088         the tree file. Add a local variable to store the result of this
29089         function and to be used as the string to be written into the tree.
29090
29091         * scn.adb (Initialize_Scanner): Add comments explaining the recent
29092         changes.
29093
29094         * sinput.adb (Source_First, Source_Last): In case of
29095         Internal_Source_File, replace returning attributes of
29096         Internal_Source_Ptr (which is wrong) with returning attributes of
29097         Internal_Source.
29098
29099 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
29100
29101         * sem_ch3.adb:
29102         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
29103         used for implicit concatenation operators.
29104         Code cleanup.
29105
29106         * sem_elab.adb:
29107         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
29108         task bodies that are in the scope of a Suppress pragma.
29109         (Check_A Call): Use the flag to prevent spurious elaboration checks.
29110
29111         * sinfo.ads, sinfo.adb:
29112         New flag No_Elaboration_Check on function/procedure calls, to properly
29113         suppress checks on calls in task bodies that are within a local suppress
29114         pragma.
29115
29116         * exp_ch4.adb:
29117         (Expand_Concatenate_Other): Use the proper integer type for the
29118         expression for the upper bound, to avoid universal_integer computations
29119         when possible.
29120
29121 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
29122
29123         * .cvsignore: Delete.
29124
29125 2003-11-21  Andreas Schwab  <schwab@suse.de>
29126
29127         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
29128
29129 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
29130
29131         * 5wsystem.ads: Enable zero cost exception.
29132
29133 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
29134
29135         * 5ztiitho.adb: Remove an unreferenced variable.
29136
29137 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
29138
29139         * adaint.c: For FreeBSD, use mkstemp.
29140
29141 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
29142
29143         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
29144
29145 2003-11-21  Robert Dewar  <dewar@gnat.com>
29146
29147         * bld.adb: Remove useless USE of gnatvsn
29148
29149         * gnatchop.adb: Minor reformatting
29150         Clean up version handling to be more consistent
29151
29152         * gnatxref.adb: Minor reformatting
29153
29154         * gprcmd.adb: Minor reformatting
29155         Fix output of copyright to be more consistent with other tools
29156
29157 2003-11-21  Vincent Celier  <celier@gnat.com>
29158
29159         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
29160
29161 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
29162
29163         * atree.adb (Initialize): Add initializations for global variables
29164         used in New_Copy_Tree.
29165
29166         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
29167         Internal_Source_File as the actual).
29168         Put the set of statements creating Any_Character before the set of
29169         statements creating Any_Array to have Any_Character fully initialized
29170         when it is used in creating Any_Array.
29171
29172         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
29173         not call Scan in case if the actual is Internal_Source_File
29174         Add 2003 to copyright note.
29175
29176         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
29177         processing Internal_Source_File.
29178
29179         * types.ads: Add the constant Internal_Source_File representing the
29180         source buffer for artificial source-code-like strings created within
29181         the compiler (the definition of Source_File_Index is changed).
29182
29183 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
29184
29185         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
29186         56system.ads: New file, FreeBSD version.
29187
29188 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
29189
29190         * Make-lang.in (ada.extraclean): Delete.
29191
29192 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
29193
29194         * gnatmem.adb: Clean up verbose output.
29195
29196         * gprcmd.adb: Change copyright to FSF.
29197
29198 2003-11-19  Vincent Celier  <celier@gnat.com>
29199
29200         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
29201         and Version (ignored).
29202
29203         * symbols.ads: (Policy): New type
29204         (Initialize): New parameter Reference, Symbol_Policy and
29205         Library_Version.
29206         Remove parameter Force.
29207         Minor reformatting.
29208
29209         * snames.ads, snames.adbadb: New standard names
29210         Library_Reference_Symbol_File and Library_Symbol_Policy
29211
29212         * mlib-prj.adb:
29213         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
29214         project.
29215
29216         * mlib-tgt.adb:
29217         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
29218
29219         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
29220
29221         * prj.adb: (Project_Empty): New component Symbol_Data
29222
29223         * prj.ads: (Policy, Symbol_Record): New types
29224         (Project_Data): New component Symbol_Data
29225
29226         * prj-attr.adb:
29227         New attributes Library_Symbol_File, Library_Symbol_Policy and
29228         Library_Reference_Symbol_File.
29229
29230         * prj-nmsc.adb:
29231         (Ada_Check): When project is a Stand-Alone library project, process
29232         attribute Library_Symbol_File, Library_Symbol_Policy and
29233         Library_Reference_Symbol_File.
29234
29235         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
29236         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
29237         5sml-tgt.adb (Build_Dynamic_Library): New parameter
29238         Symbol_Data (ignored).
29239
29240         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
29241         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
29242         functions Option_File_Name and Version_String. Set new options of
29243         gnatsym related to symbol file, symbol policy and reference symbol
29244         file.
29245
29246         * 5vsymbol.adb:
29247         Extensive modifications to take into account the reference symbol file,
29248         the symbol policy, the library version and to put in the symbol file the
29249         minor and major IDs.
29250
29251         * bld.adb (Process_Declarative_Items): Put second argument of
29252         gprcmd to_absolute between single quotes, to avoid problems with
29253         Windows.
29254
29255         * bld-io.adb: Update Copyright notice.
29256         (Flush): Remove last character of a line, if it is a back slash, to
29257         avoid make problems.
29258
29259         * gnatsym.adb:
29260         Implement new scheme with reference symbol file and symbol policy.
29261
29262         * g-os_lib.ads: (Is_Directory): Clarify comment
29263
29264 2003-11-19  Robert Dewar  <dewar@gnat.com>
29265
29266         * atree.adb: Move New_Copy_Tree global variables to head of package
29267
29268         * errout.adb: Minor reformatting
29269
29270 2003-11-19  Javier Miranda  <miranda@gnat.com>
29271
29272         * sem_ch4.adb: (Diagnose_Call): Improve error message.
29273         Add reference to Ada0Y (AI-50217)
29274
29275         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
29276         sem_util.adb: Add reference to AI-50217
29277
29278         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
29279
29280         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
29281
29282         * sem_aggr.adb: Complete documentation of AI-287 changes
29283
29284         * par-ch4.adb: Document previous changes.
29285
29286         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
29287         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
29288         Ada0Y (AI-50217)
29289
29290         * exp_aggr.adb: Add references to AI-287 in previous changes
29291
29292 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
29293
29294         * exp_ch6.adb:
29295         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
29296         in the rewriting is the result of an inlined call.
29297
29298         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
29299         parameter is a type conversion, use original node to construct the
29300         post-call assignment, because expression may have been rewritten, e.g.
29301         if it is a packed array.
29302
29303         * sem_attr.adb:
29304         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
29305         body, just as it is in an instance.
29306         Categorization routines
29307
29308         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
29309         Instantiate_Object): Set proper sloc reference for message on missing
29310         actual.
29311
29312 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
29313
29314         * Makefile.in: Add FreeBSD libgnat pairs.
29315
29316         * usage.adb: Fix typo in usage message.
29317
29318 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
29319
29320         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
29321         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
29322         pragma Thread_Body.
29323         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
29324
29325         * s-thread.adb: This file is now a dummy implementation of
29326         System.Thread.
29327
29328 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
29329
29330         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
29331
29332 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
29333
29334         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
29335         instanciation references in the parent type description.
29336
29337 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29338
29339         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
29340
29341         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
29342         TYPE_PRECISION directly from esize.
29343
29344 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
29345
29346         * cstreams.c:
29347         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
29348
29349         * init.c: Initialization routines for FreeBSD
29350
29351         * link.c: Link info for FreeBSD
29352
29353         * sysdep.c: Add the case of FreeBSD
29354
29355 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
29356
29357         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
29358         already called in System.Threads.
29359
29360         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
29361         environment task, as it has been moved to System.Threads.Initialization.
29362
29363 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
29364
29365         * adaint.c (__gnatlib_install_locks): Only reference
29366         __gnat_install_locks on VMS, since other platforms can avoid using
29367         --enable-threads=gnat
29368
29369 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29370
29371         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
29372
29373         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
29374         TYPE_PACKED_ARRAY_TYPE_P.
29375         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
29376
29377         Part of PR ada/12806
29378         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
29379         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
29380
29381 2003-11-17  Vincent Celier  <celier@gnat.com>
29382
29383         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
29384         to False.
29385         Do not set exit status to Failure when Warning is True.
29386         (Gnatchop): Make errors "no compilation units found" and
29387         "no source files written" warnings only.
29388
29389         * make.adb (Gnatmake): When using a project file, set
29390         Look_In_Primary_Dir to False.
29391         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
29392         and Local_Configuration_Pragmas in the project where they are declared
29393         not an extending project which might have inherited them.
29394
29395         * osint.adb (Locate_File): If Name is already an absolute path, do not
29396         look for a directory.
29397
29398         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
29399         -gnats (Check_Syntax) is used, issue only a warning, not an error.
29400
29401         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
29402         in objects of type Variable_Value.
29403
29404         * prj.ads: (Variable_Value): New component Project
29405
29406         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
29407         is in a project extended by Project.
29408
29409         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
29410         Project of Variable_Values to this new parameter value.
29411         (Expression): Set component Project of Variable_Values.
29412         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
29413         Set the component Project in array elements.
29414
29415 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
29416
29417         * errout.adb: (Initialize): Add initialization for error nodes.
29418
29419         * sem_ch12.adb (Initialize): Add missing initializations for
29420         Exchanged_Views and Hidden_Entities.
29421
29422 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
29423
29424         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
29425         already instantiated tree for use in subsequent inlining.
29426         (Analyze_Associations, Instantiate_Formal_Subprogram,
29427         Instantiate_Object): improve error message for mismatch in
29428         instantiations.
29429
29430         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
29431         instantiations of subprograms declared in instances.
29432
29433 2003-11-17  Javier Miranda  <miranda@gnat.com>
29434
29435         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
29436         executed only under the Extensions_Allowed flag.
29437
29438 2003-11-17  Robert Dewar  <dewar@gnat.com>
29439
29440         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
29441         zeroes suppressed.
29442         (Address_Image): Fix bug of returning 0x instead of 0x0
29443         Minor reformatting (function specs).
29444
29445         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
29446         (missed case of 33-63)
29447
29448         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
29449
29450         * s-thread.adb: Add comments for pragma Restriction
29451
29452         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
29453         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
29454
29455 2003-11-17  Ed Falis  <falis@gnat.com>
29456
29457         * s-thread.adb: Added No_Tasking restriction for this implementation.
29458
29459 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
29460
29461         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
29462         instanciation references in the parent type description.
29463
29464 2003-11-17  GNAT Script  <nobody@gnat.com>
29465
29466         * Make-lang.in: Makefile automatically updated
29467
29468 2003-11-16  Jason Merrill  <jason@redhat.com>
29469
29470         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
29471         and TAGS files that include them for each front end.
29472
29473 2003-11-14  Andreas Jaeger  <aj@suse.de>
29474
29475         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
29476         is the canonical version.
29477         * misc.c (gnat_handle_option): Likewise.
29478
29479         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
29480
29481         * 5nsystem.ads: New file for x86_64-linux-gnu.
29482
29483 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
29484
29485         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
29486
29487         * comperr.adb: Fix logic in previous change.
29488
29489 2003-11-13  Vincent Celier  <celier@gnat.com>
29490
29491         * 5bml-tgt.adb (Build_Dynamic_Library): Use
29492         Osint.Include_Dir_Default_Prefix instead of
29493         Sdefault.Include_Dir_Default_Name.
29494
29495         * gnatlbr.adb: Update Copyright notice
29496         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
29497         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
29498         instead of Sdefault.Object_Dir_Default_Name
29499
29500         * gnatlink.adb:
29501         (Process_Binder_File): Never suppress the option following -Xlinker
29502
29503         * mdll-utl.adb:
29504         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
29505         Sdefault.Object_Dir_Default_Name.
29506
29507         * osint.ads, osint.adb:
29508         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
29509         Minor reformatting.
29510
29511         * vms_conv.ads: Minor reformating
29512         Remove GNAT STANDARD and GNAT PSTA
29513
29514         * vms_conv.adb:
29515         Allow GNAT MAKE to have several files on the command line.
29516         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
29517         Sdefault.Object_Dir_Default_Name.
29518         Minor Reformating
29519         Remove data for GNAT STANDARD
29520
29521         * vms_data.ads:
29522         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
29523         Remove data for GNAT STANDARD
29524         Remove options and documentation for -gnatwb/-gnatwB: these warning
29525         options no longer exist.
29526
29527 2003-11-13  Ed Falis  <falis@gnat.com>
29528
29529         * 5zthrini.adb: (Init_RTS): Made visible
29530
29531         * 5zthrini.adb:
29532         (Register): Removed unnecessary call to taskVarGet that checked whether
29533          an ATSD was already set as a task var for the argument thread.
29534
29535         * s-thread.adb:
29536         Updated comment to reflect that this is a VxWorks version
29537         Added context clause for System.Threads.Initialization
29538         Added call to System.Threads.Initialization.Init_RTS
29539
29540 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
29541
29542         * 5zthrini.adb:
29543         (Init_RTS): New procedure, for the initialization of the run-time lib.
29544
29545         * s-thread.adb:
29546         Remove dependancy on System.Init, so that this file can be used in the
29547         AE653 sequential run-time lib.
29548
29549 2003-11-13  Robert Dewar  <dewar@gnat.com>
29550
29551         * bindgen.adb: Minor reformatting
29552
29553 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
29554
29555         * checks.adb:
29556         (Apply_Discriminant_Check): Do no apply check if target type is derived
29557         from source type with no applicable constraint.
29558
29559         * lib-writ.adb:
29560         (Ensure_System_Dependency): Do not apply the style checks that may have
29561         been specified for the main unit.
29562
29563         * sem_ch8.adb:
29564         (Find_Selected_Component): Further improvement in error message, with
29565         RM reference.
29566
29567         * sem_res.adb:
29568         (Resolve): Handle properly the case of an illegal overloaded protected
29569         procedure.
29570
29571 2003-11-13  Javier Miranda  <miranda@gnat.com>
29572
29573         * exp_aggr.adb:
29574         (Has_Default_Init_Comps): New function to check the presence of
29575         default initialization in an aggregate.
29576         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
29577         extension aggregate of a limited record. In addition, a new formal
29578         was added to do not initialize the record controller (if any) during
29579         this recursive expansion of ancestors.
29580         (Init_Controller): Add support for limited record components.
29581         (Expand_Record_Aggregate): In case of default initialized components
29582         convert the aggregate into a set of assignments.
29583
29584         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
29585         describing the new syntax.
29586         Nothing else needed to be done because this subprogram delegates part of
29587         its work to P_Precord_Or_Array_Component_Association.
29588         (P_Record_Or_Array_Component_Association): Give support to the new
29589         syntax for default initialization of components.
29590
29591         * sem_aggr.adb:
29592         (Resolve_Aggregate): Relax the strictness of the frontend in case of
29593         limited aggregates.
29594         (Resolve_Record_Aggregate): Give support to default initialized
29595         components.
29596         (Get_Value): In case of default initialized components, duplicate
29597         the corresponding default expression (from the record type
29598         declaration). In case of default initialization in the *others*
29599         choice, do not check that all components have the same type.
29600         (Resolve_Extension_Aggregate): Give support to limited extension
29601         aggregates.
29602
29603         * sem_ch3.adb:
29604         (Check_Initialization): Relax the strictness of the front-end in case
29605         of aggregate and extension aggregates. This test is now done in
29606         Get_Value in a per-component manner.
29607
29608         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
29609         expression corresponds to a limited aggregate. This test is now done
29610         in Get_Value.
29611
29612         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
29613         Box_Present flag.
29614
29615         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
29616         present in an N_Component_Association node
29617
29618 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
29619
29620         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
29621         type-conformant entry only if they are homographs.
29622
29623 2003-11-13  GNAT Script  <nobody@gnat.com>
29624
29625         * Make-lang.in: Makefile automatically updated
29626
29627 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29628
29629         * adadecode.c: Use <> form of include for ctype.h.
29630         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
29631
29632 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29633
29634         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
29635         Works around PR middle-end/6552.
29636
29637 2003-11-10  Ed Falis  <falis@gnat.com>
29638
29639         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
29640
29641         * 5zinit.adb: (Install_Handler): Moved back to spec
29642         (Install_Signal_Handlers): Deleted
29643
29644         * 5zthrini.adb: Added context clause for System.Storage_Elements
29645         (Register): Only handles creation of taskVar; initialization moved to
29646         Thread_Body_Enter.
29647         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
29648         Added declaration of environment task secondary stack and
29649         initialization.
29650
29651         * s-thread.adb: Implement bodies for thread body processing
29652
29653         * s-thread.ads:
29654         Added comment identifying supported targets for pragma Thread_Body.
29655
29656 2003-11-10  Pascal Obry  <obry@gnat.com>
29657
29658         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
29659         GNAT_MAX_PATH_LEN.
29660
29661         * s-fileio.adb:
29662         (Open): Properly check for string length before copying into the buffer.
29663         Raises Name_Error if buffer is too small. Note that this was a potential
29664         buffer overflow.
29665
29666 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
29667
29668         * bindgen.adb, comperr.adb: Code clean ups.
29669         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
29670
29671 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
29672
29673         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
29674
29675 2003-11-10  Vincent Celier  <celier@gnat.com>
29676
29677         * gprcmd.adb:
29678         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
29679         installation.
29680
29681         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
29682
29683         * prj.adb: (Project_Empty): Add new boolean component Virtual
29684
29685         * prj.ads: (Virtual_Prefix): New constant string
29686         (Project_Data): New boolean component Virtual
29687
29688         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
29689         a library project is extended by a virtual extending project.
29690
29691         * prj-part.adb:
29692         Modifications throughout to implement extending-all project, including:
29693         (Virtual_Hash, Processed_Hash): New hash tables
29694         (Create_Virtual_Extending_Project): New procedure
29695         (Look_For_Virtual_Projects_For): New procedure
29696
29697         * prj-proc.adb:
29698         (Process): After checking the projects, if main project is an
29699         extending-all project, set the object directory of all virtual extending
29700         project to the object directory of the main project.
29701         Adjust error message when a virtual extending project has the same
29702         object directory as an project being extended.
29703         (Recursive_Process): If name starts with the virtual prefix, set Virtual
29704         to True in the project data.
29705
29706         * prj-tree.adb:
29707         (Default_Project_Node): Add new boolean component Extending_All
29708         (Is_Extending_All): New function
29709         (Set_Is_Extending_All): New procedure
29710
29711         * prj-tree.ads: (Is_Extending_All): New function
29712         (Set_Is_Extending_All): New procedure
29713         (Project_Node_Record): New boolean component Extending_All
29714
29715         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
29716
29717         * vms_data.ads:
29718         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
29719
29720         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
29721         "gprcmd prefix" to define it.
29722
29723 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
29724
29725         * einfo.ads: Fix a typo and remove an extraneous word in comments.
29726
29727         * lib-load.adb:
29728         (Create_Dummy_Package_Unit): Set the scope of the entity for the
29729         created dummy package to Standard_Standard, not to itself, to
29730         defend other parts of the front-end against encoutering a cycle in
29731         the scope chain.
29732
29733         * sem_ch10.adb:
29734         (Analyze_With_Clause): When setting the entities for the successive
29735         N_Expanded_Names that constitute the name of a child unit, do not
29736         attempt to go further than Standard_Standard in the chain of scopes.
29737         This case arises from the placeholder units created by
29738         Create_Dummy_Package_Unit in the case of a with_clause for a
29739         nonexistent child unit.
29740
29741 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
29742
29743         * exp_ch6.adb:
29744         (Expand_Thread_Body): Place subprogram on scope stack, so that new
29745         declarations are given the proper scope.
29746
29747         * sem_ch13.adb:
29748         (Check_Expr_Constants): Reject an expression that contains a constant
29749         created during expansion, and that appears after the object to which
29750         the address clause applies.
29751
29752         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
29753         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
29754         that uses 'Range of a function call with controlled components, so
29755         that the function result can be finalized before starting the loop.
29756
29757         * sem_ch8.adb:
29758         (Find_Selected_Component): Improve error message when prefix is
29759         an implicit dereference of an incomplete type.
29760
29761 2003-11-10  Robert Dewar  <dewar@gnat.com>
29762
29763         * opt.ads: New Print_Standard flag for -gnatS switch
29764
29765         * sem_ch13.adb: Remove some additional checks for unaligned arrays
29766
29767         * cstand.adb (Create_Standard): Print out package standard if -gnatS
29768         switch set
29769
29770         * debug.adb: Update doc for -gnatds to discuss relationship with new
29771         -gnatS flag
29772
29773         * sinfo.adb: Add new field Entity_Or_Associated_Node
29774
29775         * sinfo.ads: Add new field Entity_Or_Associated_Node
29776         Update documentation for Associated_Node and Entity fields to clarify
29777         relationship and usage.
29778
29779         * sprint.adb:
29780         (Write_Id): Properly process Associated_Node field in generic template
29781
29782         * switch-c.adb:
29783         Recognize new -gnatS switch for printing package Standard
29784         This replaces gnatpsta
29785
29786         * usage.adb:
29787         Add line for  new -gnatS switch for printing package Standard
29788         This replaces gnatpsta
29789
29790 2003-11-10  Andreas Jaeger  <aj@suse.de>
29791
29792         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
29793         integer.
29794
29795 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
29796
29797         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
29798         by gnat1.
29799
29800 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
29801
29802         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
29803         no longer needed.
29804
29805         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
29806
29807         * sysdep.c: Add handling of cygwin.
29808
29809 2003-11-10  GNAT Script  <nobody@gnat.com>
29810
29811         * Make-lang.in: Makefile automatically updated
29812
29813 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
29814
29815         PR 12950
29816         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
29817         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
29818         Replace GNAT_ROOT by GCC_ROOT.
29819
29820         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
29821
29822 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
29823
29824         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
29825         and update for changed meaning of GET_MODE_BITSIZE.
29826
29827 2003-11-04  Doug Rupp  <rupp@gnat.com>
29828
29829         * sysdep.c: Problem discovered during IA64 VMS port.
29830         [VMS] #include <unixio.h> to get proper prototypes.
29831
29832         * adaint.c:
29833         Issues discovered/problems fixed during IA64 VMS port.
29834         [VMS] #define _POSIX_EXIT for proper semantics.
29835         [VMS] #include <unixio.h> for proper prototypes.
29836         [VMS] (fork): #define IA64 version.
29837         (__gnat_os_exit): Remove unnecessary VMS specific code.
29838
29839 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29840
29841         Part of PR ada/12806
29842         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
29843         tree, not integer.
29844
29845         * decl.c:
29846         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
29847         not integer.
29848
29849         * targtyps.c, decl.c, misc.c,
29850         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
29851         routines to work around change in FP sizing semantics in GCC.
29852
29853         * utils.c:
29854         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
29855
29856         * gigi.h: (enumerate_modes): New function.
29857
29858         * Make-lang.in: (ada/misc.o): Add real.h.
29859
29860         * misc.c: (enumerate_modes): New function.
29861
29862 2003-11-04  Robert Dewar  <dewar@gnat.com>
29863
29864         * 3vtrasym.adb: Minor reformatting
29865         Use terminology encoded/decoded name, rather than C++ specific notion
29866         of mangling (this is the terminology used throughout GNAT).
29867
29868         * einfo.h: Regenerated
29869
29870         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
29871
29872         * exp_ch6.adb:
29873         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
29874
29875         * par-prag.adb: Add dummy entry for Thread_Body pragma
29876
29877         * rtsfind.ads:
29878         Add entries for System.Threads entities for thread body processing
29879
29880         * sem_attr.adb:
29881         (Analyze_Pragma, Access attributes): Check these are not applied to a
29882         thread body, since this is not permitted
29883
29884         * sem_prag.adb: Add processing for Thread_Body pragma.
29885         Minor comment fix.
29886
29887         * sem_res.adb:
29888         (Resolve_Call): Check for incorrect attempt to call a thread body
29889          procedure with a direct call.
29890
29891         * snames.ads, snames.adb: Add entry for Thread_Body pragma
29892         Add names associated with thread body expansion
29893
29894         * snames.h: Add entry for Thread_Body pragma
29895
29896         * s-thread.adb: Add entries for thread body processing
29897         These are dummy bodies so far
29898
29899         * s-thread.ads: Add documentation on thread body handling.
29900         Add entries for thread body processing.
29901
29902 2003-11-04  Javier Miranda  <miranda@gnat.com>
29903
29904         * sem_ch10.adb:
29905         (Build_Limited_Views): Return after posting an error in case of limited
29906         with_clause on subprograms, generics, instances or generic renamings
29907         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
29908         on subprograms, generics, instances or generic renamings
29909
29910 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
29911
29912         * raise.c (setup_to_install): Correct mistake in last revision; two
29913         arguments out of order.
29914
29915         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
29916         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
29917         notice, missed in previous change.
29918         Remove trailing blanks and other style errors introduced in previous
29919         change.
29920
29921 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
29922
29923         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
29924         rid of the wrapper for a LJM type, ensuring we don't do that if the
29925         field is addressable.  This avoids potential low level type view
29926         mismatches later on, for instance in a by-reference argument passing
29927         process.
29928
29929 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
29930
29931         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
29932         aligned at byte boundary.
29933
29934 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
29935
29936         * decl.c (components_to_record): Do not delete the empty variants from
29937         the end of the union type.
29938
29939 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
29940
29941         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
29942         operation for a derived type, an explicit declaration may use a local
29943         subtype of Boolean.
29944
29945 2003-11-04  Vincent Celier  <celier@gnat.com>
29946
29947         * make.adb (Gnatmake): Allow main sources on the command line with a
29948         library project when it is only for compilation (no binding or
29949         linking).
29950
29951 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
29952
29953         * Makefile.in: Remove many duplicate variables.
29954
29955 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
29956
29957         * Make-lang.in (dvi): Move targets to $(docobjdir).
29958         (gnat_ug_vms.dvi): Simplify rule and adjust target.
29959         (gnat_ug_wnt.dvi): Likewise.
29960         (gnat_ug_unx.dvi): Likewise.
29961         (gnat_ug_vxw.dvi): Likewise.
29962         (gnat_rm.dvi): Likewise.
29963         (gnat-style.dvi): Likewise.
29964
29965 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
29966
29967         * gigi.h: Missed commit from update for C90.
29968
29969 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
29970
29971         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
29972
29973 2003-10-31  Andreas Schwab  <schwab@suse.de>
29974
29975         * raise.c (get_action_description_for): Fix typo in last change.
29976
29977 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
29978
29979         PR ada/12761
29980         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
29981         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
29982
29983 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
29984
29985         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
29986         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
29987         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
29988         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
29989         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
29990
29991 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
29992
29993         * 3vtrasym.adb:
29994         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
29995         numbers when symbol name is too long.
29996
29997 2003-10-30  Ed Falis  <falis@gnat.com>
29998
29999         * g-signal.ads, g-signal.adb: New files
30000
30001         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
30002
30003         * Makefile.rtl: Introduce GNAT.Signals
30004
30005 2003-10-30  Robert Dewar  <dewar@gnat.com>
30006
30007         * freeze.adb: Minor reformatting
30008
30009         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
30010
30011         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
30012         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
30013         New handling of Id_Check parameter to improve recognition of keywords
30014         used as identifiers.
30015         Update copyright notice to include 2003
30016
30017 2003-10-29  Robert Dewar  <dewar@gnat.com>
30018
30019         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
30020         sem_ch10.adb: Minor reformatting
30021
30022         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
30023         (Expand_Assign_Record): Test right hand side for bit unaligned as well
30024
30025 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
30026
30027         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
30028         Support for TBK$SYMBOLIZE-based symbolic traceback.
30029
30030 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
30031
30032         * exp_disp.adb:
30033         Revert previous change, that did not work well when pragma No_Run_Time
30034         was used in conjunction with a run-time other than ZFP.
30035
30036 2003-10-29  Vincent Celier  <celier@gnat.com>
30037
30038         * make.adb:
30039         (Gnatmake): When there are no Ada mains in attribute Main, disable the
30040          bind and link steps only is switch -z is not used.
30041
30042 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
30043
30044         * Makefile.generic: Remove duplicated setting of CC.
30045
30046         * Makefile.prolog: Set CC to gcc by default, to override make's
30047         default (cc).
30048
30049         * einfo.h: Regenerated.
30050
30051 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
30052
30053         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
30054         current body, after compiling subunit.
30055
30056         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
30057         when in deleted code, because gigi needs properly ordered freeze
30058         actions to annotate types.
30059
30060         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
30061         prevent the premature freezing of record type that contains
30062         subcomponents with a private type that does not yet have a completion.
30063
30064 2003-10-29  Javier Miranda  <miranda@gnat.com>
30065
30066         * sem_ch12.adb:
30067         (Analyze_Package_Instantiation): Check that instances can not be used in
30068         limited with_clauses.
30069
30070         * sem_ch8.adb:
30071         (Analyze_Package_Renaming): Check that limited withed packages cannot
30072         be renamed. Improve text on error messages related to limited
30073         with_clauses.
30074
30075         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
30076
30077         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
30078         Update copyright notice.
30079
30080         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
30081         (Install_Limited_Context_Clauses): New subprogram that isolates all the
30082         checks required for limited context_clauses and installs the limited
30083         view.
30084         (Install_Limited_Withed_Unit): Complete its documentation.
30085         (Analyze_Context): Check that limited with_clauses are only allowed in
30086         package specs.
30087         (Install_Context): Call Install_Limited_Context_Clauses after the
30088         parents have been installed.
30089         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
30090         package as 'From_With_Type'; this mark indicates that the limited view
30091         is installed. Used to check bad usages of limited with_clauses.
30092         (Build_Limited_Views): Do not add shadow entities to the scope's list
30093         of entities. Do not add real entities to the Non_Limited_Views chain.
30094         Improve error notification.
30095         (Remove_Context_Clauses): Remove context clauses in two phases:
30096         limited views first and regular views later (to maintain the
30097         stack model).
30098         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
30099         its visible entities.
30100
30101 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
30102
30103         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
30104         with any type that Is_Fixed_Point_Type.
30105
30106         * sinfo.ads: Fix documentation for Associated_Node attribute.
30107
30108 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
30109
30110         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
30111         both '-gnatc' and '-gnatt' are specified.
30112
30113         * atree.adb (Initialize): Add initialization for Node_Count (set to
30114         zero).
30115
30116 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30117
30118         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
30119         do not consider as Pure.
30120
30121         Part of implementation of function-at-a-time:
30122
30123         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
30124         (tree_transform): Add new argument to build_component_ref.
30125         (tree_transform, case N_Assignment_Statement): Make and return an
30126         EXPR_STMT.
30127         (tree_transform): If result IS_STMT, set flags and return it.
30128         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
30129
30130         * utils2.c (build_simple_component_ref, build_component_ref): Add new
30131         arg, NO_FOLD_P.
30132         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
30133         (build_allocator): Likewise.
30134
30135         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
30136         Add new arg to build_component_ref.
30137         (maybe_unconstrained_array, unchecked_convert): Likewise.
30138
30139         * ada-tree.def (EXPR_STMT): New code.
30140
30141         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
30142
30143         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
30144         build_component_ref calls.
30145
30146         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
30147
30148         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
30149         (build_component_ref): Add new argument, NO_FOLD_P.
30150
30151 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
30152
30153         * Makefile.generic: Add missing substitution on object_deps handling.
30154
30155         PR ada/5909
30156         * Make-lang.in (check-ada): Enable ACATS test suite.
30157
30158 2003-10-27  Robert Dewar  <dewar@gnat.com>
30159
30160         * exp_ch3.adb:
30161         (Freeze_Array_Type): We do not need an initialization routine for types
30162         derived from String or Wide_String. They should be treated the same
30163         as String and Wide_String themselves. This caused problems with the
30164         use of Initialize_Scalars.
30165
30166         * exp_ch5.adb:
30167         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
30168         composites. This allows use of component clauses that are not byte
30169         aligned.
30170
30171         * sem_prag.adb:
30172         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
30173         is an attempt to pack an array of atomic objects.
30174
30175         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
30176
30177 2003-10-27  Pascal Obry  <obry@gnat.com>
30178
30179         * g-dirope.adb:
30180         (Basename): Check for drive letters in a pathname only on DOS based OS.
30181
30182 2003-10-27  Vincent Celier  <celier@gnat.com>
30183
30184         * make.adb:
30185         (Gnatmake): When unable to change dir to the object dir, display the
30186         content of the parent dir of the obj dir, to try to understand why this
30187         happens.
30188
30189 2003-10-27  GNAT Script  <nobody@gnat.com>
30190
30191         * Make-lang.in: Makefile automatically updated
30192
30193 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
30194
30195         * sem_ch12.adb:
30196         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
30197         should not be done in Save/Restore_Scope_Stack, because it is performed
30198         locally.
30199
30200         * sem_ch8.adb:
30201         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
30202         whether use clauses should be removed/restored.
30203
30204         * sem_ch8.ads:
30205         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
30206         whether use clauses should be removed/restored.
30207
30208 2003-10-26  Andreas Jaeger  <aj@suse.de>
30209
30210         * Makefile.in: Remove duplicated lines.
30211
30212 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
30213
30214         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
30215         minimize the differences with ACT tree.
30216
30217         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
30218         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
30219         Gnatvsn.Gnat_Static_Version_String to reduce differences between
30220         ACT and FSF trees.
30221
30222 2003-10-24  Pascal Obry  <obry@gnat.com>
30223
30224         PR ada/12014
30225         * adadecode.c (ostrcpy): New function.
30226         (__gnat_decode): Use ostrcpy of strcpy.
30227         (has_prefix): Set first parameter a const.
30228         (has_suffix): Set first parameter a const.
30229         Update copyright notice. Fix source name in header.
30230         Removes a trailing space.
30231
30232 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
30233
30234         * exp_disp.adb:
30235         Remove the test against being in No_Run_Time_Mode before generating a
30236         call to Register_Tag. It is redundant with the test against the
30237         availability of the function Register_Tag.
30238
30239 2003-10-24  Vincent Celier  <celier@gnat.com>
30240
30241         * g-catiio.adb: (Month_Name): Correct spelling of February
30242
30243         * make.adb: (Mains): New package
30244         (Initialize): Call Mains.Delete
30245         (Gnatmake): Check that each main on the command line is a source of a
30246         project file and, if there are several mains, each of them is a source
30247         of the same project file.
30248         (Gnatmake): When a foreign language is specified in attribute Languages,
30249         no main is specified on the command line and attribute Mains is not
30250         empty, only build the Ada main. If there is no Ada main, just compile
30251         the Ada sources and their closure.
30252         (Gnatmake): If a main is specified on the command line with directory
30253         information, check that the source exists and, if it does, that the path
30254         is the actual path of a source of a project.
30255
30256         * prj-env.adb:
30257         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
30258         Full_Path is True, return the full path instead of the simple file name.
30259         (Project_Of): New function
30260
30261         * prj-env.ads:
30262         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
30263         defaulted to False.
30264         (Project_Of): New function
30265
30266 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
30267
30268         * Makefile.generic:
30269         Ensure objects of main project are always checked and rebuilt if needed.
30270         Set CC to gcc by default.
30271         Prepare new handling of link by creating a global archive (not activated
30272         yet).
30273
30274         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
30275         stringt.h: Update copyright notice. Remove trailing blanks.
30276         Fix source name in header.
30277
30278 2003-10-24  Robert Dewar  <dewar@gnat.com>
30279
30280         * sem_ch12.adb: Minor reformatting
30281
30282         * sem_ch3.adb:
30283         Minor reformatting (including new function return style throughout)
30284
30285         * sem_ch3.ads:
30286         Minor reformatting (including new function return style throughout)
30287
30288 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
30289
30290         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
30291         stringt.h: Update copyright notice. Remove trailing blanks.
30292         Fix source name in header.
30293
30294 2003-10-24  GNAT Script  <nobody@gnat.com>
30295
30296         * Make-lang.in: Makefile automatically updated
30297
30298 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
30299
30300         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
30301         stringt.h: Convert to ISO C90 declarations and definitions.
30302
30303 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
30304
30305         PR ada/11978
30306         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
30307         External_Tag attribute definition clauses.
30308
30309 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
30310
30311         PR ada/7613
30312         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
30313         child unit, generate a fully qualified name to avoid spurious errors
30314         when the context contains renamings of different child units with
30315         the same simple name.
30316
30317         * exp_dbug.ads: Add documentation on name qualification for renamings
30318         of child units.
30319
30320 2003-10-23  Robert Dewar  <dewar@gnat.com>
30321
30322         * g-regpat.ads, g-regpat.adb: Minor reformatting
30323
30324 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
30325
30326         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
30327
30328 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
30329
30330         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
30331         Machine call.
30332
30333         * urealp.h: (Machine): Update to proper definition.
30334
30335 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
30336
30337         * init.c, adaint.c: Minor reformatting.
30338
30339 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
30340
30341         * adaint.c (w32_epoch_offset): Define static const at file level.
30342         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
30343         rather than t_create, t_access in call to GetFileTime. Use union
30344         to convert between FILETIME and  unsigned long long.
30345         (__gnat_file_time_name): Test for invalid file handle.
30346         (__gnat_set_filetime_name): Support win32 targets using
30347         w32api SetFileTime.
30348
30349 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
30350
30351         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
30352
30353         * ctrl_c.c (__gnat_int_handler): Remove declaration.
30354
30355         * decl.c (creat_concat_name):  Const-ify prefix.
30356
30357         * adaint.c: Include ctype.h if __MINGW32__.
30358         (__gnat_readlink): Mark arguments as possibly unused.
30359         (__gnat_symlink): Likewise.
30360         (__gnat_is_symbolic_link): Likewise.
30361         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
30362         declaration
30363         (__gnat_file_time_name): Don't declare struct stat statbuf when
30364         not needed.
30365         (__gnat_is_absolute_path): Add parenthesis around condition of
30366         'if' statement to avoid warning.
30367         (__gnat_plist_init): Specify void as parameter.
30368         (plist_enter): Likewise.
30369         (plist_leave): Likewise.
30370         (remove_handle): Make static. Initialize prev.
30371
30372 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
30373
30374         PR ada/10110
30375         * Makefile.in: Disable build of gnatpsta.
30376         * cstreams.c (__gnat_full_name): Minor improvements and clean up
30377         of previous change.
30378
30379 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
30380
30381         * tracebak.c (MAX): Avoid redefinition warning.
30382
30383         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
30384         Change msg to const char *.
30385         (__gnat_install_handler): Remove ss, unused.
30386         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
30387         to const char *.
30388         * cstreams.c (__gnat_full_name): Declare p only when used.
30389         (__gnat_full_name) [sgi] Return buffer.
30390
30391 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
30392
30393         * mingw32.h: New file.
30394         * gnat_wrapper.adb: New file.
30395
30396 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
30397
30398         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
30399         string match a pre compiled regular expression (the corresponding
30400         version of the function working on a raw regular expression)
30401         Fix typos in various comments
30402         Update copyright notice in spec
30403
30404 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
30405
30406         * exp_ch3.adb:
30407         (Component_Needs_Simple_Initialization): Return False when the type is a
30408         packed bit array. Revise spec comments to document this case.
30409
30410         * exp_prag.adb:
30411         (Expand_Pragma_Import): Set any expression on the imported object to
30412         empty to avoid initializing imported objects (in particular this
30413         covers the case of zero-initialization of bit arrays).
30414         Update copyright notice.
30415
30416 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
30417
30418         * sem_ch12.adb:
30419         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
30420         a subunit is missing.
30421         (Instantiate_Subprogram_Body): If body of function is missing, set type
30422         of return expression explicitly in dummy body, to prevent cascaded
30423         errors when a subunit is missing.
30424         Fixes PR 5677.
30425
30426         * sem_ch3.adb:
30427         (Access_Subprogram_Declaration): Verify that return type is valid.
30428         Fixes PR 8693.
30429
30430         * sem_elab.adb:
30431         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
30432         generic.
30433         Fixes PR 12318.
30434
30435         * sem_util.adb:
30436         (Corresponding_Discriminant): If the scope of the discriminant is a
30437         private type without discriminant, use its full view.
30438         Fixes PR 8247.
30439
30440 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
30441
30442         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
30443         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
30444         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
30445         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
30446         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
30447         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
30448         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
30449         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
30450         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
30451         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
30452         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
30453         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
30454         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
30455         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
30456         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
30457         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
30458         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
30459         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
30460         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
30461         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
30462         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
30463         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
30464         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
30465         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
30466         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
30467         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
30468         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
30469         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
30470         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
30471         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
30472         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
30473         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
30474         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
30475         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
30476         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
30477         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
30478         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
30479         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
30480         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
30481         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
30482         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
30483         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
30484         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
30485         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
30486         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
30487         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
30488         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
30489         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
30490         vms_conv.ads, vms_conv.adb, vms_data.ads,
30491         vxaddr2line.adb: Files added. Merge with ACT tree.
30492
30493         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
30494         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
30495         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
30496         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
30497         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
30498         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
30499         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
30500         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
30501         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
30502         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
30503
30504         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
30505         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
30506         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
30507         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
30508         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
30509         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
30510         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
30511         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
30512         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
30513         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
30514         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
30515         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
30516         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
30517         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
30518         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
30519         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
30520         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
30521         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
30522         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
30523         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
30524         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
30525         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
30526         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
30527         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
30528         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
30529         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
30530         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
30531         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
30532         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
30533         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
30534         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
30535         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
30536         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
30537         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
30538         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
30539         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
30540         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
30541         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
30542         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
30543         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
30544         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
30545         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
30546         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
30547         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
30548         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
30549         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
30550         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
30551         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
30552         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
30553         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
30554         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
30555         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
30556         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
30557         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
30558         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
30559         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
30560         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
30561         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
30562         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
30563         checks.adb, checks.ads, cio.c, comperr.adb,
30564         comperr.ads, csets.adb, cstand.adb, cstreams.c,
30565         debug_a.adb, debug_a.ads, debug.adb, decl.c,
30566         einfo.adb, einfo.ads, errout.adb, errout.ads,
30567         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
30568         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
30569         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
30570         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
30571         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
30572         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
30573         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
30574         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
30575         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
30576         fe.h, fmap.adb, fmap.ads, fname.adb,
30577         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
30578         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
30579         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
30580         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
30581         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
30582         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
30583         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
30584         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
30585         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
30586         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
30587         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
30588         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
30589         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
30590         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
30591         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
30592         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
30593         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
30594         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
30595         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
30596         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
30597         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
30598         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
30599         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
30600         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
30601         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
30602         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
30603         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
30604         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
30605         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
30606         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
30607         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
30608         layout.adb, lib.adb, lib.ads, lib-list.adb,
30609         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
30610         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
30611         link.c, live.adb, make.adb, make.ads,
30612         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
30613         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
30614         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
30615         misc.c, mkdir.c, mlib.adb, mlib.ads,
30616         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
30617         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
30618         namet.adb, namet.ads, namet.h, nlists.ads,
30619         nlists.h, nmake.adt, opt.adb, opt.ads,
30620         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
30621         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
30622         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
30623         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
30624         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
30625         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
30626         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
30627         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
30628         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
30629         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
30630         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
30631         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
30632         prj-util.adb, prj-util.ads, raise.c, raise.h,
30633         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
30634         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
30635         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
30636         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
30637         scans.ads, scn.adb, scn.ads, s-crc32.adb,
30638         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
30639         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
30640         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
30641         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
30642         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
30643         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
30644         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
30645         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
30646         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
30647         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
30648         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
30649         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
30650         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
30651         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
30652         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
30653         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
30654         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
30655         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
30656         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
30657         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
30658         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
30659         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
30660         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
30661         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
30662         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
30663         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
30664         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
30665         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
30666         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
30667         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
30668         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
30669         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
30670         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
30671         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
30672         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
30673         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
30674         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
30675         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
30676         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
30677         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
30678         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
30679         stringt.adb, stringt.ads, stringt.h, style.ads,
30680         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
30681         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
30682         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
30683         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
30684         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
30685         table.adb, table.ads, targparm.adb, targparm.ads,
30686         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
30687         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
30688         ttypes.ads, types.ads, types.h, uintp.adb,
30689         uintp.ads, uintp.h, uname.adb, urealp.adb,
30690         urealp.ads, urealp.h, usage.adb, utils2.c,
30691         utils.c, validsw.adb, validsw.ads, widechar.adb,
30692         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
30693         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
30694         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
30695         gnatvsn.ads: Merge with ACT tree.
30696
30697         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
30698
30699 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
30700
30701         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
30702         (gnat_ug_vmx.info): Likewise.
30703         (gnat_ug_vxw.info): Likewise.
30704         (gnat_ug_wnt.info): Likewise.
30705         (gnat_rm.info): Likewise.
30706         (gnat-style.info): Likewise.
30707
30708         * Make-lang.in (ada.install-info): Remove target.
30709         (info): New target.
30710         (install-info): Likewise.
30711         (gnat_ug_unx.info): Simplify rule.
30712         (gnat_ug_vmx.info): Likewise.
30713         (gnat_ug_vxw.info): Likewise.
30714         (gnat_ug_wnt.info): Likewise.
30715         (gnat_rm.info): Likewise.
30716         (gnat-style.info): Likewise.
30717
30718 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
30719
30720         * Make-lang.in: Replace uses of $(target_alias) with
30721         $(target_noncanonical).
30722         * ada/Makefile.in: Remove unused mention of $(target_alias).
30723
30724 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
30725
30726         * Make-lang.in (ada.info): Replace with ...
30727         (info): ... this.
30728         (ada.dvi): Replace with ...
30729         (dvi): ... this.
30730
30731 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
30732
30733         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
30734         initialize dconstp5 and dconstmp5.
30735
30736 2003-09-28  Richard Henderson  <rth@redhat.com>
30737
30738         * trans.c (tree_transform): Update call to expand_asm_operands.
30739
30740 2003-09-21  Richard Henderson  <rth@redhat.com>
30741
30742         * trans.c, utils.c: Revert.
30743
30744 2003-09-21  Richard Henderson  <rth@redhat.com>
30745
30746         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
30747         change to const.
30748
30749 2003-09-04  Michael Matz  <matz@suse.de>
30750
30751         * misc.c: Include "target.h".
30752         * Make-lang.in (misc.o): Add dependency on target.h.
30753
30754 2003-09-03  DJ Delorie  <dj@redhat.com>
30755
30756         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
30757         hook.
30758
30759 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
30760
30761         * Makefile.in: Update substitutions to match changes to
30762         configure.  Use include directives instead of @-insertions
30763         to read in host and target fragments.  Add a rule to
30764         regenerate ada/Makefile.
30765
30766 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
30767
30768         * lang-options.h: Remove.
30769         * lang.opt: Add help text.
30770
30771 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
30772
30773         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
30774         calls.
30775
30776 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
30777
30778         * misc.c (gnat_handle_option): Don't handle filenames.
30779
30780 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
30781
30782         * Make-lang.in: Replace PWD with PWD_COMMAND.
30783         * Makefile.adalib: Likewise.
30784         * Makefile.in: Likewise.
30785
30786 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
30787
30788         * misc.c (gnat_argv): Revert last change.
30789         (gnat_handle_option, gnat_init_options): Copy arguments.
30790
30791 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
30792
30793         * misc.c (gnat_argv): Make const.
30794
30795 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
30796
30797         * misc.c (save_argc, save_argv): Keep non-static!
30798
30799 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
30800
30801         * misc.c (save_argc, save_argv): Make static.
30802         (gnat_init_options): New prototype.
30803         (gnat_init_options): Update.
30804
30805 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
30806
30807         * gnat_ug.texi: Remove unlikely characters from @vars.
30808         * gnat_ug_vms.texi: Regenerate.
30809
30810 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
30811
30812         * misc.c (record_code_position): Adjust emit_note call.
30813
30814 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
30815
30816         * misc.c (gnat_handle_option): Don't check for missing arguments.
30817
30818 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
30819
30820         * utils.c (end_subprog_body): Adjust expand_function_end call.
30821
30822 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
30823
30824         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
30825         Bind_Main_Program.
30826
30827 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
30828
30829         * lang.opt: Declare Ada.
30830         * misc.c (gnat_init_options): Update.
30831
30832 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
30833
30834         * utils.c (begin_subprog_body): Adjust init_function_start call.
30835
30836 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
30837
30838         * Make-lang.in: Update to use options.c and options.h.
30839         * misc.c: Include options.h not aoptions.h.
30840         (gnat_handle_option): Abort on unrecognized switch.
30841         (gnat_init_options): Request Ada switches.
30842
30843 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
30844
30845         * lang.opt: Add -Wall.
30846         * misc.c (gnat_handle_option): Handle it.
30847
30848 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
30849
30850         * misc.c (gnat_handle_option): Fix warnings.
30851
30852 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
30853
30854         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
30855
30856 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
30857
30858         * Make-lang.in: Update to handle command-line options.
30859         * lang.opt: New file.
30860         * misc.c: Include aoptions.h.
30861         (cl_options_count, cl_options): Remove.
30862         (gnat_handle_option): New.
30863         (gnat_decode_option): Remove.
30864         (LANG_HOOKS_DECODE_OPTION): Remove.
30865         (LANG_HOOKS_HANDLE_OPTION): Override.
30866
30867 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
30868
30869         * init.c, misc.c, trans.c, utils.c: Remove dead code.
30870
30871 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
30872
30873         * Makefile.in: Replace "host_canonical" with "host" for autoconf
30874         substitution.
30875
30876 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
30877
30878         * Make-lang.in: Update.
30879         * misc.c: Include opts.h. Define cl_options_count and cl_options.
30880
30881 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
30882
30883         * misc.c (gnat_init_options): Update.
30884
30885 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
30886
30887         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
30888         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
30889         __attribute__ ((__unused__)).
30890
30891 2003-06-05  Jan Hubicka  <jh@suse.cz>
30892
30893         * Make-lang.in:  Add support for stageprofile and stagefeedback
30894
30895 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
30896
30897         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
30898         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
30899
30900 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
30901
30902         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
30903         Remove non-VMS directive.
30904         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
30905         alternatives.
30906         (Examples of gnatls Usage): Remove VMS alternative.
30907
30908 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
30909
30910         PR ada/9953
30911         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
30912         and turn ZCX_By_Default back to False since the underlying support
30913         is not quite there yet.
30914
30915 2003-06-01  Andreas Jaeger  <aj@suse.de>
30916
30917         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
30918         and ROUND_TYPE_SIZE_UNIT.
30919
30920 2003-05-22   Geert Bosch <bosch@gnat.com>
30921
30922         * gnat_rm.texi : Remove reference to Ada Core Technologies.
30923
30924 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
30925
30926         * trans.c (tree_transform): Use location_t and input_location
30927         directly.
30928         (build_unit_elab): Likewise.
30929         * utils.c (create_label_decl): Likewise.
30930
30931 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
30932
30933         * trans.c (tree_transform, build_unit_elab,
30934         set_lineno): Rename lineno to input_line.
30935         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
30936         end_subprog_body): Likewise.
30937         * utils2.c (build_call_raise): Likewise.
30938
30939 2003-05-01  Laurent Guerby <guerby@acm.org>
30940
30941         PR ada/10546
30942         * 5iosinte.ads: Increase pthread_cond_t size to match recent
30943         LinuxThread and NPTL version, merge from ACT.
30944
30945 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
30946
30947         * utils.c (convert): No need to clear TREE_CST_RTL.
30948
30949 2003-04-23   Geert Bosch <bosch@gnat.com>
30950
30951         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
30952         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
30953         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
30954         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
30955         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
30956         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
30957         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
30958         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
30959         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
30960         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
30961         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
30962         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
30963         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
30964         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
30965         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
30966         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
30967         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
30968         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
30969         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
30970         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
30971         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
30972         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
30973         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
30974         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
30975         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
30976         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
30977         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
30978         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
30979         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
30980         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
30981         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
30982         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
30983         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
30984         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
30985         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
30986         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
30987         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
30988         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
30989         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
30990         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
30991         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
30992         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
30993         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
30994         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
30995         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
30996         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
30997         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
30998         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
30999         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
31000         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
31001         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
31002         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
31003         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
31004         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
31005         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
31006         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
31007         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
31008         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
31009         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
31010         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
31011         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
31012         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
31013         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
31014         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
31015         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
31016         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
31017         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
31018         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
31019         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
31020         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
31021         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
31022         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
31023         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
31024         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
31025         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
31026         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
31027         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
31028         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
31029         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
31030         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
31031         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
31032         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
31033         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
31034         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
31035         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
31036         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
31037         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
31038         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
31039         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
31040         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
31041         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
31042         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
31043         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
31044         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
31045         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
31046         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
31047         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
31048         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
31049         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
31050         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
31051         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
31052         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
31053         ali.adb, ali.ads, alloc.ads, argv.c,
31054         atree.adb, atree.ads, atree.h, aux-io.c,
31055         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
31056         binde.adb, binde.ads, binderr.adb, binderr.ads,
31057         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
31058         butil.adb, butil.ads, cal.c, calendar.ads,
31059         casing.adb, casing.ads, ceinfo.adb, checks.adb,
31060         checks.ads, cio.c, comperr.adb, comperr.ads,
31061         config-lang.in, csets.adb, csets.ads, csinfo.adb,
31062         cstand.adb, cstand.ads, cuintp.c, debug.adb,
31063         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
31064         dec-io.ads, dec.ads, deftarg.c, directio.ads,
31065         einfo.adb, einfo.ads, elists.adb, elists.ads,
31066         elists.h, errno.c, errout.adb, errout.ads,
31067         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
31068         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
31069         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
31070         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
31071         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
31072         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
31073         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
31074         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
31075         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
31076         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
31077         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
31078         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
31079         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
31080         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
31081         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
31082         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
31083         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
31084         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
31085         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
31086         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
31087         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
31088         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
31089         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
31090         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
31091         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
31092         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
31093         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
31094         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
31095         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
31096         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
31097         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
31098         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
31099         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
31100         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
31101         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
31102         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
31103         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
31104         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
31105         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
31106         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
31107         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
31108         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
31109         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
31110         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
31111         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
31112         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
31113         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
31114         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
31115         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
31116         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
31117         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
31118         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
31119         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
31120         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
31121         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
31122         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
31123         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
31124         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
31125         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
31126         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
31127         lib.adb, lib.ads, live.adb, live.ads,
31128         machcode.ads, make.adb, make.ads, makeusg.adb,
31129         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
31130         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
31131         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
31132         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
31133         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
31134         mlib.ads, namet.adb, namet.ads, nlists.adb,
31135         nlists.ads, opt.adb, opt.ads, osint-b.adb,
31136         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
31137         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
31138         osint.ads, output.adb, output.ads, par-ch10.adb,
31139         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
31140         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
31141         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
31142         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
31143         par-tchk.adb, par-util.adb, par.adb, par.ads,
31144         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
31145         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
31146         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
31147         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
31148         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
31149         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
31150         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
31151         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
31152         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
31153         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
31154         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
31155         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
31156         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
31157         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
31158         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
31159         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
31160         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
31161         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
31162         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
31163         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
31164         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
31165         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
31166         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
31167         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
31168         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
31169         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
31170         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
31171         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
31172         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
31173         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
31174         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
31175         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
31176         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
31177         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
31178         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
31179         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
31180         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
31181         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
31182         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
31183         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
31184         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
31185         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
31186         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
31187         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
31188         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
31189         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
31190         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
31191         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
31192         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
31193         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
31194         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
31195         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
31196         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
31197         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
31198         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
31199         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
31200         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
31201         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
31202         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
31203         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
31204         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
31205         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
31206         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
31207         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
31208         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
31209         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
31210         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
31211         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
31212         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
31213         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
31214         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
31215         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
31216         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
31217         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
31218         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
31219         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
31220         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
31221         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
31222         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
31223         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
31224         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
31225         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
31226         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
31227         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
31228         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
31229         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
31230         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
31231         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
31232         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
31233         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
31234         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
31235         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
31236         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
31237         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
31238         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
31239         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
31240         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
31241         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
31242         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
31243         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
31244         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
31245         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
31246         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
31247         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
31248         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
31249         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
31250         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
31251         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
31252         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
31253         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
31254         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
31255         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
31256         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
31257         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
31258         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
31259         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
31260         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
31261         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
31262         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
31263         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
31264         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
31265         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
31266         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
31267         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
31268         snames.ads, sprint.adb, sprint.ads, stand.adb,
31269         stand.ads, stringt.adb, stringt.ads, style.adb,
31270         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
31271         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
31272         switch-m.ads, switch.adb, switch.ads, system.ads,
31273         table.adb, table.ads, targparm.adb, targparm.ads,
31274         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
31275         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
31276         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
31277         ttypef.ads, ttypes.ads, types.adb, types.ads,
31278         uintp.adb, uintp.ads, uname.adb, uname.ads,
31279         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
31280         usage.adb, usage.ads, validsw.adb, validsw.ads,
31281         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
31282         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
31283         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
31284         formatting and other trivial changes from ACT.
31285
31286 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
31287
31288         * gigi.h, utils2.c (build_constructor):
31289         Rename gnat_build_constructor. Use build_constructor.
31290         * decl.c (gnat_to_gnu_entity)
31291         * trans.c (tree_transform, pos_to_constructor, extract_values)
31292         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
31293         (unchecked_convert)
31294         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
31295         (fill_vms_descriptor):
31296         Update to match.
31297
31298 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
31299
31300         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
31301         * misc.c (gnat_tree_size): New function.
31302         (LANG_HOOKS_TREE_SIZE): Override.
31303
31304 2003-04-03  Jason Merrill  <jason@redhat.com>
31305
31306         * misc.c (gnat_adjust_rli): #if 0.
31307
31308 2003-03-31   Geert Bosch <bosch@gnat.com>
31309
31310         PR ada/10020
31311         * link.c : Fix misspelled "const" keyword
31312
31313 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
31314
31315         PR c++/7086
31316         * utils2.c: Adjust calls to put_var_into_stack.
31317
31318 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
31319
31320         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
31321
31322 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
31323
31324         * misc.c (gnat_init): Update for new prototype.
31325
31326 2003-03-05  Olivier Hainque  <hainque@gnat.com>
31327
31328         ada/9961
31329         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
31330         warning, and fix return type for the IN_RTS && !SJLJ case.
31331
31332 2003-03-04  Tom Tromey  <tromey@redhat.com>
31333
31334         * Make-lang.in (ada.tags): New target.
31335
31336 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
31337
31338         ada/9911
31339         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
31340         wrapper, which name remains constant whatever underlying GCC
31341         scheme.
31342
31343         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
31344         the stable interface needed for a-except.
31345
31346 2003-03-02  Andreas Jaeger  <aj@suse.de>
31347
31348         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31349         gnat_ug_wnt.texi: Regenerate.
31350
31351 2003-03-02  Laurent Guerby <guerby@acm.org>
31352
31353         * Makefile.in (install-gnatlib): Match previous change there
31354         so it works.
31355
31356 2003-02-28  Andreas Schwab  <schwab@suse.de>
31357
31358         * Make-lang.in (install-gnatlib): Change to ada directory before
31359         running make instead of using ada/Makefile directly.
31360
31361 2003-02-18  Ben Elliston  <bje@redhat.com>
31362
31363         Part of PR ada/9406
31364         * gnat_ug.texi (Binder output file): Grammar fix.
31365
31366 2003-02-18  Ben Elliston  <bje@redhat.com>
31367
31368         PR other/7350
31369         * 5qtaprop.adb (Sleep): Fix typo in comment.
31370
31371 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
31372
31373         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
31374         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31375         gnat_ug_wnt.texi: Regenerate.
31376
31377 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
31378
31379         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
31380         be created if necessary.
31381         (ada.install-common): Let $(DESTDIR)$(bindir) be created
31382         if necessary.  Remove erroneous and redundant gnatchop
31383         installation commands.  Test for gnatdll before attempting
31384         to install it.
31385         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
31386         and gnatdll from all plausible locations.
31387
31388 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
31389
31390         * utils2.c (build_unary_op): Don't check flag_volatile.
31391         * gnat_ug.texi: Remove -fvolatile from example.
31392         * gnat_ug_vxw.texi: Likewise.
31393
31394 2003-01-29  Laurent Guerby <guerby@acm.org>
31395
31396         PR ada/8344
31397         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
31398         * Makefile.in: match previous change.
31399         * Make-lang.in: match previous change.
31400
31401 2003-01-29      Joel Sherrill <joel@OARcorp.com>
31402
31403         * 5rosinte.ads: Add SIGXCPU.
31404         * 5rtpopsp.adb: New file.
31405         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
31406         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
31407         specific file 5rtpopsp.adb.
31408         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
31409         is likely needed for all newlib targets.
31410         * init.c: Add RTEMS specific version of __gnat_initialize().
31411
31412 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31413
31414         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
31415
31416 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31417
31418         * init.c (__gnat_error_handler): Make msg const.
31419
31420         * gmem.c (convert_addresses): Move declaration ...
31421         * adaint.h: ... here.
31422         * adaint.c (convert_addresses): Adapt addrs type to match
31423         prototype.
31424
31425         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
31426
31427 2003-01-24  Andreas Schwab  <schwab@suse.de>
31428
31429         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
31430         size_t to avoid warning.
31431
31432 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
31433
31434         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
31435
31436 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
31437
31438         * gnat_rm.texi: Remove RCS version number.
31439
31440         * ada-tree.h (union lang_tree_node): Add chain_next option.
31441
31442 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
31443
31444         * Make-lang.in (ada.install-info, ada.install-common,
31445         ada.uninstall): Prepend $(DESTDIR) to the destination
31446         directory in all (un)installation commands.
31447         * Makefile.in (install-gnatlib, install-rts): Ditto.
31448
31449 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
31450
31451         * gnat_rm.texi, gnat_ug.texi: Use @copying.
31452         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31453         gnat_ug_wnt.texi: Regenerate.
31454
31455 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
31456
31457         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
31458         only.
31459         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
31460         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
31461         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
31462         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
31463         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
31464         $(srcdir)/doc/include/gcc-common.texi.
31465
31466 2002-12-15   Geert Bosch <bosch@gnat.com>
31467
31468         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
31469
31470 2002-12-14   Geert Bosch <bosch@gnat.com>
31471
31472         PR ada/5690
31473         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
31474         case of a body created for a Renaming_As_Body, on which
31475         conformance checks are not performed.
31476
31477 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
31478
31479         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
31480         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
31481         not already included.
31482         * Make-lang.in: Update dependencies.
31483
31484 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
31485         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
31486         solution to buffer overflow bug on GNU/Linux.
31487
31488 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
31489
31490         PR ada/5856
31491         PR ada/6919
31492         * bindgen.adb: Remove all references to Public_Version.
31493         * comperr.adb: Remove all references to Public_Version and
31494         GNATPRO_Version; correct bug reporting instructions.
31495         * comperr.ads: Change to match bug box.
31496         * gnatvsn.ads: Remove all references to Public version and
31497         GNATPRO version.
31498
31499 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
31500
31501         PR ada/6919
31502         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
31503         GNU/Linux.
31504
31505         PR ada/6558
31506         * config-lang.in: Remove diff_excludes.
31507
31508 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
31509
31510         PR ada/8358
31511         * trans.c (gnu_pending_elaboration_lists): New GC root.
31512         (build_unit_elab): Use..
31513
31514 2002-10-30   Geert Bosch <bosch@gnat.com>
31515
31516         PR ada/6558
31517         * misc.c : Include optabs.h
31518
31519         * Make-lang.in (misc.o): Add dependency on optabs.h
31520
31521 2002-10-29   Geert Bosch <bosch@gnat.com>
31522
31523         PR ada/6558
31524         * Make-lang.in (gnatbind): Depend on CONFIG_H
31525
31526 2002-10-29  Geert bosch  <bosch@gnat.com>
31527
31528         PR ada/6558
31529         * misc.c: Unrevert misc.c (1.13)
31530
31531 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
31532
31533         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
31534         maintainership comments.
31535
31536 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
31537
31538         PR ada/5904
31539         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
31540         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
31541         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
31542         7staprop.adb: Correct statements in comments about
31543         maintainership of GNAT.
31544
31545         PR ada/5904
31546         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
31547         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
31548         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
31549         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
31550         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
31551         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
31552         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
31553         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
31554         comments about maintainership of GNAT.
31555
31556         PR ada/6919 (forward port of patch for PR ada/5904)
31557         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
31558         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
31559         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
31560         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
31561         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
31562         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
31563         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
31564         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
31565         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
31566         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
31567         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
31568         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
31569         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
31570         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
31571         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
31572         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
31573         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
31574         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
31575         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
31576         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
31577         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
31578         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
31579         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
31580         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
31581         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
31582         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
31583         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
31584         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
31585         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
31586         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
31587         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
31588         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
31589         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
31590         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
31591         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
31592         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
31593         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
31594         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
31595         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
31596         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
31597         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
31598         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
31599         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
31600         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
31601         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
31602         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
31603         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
31604         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
31605         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
31606         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
31607         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
31608         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
31609         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
31610         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
31611         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
31612         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
31613         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
31614         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
31615         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
31616         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
31617         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
31618         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
31619         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
31620         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
31621         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
31622         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
31623         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
31624         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
31625         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
31626         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
31627         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
31628         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
31629         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
31630         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
31631         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
31632         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
31633         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
31634         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
31635         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
31636         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
31637         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
31638         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
31639         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
31640         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
31641         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
31642         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
31643         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
31644         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
31645         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
31646         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
31647         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
31648         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
31649         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
31650         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
31651         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
31652         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
31653         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
31654         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
31655         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
31656         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
31657         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
31658         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
31659         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
31660         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
31661         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
31662         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
31663         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
31664         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
31665         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
31666         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
31667         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
31668         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
31669         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
31670         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
31671         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
31672         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
31673         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
31674         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
31675         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
31676         par-endh.adb par-labl.adb par-load.adb par-prag.adb
31677         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
31678         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
31679         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
31680         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
31681         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
31682         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
31683         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
31684         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
31685         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
31686         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
31687         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
31688         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
31689         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
31690         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
31691         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
31692         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
31693         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
31694         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
31695         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
31696         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
31697         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
31698         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
31699         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
31700         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
31701         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
31702         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
31703         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
31704         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
31705         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
31706         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
31707         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
31708         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
31709         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
31710         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
31711         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
31712         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
31713         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
31714         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
31715         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
31716         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
31717         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
31718         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
31719         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
31720         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
31721         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
31722         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
31723         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
31724         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
31725         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
31726         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
31727         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
31728         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
31729         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
31730         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
31731         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
31732         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
31733         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
31734         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
31735         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
31736         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
31737         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
31738         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
31739         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
31740         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
31741         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
31742         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
31743         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
31744         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
31745         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
31746         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
31747         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
31748         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
31749         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
31750         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
31751         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
31752         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
31753         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
31754         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
31755         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
31756         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
31757         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
31758         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
31759         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
31760         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
31761         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
31762         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
31763         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
31764         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
31765         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
31766         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
31767         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
31768         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
31769         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
31770         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
31771         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
31772         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
31773         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
31774         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
31775         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
31776         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
31777         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
31778         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
31779         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
31780         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
31781         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
31782         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
31783         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
31784         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
31785         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
31786         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
31787         stringt.ads stringt.h style.adb style.ads stylesw.adb
31788         stylesw.ads switch.adb switch.ads sysdep.c system.ads
31789         table.adb table.ads targparm.adb targparm.ads targtyps.c
31790         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
31791         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
31792         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
31793         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
31794         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
31795         usage.ads utils.c utils2.c validsw.adb validsw.ads
31796         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
31797         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
31798         xtreeprs.adb: Correct statements in comments about maintainership
31799         of GNAT.
31800
31801 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
31802
31803         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
31804         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
31805         * gnatvsn.ads: Gnat_Version_String is now a function.
31806         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
31807         copy the C version_string into a String and return it.
31808         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
31809         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
31810         Remove pragma Ident (Gnat_Version_String).  If this was the
31811         sole use of package Gnatvsn, remove the with statement too.
31812         * gnat1drv.adb: Tweak -gnatv output.
31813
31814 2002-09-17  Richard Henderson  <rth@redhat.com>
31815
31816         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
31817         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
31818         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
31819         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
31820         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
31821         and real_2expN instead of a loop.
31822         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
31823         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
31824
31825 2002-08-25  Andre Leis <a.leis@gmx.net>
31826             David Billinghurst (David.Billinghurst@riotinto.com>
31827
31828         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
31829
31830 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31831
31832         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
31833         Remove $(CONFIG_H) dependency.
31834
31835 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
31836
31837         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
31838
31839 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31840
31841         * adadecode.c (ada_demangle): Use xstrdup in lieu of
31842         xmalloc/strcpy.
31843         * misc.c (gnat_decode_option): Likewise.
31844
31845 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
31846
31847         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
31848         function approach did not work well because of a side effect (the
31849         function call could reallocate the table which was being indexed
31850         using its result). Fixes ada/4851. [RESURRECTED]
31851
31852 2002-07-01  Roger Sayle  <roger@eyesopen.com>
31853
31854         * ada/utils.c (builtin_function): Accept an additional parameter.
31855
31856 2002-06-28  Andreas Jaeger  <aj@suse.de>
31857
31858         PR ada/7144
31859         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
31860         <adi@thur.de>.
31861
31862 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31863
31864         * Makefile.in (SHELL): Set to @SHELL@.
31865
31866 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31867
31868         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
31869         array size calculation.
31870
31871 2002-06-04  Andreas Jaeger  <aj@suse.de>
31872
31873         * Make-lang.in (gnatbind): Readd rule that has been lost in last
31874         patch.
31875
31876 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
31877
31878         Merge from pch-branch:
31879
31880         * config-lang.in (gtfiles): Add ada-tree.h.
31881         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
31882         (SET_TYPE_MODULUS): New.
31883         (SET_TYPE_INDEX): New.
31884         (SET_TYPE_DIGITS_VALUE): New.
31885         (SET_TYPE_RM_SIZE): New.
31886         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
31887         (SET_TYPE_ADA_SIZE): New.
31888         (SET_TYPE_ACTUAL_BOUNDS): New.
31889         (SET_DECL_CONST_CORRESPONDING_VAR): New.
31890         (SET_DECL_ORIGINAL_FIELD): New.
31891         (TREE_LOOP_ID): Correct typo.
31892         * decl.c: Use new macros.
31893         * utils.c: Include debug.h, use new macros.
31894         * utils2.c: Use new macros.
31895
31896         * ada-tree.h: Update all macros for new tree description.
31897         (struct tree_loop_id): New.
31898         (union lang_tree_node): New.
31899         (struct lang_decl): New.
31900         (struct lang_type): New.
31901         * misc.c (gnat_mark_tree): Delete.
31902         (LANG_HOOKS_MARK_TREE): Delete.
31903         * trans.c (tree_transform): No longer any need to cast
31904         for TREE_LOOP_ID.
31905
31906         * utils.c (struct language_function): New dummy structure.
31907
31908         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
31909         (misc.o): Likewise.
31910         (utils.o): Likewise; also gtype-ada.h.
31911         * Make-lang.in (gnat1): Add dependency on s-gtype.
31912         (gnatbind): Add dependency on $(CONFIG_H).
31913         * utils.c: Correct last #include.
31914         (stuct e_stack): Remove unnecessary 'static'.
31915         (mark_e_stack): Remove unused prototype.
31916
31917         * scn-nlit.adb: Remove whitespace after version number to
31918         keep lines under 80 chars.
31919         * snames.adb: Likewise.
31920         * treepr.ads: Likewise.
31921
31922         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
31923         (misc.o): Likewise.
31924         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
31925         * config-lang.in (gtfiles): New.
31926         * decl.c: Use gengtype for roots.
31927         * gigi.h: Use gengtype for roots.
31928         * trans.c: Use gengtype for roots.
31929         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
31930
31931 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
31932
31933         * misc.c (gnat_init): Adjust setting of internal_error_function.
31934
31935 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
31936
31937         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
31938         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31939         gnat_ug_wnt.texi: Regenerate.
31940
31941 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
31942
31943         * 5ntaprop.adb (with System.OS_Primitives): Remove.
31944
31945         * cstreams.c (max_path_len): Move from here ...
31946         * adaint.c (__gnat_max_path_len): ... to here.
31947         * adaint.c (__gnat_max_path_len): Declare.
31948         * g-dirope.adb (Max_Path): Adjust.
31949         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
31950         * i-cstrea.ads (max_path_len): Adjust.
31951         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
31952         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
31953
31954         * Makefile.in, Make-lang.in: Documentation is now built in
31955         Make-lang.in.  Store Info and generated Texinfo files in the
31956         source directory.
31957         * gnat_ug.texi: Remove CVS keywords, correct version number.
31958         Set file name correctly.
31959
31960         * gnat_ug_*.texi: Add.
31961         * .cvsignore: Ignore generated Texinfo files.
31962
31963 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
31964
31965         * ada.h: Add MI guard macro.
31966         (SUBTYPE): Define constants with an anonymous enum, not static
31967         const variables.
31968         (IN): Cast constants to appropriate type before use.
31969
31970 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
31971
31972         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
31973         (experimental)".
31974
31975 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
31976
31977         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
31978         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
31979         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
31980         (ALL_ADA_CFLAGS): Likewise.
31981         (ADA_INCLUDES): Likewise.
31982         Adapt for new working dir.
31983         (GNATBIND): Use Makefile.in version.
31984         (.SUFFIXES): Copy from Makefile.in.
31985         (ada-warn): Define.
31986         (.adb.o, .ads.o): Copy from Makefile.in.
31987         Added $(OUTPUT_OPTION).
31988         (GNAT1_C_OBJS): Moved from Makefile.in.
31989         Prefix with ada subdir.
31990         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
31991         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
31992         Adapt for new working dir.
31993         (EXTRA_GNATBIND_OBJS): Likewise.
31994         (ADA_BACKEND): Moved from Makefile.in.
31995         Renamed to avoid conflict with global BACKEND.
31996         Use that one.
31997         (TARGET_ADA_SRCS): Moved from Makefile.in.
31998         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
31999         Use ADA_BACKEND.
32000         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
32001         (ada_extra_files): Moved from Makefile.in.
32002         Prefix with ada subdir.
32003         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
32004         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
32005         (ada/nmake.ads): Likewise.
32006         (update-sources): Moved from Makefile.in.
32007         Prefix with ada subdir.
32008         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
32009         (ADA_TREE_H): Likewise.
32010         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
32011         (ada/memtrack.o): Likewise.
32012         (ada/adadecode.o): Likewise.
32013         Update dependencies.
32014         (ada/adaint.o): New.
32015         (ada/argv.o): Moved from Makefile.in.
32016         Prefix with ada subdir.
32017         Update dependencies.
32018         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
32019         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
32020         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
32021         Prefix with ada subdir.
32022         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
32023         (GNAT DEPENDENCIES): Regenerate.
32024         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
32025         toplevel Makefile.in.
32026         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
32027         (TARGET_ADA_SRCS): Removed.
32028         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
32029         (GNATBIND_OBJS): Likewise.
32030         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
32031         (BACKEND): Removed.
32032         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
32033         (TREE_H): Likewise.
32034         (ada_extra_files): Likewise.
32035         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
32036         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
32037         (update-sources): Likewise.
32038         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
32039         (ADA_TREE_H): Likewise.
32040         (adadecoce.o): Likewise.
32041         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
32042         (GNAT DEPENDENCIES): Likewise.
32043
32044 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32045
32046         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
32047         * Makefile.in: Likewise.
32048
32049 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
32050
32051         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
32052         Restore $(CONFIG_H) and prefix.o dependencies.
32053         (ada.stage[1-4]): Depend on stage?-start.
32054
32055         * Makefile.in (b_gnatb.c): Depend on interfac.o.
32056
32057 2002-05-02  Jim Wilson  <wilson@redhat.com>
32058
32059         * utils.c (finish_record_type): Change record_size to record_type.
32060
32061 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
32062
32063         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
32064         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
32065         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
32066
32067 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
32068
32069         * misc.c (gnat_parse_file): Update.
32070
32071 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
32072
32073         * misc.c (gnat_init): Don't set lang_attribute_common.
32074
32075 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
32076
32077         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
32078
32079 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
32080
32081         * gnat_ug.texi: New file.
32082
32083         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
32084         instead of gfdl.texi
32085
32086         * xgnatug.adb, ug_words: New files.
32087
32088         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
32089         gnat_rm and gnat-style manuals.
32090
32091 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
32092
32093         * gigi.h (incomplete_type_error): Remove.
32094         * utils.c (incomplete_type_error): Remove.
32095
32096 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
32097
32098         * trans.c (tree_transform): Add has_scope argument to
32099         expand_start_stmt_expr.
32100
32101 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
32102
32103         * gigi.h (truthvalue_conversion): Rename.
32104         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
32105         * trans.c (tree_transform): Update.
32106         * utils2.c (truthvalue_conversion): Rename, update.
32107         (build_binary_op, build_unary_op): Update.
32108
32109 2002-04-04  Laurent Guerby  <guerby@acm.org>
32110
32111         * make.adb: Implement -margs, remove restriction about file name placement.
32112         * makeusg.adb: Documentation update.
32113         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
32114         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
32115
32116 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
32117
32118         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
32119         (builtin_function): Similarly.
32120
32121 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
32122
32123         * decl.c (gnat_to_gnu_entity): Update.
32124         * gigi.h (mark_addressable): Rename.
32125         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
32126         * trans.c (tree_transform): Update.
32127         * utils.c (create_var_decl): Update.
32128         * util2.c (build_binary_op, build_unary_op,
32129         fill_vms_descriptor): Update.
32130         (mark_addressable): Rename, update.
32131
32132 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
32133
32134         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
32135         Rename.
32136         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
32137         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
32138         * trans.c (tree_transform, convert_with_check): Update.
32139         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
32140         Rename.
32141
32142 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
32143
32144         * gigi.h (finish_incomplete_decl): Rename.
32145         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
32146         * utils.c (gnat_init_decl_processing): Don't set hook.
32147         (finish_incomplete_decl): Rename.
32148
32149 2002-03-29  Andreas Schwab  <schwab@suse.de>
32150
32151         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
32152         directory.
32153
32154 2001-03-28  Robert Dewar <dewar@gnat.com>
32155
32156         * checks.ads:
32157         (Remove_Checks): New procedure
32158
32159         * checks.adb:
32160         (Remove_Checks): New procedure
32161
32162         * exp_util.adb:
32163         Use new Duplicate_Subexpr functions
32164         (Duplicate_Subexpr_No_Checks): New procedure
32165         (Duplicate_Subexpr_No_Checks_Orig): New procedure
32166         (Duplicate_Subexpr): Restore original form (checks duplicated)
32167         (Duplicate_Subexpr): Call Remove_Checks
32168
32169         * exp_util.ads:
32170         (Duplicate_Subexpr_No_Checks): New procedure
32171         (Duplicate_Subexpr_No_Checks_Orig): New procedure
32172         Add 2002 to copyright notice
32173
32174         * sem_util.adb: Use new Duplicate_Subexpr functions
32175
32176         * sem_eval.adb:
32177         (Eval_Indexed_Component): This is the place to call
32178         Constant_Array_Ref and to replace the value. We simply merge
32179         the code of this function in here, since it is now no longer
32180         used elsewhere. This fixes the problem of the back end not
32181         realizing we were clever enough to see that this was
32182         constant.
32183         (Expr_Val): Remove call to Constant_Array_Ref
32184         (Expr_Rep_Val): Remove call to Constant_Array_Ref
32185         Minor reformatting
32186         (Constant_Array_Ref): Deal with string literals (patch
32187         suggested by Zack Weinberg on the gcc list)
32188
32189 2001-03-28  Ed Schonberg <schonber@gnat.com>
32190
32191         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
32192         Duplicate_Subexpr_Move_Checks.
32193
32194         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
32195         Duplicate_Subexpr_Move_Checks.
32196
32197         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
32198         value of array exists before retrieving it (it may a private
32199         protected component in a function).
32200
32201 2002-03-28   Geert Bosch <bosch@gnat.com>
32202
32203         * prj-pp.adb : New file.
32204
32205         * prj-pp.ads : New file.
32206
32207 2002-03-28  Andreas Jaeger  <aj@suse.de>
32208
32209         * Makefile.in (stamp-sdefault): Fix path for Makefile.
32210
32211 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
32212
32213         * misc.c (gnat_expand_expr): Move prototype.
32214
32215 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
32216
32217         * misc.c (insert_default_attributes): Remove.
32218
32219 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
32220
32221         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
32222         (gnat_init): Don't set hook.
32223         (gnat_expand_expr): Fix prototype.
32224
32225 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
32226
32227         * misc.c (ggc_p): Remove.
32228
32229 2002-03-27  Geert Bosch  <bosch@gnat.com>
32230
32231         * prj-makr.ads, prj-makr.adb : New files.
32232
32233 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
32234
32235         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
32236         (lang_mark_tree): Make static, rename.
32237
32238 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
32239
32240         * misc.c (maybe_build_cleanup): Remove.
32241
32242 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
32243
32244         * gigi.h (yyparse): Remove.
32245
32246 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
32247
32248         * gnat_rm.texi: Sync with ACT version.
32249           (From Ben Brosgol <brosgol@gnat.com>)
32250
32251 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
32252
32253         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
32254         (gnat_init): Remove old hook.
32255
32256 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
32257
32258         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
32259         (yyparse): Rename gnat_parse_file.
32260
32261 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
32262
32263         Delete all lines containing "$Revision:".
32264         * xeinfo.adb: Don't look for revision numbers.
32265         * xnmake.adb: Likewise.
32266         * xsinfo.adb: Likewise.
32267         * xsnames.adb: Likewise.
32268         * xtreeprs.adb: Likewise.
32269
32270 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32271
32272         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
32273         gnat_tree_code_name): Delete.
32274         (tree_code_type, tree_code_length, tree_code_name): Define.
32275         (gnat_init): Don't try to copy into the various tree_code
32276         arrays.
32277
32278 2002-03-11  Richard Henderson  <rth@redhat.com>
32279
32280         * Makefile.in (.NOTPARALLEL): Add fake tag.
32281
32282 2002-03-07  Geert Bosch  <bosch@gnat.com>
32283
32284         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
32285         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
32286         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
32287         switch-m.adb, switch-m.ads : New files.
32288
32289 2002-03-07  Geert Bosch  <bosch@gnat.com>
32290
32291         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
32292         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
32293         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
32294         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
32295         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
32296         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
32297         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
32298         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
32299         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
32300         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
32301         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
32302         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
32303         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
32304         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
32305         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
32306         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
32307         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
32308         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
32309         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
32310         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
32311         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
32312         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
32313         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
32314         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
32315         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
32316         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
32317         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
32318         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
32319         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
32320         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
32321         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
32322         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
32323         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
32324         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
32325         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
32326         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
32327         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
32328         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
32329         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
32330         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
32331         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
32332         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
32333         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
32334         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
32335         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
32336         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
32337         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
32338         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
32339         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
32340         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
32341         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
32342         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
32343         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
32344         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
32345         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
32346         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
32347         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
32348         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
32349         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
32350         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
32351         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
32352         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
32353         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
32354         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
32355         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
32356         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
32357         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
32358         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
32359         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
32360         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
32361         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
32362         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
32363         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
32364         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
32365         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
32366         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
32367         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
32368         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
32369         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
32370         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
32371         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
32372         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
32373         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
32374         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
32375         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
32376         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
32377         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
32378         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
32379         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
32380         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
32381         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
32382         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
32383         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
32384         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
32385         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
32386         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
32387         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
32388
32389         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
32390         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
32391         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
32392         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
32393
32394         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
32395         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
32396
32397         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
32398         to mdll-fil.ad[bs] and mdll-util.ad[bs]
32399
32400         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
32401         from mdllfile.ad[bs] and mdlltool.ad[bs]
32402
32403 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
32404
32405         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
32406         lieu of explicit sizeof/sizeof.
32407
32408 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
32409
32410         * misc.c (copy_lang_decl): Remove.
32411
32412 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
32413
32414         * misc.c: Delete traditional-mode-related code copied from the
32415         C front end but not used, or used only to permit the compiler
32416         to link.
32417
32418 2002-02-07  Richard Henderson  <rth@redhat.com>
32419
32420         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
32421         * adaint.h (__gnat_to_gm_time): Update prototype.
32422
32423 2002-01-30  Richard Henderson  <rth@redhat.com>
32424
32425         * trans.c (tree_transform) [N_Loop_Statement]: Use
32426         expand_exit_loop_top_cond.
32427
32428 2001-12-23  Richard Henderson  <rth@redhat.com>
32429
32430         * utils.c (end_subprog_body): Push GC context around
32431         rest_of_compilation for nested functions.
32432
32433 2001-12-23  Richard Henderson  <rth@redhat.com>
32434
32435         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
32436
32437 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
32438
32439         * gnat-style.texi (Declarations and Types): Remove ancient style
32440         rule which was mandated by code generation issues.
32441
32442         * gnat-style.texi (header): Add @dircategory, @direntry.
32443         (title page): Remove date.
32444         (general) Add @./@: where approriate, and two spaces after the
32445         full stop at the end of a sentence.  Use @samp markup when
32446         referring concrete lexical entities (keywords, attribute names
32447         etc.), and @syntax for ARM grammar elements. Use @r for English
32448         text in comments.  Use @emph for emphasis.  Change "if-statements"
32449         etc. to "if statements" (without @samp). Break long lines.  Make
32450         casing of section names consistent.
32451         (Identifiers): Use @samp markup for variable names.
32452         (Comments): Use @samp markup for comment characters. Line-end
32453         comments may follow any Ada code, not just statements.  Fix
32454         misspelling of "Integer" as "integer".
32455         (Loop statements): Do not use variable name "I", use "J".
32456         (Subprogram Declarations): Document alignment.
32457         (Subprogram Bodies, Block statements): Document empty line before
32458         "begin".
32459
32460 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
32461
32462         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
32463         function approach did not work well because of a side effect (the
32464         function call could reallocate the table which was being indexed
32465         using its result). Fixes ada/4851.
32466
32467 2001-12-19  Robert Dewar <dewar@gnat.com>
32468
32469         * bindgen.adb: Minor reformatting
32470
32471         * cstand.adb: Minor reformatting
32472
32473         * fmap.adb: Minor reformatting
32474         Change name from Add for Add_To_File_Map (Add is much too generic)
32475         Change Path_Name_Of to Mapped_Path_Name
32476         Change File_Name_Of to Mapped_File_Name
32477         Fix copyright dates in header
32478
32479         * fmap.ads:
32480         Change name from Add for Add_To_File_Map (Add is much too generic)
32481         Change Path_Name_Of to Mapped_Path_Name
32482         Change File_Name_Of to Mapped_File_Name
32483         Fix copyright dates in header
32484
32485         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
32486         Add use clause for Fmap.
32487
32488         * make.adb: Minor reformatting
32489
32490         * osint.adb: Minor reformatting.  Change of names in Fmap.
32491         Add use clause for Fmap.
32492
32493         * prj-env.adb: Minor reformatting
32494
32495         * prj-env.ads: Minor reformatting
32496
32497         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
32498         error found (there were odd exceptions to this general rule in
32499         -gnatec/-gnatem processing)
32500
32501 2001-12-19  Olivier Hainque <hainque@gnat.com>
32502
32503         * raise.c (__gnat_eh_personality): Exception handling personality
32504         routine for Ada.  Still in rough state, inspired from the C++ version
32505         and still containing a bunch of debugging artifacts.
32506         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
32507         inspired from the C++ library.
32508
32509         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
32510         exception handling integration.
32511
32512 2001-12-19  Arnaud Charlet <charlet@gnat.com>
32513
32514         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
32515         (HIE_SOURCES): Add s-secsta.ad{s,b}.
32516         (HIE_OBJS): Add s-fat*.o
32517         (RAVEN_SOURCES): Remove files that are no longer required. Add
32518         interrupt handling files.
32519         (RAVEN_MOD): Removed, no longer needed.
32520
32521 2001-12-19  Robert Dewar <dewar@gnat.com>
32522
32523         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
32524         Add 2001 to copyright date
32525
32526         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
32527         need to force universal inlining for these cases.
32528
32529 2001-12-19  Arnaud Charlet <charlet@gnat.com>
32530
32531         * s-taprob.adb: Minor clean ups so that this unit can be used in
32532         Ravenscar HI.
32533
32534         * exp_ch7.adb: Allow use of secondary stack in HI mode.
32535         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
32536
32537 2001-12-19  Vincent Celier <celier@gnat.com>
32538
32539         * prj-tree.ads (Project_Node_Record): Add comments for components
32540         Pkg_Id and Case_Insensitive.
32541
32542 2001-12-19  Pascal Obry <obry@gnat.com>
32543
32544         * g-socket.adb: Minor reformatting. Found while reading code.
32545
32546 2001-12-19  Robert Dewar <dewar@gnat.com>
32547
32548         * prj-tree.ads: Minor reformatting
32549
32550 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
32551
32552         * config-lang.in (diff_excludes): Remove.
32553
32554 2001-12-17  Ed Schonberg <schonber@gnat.com>
32555
32556         * sem_res.adb (Resolve_Selected_Component): do not generate a
32557         discriminant check if the selected component is a component of
32558         the argument of an initialization procedure.
32559
32560         * trans.c (tree_transform, case of arithmetic operators): If result
32561         type is private, the gnu_type is the base type of the full view,
32562         given that the full view itself may be a subtype.
32563
32564 2001-12-17  Robert Dewar <dewar@gnat.com>
32565
32566         * sem_res.adb: Minor reformatting
32567
32568         * trans.c (tree_transform, case N_Real_Literal): Add missing third
32569         parameter in call to Machine (unknown horrible effects from this
32570         omission).
32571
32572         * urealp.h: Add definition of Round_Even for call to Machine
32573         Add third parameter for Machine
32574
32575 2001-12-17  Ed Schonberg <schonber@gnat.com>
32576
32577         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
32578         predefined units in No_Run_Time mode.
32579
32580 2001-12-17  Richard Kenner <kenner@gnat.com>
32581
32582         * misc.c (insn-codes.h): Now include.
32583
32584 2001-12-17  Olivier Hainque <hainque@gnat.com>
32585
32586         * a-except.adb: Preparation work for future integration of the GCC 3
32587         exception handling mechanism
32588         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
32589         to factorize previous code sequences and make them externally callable,
32590         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
32591         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
32592         Use the new notification routines.
32593
32594 2001-12-17  Emmanuel Briot <briot@gnat.com>
32595
32596         * prj-tree.ads (First_Choice_Of): Document the when others case
32597
32598 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32599
32600         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
32601         HI-E mode, in order to support Ravenscar profile properly.
32602
32603         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
32604         mode on 32 bits targets.
32605
32606 2001-12-17  Vincent Celier <celier@gnat.com>
32607
32608         * fmap.adb: Initial version.
32609
32610         * fmap.ads: Initial version.
32611
32612         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
32613         If search is successfully done, add to mapping.
32614
32615         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
32616
32617         * make.adb:
32618         (Gnatmake): Add new local variable Mapping_File_Name.
32619          Create mapping file when using project file(s).
32620          Delete mapping file before exiting.
32621
32622         * opt.ads (Mapping_File_Name): New variable
32623
32624         * osint.adb (Find_File): Use path name found in mapping, if any.
32625
32626         * prj-env.adb (Create_Mapping_File): New procedure
32627
32628         * prj-env.ads (Create_Mapping_File): New procedure.
32629
32630         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
32631         (Mapping_File)
32632
32633         * usage.adb: Add entry for new switch -gnatem.
32634
32635         * Makefile.in: Add dependencies for fmap.o.
32636
32637 2001-12-17  Ed Schonberg <schonber@gnat.com>
32638
32639         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
32640         is a package instantiation rewritten as a package body.
32641         (Install_Withed_Unit): Undo previous change, now redundant.
32642
32643 2001-12-17  Gary Dismukes <dismukes@gnat.com>
32644
32645         * layout.adb:
32646         (Compute_Length): Move conversion to Unsigned to callers.
32647         (Get_Max_Size): Convert Len expression to Unsigned after calls to
32648         Compute_Length and Determine_Range.
32649         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
32650         Compute_Length and Determine_Range.
32651         Above changes fix problem with length computation for supernull arrays
32652         where Max (Len, 0) wasn't getting applied due to the Unsigned
32653         conversion used by Compute_Length.
32654
32655 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32656
32657         * rtsfind.ads:
32658         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
32659          System.Secondary_Stack.
32660         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
32661          in HI-E mode.
32662         Remove unused entity RE_Exception_Data.
32663
32664         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
32665
32666         * rident.ads (No_Secondary_Stack): New restriction.
32667
32668 2001-12-17  Joel Brobecker <brobecke@gnat.com>
32669
32670         * gnat_rm.texi: Fix minor typos. Found while reading the section
32671         regarding "Bit_Order Clauses" that was sent to a customer.
32672         Very interesting documentation!
32673
32674 2001-12-17  Robert Dewar <dewar@gnat.com>
32675
32676         * sem_case.adb (Choice_Image): Avoid creating improper character
32677         literal names by using the routine Set_Character_Literal_Name. This
32678         fixes bombs in certain error message cases.
32679
32680 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32681
32682         * a-reatim.adb: Minor reformatting.
32683
32684 2001-12-17  Ed Schonberg <schonber@gnat.com>
32685
32686         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
32687         case where the formal is an extension of another formal in the current
32688         unit or in a parent generic unit.
32689
32690 2001-12-17  Arnaud Charlet <charlet@gnat.com>
32691
32692         * s-tposen.adb: Update comments.  Minor reformatting.
32693         Minor code clean up.
32694
32695         * s-tarest.adb: Update comments.  Minor code reorganization.
32696
32697 2001-12-17  Gary Dismukes <dismukes@gnat.com>
32698
32699         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
32700         when Java_VM.
32701
32702 2001-12-17  Robert Dewar <dewar@gnat.com>
32703
32704         * exp_attr.adb: Minor reformatting
32705
32706 2001-12-17  Ed Schonberg <schonber@gnat.com>
32707
32708         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
32709         derivations nested within a child unit: verify that the parent
32710         type is declared in an outer scope.
32711
32712 2001-12-17  Robert Dewar <dewar@gnat.com>
32713
32714         * sem_ch12.adb: Minor reformatting
32715
32716 2001-12-17  Ed Schonberg <schonber@gnat.com>
32717
32718         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
32719         warning if current unit is a predefined one, from which bodies may
32720         have been deleted.
32721
32722 2001-12-17  Robert Dewar <dewar@gnat.com>
32723
32724         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
32725         Fix header format. Add 2001 to copyright date.
32726
32727         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
32728         which caused CE during compilation if checks were enabled.
32729
32730 2001-12-17  Vincent Celier <celier@gnat.com>
32731
32732         * make.adb:
32733         (Switches_Of): New function
32734         (Test_If_Relative_Path): New procedure
32735         (Add_Switches): Use new function Switches_Of
32736         (Collect_Arguments_And_Compile): Use new function Switches_Of.
32737         When using a project file, test if there are any relative
32738         search path. Fail if there are any.
32739         (Gnatmake): Only add switches for the primary directory when not using
32740         a project file. When using a project file, change directory to the
32741         object directory of the main project file. When using a project file,
32742         test if there are any relative search path. Fail if there are any.
32743         When using a project file, fail if specified executable is relative
32744         path with directory information, and prepend executable, if not
32745         specified as an absolute path, with the exec directory.  Make sure
32746         that only one -o switch is transmitted to the linker.
32747
32748         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
32749
32750         * prj-nmsc.adb:
32751         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
32752         when using a non standard naming scheme.
32753         (Check_Ada_Naming_Scheme): Make sure that error messages
32754         do not raise exceptions.
32755         (Is_Illegal_Append): Return True if there is no dot in the suffix.
32756         (Language_Independent_Check): Check the exec directory.
32757
32758         * prj.adb (Project_Empty): Add new component Exec_Directory
32759
32760         * prj.ads:
32761         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
32762         (Project_Data): Add component Exec_Directory
32763
32764         * snames.adb: Updated to match snames.ads revision 1.215
32765
32766         * snames.ads: Added Exec_Dir
32767
32768 2001-12-17  Robert Dewar <dewar@gnat.com>
32769
32770         * make.adb: Minor reformatting
32771
32772         * prj-nmsc.adb: Minor reformatting
32773
32774         * snames.adb: Updated to match snames.ads
32775
32776         * snames.ads: Alphebetize entries for project file
32777
32778 2001-12-17  Ed Schonberg <schonber@gnat.com>
32779
32780         * trans.c (process_freeze_entity): Do nothing if the entity is a
32781         subprogram that was already elaborated.
32782
32783 2001-12-17  Richard Kenner <kenner@gnat.com>
32784
32785         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
32786         and Esize if object is referenced via pointer.
32787
32788 2001-12-17  Ed Schonberg <schonber@gnat.com>
32789
32790         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
32791         is discrete before analyzing choices.
32792
32793 2001-12-17  Joel Brobecker <brobecke@gnat.com>
32794
32795         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
32796         containing the name of the Ada Main Program. This string is mainly
32797         intended for the debugger.
32798         (Gen_Output_File_C): Do the equivalent change when generating a C file.
32799
32800 2001-12-17  Robert Dewar <dewar@gnat.com>
32801
32802         * ali.adb: Set new Dummy_Entry field in dependency entry
32803
32804         * ali.ads: Add Dummy_Entry field to source dependency table
32805
32806         * bcheck.adb (Check_Consistency): Ignore dummy D lines
32807
32808         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
32809
32810         * lib-writ.ads: Document dummy D lines for missing files.
32811
32812         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
32813
32814 2001-12-17  Robert Dewar <dewar@gnat.com>
32815
32816         * ali.adb: Type reference does not reset current file.
32817
32818         * ali.adb: Recognize and scan renaming reference
32819
32820         * ali.ads: Add spec for storing renaming references.
32821
32822         * lib-xref.ads: Add documentation for handling of renaming references
32823
32824         * lib-xref.adb: Implement output of renaming reference.
32825
32826         * checks.adb:
32827         (Determine_Range): Document local variables
32828         (Determine_Range): Make sure Hbound is initialized. It looks as though
32829          there could be a real problem here with an uninitialized reference
32830          to Hbound, but no actual example of failure has been found.
32831
32832 2001-12-17  Laurent Pautet <pautet@gnat.com>
32833
32834         * g-socket.ads:
32835         Fix comment of Shutdown_Socket and Close_Socket. These functions
32836         should not fail silently because if they are called twice, this
32837         probably means that there is a race condition in the user program.
32838         Anyway, this behaviour is consistent with the rest of this unit.
32839         When an error occurs, an exception is raised with the error message
32840         as exception message.
32841
32842 2001-12-17  Robert Dewar <dewar@gnat.com>
32843
32844         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
32845         that it happens before modification of Sloc values for -gnatD.
32846
32847         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
32848         so that it happens before modification of Sloc values for -gnatD.
32849
32850         * switch.adb: Minor reformatting
32851
32852 2001-12-15  Richard Henderson  <rth@redhat.com>
32853
32854         * sem_ch7.adb: Wrap comment.
32855
32856 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
32857
32858         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
32859         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
32860         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
32861         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
32862         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
32863         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
32864         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
32865         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
32866         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
32867         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
32868         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
32869         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
32870         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
32871         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
32872         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
32873         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
32874         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
32875         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
32876         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
32877         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
32878         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
32879         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
32880         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
32881         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
32882         spelling errors.
32883
32884 2001-12-14  Vincent Celier <celier@gnat.com>
32885
32886         * osint.adb(Create_Debug_File): When an object file is specified,
32887         put the .dg file in the same directory as the object file.
32888
32889 2001-12-14  Robert Dewar <dewar@gnat.com>
32890
32891         * osint.adb: Minor reformatting
32892
32893         * lib-xref.adb (Output_Instantiation): New procedure to generate
32894         instantiation references.
32895
32896         * lib-xref.ads: Add documentation of handling of generic references.
32897
32898         * ali.adb (Read_Instantiation_Ref): New procedure to read
32899         instantiation references
32900
32901         * ali.ads: Add spec for storing instantiation references
32902
32903         * bindusg.adb: Minor reformatting
32904
32905         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
32906
32907         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
32908
32909         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
32910
32911         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
32912
32913         * csets.ads:
32914         Fix header format
32915         Add 2001 to copyright date
32916         Add entry for Latin-5 (Cyrillic ISO-8859-5)
32917
32918 2001-12-14  Matt Gingell <gingell@gnat.com>
32919
32920         * adaint.c: mktemp is a macro on Lynx and can not be used as an
32921         expression.
32922
32923 2001-12-14  Richard Kenner <kenner@gnat.com>
32924
32925         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
32926         if operand is CONSTRUCTOR.
32927
32928 2001-12-14  Ed Schonberg <schonber@gnat.com>
32929
32930         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
32931         before emiting check on right-hand side, so that exception information
32932         is correct.
32933
32934 2001-12-14  Richard Kenner <kenner@gnat.com>
32935
32936         * utils.c (create_var_decl): Throw away initializing expression
32937         if just annotating types and non-constant.
32938
32939 2001-12-14  Vincent Celier <celier@gnat.com>
32940
32941         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
32942         Default_Ada_...
32943
32944         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
32945         Remove functions.
32946         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
32947
32948         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
32949         Remove functions.
32950         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
32951
32952 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
32953
32954         * ChangeLog: Remove piece of diff output.
32955
32956 2001-12-14  Geert Bosch <bosch@gnat.com>
32957
32958         * config-lang.in: Update copyright notice
32959
32960         * layout.adb: Remove commented out code.
32961
32962         * mdllfile.ads: Update copyright notice. Fix header format.
32963
32964         * sem_case.ads: Likewise.
32965
32966         * sem_ch3.adb: Minor reformatting.
32967
32968 2001-12-12  Geert Bosch <bosch@gnat.com>
32969
32970         * freeze.ads: Update copyright date.
32971
32972         * g-comlin.ads: Minor reformatting.
32973
32974         * gnat-style.texi: Fix typo.
32975
32976 2001-12-12  Geert Bosch <bosch@gnat.com>
32977
32978         *  einfo.h: Regenerate.
32979
32980 2001-12-12  Ed Schonberg <schonber@gnat.com>
32981
32982         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
32983         on known node types, rather than untyped fields. Further cleanups.
32984
32985 2001-12-12  Robert Dewar <dewar@gnat.com>
32986
32987         * sem_ch12.adb:
32988         (Save_Entity_Descendant): Minor comment update.
32989         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
32990          of an N_Attribute_Reference node. As per note below, this does not
32991         eliminate need for Associated_Node in attribute ref nodes.
32992         (Associated_Node): Documentation explicitly mentions attribute
32993         reference nodes, since this field is used in such nodes.
32994
32995         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
32996
32997 2001-12-12  Robert Dewar <dewar@gnat.com>
32998
32999         * s-stalib.adb: Add more comments on with statements being needed
33000
33001         * par-ch12.adb: Minor reformatting
33002
33003         * prj-dect.ads: Fix copyright header
33004
33005         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
33006         inputs fit in 32 bits, but the result still overflows.
33007
33008         * s-fatgen.ads: Minor comment improvement
33009
33010 2001-12-12  Ed Schonberg <schonber@gnat.com>
33011
33012         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
33013         formal derived type, look for an inherited component from the full
33014         view of the parent, if any.
33015
33016 2001-12-12  Robert Dewar <dewar@gnat.com>
33017
33018         * checks.ads (Apply_Alignment_Check): New procedure.
33019
33020         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
33021         ensure that the alignment of objects with address clauses is
33022         appropriate, and raise PE if not.
33023
33024         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
33025         Exp_Pakd.Known_Aligned_Enough
33026
33027         * mdllfile.ads: Minor reformatting
33028
33029         * mlib-fil.ads: Minor reformatting
33030
33031 2001-12-12  Ed Schonberg <schonber@gnat.com>
33032
33033         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
33034         fix to any component reference if enclosing record has non-standard
33035         representation.
33036
33037 2001-12-12  Vincent Celier <celier@gnat.com>
33038
33039         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
33040         Iteration
33041
33042 2001-12-12  Ed Schonberg <schonber@gnat.com>
33043
33044         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
33045         sem_attr.
33046
33047 2001-12-12  Robert Dewar <dewar@gnat.com>
33048
33049         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
33050
33051 2001-12-12  Emmanuel Briot <briot@gnat.com>
33052
33053         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
33054         and it adds dependencies to system.io.
33055
33056 2001-12-12  Pascal Obry <obry@gnat.com>
33057
33058         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
33059         variable name.
33060
33061 2001-12-11  Ed Schonberg <schonber@gnat.com>
33062
33063         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
33064         that is the parent of other generics, the instance body replaces the
33065         instance node.  Retrieve the instance of the spec, which is the one
33066         that is visible in clients and within the body.
33067
33068 2001-12-11  Vincent Celier <celier@gnat.com>
33069
33070         * gnatmain.adb: Initial version.
33071
33072         * gnatmain.ads: Initial version.
33073
33074         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
33075
33076         * snames.adb: Updated to match snames.ads.
33077
33078         * snames.ads: Added Gnatstub.
33079
33080 2001-12-11  Vincent Celier <celier@gnat.com>
33081
33082         * prj-attr.adb (Initialization_Data): Change name from
33083         Initialisation_Data.
33084
33085 2001-12-11  Emmanuel Briot <briot@gnat.com>
33086
33087         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
33088         + and * applied to backslashed expressions like \r.
33089
33090 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
33091
33092         * g-os_lib.ads: String_List type added, Argument_List type is now
33093         subtype of String_List.
33094
33095 2001-12-11  Robert Dewar <dewar@gnat.com>
33096
33097         * g-os_lib.ads: Change copyright to FSF
33098         Add comments for String_List type
33099
33100 2001-12-11  Vincent Celier <celier@gnat.com>
33101
33102         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
33103         string to the buffer).
33104
33105 2001-12-11  Ed Schonberg <schonber@gnat.com>
33106
33107         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
33108         sem_attr.
33109
33110         * sem_attr.adb: Simplify previous fix for Address.
33111         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
33112         to avoid anomalies where the bound of the type appears to raise
33113         constraint error.
33114
33115 2001-12-11  Robert Dewar <dewar@gnat.com>
33116
33117         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
33118         handled.
33119
33120 2001-12-11  Ed Schonberg <schonber@gnat.com>
33121
33122         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
33123         renamed unit before checking for recursive instantiations.
33124
33125 2001-12-11  Emmanuel Briot <briot@gnat.com>
33126
33127         * prj.ads: Add comments for some of the fields.
33128
33129 2001-12-11  Robert Dewar <dewar@gnat.com>
33130
33131         * lib-xref.adb (Output_Refs): Don't output type references outside
33132         the main unit if they are not otherwise referenced.
33133
33134 2001-12-11  Ed Schonberg <schonber@gnat.com>
33135
33136         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
33137         code and diagnose additional illegal uses
33138
33139         * sem_util.adb (Is_Object_Reference): An indexed component is an
33140         object only if the prefix is.
33141
33142 2001-12-11  Vincent Celier <celier@gnat.com>
33143
33144         * g-diopit.adb: Initial version.
33145
33146         * g-diopit.ads: Initial version.
33147
33148         * g-dirope.adb:
33149         (Expand_Path): Avoid use of Unbounded_String
33150         (Find, Wildcard_Iterator): Moved to child package Iteration
33151
33152         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
33153
33154 2001-12-11  Robert Dewar <dewar@gnat.com>
33155
33156         * sem_attr.adb: Minor reformatting
33157
33158 2001-12-11  Ed Schonberg <schonber@gnat.com>
33159
33160         * sem_ch3.adb: Clarify some ???.
33161
33162 2001-12-11  Robert Dewar <dewar@gnat.com>
33163
33164         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
33165         Exp_Pakd.Known_Aligned_Enough
33166
33167         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
33168         version is moved to Exp_Ch13.
33169
33170 2001-12-11  Robert Dewar <dewar@gnat.com>
33171
33172         * einfo.ads: Minor reformatting
33173
33174         * exp_ch5.adb: Add comment for previous.change
33175
33176         * ali.adb: New interface for extended typeref stuff.
33177
33178         * ali.ads: New interface for typeref stuff.
33179
33180         * checks.adb (Apply_Alignment_Check): New procedure.
33181
33182         * debug.adb: Add -gnatdM for modified ALI output
33183
33184         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
33185
33186         * lib-xref.adb: Extend generation of <..> notation to cover
33187         subtype/object types. Note that this is a complete rewrite,
33188         getting rid of the very nasty quadratic algorithm previously
33189         used for derived type output.
33190
33191         * lib-xref.ads: Extend description of <..> notation to cover
33192         subtype/object types. Uses {..} for these other cases.
33193         Also use (..) for pointer types.
33194
33195         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
33196
33197         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
33198         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
33199
33200 2001-12-11  Vincent Celier <celier@gnat.com>
33201
33202         * gnatcmd.adb:
33203         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
33204         Changed /BIND_ONLY to /ACTIONS=BIND
33205         Changed /LINK_ONLY to /ACTIONS=LINK
33206
33207 2001-12-11  Ed Schonberg  <schonber@gnat.com>
33208
33209         * sem_ch8.adb (Find_Selected_Component): improved search for a
33210         candidate package in case of error.
33211
33212         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
33213         chain back on scope stack before reinstalling use clauses.
33214
33215         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
33216         is enabled, do not kill the code for the condition, to preserve
33217         warning.
33218
33219 2001-12-11  Robert Dewar <dewar@gnat.com>
33220
33221         * checks.adb (Insert_Valid_Check): Apply validity check to expression
33222         of conversion, not to result of conversion.
33223
33224 2001-12-11  Ed Schonberg <schonber@gnat.com>
33225
33226         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
33227         before freezing parent. If the declarations are mutually recursive,
33228         an access to the current record type may be frozen before the
33229         derivation is complete.
33230
33231 2001-12-05  Vincent Celier <celier@gnat.com>
33232
33233         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
33234         -c /COMPILE_ONLY, -l /LINK_ONLY
33235
33236         * opt.ads:
33237         (Bind_Only): New Flag
33238         (Link_Only): New flag
33239
33240         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
33241         and -l (Link_Only)
33242
33243         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
33244
33245         * make.adb:
33246         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
33247         (Gnatmake): Set the step flags. Only perform a step if the
33248         corresponding step flag is True.
33249         (Scan_Make_Arg): Reset the bind and link step flags when -u
33250         or -gnatc has been specified.
33251
33252 2001-12-05  Ed Schonberg <schonber@gnat.com>
33253
33254         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
33255         get bounds from right operand.
33256
33257         * sem_eval.adb: Minor reformatting
33258
33259         * exp_util.adb (Make_Literal_Range): use bound of literal rather
33260         than Index'First, its lower bound may be different from 1.
33261
33262         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
33263         and C48009J
33264
33265 2001-12-05  Vincent Celier <celier@gnat.com>
33266
33267         * prj-nmsc.adb Minor reformatting
33268
33269         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
33270         set and libraries are not supported.
33271
33272 2001-12-05  Ed Schonberg <schonber@gnat.com>
33273
33274         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
33275         private view explicitly, so the back-end can treat as a global
33276         when appropriate.
33277
33278 2001-12-05  Ed Schonberg <schonber@gnat.com>
33279
33280         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
33281          unit, always replace instance node with new body, for ASIS use.
33282
33283 2001-12-05  Vincent Celier <celier@gnat.com>
33284
33285         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
33286         libraries are not supported and both attributes Library_Name and
33287         Library_Dir are specified.
33288
33289         * prj-proc.adb (Expression): Set location of Result to location of
33290         first term.
33291
33292         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
33293         (prj-nmsc is now importing MLib.Tgt)
33294
33295         * prj-proc.adb: Put the change indicated above that was forgotten.
33296
33297 2001-12-05  Robert Dewar <dewar@gnat.com>
33298
33299         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
33300
33301 2001-12-05  Ed Schonberg <schonber@gnat.com>
33302
33303         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
33304         constraint, introduce explicit subtype declaration and derive from it.
33305
33306         * sem_ch3.adb: Minor reformatting
33307
33308 2001-12-05  Robert Dewar <dewar@gnat.com>
33309
33310         * checks.adb (Determine_Range): Increase cache size for checks.
33311         Minor reformatting
33312
33313         * exp_ch6.adb: Minor reformatting
33314         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
33315         a parameter whose root type is System.Address, since treating such
33316         subprograms as pure in the code generator is almost surely a mistake
33317         that will lead to unexpected results.
33318
33319         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
33320         change handling of conversions.
33321
33322         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
33323
33324 2001-12-05  Ed Schonberg <schonber@gnat.com>
33325
33326         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
33327         aggregate with static wrong size, attach generated Raise node to
33328         declaration.
33329
33330 2001-12-05  Robert Dewar <dewar@gnat.com>
33331
33332         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
33333         Fixes compilation abandoned bomb in B24009B.
33334
33335 2001-12-05  Ed Schonberg <schonber@gnat.com>
33336
33337         * sem_ch12.adb:
33338         Document use of Associated_Node on Selected_Components.
33339         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
33340         to clarify use of untyped descendant fields.
33341
33342 2001-12-05  Robert Dewar <dewar@gnat.com>
33343
33344         * prj-dect.ads: Add ??? comment
33345         Add 2001 to copyright notice (was not done in after all)
33346
33347         * prj-part.adb: Minor reformatting. Reword one awkward error message.
33348
33349         * prj.ads: Minor reformatting throughout, and add some ??? comments
33350
33351         * snames.ads: Minor reformatting
33352
33353 2001-12-05  Geert Bosch <bosch@gnat.com>
33354
33355         * snames.adb: Autoupdate
33356
33357 2001-12-05  Vincent Celier <celier@gnat.com>
33358
33359         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
33360
33361         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
33362
33363         * prj-env.adb: Minor comment changes (modifying -> extends).
33364
33365         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
33366
33367         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
33368         Tok_Extends.
33369
33370         * prj.adb (Initialize): Change Modifying to Extends.
33371
33372         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
33373
33374         * prj.ads: Minor comment change (Modifying -> extending).
33375
33376         * snames.ads: Change modifying to extends.
33377
33378 2001-12-05  Robert Dewar <dewar@gnat.com>
33379
33380         * sem_warn.adb: Remove stuff for conditionals, we are not going to
33381         do this after all.
33382
33383         * sem_warn.ads: Remove stuff for conditionals, we are not going to
33384         do this after all.  Add 2001 to copyright notice
33385
33386 2001-12-04  Geert Bosch <bosch@gnat.com>
33387
33388         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
33389
33390 2001-12-04  Robert Dewar <dewar@gnat.com>
33391
33392         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
33393         location if we already have errors. Stops some cases of cascaded
33394         errors.
33395
33396         * errout.adb: Improve comment.
33397
33398 2001-12-04  Robert Dewar <dewar@gnat.com>
33399
33400         * sem_ch12.adb:
33401         (Analyze_Formal_Type_Definition): Defend against Error.
33402         (Analyze_Formal_Subprogram): Defend against Error.
33403
33404         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
33405         remove following semicolon if present. Removes cascaded error.
33406
33407 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
33408
33409         * bindgen.adb:
33410         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
33411          exceptions equals 0.
33412         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
33413         Fixes PIWG E tests (which have to be run with -gnatL).
33414
33415 2001-12-04  Robert Dewar <dewar@gnat.com>
33416
33417         * einfo.ads: Minor reformatting
33418
33419 2001-12-04  Ed Schonberg <schonber@gnat.com>
33420
33421         * einfo.ads: Block_Node points to the identifier of the block, not to
33422         the block node itself, to preserve the link when the block is
33423         rewritten, e.g. within an if-statement with a static condition.
33424
33425         * inline.adb (Cleanup_Scopes): recover block statement from block
33426         entity using new meaning of Block_Node.
33427
33428         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
33429         identifier of block node, rather than to node itself.
33430
33431 2001-12-04  Gary Dismukes <dismukes@gnat.com>
33432
33433         * layout.adb:
33434         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
33435         (Discrimify): Go back to setting the Etypes of the selected component
33436         because the Vname component does not exist at this point and will
33437         fail name resolution. Also set Analyzed.
33438         Remove with and use of Sem_Res.
33439
33440 2001-12-04  Arnaud Charlet <charlet@gnat.com>
33441
33442         * Makefile.in: (HIE_SOURCES): add s-fat*.
33443
33444 2001-12-04  Robert Dewar <dewar@gnat.com>
33445
33446         * sem_attr.adb:
33447         (Compile_Time_Known_Attribute): New procedure.
33448         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
33449          proper range check.
33450
33451 2001-12-04  Ed Schonberg <schonber@gnat.com>
33452
33453         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
33454         processing discriminants to diagnose illegal default values.
33455
33456 2001-12-04  Ed Schonberg <schonber@gnat.com>
33457
33458         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
33459         access discriminant within a type extension that constrains its
33460         parent discriminants.
33461
33462 2001-12-04  Ed Schonberg <schonber@gnat.com>
33463
33464         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
33465         is malformed, use instance of Any_Id to allow analysis to proceed.
33466
33467         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
33468         type definition is illegal.
33469         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
33470         misplaced.
33471
33472 2001-12-04  Ed Schonberg <schonber@gnat.com>
33473
33474         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
33475         constants.
33476
33477 2001-12-04  Robert Dewar <dewar@gnat.com>
33478
33479         * errout.adb: Minor reformatting
33480
33481 2001-12-04  Robert Dewar <dewar@gnat.com>
33482
33483         * exp_util.adb: Minor reformatting from last change
33484
33485         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
33486         which is a rewriting of an expression, traverse the original
33487         expression to remove warnings that may have been posted on it.
33488
33489 2001-12-04  Ed Schonberg <schonber@gnat.com>
33490
33491         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
33492         record that has other packed components.
33493
33494 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
33495
33496         * adaint.c: Minor cleanups.
33497
33498 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
33499
33500         * adaint.c: Do not use utime.h on vxworks.
33501
33502 2001-12-04  Arnaud Charlet <charlet@gnat.com>
33503
33504         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
33505         more confusion than it solves.
33506
33507 2001-12-04  Geert bosch <bosch@gnat.com>
33508
33509         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
33510
33511 2001-12-04  Geert Bosch  <bosch@gnat.com>
33512
33513         * Makefile.in (update-sources): New target.
33514         For use by gcc_release script.
33515
33516 2001-12-04  Ed Schonberg <schonber@gnat.com>
33517
33518         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
33519         a configuration pragma, it is now legal wherever a pragma can appear.
33520
33521 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
33522
33523         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
33524         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
33525         is now @CROSS@ -DIN_GCC; update comment.
33526
33527 2001-12-04  Robert Dewar <dewar@gnat.com>
33528
33529         * einfo.adb (Has_Pragma_Pure_Function): New flag.
33530         Fix problem that stopped ceinfo from working
33531
33532         * einfo.ads (Has_Pragma_Pure_Function): New flag.
33533
33534         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
33535
33536 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
33537
33538         * gnatchop.adb:
33539         (File_Time_Stamp): New procedure.
33540         (Preserve_Mode): New boolean.
33541         (Write_Unit): Pass time stamp.
33542         Implement -p switch (preserve time stamps).
33543
33544         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
33545
33546         * gnatchop.adb: Do usage info for -p switch
33547
33548         * adaint.h (__gnat_set_file_time_name): New function
33549
33550         * adaint.c (__gnat_set_file_time_name): Implement
33551
33552         * adaint.h: Fix typo
33553
33554 2001-12-03  Robert Dewar <dewar@gnat.com>
33555
33556         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
33557         have Associated_Node.
33558
33559 2001-12-03  Robert Dewar <dewar@gnat.com>
33560
33561         * prj-proc.adb: Minor reformatting
33562
33563         * make.adb: Minor reformatting
33564
33565 2001-12-03  Geert Bosch <bosch@gnat.com>
33566
33567         * make.adb: Minor reformatting.
33568
33569 2001-12-03 Robert Dewar  <dewar@gnat.com>
33570
33571         * sem_ch12.adb: Minor reformatting
33572
33573 2001-12-03  Ed Schonberg <schonber@gnat.com>
33574
33575         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
33576         push Standard on the stack before analyzing the instance body,
33577         in order to have a clean visibility environment.
33578
33579         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
33580
33581 2001-12-03  Ed Schonberg <schonber@gnat.com>
33582
33583         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
33584         instantiation of a body that contains an inlined body.
33585
33586 2001-12-03  Ed Schonberg <schonber@gnat.com>
33587
33588         * sem_ch12.adb:
33589         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
33590         to prevent freezing within formal packages.
33591         (Freeze_Subprogram_Body): If body comes from another instance that
33592         appeared before its own body, place freeze node at end of current
33593         declarative part, to prevent a back-end crash.
33594         (Inline_Instance_Body): Handle properly a package instance within
33595         a subprogram instance that is a child unit.
33596
33597 2001-12-01  Graham Stott  <grahams@redhat.com>
33598
33599         * Makefile.in (misc.o): Add missing $(srcdir) prefix
33600         and add optabs.h dependency.
33601
33602         * misc.c: Include optabs.h
33603         (gnat_tree_code_type): Make static and const.
33604         (gnat_tree_code_length): Likewise.
33605         (gnat_tree_code_name): Likewise.
33606         (update_setjmp_buf): Obtain operands mode from insn_data.
33607
33608 2001-11-29  Richard Henderson  <rth@redhat.com>
33609
33610         * init.c: Remove obsolete dwarf2 frame.h section.
33611
33612 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
33613
33614         * Make-lang.in (ada.generated-manpages): New dummy target.
33615
33616 2001-11-29  Ed Schonberg <schonber@gnat.com>
33617
33618         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
33619         into Command, an array conversion is illegal here. Uncovered by
33620         ACATS B460005.
33621
33622 2001-11-28  Geert Bosch <bosch@gnat.com>
33623
33624         * init.c: Minor whitespace changes.
33625
33626 2001-11-28  Doug Rupp <rupp@gnat.com>
33627
33628         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
33629         signal stack.
33630
33631 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
33632
33633         * misc.c (gnat_expand_constant): Move declaration above
33634         definition of lang_hooks.
33635         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
33636         (gnat_init): lang_expand_constant no longer exists.
33637
33638         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
33639         always have vprintf.
33640         (gnat_init): Always call set_internal_error_function.
33641
33642 2001-11-27  Andreas Jaeger  <aj@suse.de>
33643
33644         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
33645
33646 2001-11-27  Laurent Guerby  <guerby@acm.org>
33647
33648         * Makefile.in: Regenerate Ada dependencies.
33649
33650 2001-11-26  Richard Henderson  <rth@redhat.com>
33651
33652         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
33653         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
33654         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
33655
33656 2001-11-25  Laurent Guerby  <guerby@acm.org>
33657
33658         * sysdep.c (rts_get_*): Fix style.
33659
33660 2001-11-19  Laurent Guerby  <guerby@acm.org>
33661
33662         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
33663         since it is of no apparent use and cause warnings.
33664
33665 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
33666
33667         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
33668         static too.
33669         (gnat_init): Don't return NULL.
33670         (finish_parse): Remove.
33671
33672 2001-11-17  Laurent Guerby  <guerby@acm.org>
33673
33674         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
33675         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
33676         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
33677         * lang-spec.h: Add missing struct field to silence warnings.
33678         * sysdep.c (rts_get_*): Provide K&R prototype.
33679         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
33680         * traceback.c (Unlock_Task, Lock_Task): Likewise.
33681         * tracebak.c (__gnat_backtrace): Remove unused variable.
33682         * utils.c (end_subprog_body): Move to K&R style.
33683
33684 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
33685
33686         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
33687
33688 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
33689
33690         * misc.c (gnat_init): Change prototype.  Include the
33691         functionality of the old init_parse and init_decl_processing.
33692         (gnat_init_decl_processing): New prototype.
33693         (init_parse): Remove.
33694         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
33695
33696 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
33697
33698         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
33699         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
33700         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
33701         set_yydebug): Remove.
33702
33703 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
33704
33705         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
33706         (struct lang_hooks): Constify.
33707         (language_string, lang_identify): Remove.
33708         * utils.c (init_decl_processing): Update.
33709
33710 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
33711
33712         * misc.c: Include langhooks-def.h.
33713         * Makefile.in: Update.
33714
33715 2001-10-30  Robert Dewar <dewar@gnat.com>
33716
33717         * style.adb:
33718         (Check_Identifier): Rewrite circuit to be compatible with use of letters
33719         in the upper half of ASCII.
33720         (Check_Identifier): Minor reformatting
33721
33722 2001-10-30  Geert Bosch <bosch@gnat.com>
33723
33724         * (Associated_Node, Set_Associated_Node): Do not check for
33725         Freeze_Entity.
33726
33727 2001-10-30  Robert Dewar <dewar@gnat.com>
33728
33729         * a-reatim.ads: Minor reformatting
33730
33731 2001-10-30  Robert Dewar <dewar@gnat.com>
33732
33733         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
33734         undocumented declarations.
33735
33736 2001-10-30  Pascal Obry <obry@gnat.com>
33737
33738         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
33739         to the binder and linker.
33740         Minor style fix.
33741
33742         * mdll.ads: Fix layout.  Update copyright notice.
33743
33744         * mdll.adb: Fix layout.  Update copyright notice.
33745
33746 2001-10-30  Robert Dewar <dewar@gnat.com>
33747
33748         * usage.adb: Minor fix to output for -gnaty.
33749
33750 2001-10-30  Ed Schonberg <schonber@gnat.com>
33751
33752         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
33753         to accommodate all its possible values.
33754
33755         * a-reatim.adb (Split): Special-case handling of Time_Span_First
33756         and of small absolute values of T.
33757
33758 2001-10-30  Richard Kenner <kenner@gnat.com>
33759
33760         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
33761         set_mem_attributes since not needed and wrong if RESULT if a REG;
33762         fixes ACATS failures.
33763
33764 2001-10-30  Geert Bosch <bosch@gnat.com>
33765
33766         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
33767         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
33768
33769 2001-10-30  Robert Dewar <dewar@gnat.com>
33770
33771         * bindusg.adb: Undocument -f switch.
33772
33773         * gnatcmd.adb: Remove /FULL_ELABORATION.
33774
33775         * opt.ads (Force_RM_Elaboration_Order): Document that this is
33776         obsolescent.
33777
33778         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
33779
33780         * gnatbind.adb: Minor update of warning msg.
33781
33782 2001-10-30  Vincent Celier <celier@gnat.com>
33783
33784         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
33785         for project file switches (-P (/PROJECT_FILE=),
33786          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
33787         or MEDIUM or HIGH)
33788
33789 2001-10-30  Geert Bosch <bosch@gnat.com>
33790
33791         * decl.c: Minor whitespace fixes.
33792
33793 2001-10-30  Richard Kenner <kenner@gnat.com>
33794
33795         * utils2.c (build_allocator): Test for SIZE overflow in array case too
33796
33797 2001-10-30  Geert Bosch <bosch@gnat.com>
33798
33799         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
33800         Found due to GCC 3.0 warning of using uninitialized value.
33801
33802         * layout.adb:
33803         (Get_Max_Size): Use variant record for tracking value/expression.
33804          Makes logic clearer and prevents warnings for uninitialized variables.
33805         (Layout_Array_Type): Use variant record for tracking value/expression.
33806          Makes logic clearer and prevents warnings for uninitialized variables.
33807
33808 2001-10-30  Robert Dewar <dewar@gnat.com>
33809
33810         * lib.adb: Minor reformatting
33811
33812         * s-taprop.ads: Minor reformatting
33813
33814 2001-10-29  Laurent Guerby  <guerby@acm.org>
33815
33816         * init.c:
33817         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
33818         const.
33819         (_gnat_error_handler): Make MSG const.
33820
33821 2001-10-29  Richard Kenner <kenner@gnat.com>
33822
33823         * sysdep.c: Fix localtime_r problem on LynxOS.
33824         Also remove #elif to avoid warnings.
33825
33826         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
33827         used by this.
33828
33829         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
33830
33831 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
33832
33833         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
33834         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
33835         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
33836         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
33837         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
33838         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
33839         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
33840         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
33841         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
33842         types.ads, urealp.adb: Fix spelling errors.
33843
33844 2001-10-27  Laurent Guerby <guerby@acm.org>
33845
33846         * trans.c (gigi): Fix non determinism leading to bootstrap
33847         comparison failures for debugging information.
33848
33849 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
33850
33851         * gnat_rm.texi: Use @./@: where appropriate.
33852
33853 2001-10-26  Robert Dewar <dewar@gnat.com>
33854
33855         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
33856
33857 2001-10-26  Richard Kenner <kenner@gnat.com>
33858
33859         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
33860
33861 2001-10-26  Richard Kenner <kenner@gnat.com>
33862
33863         * decl.c (validate_size): Modify message for bad size to avoid
33864         implication that compiler is modifying the size.
33865
33866 2001-10-26  Robert Dewar <dewar@gnat.com>
33867
33868         * prj-util.adb: Minor reformatting. Fix bad header format.
33869
33870 2001-10-26  Robert Dewar <dewar@gnat.com>
33871
33872         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
33873
33874         * sinfo.ads: Clarify use of Associated_Node (documentation only).
33875
33876         * sem_ch12.adb: Change Node4 to Associated_Node. Change
33877         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
33878         much more narrowly in places where needed. These are cleanups.
33879
33880 2001-10-26  Joel Brobecker <brobecke@gnat.com>
33881
33882         * 5zosinte.ads (null_pthread): new constant.
33883
33884         * 5ztaprop.adb:
33885         (Initialize_TCB): Initialize thread ID to null, to be able to verify
33886          later that this field has been set.
33887         (Finalize_TCB): ditto.
33888         (Suspend_Task): Verify that the thread ID is not null before using it.
33889         (Resume_Task): ditto.
33890
33891         * s-tasdeb.adb:
33892         (Resume_All_Tasks): Lock the tasks list before using it.
33893         (Suspend_All_Tasks): ditto.
33894
33895 2001-10-26  Richard Kenner <kenner@gnat.com>
33896
33897         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
33898         Make constant variant of designated type for Is_Access_Constant.
33899         Call update_pointer_to with main variant.
33900
33901         * trans.c (process_freeze_entity, process_type):
33902         Call update_pointer_to on main variant.
33903
33904         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
33905         If main variant, update all other variants.
33906
33907         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
33908         TREE_STATIC.
33909
33910 2001-10-26  Robert Dewar <dewar@gnat.com>
33911
33912         * prj-util.adb: Minor reformatting
33913
33914 2001-10-26  Robert Dewar <dewar@gnat.com>
33915
33916         * prj-util.adb: Minor reformatting
33917
33918 2001-10-26  Robert Dewar <dewar@gnat.com>
33919
33920         * prj-attr.adb: Minor reformatting throughout
33921
33922 2001-10-26  Robert Dewar <dewar@gnat.com>
33923
33924         * prj-attr.ads: Minor reformatting
33925         Add ??? comment (this whole spec has almost no comments)
33926
33927 2001-10-26  Vincent Celier <celier@gnat.com>
33928
33929         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
33930         ("//") that precede the drive letter on Interix.
33931
33932 2001-10-26  Geert Bosch <bosch@gnat.com>
33933
33934         * gnat_rm.texi: Add GNAT Reference Manual.
33935
33936 2001-10-25  Robert Dewar <dewar@gnat.com>
33937
33938         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
33939         is Error. Similar change for other renaming cases.
33940
33941 2001-10-25  Robert Dewar <dewar@gnat.com>
33942
33943         * s-atacco.ads: Add pragma Inline_Always for functions.
33944         Fix header format. Add copyright 2001
33945
33946 2001-10-25  Ed Schonberg <schonber@gnat.com>
33947
33948         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
33949         return Error rather than Empty so that analysis can proceed.
33950
33951 2001-10-25  Ed Schonberg <schonber@gnat.com>
33952
33953         * sem_util.adb (Enter_Name): better handling of cascaded error
33954         messages when a unit appears in its own context.
33955
33956 2001-10-25  Ed Schonberg <schonber@gnat.com>
33957
33958         * sem_util.adb (Defining_Entity): in case of error, attach created
33959         entity to specification, so that semantic analysis can proceed.
33960
33961 2001-10-25  Robert Dewar <dewar@gnat.com>
33962
33963         * sem_util.adb
33964         (Defining_Entity): Deal with Error.
33965         (Process_End_Label): Deal with bad end label for.
33966
33967 2001-10-25  Ed Schonberg <schonber@gnat.com>
33968
33969         * sem_elab.adb (Check_A_Call): refine message when call is in an
33970         instance but callee is not declared in the generic unit.
33971
33972 2001-10-25  Ed Schonberg <schonber@gnat.com>
33973
33974         * sem_elab.adb (Check_A_Call): check for renaming before finding the
33975         enclosing unit, which may already be different from the calling unit.
33976
33977 2001-10-25  Geert Bosch <bosch@gnat.com>
33978
33979         * 4gintnam.ads: fix header format.
33980
33981 2001-10-25  Ed Schonberg <schonber@gnat.com>
33982
33983         * sem_res.adb (Resolve_Call): if the call is actually an indexing
33984         operation on the result of a parameterless call, perform elaboration
33985         check after the node has been properly rewritten.
33986
33987         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
33988         inlined within the generic tree, the defining identifier is not a
33989         compilation_unit.
33990
33991 2001-10-25  Ed Schonberg <schonber@gnat.com>
33992
33993         * sem_res.adb (Resolve): special-case resolution of Null in an
33994          instance or an inlined body to avoid view conflicts.
33995
33996         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
33997          compatibility by retrieving the access type of the generic copy.
33998
33999 2001-10-25  Robert Dewar <dewar@gnat.com>
34000
34001         * sem_ch3.adb:
34002         (Analyze_Number_Declaration): Handle error expression.
34003         (Signed_Integer_Type_Declaration): Handle error bound.
34004         (Analyze_Subtype_Indication): Handle error range.
34005
34006         * sem_util.adb (Get_Index_Bounds): Check for Error.
34007
34008 2001-10-25  Robert Dewar <dewar@gnat.com>
34009
34010         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
34011         in no run time mode.
34012
34013 2001-10-25  Pascal Obry <obry@gnat.com>
34014
34015         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
34016         mode case for ALLOC case.
34017
34018         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
34019         all platforms. Improvement of last change.
34020
34021 2001-10-25  Robert Dewar <dewar@gnat.com>
34022
34023         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
34024
34025 2001-10-25  Geert Bosch  <bosch@gnat.com>
34026
34027         * osint.adb (Is_Relative): Remove duplicate.
34028
34029 2001-10-25  Pascal Obry <obry@gnat.com>
34030
34031         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
34032         pathnames in UNIX and DOS style with drive letter.
34033         (Is_Relative): new routine.
34034
34035         * osint.adb: Minor reformatting
34036
34037         * osint.adb (Is_Relative): implementation using
34038         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
34039
34040 2001-10-25  Pascal Obry <obry@gnat.com>
34041
34042         * g-dirope.adb (Basename): correctly compute offset between the
34043         original Path and the translated one.
34044
34045         * g-dirope.adb: (Base_Name): add some comments.
34046
34047 2001-10-25  Robert Dewar <dewar@gnat.com>
34048
34049         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
34050         in HIE mode, avoids compilation abandoned message
34051
34052         * exp_imgv.adb: Correct typo in previous change
34053
34054         * exp_imgv.adb: Correct typo in previous change (not my day!)
34055
34056 2001-10-25  Robert Dewar <dewar@gnat.com>
34057
34058         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
34059
34060 2001-10-25  Pascal Obry <obry@gnat.com>
34061
34062         * g-awk.ads: Move all pragma inlines next to the routine
34063          declarations. This is more uniform with other GNAT spec.
34064
34065 2001-10-22  Geert Bosch  <bosch@gnat.com>
34066
34067         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
34068
34069 2001-10-19  Geert Bosch  <bosch@gnat.com>
34070
34071         * Makefile.in (tools, gnattools): Remove gnatmem.
34072
34073 2001-10-17  Richard Henderson  <rth@redhat.com>
34074
34075         * Makefile.in (misc.o): Depend on langhooks.h.
34076         * misc.c: Include it.
34077         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
34078         (LANG_HOOKS_DECODE_OPTION): New.
34079         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
34080
34081 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
34082
34083         * trans.c (tree_transform): Adjust to recent change in
34084         expand_asm_operands to implement named asm operands.
34085
34086 2001-10-11  Ed Schonberg  <schonber@gnat.com>
34087
34088         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
34089         renaming of discriminant for mutable record type.
34090
34091 2001-10-11  Robert Dewar  <dewar@gnat.com>
34092
34093         * validsw.adb: Properly save -gnatVn status.
34094
34095 2001-10-11  Robert Dewar <dewar@gnat.com>
34096
34097         * usage.adb: Add lines for V switch.
34098
34099         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
34100         (/VALIDITY_CHECKING).
34101
34102 2001-10-11  Ed Schonberg <schonber@gnat.com>
34103
34104         * sem_type.adb (Add_One_Interp): an operator for a type declared in
34105         an extension of System is known to be visible.
34106
34107 2001-10-11  Ed Schonberg <schonber@gnat.com>
34108
34109         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
34110         properly. Fixes regression on ACATS C34005G.
34111
34112 2001-10-11  Robert Dewar <dewar@gnat.com>
34113
34114         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
34115         loop in generic instance, since this is likely not very useful.
34116
34117 2001-10-11  Robert Dewar <dewar@gnat.com>
34118
34119         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
34120         the error message for high integrity mode.
34121
34122         * rtsfind.adb (RTE): Give message if we try to find an entity that
34123         is not available in high integrity mode.
34124
34125         * rtsfind.ads:
34126         (OK_To_Use_In_HIE_Mode): New array.
34127         (RTE): May return Empty in high integrity mode.
34128
34129         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
34130         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
34131
34132         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
34133         unit if not inlined always and in no runtime mode. Fixes problem
34134         caused by new Rtsfind changes.
34135
34136         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
34137         body is deleted.
34138
34139         * rtsfind.adb (RTE): Make sure we do not try to load unit after
34140         giving message for entity not available in high integrity mode.
34141
34142 2001-10-11  Pascal Obry <obry@gnat.com>
34143
34144         * impunit.adb: Add GNAT.CRC32.
34145
34146 2001-10-11  Ed Schonberg <schonber@gnat.com>
34147
34148         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
34149         properly the case where one universal operand in a non-static
34150         exponentiation of a real literal.
34151
34152 2001-10-11  Ed Schonberg <schonber@gnat.com>
34153
34154         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
34155         clause, return the gobal finalization list, for lack of anthing else.
34156
34157 2001-10-11  Ed Schonberg <schonber@gnat.com>
34158
34159         * exp_ch7.adb (Make_Transient_Block): if statement is within
34160         exception handler, always use new transient scope to place Clean
34161         procedure.
34162
34163 2001-10-11  Pascal Obry <obry@gnat.com>
34164
34165         * Makefile.in:
34166         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
34167         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
34168         (GNATLS_RTL_OBJS): add g-crc32.o
34169         (GNATMAKE_RTL_OBJS): add g-crc32.o
34170
34171         * ali-util.adb:
34172         (CRC_Match): new function.
34173         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
34174         instead of the previous simple checksum algorithm.
34175         (Time_Stamp_Mismatch): use CRC_Match for comparison.
34176         (Set_Source_Table): idem.
34177
34178         * ali-util.ads:
34179         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
34180         instead of simple checksum.
34181         (CRC_Match): new function.
34182         (CRC_Error): new constant.
34183
34184         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
34185         a CRC now and not a simple checksum. A CRC uses lower-case hex
34186         letters, fixes ambiguity in parsing.
34187
34188         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
34189         is what this variable will store.
34190
34191         * bcheck.adb: Change reference to chechsum in comments by CRC.
34192         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
34193         rename All_Checksum_Match to All_CRC_Match. Change due to API
34194         renaming since now GNAT does not use a simple checksum but a
34195         CRC using GNAT.CRC32.
34196
34197         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
34198         now and not anymore a simple checksum.
34199
34200         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
34201         places.
34202
34203         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
34204
34205         * scans.adb:
34206         (Restore_Scan_State): rename Checksum to CRC.
34207         (Save_Scan_State): idem.
34208
34209         * scans.ads:
34210         With GNAT.CRC32.
34211         (Checksum): rename to CRC.
34212         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
34213
34214         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
34215         GNAT.CRC32).  Update copyright notice.
34216
34217         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
34218         GNAT.CRC32).  Update copyright notice.
34219
34220         * scn.adb:
34221         (Accumulate_Checksum): removed.
34222         (Update): new procedure. Add a wide-character into the CRC.
34223
34224         * sinput-l.adb:
34225         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
34226         (Load_File): fix initialization of S (change Source_Checksum to
34227         Source_CRC)
34228
34229         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
34230         Source_CRC in S initialization.
34231
34232         * sinput.adb (Source_Checksum): renamed to Source_CRC.
34233
34234         * sinput.ads (Source_Checksum): renamed to Source_CRC.
34235         Update comments for the CRC.
34236
34237         * types.adb (Hex): Use lowercase for the letter part.
34238
34239         * types.ads (Get_Hex_String): Returns the hexadecimal representation
34240         for a word. This is currently used only for CRC. In previous version,
34241         the checksum was using a representation with all letter being
34242         upper-case. With the new implementation (using CRC) we do not remove
34243         the 32th bit of the CRC, so we can have an upper-case starting letter
34244         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
34245         It is ambigous since the CRC was optional and could be followed by
34246         options like EB, EE. So now this routines uses lower-case letter for
34247         the hexadecimal representation. Strange enough only lower case letters
34248         where checked in Scan_ALI (even if this was not a possible case).
34249
34250         * gnatvsn.ads (Library_Version): changed to 3.15a.
34251
34252         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
34253         for the compiler.
34254
34255         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
34256         for the compiler.
34257
34258         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
34259         Add 2001 to copyright notice
34260         (Accumulate_Checksum): Modify to use System.CRC32.
34261
34262         * ali-util.ads: Redo changes of previous revision to continue to use
34263         the word Checksum. Add 2001 to copyright notice.
34264
34265         * ali.adb: Undo some of previous changes, not needed.
34266         Keep the change for lower case letters in the checksum.
34267
34268         * ali.ads: Undo previous change not needed.
34269
34270         * bcheck.adb: Undo most of previous change, not needed.
34271         But do use Checksums_Match for checksum comparison.
34272
34273         * gnatls.adb: Undo most of previous change, not needed.
34274         But do use Checksums_Match for comparing checksums.
34275
34276         * lib-load.adb: Undo previous change, not needed.
34277
34278         * lib-writ.adb: Undo previous change, not needed.
34279
34280         * lib-writ.ads: Document that checksums use lower case,
34281         not upper case letters.
34282
34283         * scans.adb: Undo previous change, not needed
34284
34285         * scans.ads: Undo previous change, not needed.
34286
34287         * scn-nlit.adb: Undo previous changes, not needed.
34288
34289         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
34290
34291         * scn.adb:
34292         (Accumulate_Checksum): Use System.CRC32.
34293         (Initialize_Checksum): New procedure.
34294         Remove other changes of previous revision.
34295
34296         * sinput-p.adb: Undo previous change, not needed.
34297
34298         * sinput.adb: Undo previous change, not needed.
34299
34300         * sinput-l.adb: Undo previous change, not needed.
34301
34302         * sinput.ads: Undo previous change, not needed.  Keep only comment
34303         on new checksum algorithm
34304
34305         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
34306         Also remove a-tags and a-stream from GNAT sources.
34307
34308         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
34309
34310         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
34311
34312 2001-10-11  Geert Bosch  <bosch@gnat.com>
34313
34314         * einfo.h: Regenerate.
34315
34316         * nmake.ads: Regenerate.
34317
34318         * nmake.adb: Regenerate.
34319
34320         * sinfo.h: Regenerate.
34321
34322         * treeprs.adb: Regenerate.
34323
34324 2001-10-10  Geert Bosch  <bosch@gnat.com>
34325
34326         * gnat-style.texi: New file describing coding guidelines for Ada.
34327
34328 2001-10-10  Ed Schonberg <schonber@gnat.com>
34329
34330         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
34331         is Flag174.
34332
34333 2001-10-10  Geert Bosch  <bosch@gnat.com>
34334
34335         * snames.ads: Add new names for project facility.
34336
34337         * snames.adb: Update to reflect snames.ads changes.
34338
34339         * snames.h: Update to reflect snames.ads changes.
34340
34341 2001-10-10  Vincent Celier <celier@gnat.com>
34342
34343         * make.adb:
34344         (Add_Switches): reflect the changes for the switches attributes
34345         Default_Switches indexed by the programming language,
34346         Switches indexed by the file name.
34347         (Collect_Arguments_And_Compile): Idem.
34348         Reflect the attribute name changes.
34349
34350         * prj-attr.adb:
34351         (Initialisation_Data): Change the names of some packages and
34352         attributes.
34353         (Initialize): process case insensitive associative arrays.
34354
34355         * prj-attr.ads:
34356         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
34357
34358         * prj-dect.adb:
34359         (Parse_Attribute_Declaration): For case insensitive associative
34360          arrays, set the index string to lower case.
34361
34362         * prj-env.adb:
34363         Reflect the changes of the project attributes.
34364
34365         * prj-nmsc.adb:
34366         Replace Check_Naming_Scheme by Ada_Check and
34367         Language_Independent_Check.
34368
34369         * prj-nmsc.ads:
34370         Replaced Check_Naming_Scheme by 2 procedures:
34371         Ada_Check and Language_Independent_Check.
34372
34373         * prj-proc.adb:
34374         (Process_Declarative_Items): For case-insensitive associative
34375         arrays, set the index string to lower case.
34376         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
34377         Prj.Nmsc.Check_Naming_Scheme.
34378
34379         * prj-tree.adb:
34380         (Case_Insensitive): New function
34381         (Set_Case_Insensitive): New procedure
34382
34383         * prj-tree.ads:
34384         (Case_Insensitive): New function
34385         (Set_Case_Insensitive): New procedure
34386         (Project_Node_Record): New flag Case_Insensitive.
34387
34388         * prj-util.adb:
34389         (Value_Of): new function to get the string value of a single
34390         string variable or attribute.
34391
34392         * prj-util.ads:
34393         (Value_Of): new function to get the string value of a single
34394         string variable or attribute.
34395
34396         * prj.adb:
34397         (Ada_Default_Spec_Suffix): New function
34398         (Ada_Default_Impl_Suffix): New function
34399         Change definitions of several constants to reflect
34400         new components of record types.
34401
34402         * prj.ads:
34403         (Naming_Data): Change several components to reflect new
34404         elements of naming schemes.
34405         (Project_Data): New flags Sources_Present and
34406         Language_Independent_Checked.
34407         (Ada_Default_Spec_Suffix): New function.
34408         (Ada_Default_Impl_Suffix): New function.
34409
34410         * snames.ads:
34411         Modification of predefined names for project manager: added
34412         Implementation, Specification_Exceptions, Implementation_Exceptions,
34413         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
34414         Default_Switches, _Languages, Builder, Cross_Reference,
34415         Finder. Removed Body_Part, Specification_Append, Body_Append,
34416         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
34417         Gnatlink.
34418
34419         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
34420         Add comments.
34421
34422         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
34423         not that it is Nil_Variable_Value.
34424
34425         * prj.ads: Add ??? for uncommented declarations
34426
34427 2001-10-10  Ed Schonberg <schonber@gnat.com>
34428
34429         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
34430         constant, do not indicate possible modification, so that gigi can
34431         treat it as a bona fide constant.
34432
34433 2001-10-10  Robert Dewar <dewar@gnat.com>
34434
34435         * sem_prag.adb: Add processing for pragma External.
34436
34437         * snames.ads: Add entry for pragma External.
34438
34439         * par-prag.adb: Add pragma External.
34440
34441         * snames.adb: Updated to match snames.ads.
34442
34443 2001-10-10  Ed Schonberg <schonber@gnat.com>
34444
34445         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
34446         a dynamic task if the allocator appears in an indexed assignment
34447         or selected component assignment.
34448
34449         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
34450         For a dynamic task in an assignment statement, use target of
34451         assignment to generate meaningful name.
34452
34453 2001-10-10  Ed Schonberg <schonber@gnat.com>
34454
34455         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
34456         a generic package.
34457
34458         * einfo.ads: Body_Entity is also defined for generic package.
34459         Documentation change only
34460
34461         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
34462         others_choice for a discriminated component initialization,
34463         convert discriminant references into the corresponding discriminals.
34464
34465         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
34466         only if original type is private and expression has to be wrapped
34467         in a conversion.
34468
34469         * checks.adb:
34470         (Apply_Constraint_Check): Do not perform length check
34471         if expression is an aggregate with only an others_choice.
34472         (Length_N_Cond): two references to the same in_parameter
34473         (typically the discriminal in an init_proc) denote the same value.
34474         Two useful optimization uncovered by bugfixes above.
34475
34476 2001-10-10  Robert Dewar <dewar@gnat.com>
34477
34478         * xeinfo.adb: Change int to char in translation of enumeration types.
34479         This fixes a problem in the C representation of component alignment.
34480         Add 2001 to copyright notice
34481
34482 2001-10-10  Richard Kenner <kenner@gnat.com>
34483
34484         * decl.c: (validate_size): Do check size of object of integral type
34485         if it is a packed array type.
34486
34487 2001-10-10  Richard Kenner <kenner@gnat.com>
34488
34489         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
34490         VAR_DECL for constant if not Is_Public but -O0.
34491
34492 2001-10-10  Richard Kenner  <kenner@gnat.com>
34493
34494         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
34495
34496 2001-10-10  Geert Bosch  <bosch@gnat.com>
34497
34498         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
34499         use '/' as switch character, allowing for absolute file names.
34500
34501 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
34502
34503         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
34504         FSF address.
34505
34506 2001-10-08  Geert Bosch  <bosch@gnat.com>
34507
34508         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
34509         Automatically build utilities when files need to be regenerated.
34510
34511 2001-10-08  Geert Bosch  <bosch@gnat.com>
34512
34513         * xsnames.adb: New utility for updating snames.ads and snames.adb
34514
34515 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
34516
34517         * Make-lang.in (ADAFLAGS): Add -W -Wall.
34518         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
34519         (gnat1): Also depend on attribs.o.
34520         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
34521         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
34522         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
34523         (ADAFLAGS): Add -W -Wall.
34524         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
34525         take out CFLAGS.
34526
34527         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
34528         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
34529         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
34530         Use $(ADAC), not $(CC), as compilation command.
34531
34532         (gnattools): Depend directly on tools to build, don't use
34533         recursive make.
34534         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
34535
34536         * einfo.h, sinfo.h: New files (autogenerated).
34537
34538 2001-10-08  Richard Henderson  <rth@redhat.com>
34539
34540         * comperr.adb (Abort_In_Progress): New.
34541         (Compiler_Abort): Use it to prevent recursion.
34542
34543 2001-10-08  Robert Dewar <dewar@gnat.com>
34544
34545         * atree.adb: Set Error_Posted in Error node, helps error recovery.
34546
34547         * par-endh.adb (Output_End_Expected): We should also not test
34548         Error_Posted on the Error node, since now it is always set.
34549
34550         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
34551         to help error recovery. Part of general work on 9407-004.
34552
34553         * par.adb: Add ??? for misuse of error
34554
34555         * sem_res.adb:
34556         (Resolve): Defend against Error, fixes 9407-003.
34557         (Resolve_Discrete_Subtype_Indication): Defend against Error.
34558
34559         * sinfo.ads (N_Error): Now has Etype field (which will be set
34560         to Any_Type to help error recovery).
34561
34562 2001-10-08  Richard Kenner (kenner@gnat.com)
34563
34564         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
34565         Consistently set MEM attributes from expression; fixes
34566         bootstrap failure on x86.
34567
34568 2001-10-08  Geert Bosch  (bosch@gnat.com)
34569
34570         * 5oosinte.adb: Add 2001 to copyright notice.
34571
34572 2001-10-08  Geert Bosch  (bosch@gnat.com)
34573
34574         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
34575
34576         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
34577
34578 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
34579
34580         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
34581
34582 2001-10-05  Geert Bosch  (bosch@gnat.com)
34583
34584         * adaint.h: Small formatting fix.
34585
34586 2001-10-04  Geert Bosch  <bosch@gnat.com>
34587
34588         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
34589         Arg is int, not FILE *, in dummy version of functions.
34590
34591         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
34592         Arg is int, not FILE *.
34593
34594 2001-10-04  Geert Bosch  <bosch@gnat.com>
34595
34596         * 3lsoccon.ads: Added file, missed with initial check ins.
34597
34598         * 4lintnam.ads: Fix header format.
34599         Change Linux to GNU/Linux.
34600
34601         * 5iosinte.adb: Change Linux to GNU/Linux.
34602
34603         * 5iosinte.ads: Change Linux to GNU/Linux.
34604
34605         * 5itaprop.adb: Change Linux to GNU/Linux.
34606
34607         * 5itaspri.ads: Change Linux to GNU/Linux.
34608         Update copyright notice.
34609
34610         * 5lintman.adb: Change Linux to GNU/Linux.
34611
34612         * 5lml-tgt.adb: Change Linux to GNU/Linux.
34613
34614         * 5losinte.ads: Change Linux to GNU/Linux.
34615
34616         * 5lsystem.ads: Change Linux to GNU/Linux.
34617
34618         * 5qosinte.adb: Change Linux to GNU/Linux.
34619
34620         * 5qosinte.ads: Change Linux to GNU/Linux.
34621
34622         * 5qparame.ads: Change Linux to GNU/Linux.
34623
34624         * 5qtaprop.adb: Change Linux to GNU/Linux.
34625
34626         * 5qtaspri.ads: Change Linux to GNU/Linux.
34627         Add 2001 to copyright notice.
34628
34629         * 5vintman.ads: Change Linux to GNU/Linux.
34630         Fix header format.  Add 2001 to copyright notice.
34631
34632         * g-soccon.ads: Change Linux to GNU/Linux.
34633
34634         * g-trasym.ads: Change Linux to GNU/Linux.
34635         Add 2001 to copyright notice.
34636
34637         * memtrack.adb: Change Linux to GNU/Linux.
34638
34639         * s-intman.ads: Change Linux to GNU/Linux.
34640         Add 2001 to copyright notice.  Fix header format.
34641
34642         * s-stache.adb: Change Linux to GNU/Linux.
34643
34644         * adaint.c: Change Linux to GNU/Linux.
34645
34646         * cio.c: Change Linux to GNU/Linux.
34647
34648         * cstreams.c: Change Linux to GNU/Linux.
34649
34650         * init.c: Change Linux to GNU/Linux.
34651
34652         * gmem.c: Change Linux to GNU/Linux.
34653
34654         * tracebak.c: Change Linux to GNU/Linux.
34655
34656
34657 2001-10-02  Geert Bosch  <bosch@gnat.com>
34658
34659         * misc.c (insert_default_attributes): Add dummy version.